Framebuffer 编程例子

来源:互联网 发布:淘宝买来卖违规吗 编辑:程序博客网 时间:2024/05/01 07:30
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <linux/fb.h>
#include <sys/mman.h>
#include <sys/ioctl.h>

int main() {
        int framebuffer_device;
        int line_size,buffer_size, i;
        int *screen_memory;
        struct fb_var_screeninfo var_info;

        framebuffer_device = open ( "/dev/fb0" , O_RDWR);
        ioctl (framebuffer_device, FBIOGET_VSCREENINFO, &var_info);
        line_size = var_info.xres * var_info.bits_per_pixel / 8;
        buffer_size = line_size * var_info.yres;
        var_info.xoffset = 0;
        var_info.yoffset = 0;
        ioctl(framebuffer_device, FBIOPAN_DISPLAY,&var_info);

        screen_memory = (char *) mmap (0, buffer_size,
                PROT_READ | PROT_WRITE,
                MAP_SHARED, framebuffer_device, 0);
        for (i=0;i < buffer_size / 4 / 4; i++ )
        {      
                *(screen_memory+i) = 0xff0000;
        }      
       
        return 0;
}
原创粉丝点击