我相信这是因为硬件在我将双缓冲区复制到主缓冲区的那一刻读取帧缓冲区.
我试图用FBIO_WAITFORVSYNC ioctl解决问题,但没有成功.
我有什么想法可以在帧缓冲区上做VSync吗?请在您的解释中添加细节,因为这是我第一次在基于Linux的 *** 作系统上编程这样的东西,所以我可能不会理解.
这是我的代码:http://pastebin.com/KJ4iaVEL
解决方法 这不是进行双缓冲的正确方法.你可以在后台缓冲区上进行所有绘画,但是你可以使用memcpy将数据传输到前面.复制过程中很容易发生屏幕刷新.要正确地执行此 *** 作,您只需要切换指向数据的指针;不要复制数据本身.使用linux帧缓冲设备,这是通过具有两倍于物理屏幕的“虚拟”屏幕并使用偏移变量来设置是显示上半部分还是下半部分来完成的.您可以使用FBIOGET_VSCREENINFO,FBIOPUT_VSCREENINFO和FBIOPAN_disPLAY ioctl调用查询大小和设置偏移量.
本页简要介绍了一些有关此内容的详细信息:http://www.ummon.eu/Linux/API/Devices/framebuffer.html
所有相关的数据结构都在linux / fb.h头文件中.
总结以上是内存溢出为你收集整理的Linux framebuffer图形和VSync全部内容,希望文章能够帮你解决Linux framebuffer图形和VSync所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)