我似乎不知道如何在 GLSL 中获取统一的大小(以标量(或字节)为单位)。
目前我在枚举所有着色器常量时调用 glGetActiveUniform,但它返回的 size 参数是数组大小,而不是变量大小。
是否有获取数据大小的功能?还是将 ConstantType 映射到其大小的函数?
为了完整起见,这是我的代码:
char ConstantName[ 128 ];
GLint ConstantArraySize;
GLenum ConstantType;
glGetActiveUniform( Program, ConstantIndex, 128, nullptr, &ConstantArraySize, &ConstantType, ConstantName );