通过 QGraphicsScene 的 drawBackground() ,我向 QGraphicsScene 添加了一个 QGraphicsRectItem ,
所有的 opengl 代码都写在 QGraphicsScene 的 drawBackground() 中。
编码:
MTList=glGenLists(1);
glEnableClientState(GL_VERTEX_ARRAY);
Vertex_iterator vi = model.vertices_begin();
glVertexPointer(3, GL_DOUBLE, sizeof(Vertex), &(vi->point()[0]));
glDisable(GL_LIGHTING);
glNewList(MTList, GL_COMPILE);
glColor3f(1.0,0.0,1.0);
//glLineWidth(10.0);
//glDisable(GL_CULL_FACE);
//glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
glDrawElements(GL_POINTS, 3*model.size_of_facets(), GL_UNSIGNED_INT, &modelfaces[0]); glEndList();
glDisableClientState(GL_VERTEX_ARRAY);
该项目正常显示。然而,在我启用这条线后: glPolygonMode(GL_FRONT_AND_BACK, GL_LINE) 项目被扭曲了。
同时,如果我更改代码: glPolygonMode(GL_FRONT, GL_LINE); 解决了这个问题,并且该项目按预期出现。
为什么会发生这种情况?