我想在嵌入式
Linux应用程序中快速移动一个矩形到帧缓冲区.我发现cfb_copyarea函数可能很有用.但我无法在/ dev / fb设备上找到任何ioctl来调用该函数.或者可以直接调用此函数吗?
解决方法
这是一个初始化和关闭FrameBuffer的代码
class CFrameBuffer { void* m_FrameBuffer; struct fb_fix_screeninfo m_FixInfo; struct fb_var_screeninfo m_VarInfo; int m_FBFD; int InitFB() { int iFrameBufferSize; /* Open the framebuffer device in read write */ m_FBFD = open(FB_NAME,O_RDWR); if (m_FBFD < 0) { printf("Unable to open %s.\n",FB_NAME); return 1; } /* Do Ioctl. Retrieve fixed screen info. */ if (ioctl(m_FBFD,FBIOGET_FSCREENINFO,&m_FixInfo) < 0) { printf("get fixed screen info Failed: %s\n",strerror(errno)); close(m_FBFD); return 1; } /* Do Ioctl. Get the variable screen info. */ if (ioctl(m_FBFD,FBIOGET_VSCREENINFO,&m_VarInfo) < 0) { printf("Unable to retrieve variable screen info: %s\n",strerror(errno)); close(m_FBFD); return 1; } /* Calculate the size to mmap */ iFrameBufferSize = m_FixInfo.line_length * m_VarInfo.yres; printf("Line length %d\n",m_FixInfo.line_length); /* Now mmap the framebuffer. */ m_FrameBuffer = mmap(NULL,iFrameBufferSize,PROT_READ | PROT_WRITE,MAP_SHARED,m_FBFD,0); if (m_FrameBuffer == NULL) { printf("mmap Failed:\n"); close(m_FBFD); return 1; } return 0; } void CloseFB() { munmap(m_FrameBuffer,0); close(m_FBFD); } };
原文地址:https://www.jb51.cc/linux/393062.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。