你能告诉我这段代码写的是什么版本的opengl?
//The triangles to the highest and deepest vertices:
for (j = 0; j< (PointsPerRow-1); j++)
{
IndexVect.push_back(j);
IndexVect.push_back(j+1);
IndexVect.push_back((PointRows-2)*PointsPerRow);
}
IndexVect.push_back(j);
IndexVect.push_back(0);
IndexVect.push_back((PointRows-2)*PointsPerRow);
for (j = 0; j< (PointsPerRow-1); j++)
{
IndexVect.push_back((PointRows-3)*PointsPerRow+j);
IndexVect.push_back((PointRows-3)*PointsPerRow+j+1);
IndexVect.push_back((PointRows-2)*PointsPerRow+1);
}
IndexVect.push_back((PointRows-3)*PointsPerRow+j);
IndexVect.push_back((PointRows-3)*PointsPerRow);
IndexVect.push_back((PointRows-2)*PointsPerRow+1);
Indices = new GLuint[IndexVect.size()]; //allocate the required memory
for (i = 0; i < IndexVect.size(); i++)
{
Indices[i] = IndexVect[i];
}
NumIndices = IndexVect.size();
IndexVect.clear(); //no longer needed, takes only memory
}
这是一个顶点数组核心告诉我它写在哪个版本?
答案 0 :(得分:3)
第一段代码没有特定的OpenGL版本,除了GLuint,一切都是标准的c ++(IndexVect看起来像一个std :: vector),而GLuint是一个基本的数字类型(如unsigned int,unsigned short,。 ..)用于每个OpenGL版本。
代码没有OpenGL调用的原因是它只定义CPU上对象的结构,它不会将数据复制到GPU,也不会渲染任何内容。
void Display(void) {
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
glTranslatef(0.0,0.0,-4.0);
glRotatef(yRotated, 0.0, 1.0, 0.0);
DrawSphere();
glFlush();
//Finish rendering
glutSwapBuffers(); }
即OpenGL&lt; = 2.0,glLoadIdentity(),glTranslatef和glRotatef方法在现已弃用的矩阵堆栈上运行。