名称
glGetProgramInterface — 查询程序中接口的属性
C 规范
void glGetProgramInterfaceiv( GLuint program,
GLenum programInterface,
GLenum pname,
GLint * params);
参数
program
要查询其接口的程序对象的名称。
programInterface
标识程序中要查询的接口的令牌。
pname
要查询的programInterface中的参数名称。
params
用于检索程序接口的pname值的变量的地址。
描述
glGetProgramInterfaceiv查询程序中programInterface标识的接口的属性,该属性的名称由pname给出。
program必须是现有程序对象的名称。 programInterface是要查询的程序中的接口的名称,并且必须是以下值之一:
GL_UNIFORM
该查询针对程序内的一组活动制服。
GL_UNIFORM_BLOCK
该查询针对程序内的活动统一块集。
GL_ATOMIC_COUNTER_BUFFER
该查询针对程序中的活动原子计数器缓冲区绑定点集。
GL_PROGRAM_INPUT
该查询针对程序的第一着色器阶段使用的活动输入变量集。如果程序包含多个着色器阶段,则不会枚举除第一个阶段以外的任何阶段的输入变量。
GL_PROGRAM_OUTPUT
该查询针对由程序的最后着色器阶段产生的活动输出变量集。如果程序包含多个着色器阶段,则不会枚举除最后一个阶段以外的任何阶段的输出变量。
GL_TRANSFORM_FEEDBACK_VARYING
该查询的目标是来自程序的最后一个非片段化阶段的输出变量集,如果转换反馈处于活动状态,则将捕获该变量。
GL_BUFFER_VARIABLE
该查询针对程序使用的活动缓冲区变量集。
GL_SHADER_STORAGE_BLOCK
该查询针对程序使用的活动着色器存储块集。
GL_TRANSFORM_FEEDBACK_BUFFER
该查询针对的是活动缓冲区绑定点集,GL_TRANSFORM_FEEDBACK_VARYING接口中的输出变量已写入该点。
pname标识programInterface的属性以参数形式返回。
如果pname是GL_ACTIVE_RESOURCES,则返回的值是programInterface的活动资源列表中的资源数量。如果programInterface的活动资源列表为空,则返回零。
如果pname是GL_MAX_NAME_LENGTH,则返回的值是programInterface中活动资源的最长活动名称字符串的长度。此长度包括一个空终止符的额外字符。如果programInterface的活动资源列表为空,则返回零。当programInterface为GL_ATOMIC_COUNTER_BUFFER时,指定GL_MAX_NAME_LENGTH是错误的,因为未为活动原子计数器缓冲区资源分配名称字符串。
如果pname为GL_MAX_NUM_ACTIVE_VARIABLES,则返回的值是属于programInterface中具有最大活动变量的接口块或原子计数器缓冲区资源的活动变量的数量。如果programInterface的活动资源列表为空,则返回零。当pname为GL_MAX_NUM_ACTIVE_VARIABLES时,programInterface必须为GL_UNIFORM_BLOCK,GL_ATOMIC_COUNTER_BUFFER或GL_SHADER_STORAGE_BLOCK。
错误
如果标识符不是可接受的对象类型之一,则生成GL_INVALID_ENUM。
如果program不是现有程序对象的名称,则生成GL_INVALID_VALUE。
如果pname为GL_MAX_NAME_LENGTH并且programInterface为GL_ATOMIC_COUNTER_BUFFER或GL_TRANSFORM_FEEDBACK_BUFFER,则将生成GL_INVALID_OPERATION,因为未为活动原子计数器和转换反馈缓冲区资源分配名称字符串。
如果pname是GL_MAX_NUM_ACTIVE_VARIABLES并且programInterface不是GL_UNIFORM_BLOCK,GL_SHADER_STORAGE_BLOCK,GL_ATOMIC_COUNTER_BUFFER或GL_TRANSFORM_FEEDBACK_BUFFER,则生成GL_INVALID_OPERATION错误。
相关Gets
glGet with argument GL_MAX_LABEL_LENGTH.
API 支持版本
函数名 | 2.0 | 3.0 | 3.1 | 3.2 |
---|---|---|---|---|
glGetProgramInterfaceiv | - | - | ✔ | ✔ |
另见
glGetProgramResourceName, glGetProgramResourceIndex, glGetProgramResourceLocation, glGetProgramResourceiv.
版权
https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glGetProgramInterface.xhtml
Copyright © 2012-2015 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.