Bra*_*eis 2 python pygame pyopengl fullscreen
我目前正在研究用pygame编写的游戏引擎,我想添加OpenGL支持.
我写了一个测试,看看如何让pygame和OpenGL一起工作,当它在窗口模式下运行时,它运行在150到200 fps之间.当我全屏运行时(我所做的就是在设置窗口时添加FULLSCREEN标志),它下降到60 fps.我添加了更多绘图功能,看它是否只是一个巨大的性能下降,但它总是以60 fps运行.
我需要做些什么来告诉OpenGL它是全屏运行还是这是OpenGL的限制?
(我在Windows XP中运行)
正如frou所指出的,这可能是由于Pygame在你通过调用更新屏幕时等待垂直回扫display.flip().正如Pygame display文档所述,如果使用HWSURFACE或DOUBLEBUF标志设置显示模式,display.flip()则在交换缓冲区之前将等待垂直回扫.
说实话,我没有看到任何好的理由(除了基准测试)以尝试实现比屏幕刷新率更快的帧速率.你(以及玩游戏的人)将无法注意到速度或性能的任何差异,因为显示器无论如何也只能画60 fps.另外,如果您不与垂直回扫同步,则很可能会出现屏幕撕裂现象.