我想使用的着色器变量有一个bool类型,但我找不到它的大小.这很重要,因为在设置顶点属性指针时,我指定了可以的数据类型
GL_BYTE,GL_UNSIGNED_BYTE,GL_SHORT,GL_UNSIGNED_SHORT,GL_INT,GL_UNSIGNED_INT,GL_FLOAT,or GL_DOUBLE
在c中,bool应该具有与4字节int相同的大小,但是我可以假设GLSL相同或者它只有1个字节吗?
解决方法
This matters because when setting up vertex attribute pointer I specify the type of data which can be
这是无关紧要的,因为顶点属性不能是布尔值.从GLSL 3.30规范:
Vertex shader inputs can only be float,floating-point vectors,matrices,signed and unsigned integers and integer vectors. Vertex shader inputs can also form arrays of these types,but not structures.
布尔人不在这个名单上.
但是,如果你想知道GLSL bool在uniform blocks方面的大小,它的大小与uint相同:32位.