谁能告诉我这是什么版本的opengl?

时间:2013-05-22 20:05:49

标签: c++ opengl

你能告诉我这段代码写的是什么版本的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

}

这是一个顶点数组核心告诉我它写在哪个版本?

1 个答案:

答案 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方法在现已弃用的矩阵堆栈上运行。