您当前的位置: 首页 > 

Jave.Lin

暂无认证

  • 1浏览

    0关注

    704博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

OpenGL API - glGetProgramiv

Jave.Lin 发布时间:2020-06-05 21:25:29 ,浏览量:1

文章目录
  • 名称
  • 原型
  • 参数
  • 描述
  • 错误
  • 注意
  • 错误
在这里插入图片描述

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glGetProgramiv.xhtml

OpenGL API - 笔记汇总

名称

glGetProgramiv ---- 返回程序对象参数。

原型
void glGetProgramiv(GLuint program,
				 	GLenum pname,
				 	GLint *params);
参数

program 指定要查询的程序对象。 pname 指定要查询的参数。可接受符号名称有:GL_DELETE_STATUS, GL_LINK_STATUS, GL_VALIDATE_STATUS, GL_INFO_LOG_LENGTH, GL_ATTACHED_SHADERS, GL_ACTIVE_ATOMIC_COUNTER_BUFFERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_BLOCKS, GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH, GL_ACTIVE_UNIFORM_MAX_LENGTH, GL_COMPUTE_WORK_GROUP_SIZE GL_PROGRAM_BINARY_LENGTH, GL_TRANSFORM_FEEDBACK_BUFFER_MODE, GL_TRANSFORM_FEEDBACK_VARYINGS, GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH, GL_GEOMETRY_VERTICES_OUT, GL_GEOMETRY_INPUT_TYPE, 和GL_GEOMETRY_OUTPUT_TYPE。 params 返回请求的参数对象。

描述

glGetProgram 返回指定程序对象的 params 参数值。

错误

如果 target 是无效的值,将生成 GL_INVALID_ENUM 错误。 如果 buffer 不是从 glGenBuffers 返回的缓存名称,将生成 GL_INVALID_VALUE 错误。参数定义如下:

  • GL_DELETE_STATUS 如果program 当前标记了删除,params 返回 GL_TRUE,否则返回 GL_FALSE
  • GL_LINK_STATUS 如果上一次的 program 链接成功,则返回 GL_TRUE,否则返回 GL_FALSE
  • GL_VALIDATE_STATUS 如果上次的 program 验证操作成功,则返回 GL_TRUE,否则返回 GL_FALSE
  • GL_INFO_LOG_LENGTH params 返回 program 包含结尾符的日志信息的字符大小(例如,请求储存着日志信息的字符缓存大小)。如果 program 没有日志信息,则返回 0值。
  • GL_ATTACHED_SHADERS params 返回已附加到 program 的 shader 对象。
  • GL_ACTIVE_ATOMIC_COUNTER_BUFFERS params 返回 program 中激活的 attribute 的 atomic counter(原子计数)缓存数量。
  • GL_ACTIVE_ATTRIBUTES params 返回 program 中激活的 attribute 变量的数量。
  • GL_ACTIVE_ATTRIBUTE_MAX_LENGTH params 返回 program 中激活的最长的 attribute 名称,包含了空结尾符(例如,请求储存了最大的 attribute 名称的字符缓存大小)。如果没有激活的 attribute 存在,则返回 0。
  • GL_ACTIVE_UNIFORMS params 返回 program 中激活的 uniform 变量的数量。
  • GL_ACTIVE_UNIFORM_MAX_LENGTH params 返回 program 中激活的最长的 uniform 名称,包含了空结尾符(例如,请求储存了最大的 uniform 名称的字符缓存大小)。如果没有激活的 uniform 存在,则返回 0。
  • GL_PROGRAM_BINARY_LENGTH params 返回程序二进制的长度,要想返回字节数的数量,调用 glGetProgramBinary 函数。当一个程序对象的 GL_LINK_STATUSGL_FALSE,程序二进制长度为0。
  • GL_COMPUTE_WORK_GROUP_SIZE params 返回三个包含了 compute 程序的本地工作组大小的整数数组,就想指定了输入的 layout qualifier(s)(布局限定符)。program 程序对象必须是之前链接成功的,且包含了 compute shader 阶段的二进制。
  • GL_TRANSFORM_FEEDBACK_BUFFER_MODE params 返回一个代表当 transform feedback 缓存模式的符号常量的激活状态。这可能是 GL_SEPARATE_ATTRIBS 或是 GL_INTERLEAVED_ATTRIBS
  • GL_TRANSFORM_FEEDBACK_VARYINGS params 返回 程序的 transform feedback 模式中捕获的 varying 变量的数量。
  • GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH params 返回用于 transform feedback 中最长名称的长度,包含空结尾符。
  • GL_GEOMETRY_VERTICES_OUT params 返回 program 中 geometry shader 输入顶点的最大数量。
  • GL_GEOMETRY_INPUT_TYPE params 返回 program 中包含了对应可接受的 primitive type(图元类型)作为 geometry shader 的 输入 的一个符号常量。
  • GL_GEOMETRY_OUTPUT_TYPE params 返回 program 中包含了对应可接受的 primitive type(图元类型)作为 geometry shader 的 输出 的一个符号常量。
注意

GL_ACTIVE_UNIFORM_BLOCKSGL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 仅在 GL 版本 3.1 或以上的版本有效。

GL_GEOMETRY_VERTICES_OUTGL_GEOMETRY_INPUT_TYPEGL_GEOMETRY_OUTPUT_TYPE 仅在 GL 版本 3.2 或以上的版本有效。

GL_COMPUTE_WORK_GROUP_SIZE 仅在 GL 版本 4.3 或以上的版本有效。

如果有错误生成,那么 params 的内容不会修改。

错误

如果 program 参数不是 OpenGL 生成的,则生成 GL_INVALID_VALUE 错误。

如果 program 参数不是程序对象,则生成 GL_INVALID_OPERATION 错误。

如果 pnames 参数为 GL_GEOMETRY_VERTICES_OUTGL_GEOMETRY_INPUT_TYPEGL_GEOMETRY_OUTPUT_TYPE,且 program 不宝行geometry shader,则生成 GL_INVALID_OPERATION 错误。

如果 pnames 参数是无效值,则生成 GL_INVALID_ENUM 错误。

如果 pnames 参数是 GL_COMPUTE_WORK_GROUP_SIZE 且 program 的 compute shader 阶段不包含二进制,则生成 GL_INVALID_OPERATION 错误。

关注
打赏
1664331872
查看更多评论
立即登录/注册

微信扫码登录

0.0517s