GLES2.0中文API-glGetShaderiv
名稱
glGetShaderiv - 從著色器物件返回一個引數
C規範
void glGetShaderiv(GLuint shader,GLenum pname,GLint *params);
引數
shader
指定要查詢的著色器物件。
pname
指定著色器物件的引數。 可接受的符號名稱為GL_SHADER_TYPE,GL_DELETE_STATUS,GL_COMPILE_STATUS,GL_INFO_LOG_LENGTH,GL_SHADER_SOURCE_LENGTH。
params
返回請求的引數結果值。
描述
glGetShaderiv以params形式返回特定著色器物件的引數值。 定義了以下引數:
GL_SHADER_TYPE
如果著色器是頂點著色器物件,則params返回GL_VERTEX_SHADER;如果著色器是片段著色器物件,則 返回GL_FRAGMENT_SHADER
GL_DELETE_STATUS
如果shader當前被標記為刪除,則params返回GL_TRUE,否則返回GL_FALSE。
GL_COMPILE_STATUS
對於支援著色器編譯器的實現,如果著色器上的最後一次編譯操作成功,則params返回GL_TRUE,否則返回GL_FALSE。
GL_INFO_LOG_LENGTH
對於支援著色器編譯器的實現,params返回著色器資訊日誌的字元數,包括空終止字元(即,儲存資訊日誌所需的字元緩衝區的大小)。 如果著色器沒有資訊日誌,則返回值0。
GL_SHADER_SOURCE_LENGTH
對於支援著色器編譯器的實現,params返回構成著色器著色器源的源字串的串聯長度,包括空終止字元。 (即,儲存著色器源所需的字元緩衝區的大小)。 如果不存在原始碼,則返回0。
注意
著色器編譯器支援是可選的,因此必須在使用之前通過使用引數GL_SHADER_COMPILER呼叫glGet來查詢。glShaderSource,glCompileShader,glGetShaderPrecisionFormat,glReleaseShaderCompiler等在不支援著色器編譯器的實現上都將生成GL_INVALID_OPERATION。用glGetShaderiv去查詢GL_COMPILE_STATUS,GL_INFO_LOG_LENGTH和GL_SHADER_SOURCE_LENGTH也會是返回GL_INVALID_OPERATION。這樣的實現提供了glShaderBinary替代方案,用於提供預編譯的著色器二進位制檔案。
如果生成錯誤,則不會更改params的內容。
錯誤
GL_INVALID_ENUM:pname不是一個可接受的值。
GL_INVALID_VALUE:shader不是OpenGL生成的值。
GL_INVALID_OPERATION:不支援著色器編譯器的情況下查詢pname為GL_COMPILE_STATUS,GL_INFO_LOG_LENGTH或GL_SHADER_SOURCE_LENGTH(GL_SHADER_TYPE,GL_DELETE_STATUS不會報這個錯)。
GL_INVALID_OPERATION:shader沒有關聯著色器物件。
相關Gets
glGet 引數GL_SHADER_COMPILER
glGetShaderInfoLog 引數shader
glGetShaderSource 引數shader
另見
glCompileShader,glCreateShader,glDeleteShader,glGetProgramiv,glShaderSource,glShaderBinary
版權
https://www.khronos.org/registry/OpenGL-Refpages/es2.0/xhtml/glGetShaderiv.xml
Copyright © 1991-2006 Silicon Graphics, Inc.本文件的許可是根據SGI Free Software B License.詳見http://oss.sgi.com/projects/FreeB/.