我正在用 C 语言制作一个适用于 linux 帧缓冲区的游戏。到目前为止,我有一个红色的 100x100 正方形,它与鼠标一起移动,就像一个指针一样。我已经实现了双缓冲并且它工作正常(正方形不闪烁)。问题是,横向发生了很多撕裂。我的意思是,当正方形在x轴上移动时,就像它被水平分割,它的一部分比另一部分进展得更快。如果我继续移动,这个“裂口”会在广场上从上到下缓慢传播。
我相信这是因为硬件在我将双缓冲区复制到主缓冲区的那一刻读取帧缓冲区。
我试图用 FBIO_WAITFORVSYNC ioctl 解决这个问题,但没有成功。
有什么想法可以在帧缓冲区上进行 VSync 吗?请在您的解释中添加详细信息,因为这是我第一次在基于 Linux 的操作系统上编写此类内容,因此我可能无法理解。
这是我的代码: http: //pastebin.com/KJ4iaVEL