我正在尝试将球体绘制到屏幕上,但没有使用OpenGL(glut)将它们移除(获得一些“trail”效果的王者)。全屏闪烁
我在屏幕上也有我想要阅读的文本,所以我必须在旧文本上手动绘制一个黑色矩形,然后绘制新文本。
关键是我也想开启/关闭,同时运行的“创新”,但香港专业教育学院遇到了一个很奇怪的问题:
当我使用单缓冲,一切都蛮好,但是当我切换到双缓冲和只使用前缓冲区,我开始闪烁的文字。 这只发生在全屏。在具有相同分辨率(1920x1080)的窗口模式下,没有闪烁,尽管我获得了相同的fps(约250)。
有没有人知道是什么原因造成这种情况,为什么?
“只使用前端缓冲区”是什么意思?您是否在使用'glutSwapBuffers()',这是如何避免双缓冲应用程序闪烁的。 – psalvaggio 2012-04-03 18:16:08
不,正好相反。我避免使用glutSwapBuffers来获得单缓冲。我希望能够在单缓冲和双缓冲之间切换。我需要单缓冲才能获得足迹效果,而不是两次绘制所有内容。 – 2012-04-03 18:19:19
我一直觉得你通过将'GLUT_SINGLE'或'GLUT_DOUBLE'传递给'glutInitDisplayMode'来切换两者。我发现这个例子,也许它可以帮助:http://www.sgi.com/products/software/opengl/examples/glut/examples/source/sb2db.c – psalvaggio 2012-04-03 18:22:56