그림 재생기(2): 프레임 버퍼 기본 조작 코드

2072 단어 프로젝트 학습
display###############
    fb.c//fb 파일Makefile
include###############    fb.h
start.c//처음 파일
Makefile//기본 Makefile Makefile.build
 

fb.c

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#include 

//     
unsigned int *pfb = NULL;
int           fb_fd = -1;


int fb_open(void)
{
	int ret = -1;
	
	struct fb_fix_screeninfo finfo = {{0},};
	struct fb_var_screeninfo vinfo = {{0},};
	
	//  1 :    
	fb_fd = open(FBDEVICE, O_RDWR);
	if (fb_fd < 0)
	{
		perror("open");
		return -1;
	}
	printf("open %s success.
", FBDEVICE); // 2 : ret = ioctl(fb_fd, FBIOGET_FSCREENINFO, &finfo); if (ret < 0) { perror("ioctl"); return -1; } printf("smem_start = 0x%lx, smem_len = %u.
", finfo.smem_start, finfo.smem_len); ret = ioctl(fb_fd, FBIOGET_VSCREENINFO, &vinfo); if (ret < 0) { perror("ioctl"); return -1; } printf("xres = %u, yres = %u.
", vinfo.xres, vinfo.yres); printf("xres_virtual = %u, yres_virtual = %u.
", vinfo.xres_virtual, vinfo.yres_virtual); printf("bpp = %u.
", vinfo.bits_per_pixel); // 3 : mmap unsigned long len = vinfo.xres_virtual * vinfo.yres_virtual * vinfo.bits_per_pixel / 8; printf("len = %ld
", len); pfb = mmap(NULL, len, PROT_READ | PROT_WRITE, MAP_SHARED, fb_fd, 0); if (NULL == pfb) { perror("mmap"); return -1; } printf("pfb = %p.
", pfb); return 0; } void fb_close(void) { close(fb_fd); } void fb_draw_back(unsigned int width, unsigned int height, unsigned int color) { unsigned int x, y; for (y=0; y

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

좋은 웹페이지 즐겨찾기