为什么 OpenGL 中有不匹配的类型?
例如,如果我有一个顶点缓冲区对象,
GLuint handle = 0;
glGenBuffers(1, &handle_); // this function takes (GLsizei, GLuint*)
现在如果我想知道当前绑定的缓冲区
glGetIntegerv( GL_ARRAY_BUFFER_BINDING, reinterpret_cast<GLint *>(&handle ) ); // ouch, type mismatch
为什么没有 glGetUnsignedIntegerv 或
让 glGenBuffers 采用 GLint * 代替。