【发布时间】:2010-04-16 22:59:26
【问题描述】:
我正在使用 win32 和 opengl,并且我设置了一个窗口,其投影位于窗口坐标的 glOrtho。我启用了双缓冲,也使用 glGet 对其进行了测试。如果我的程序不断被翻译,我的程序似乎总是会撕裂我试图利用它的任何原语。
这是我的 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);
无论渲染函数的运行频率如何,都会出现同样的撕裂问题。我在这里做错了什么或遗漏了什么?
【问题讨论】: