与glGetFloatv兼容的变量类型

时间:2015-10-21 23:01:55

标签: c++ opengl visual-c++-2010

哪些变量类型与opengl的glGetFloat()或glGetFloatv()兼容?

P.S。这是用c ++。

1 个答案:

答案 0 :(得分:1)

您要使用的基本类型是GLfloat。这与函数原型中的类型匹配。这是一个32位浮点值,它大多与float类型匹配,但这不能保证。

对于glGetFloatv()返回单个值的情况,您只需使用GLfloat变量的地址即可。例如:

GLfloat val;
glGetFloatv(GL_DEPTH_CLEAR_VALUE, &val);

对于返回多个值的情况,您可以使用数组:

GLfloat vals[4];
glGetFloatv(GL_COLOR_CLEAR_VALUE, vals);

或者,为了使它更多C ++,vector

std::vector<GLfloat> vals(4);
glGetFloatv(GL_COLOR_CLEAR_VALUE, &vals[0]);

或者,在C ++ 11中更好:

std::vector<GLfloat> vals(4);
glGetFloatv(GL_COLOR_CLEAR_VALUE, vals.data());