我使用的是win32和opengl,并且我在窗口坐标的glOrtho处设置了一个窗口。我启用了双缓冲,并使用glGet进行了测试。如果它不断翻译,我的程序似乎总是会撕掉任何我尝试绘制的原语。撕裂OpenGL?
这里是我的OpenGL的初始化函数:
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
glViewport(0, 0, 640, 480);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, 640, 0, 480, 0, 100);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glDrawBuffer(GL_BACK);
glLoadIdentity();
,这是我的渲染功能,gMouseX和gMouseY是鼠标的坐标:
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glTranslatef(gMouseX, gMouseY, 0.0f);
glColor3f(0.5f, 0.5f, 0.5f);
glBegin(GL_TRIANGLES);
glVertex2f(0.0f, 128.0f);
glVertex2f(128.0f, 0.0f);
glVertex2f(0.0f, 0.0f);
glEnd();
SwapBuffers(hDC);
会发生同样的撕裂问题不管如何通常渲染函数会运行。有什么我在这里做错了或失踪?
glX用于Unix,OP表示他在win32上。 – slacker 2010-04-17 00:02:24