直接访问linux帧缓冲区——copyarea
我想在嵌入式 Linux 应用程序中的帧缓冲区上快速移动一个矩形。我发现函数 cfb_copyarea 可能很有用。但我无法在 /dev/fb 设备上找到任何 ioctl 来调用该函数。或者可以直接调用这个函数吗?
I want to move very quickly a rectangle over a framebuffer in an embedded linux application. I have found that the function cfb_copyarea
may be useful. But I cannot find any ioctl over the /dev/fb device to call the function. Or can this function be called directly?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是初始化和关闭 FrameBuffer 的代码
Here is a code to init and close FrameBuffer
请注意,此代码并不完全正确,尽管它可以在许多 Linux 设备上运行,但在某些设备上则不能。要计算帧缓冲区大小,请不要执行以下操作:
相反,执行以下操作:
您的代码将更加可移植。
Note that this code is not entirely correct, although it will work on many linux devices, on some it won't. To calculate the framebuffer size, do not do this:
Instead, do this:
And your code will be more portable.
据我研究几天后得知,没有ioctl来调用这个函数。我必须最好在内核模块中编写自己的系统调用。或者从内核源代码复制算法并通过 nmaped 内存在用户空间中使用它。
As far as I know after a few days of research, there is no ioctl for invoking this function. I have to write my own system call preferrably in a kernel module. Or copy the algorithm the from kernel source and use it in the user space via nmaped memory.