1. 程式人生 > >GLES2.0中文API-glCompileShader

GLES2.0中文API-glCompileShader

名稱

glCompileShader - 編譯一個著色器物件

C規範

void glCompileShader(GLuint shader);

引數

shader

    指定要編譯的著色器物件。

描述

    對於支援著色器編譯器的實現,glCompileShader編譯已儲存在shader指定的著色器物件中的原始碼字串。

    編譯狀態將儲存為著色器物件的狀態的一部分。 如果著色器編譯時沒有錯誤並且可以使用,則此值將設定為GL_TRUE,否則將設定為GL_FALSE

。 可以通過使用引數shaderGL_COMPILE_STATUS呼叫glGetShaderiv來查詢狀態值。

    由於OpenGL ES著色語言規範指定的多種原因,著色器的編譯可能會失敗。 無論編譯是否成功,都可以通過呼叫glGetShaderInfoLog從著色器物件的資訊日誌中獲取有關編譯的資訊。

注意

    著色器編譯器支援是可選的,因此必須在使用之前通過使用引數GL_SHADER_COMPILER呼叫glGet來查詢。glShaderSource,glCompileShaderglGetShaderPrecisionFormat

glReleaseShaderCompiler等在不支援著色器編譯器的實現上都將生成GL_INVALID_OPERATION。這樣的實現提供了glShaderBinary替代方案,用於提供預編譯的著色器二進位制檔案。

錯誤

GL_INVALID_OPERATION:不支援著色器編譯器

GL_INVALID_VALUEshader不是OpenGL生成的值

GL_INVALID_OPERATIONshader不是著色器物件

相關Gets

glGet 引數GL_SHADER_COMPILER

glGetShaderiv 引數shaderGL_COMPILE_STATUS

glGetShaderInfoLog 引數shader

glIsShader

另見

glCreateShaderglLinkProgramglReleaseShaderCompilerglShaderSourceglGetShaderPrecisionFormat

版權

https://www.khronos.org/registry/OpenGL-Refpages/es2.0/xhtml/glCompileShader.xml

Copyright © 1991-2006 Silicon Graphics, Inc.本文件的許可是根據SGI Free Software B License.詳見http://oss.sgi.com/projects/FreeB/.

Android,OpenGL ES,圖形學