GLubyte和GL_UNSIGNED_BYTE之间有区别吗?

use*_*261 2 opengl opengl-es objective-c

我使用以下代码渲染交错的vbo,工作正常.

    glVertexPointer(3, GL_FLOAT, sizeof(InterleavedVertexData), (GLvoid*)((char*)0));
    glNormalPointer(GL_FLOAT, sizeof(InterleavedVertexData), (GLvoid*)((char*)0+3*sizeof(GLfloat)));
    glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(InterleavedVertexData), (GLvoid*)((char*)0+6*sizeof(GL_UNSIGNED_BYTE)));
Run Code Online (Sandbox Code Playgroud)

当我改变glColorPointer的指针参数使用GLubyte时,我看不到屏幕上呈现的任何内容?我也在我的结构中将颜色定义为GLubyte.

    glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(InterleavedVertexData), (GLvoid*)((char*)0+6*sizeof(GLubyte)));
Run Code Online (Sandbox Code Playgroud)

dus*_*uff 11

GLubyte是一种类型.GL_UNSIGNED_BYTE是一个整数常量,通常用于表示您将传入GLubyte一个指针.

sizeof(GLubyte)根据定义,总是1.take sizeof(GL_UNSIGNED_BYTE)通常会返回4或8,因为它是一个整数常量,并且具有系统整数大小的大小.