在QGraphicsView中绘制OpenGL时的失真

时间:2012-12-26 22:17:32

标签: qt opengl

通过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);解决问题,这个项目出乎意料。

为什么会发生这种情况?

0 个答案:

没有答案