1

刚才让我烦恼的小事。在 OpenGL 中,当我想为缓冲区分配名称时,我使用以下函数。请注意,输出类型是GLuint(无符号整数)。

void glGenBuffers(GLsizei n, GLuint * buffers);

当我想获取当前绑定到给定目标的项目的名称时,我必须使用这个函数:

void glGetIntegerv(GLenum pname, GLint * params);

,它返回一个整数。我觉得这有点令人困惑和不一致。我错过了glGetUintegerv命令吗?为什么这样做?

4

1 回答 1

2

不,您没有遗漏任何东西,至于原因,您需要询问委员会/Khronos,但我的赌注是围绕glGet. 如果您一直对强制转换感到特别难过,您可能想要编写自己的例程来接受(或者,更明智地,返回)无符号参数并执行安全强制转换。

于 2013-10-22T15:05:18.027 回答