Linux下利用framebuffer画点的程序小例子


Linux下利用framebuffer画点的程序小例子:

/*
 * =====================================================================================
 *
 *       Filename:  framebuffer.c
 *
 *    Description:  linux下利用framebuffer画点的程序小例子
 *
 *        Version:  1.0
 *        Created:  2011年02月25日 10时33分29秒
 *       Revision:  none
 *       Compiler:  gcc
 *
 *         Author:  sunsea1026@gmail.com
 *        Company: 
 *
 * =====================================================================================
 */
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <linux/fb.h>
#include <unistd.h>
int main(int argc, char* argv[])
{
 int fb;
 int w, h;
 int *fbmem;
 struct fb_var_screeninfo fb_var;
 int bits;
 int i;
 
 //打开设备文件fb0
 fb = open("/dev/fb0", O_RDWR);
 if(fb < 0)
 {
  printf("open fb0 error!\n");
  exit(0);
 }
 //获取设备信息
 ioctl(fb, FBIOGET_VSCREENINFO, &fb_var);
 w = fb_var.xres;
 h = fb_var.yres;
 bits = fb_var.bits_per_pixel;
 printf("Framebuffer:%d * %d\n", w, h);
 printf("Bits:%d\n", bits);
 //映射空间
 fbmem = mmap(0, w*h*sizeof(int), PROT_READ | PROT_WRITE, MAP_SHARED, fb, 0);
 *(fbmem + w * 300 + 400) = 0xffffff;
 return 0;
}

相关内容