/* a framebuffer device structure */ typedef struct fbdev{ int fb; unsigned long fb_mem_offset; unsigned long fb_mem; struct fb_fix_screeninfo fb_fix; struct fb_var_screeninfo fb_var; char dev[20]; } FBDEV, *PFBDEV;
/* open & init a frame buffer */ /* to use this function, you must set FBDEV.dev="/dev/fb0" or "/dev/fbX" */ /* it"s your frame buffer. */ int fb_open(PFBDEV pFbdev);
/*close a frame buffer*/ int fb_close(PFBDEV pFbdev);
/*get display depth*/ int get_display_depth(PFBDEV pFbdev);
/* close frame buffer */ int fb_close(PFBDEV pFbdev) { close(pFbdev->fb); pFbdev->fb=-1; }
/* get display depth */ int get_display_depth(PFBDEV pFbdev); { if(pFbdev->fb<=0) { printf("fb device not open, open it first
"); return FALSE; } return pFbdev->fb_var.bits_per_pixel; }
/* full screen clear */ void fb_memset (void *addr, int c, size_t len) { memset(addr, c, len); }
/* use by test */ #define DEBUG #ifdef DEBUG main() { FBDEV fbdev; memset(&fbdev, 0, sizeof(FBDEV)); strcpy(fbdev.dev, "/dev/fb0"); if(fb_open(&fbdev)==FALSE) { printf("open frame buffer error
"); return; }