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

GLES2.0中文API-glGetShaderiv

名稱

glGetShaderiv - 從著色器物件返回一個引數

C規範

void glGetShaderiv(GLuint shader,GLenum pname,GLint *params);

引數

shader

    指定要查詢的著色器物件。

pname

  指定著色器物件的引數。 可接受的符號名稱為GL_SHADER_TYPEGL_DELETE_STATUSGL_COMPILE_STATUSGL_INFO_LOG_LENGTHGL_SHADER_SOURCE_LENGTH

params

    返回請求的引數結果值。

描述

    glGetShaderivparams形式返回特定著色器物件的引數值。 定義了以下引數:

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來查詢。glShaderSourceglCompileShaderglGetShaderPrecisionFormatglReleaseShaderCompiler等在不支援著色器編譯器的實現上都將生成GL_INVALID_OPERATION。用glGetShaderiv去查詢GL_COMPILE_STATUS,GL_INFO_LOG_LENGTH和GL_SHADER_SOURCE_LENGTH也會是返回GL_INVALID_OPERATION。這樣的實現提供了glShaderBinary替代方案,用於提供預編譯的著色器二進位制檔案。

如果生成錯誤,則不會更改params的內容。

錯誤

GL_INVALID_ENUMpname不是一個可接受的值。

GL_INVALID_VALUEshader不是OpenGL生成的值。

GL_INVALID_OPERATION:不支援著色器編譯器的情況下查詢pnameGL_COMPILE_STATUSGL_INFO_LOG_LENGTHGL_SHADER_SOURCE_LENGTHGL_SHADER_TYPEGL_DELETE_STATUS不會報這個錯)。

GL_INVALID_OPERATIONshader沒有關聯著色器物件。

相關Gets

glGet 引數GL_SHADER_COMPILER

glGetShaderInfoLog 引數shader

glGetShaderSource 引數shader

glIsShader

另見

glCompileShaderglCreateShaderglDeleteShaderglGetProgramivglShaderSourceglShaderBinary

版權

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/.

Android,OpenGL ES,圖形學