framebuffer 双缓冲问题
刚刚接触linux,不太了解,可能会问一些比较低级的问题,请包涵。
我看了网上的一些Framebuffer的资料,有提到通过设置yoffset的值来实现双缓冲的。
百度知道里的一段:
如果你的屏幕为800x600,各参数设定为:
xres = 800
yres = 600
xres_virtual = 800
xres_virtual = 600x2 = 1200
缺省的yoffset = 0;
显示的是(0,0)到(800,600)到可视区
当你设定yoffset = 600时
(0,600)到(800,1200)将显示到可视区,就这样实现双缓冲
但实际使用中遇到问题。使用
fb_vmeminfo.xoffset=0;
fb_vmeminfo.yoffset=600;
if(-1==(ioctl(fdtem,FBIOPAN_DISPLAY,&fb_vmeminfo)))//此处会执行错误
……
返回值总是-1。
FBIOPAN_DISPLAY,FBIOPUT_VSCREENINFO两个宏好像不起作用。
先FBIOGET_VSCREENINFO得到struct fb_var_screeninfo fb_vinfo
修改fb_vinfo的一些成员值后用FBIOPUT_VSCREENINFO设置,但不起作用。
网上看到有人也提了这样的问题,可是没有答复。
望达人指点一下。谢谢
说的不清楚的地方请指出 我补充