DirectDraw:我可以保持主表面锁定吗?

时间:2014-01-22 17:07:04

标签: c++ game-development directdraw

我有一个使用DirectDraw2的传统游戏,它将其绘制成两个缓冲区,一个正面和背面,前面是主要表面(屏幕上),后面是一个屏幕外缓冲区。 现在在主循环中它很好地锁定前缓冲区,将其绘制到后面和前面,然后再次解锁。 但是,在同一游戏中,主菜单代码只保持前缓冲区的整个时间。

根据这两个看似矛盾的观察结果,我有几个关于锁定和解锁的问题,MSDN和谷歌都没有回答。

  • 前缓冲区被锁定时,视频卡能否显示在显示器上?
  • 如果可以,再次解锁会有什么好处;假设我们不打算执行任何硬件blits。
  • 如果在vsync更新期间锁定会怎样?是等待,还是只是访问缓冲区?
  • 根据显示器的更新次数决定“帧速率”的内容。这是每次调用Unlock时,还是仅仅遵循屏幕刷新率,与我们的锁定/解锁无关。在那种情况下,我们会撕裂吗?

我认为它有点像Direct3D,你可以锁定顶点缓冲区,但需要在GPU可以解决之前将其解锁。

0 个答案:

没有答案