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);}};总结
以上是内存溢出为你收集整理的直接访问linux framebuffer – copyarea全部内容,希望文章能够帮你解决直接访问linux framebuffer – copyarea所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)