GLES计划资源索引/位置与统一索引/位置

时间:2017-07-11 07:46:45

标签: c++ opengl-es

在OpenGL ES 3.2中,有

等功能
//for simplify I omit the params
GLuint glGetProgramResourceIndex(...);
void glGetProgramResourceiv(...);
GLint glGetProgramResourceLocation(...);

查询程序中命名资源的索引,检索索引为index的单个活动资源的多个属性的值,以查询程序中命名资源的位置。

还有以下功能:

void glGetUniformIndices(...);
GLuint glGetUniformBlockIndex(...);
GLint glGetUniformLocation(...);

检索命名统一块的索引,以检索统一变量的位置。

感谢@Nicol Bolas,我已经通过这个问题了解了统一位置和统一索引之间的区别Difference between uniform location and uniform index?

但是program resources index/locationuniform index/location之间的关系是什么?

1 个答案:

答案 0 :(得分:1)

在旧的OpenGL版本(4.3之前)中,有几种不同的API调用来识别着色器的资源,例如,glGetActiveAttrib表示属性,glGetActiveUniform*表示制服或glGetActiveSubroutine*表示子程序。

在OpenGL 4.3中,通过ARB_program_interface_query扩展引入了查询这些资源的统一方式。使用这些命令,您可以执行与上述功能基本相同的操作(或更多功能),但无需为每种资源类型使用不同的方法。

This page有关于该主题的更多信息。