轻量级OpenGL游戏的完美V-sync实现:需要一个小信息
在游戏中我们的互联网组装团队正在编程,我们假设我们的观众中的每个人都将在游戏中获得全速。
因此,为了节省视频RAM,并希望为显卡提供更多的空闲时间,使用没有双缓冲的V-sync将是我们的最佳选择。因此,在OpenGL中,我们需要知道如何做到这一点。
根据我的理解,V-sync是指图形卡在完成渲染单帧后暂停,直到该帧完成发送到显示设备。双缓冲不会暂停渲染操作(或者可能会暂停渲染操作,或者可能是特定于实现;不确定),因为它会在复制到帧缓冲区之前绘制到第二个缓冲区,以便监视器获得完整帧或不根本就是新帧(具体来说,是帧缓冲区中最后存储的图像)。好吧,我们不需要这个功能,只要显卡只是在它需要时才写入帧缓冲区。
这是一个非常慢的在线游戏(但它非常有创意^ _ ^)。实时行动非常少。因此,非常精确的用户输入不是必需的;它可以在渲染帧之前随时从OS捕获为单个单元。
所以,为了做到这一点,我需要能够从OpenGL获得“Frame已经完成发送到监视器”的消息。可能吗?如果没有,最好的选择是什么?
该游戏目前仅针对Windows编程,但应该在几个月内完成Linux的工作。
没有找到相关结果
已邀请:
2 个回复
窃誓额
场竟矩喘崩
获取
的地址,然后调用
将更新与垂直同步同步。执行此操作时,您不会在垂直同步中收到消息 - 而是直到发生垂直回扫,并且屏幕已更新时,
才会返回。所以,你有一个
处理程序,看起来像这样:
在任何情况下都需要
,以确保您完成的绘图被发送到屏幕。