我是靠谱客的博主 坦率纸飞机,最近开发中收集的这篇文章主要介绍图片播放器(二):framebuffer基本操作代码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

display###############

    fb.c                                         //fb文件
    Makefile

include###############
    fb.h


start.c                                                //最开始的文件

Makefile                                         //主Makefile
Makefile.build

 

fb.c

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <linux/fb.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
#include <unistd.h>
#include <fb.h>
// 全局变量
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.n", FBDEVICE);
// 第2步:获取设备的硬件信息
ret = ioctl(fb_fd, FBIOGET_FSCREENINFO, &finfo);
if (ret < 0)
{
perror("ioctl");
return -1;
}
printf("smem_start = 0x%lx, smem_len = %u.n", 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.n", vinfo.xres, vinfo.yres);
printf("xres_virtual = %u, yres_virtual = %u.n", vinfo.xres_virtual, vinfo.yres_virtual);
printf("bpp = %u.n", vinfo.bits_per_pixel);
// 第3步:进行mmap
unsigned long len = vinfo.xres_virtual * vinfo.yres_virtual * vinfo.bits_per_pixel / 8;
printf("len = %ldn", len);
pfb = mmap(NULL, len, PROT_READ | PROT_WRITE, MAP_SHARED, fb_fd, 0);
if (NULL == pfb)
{
perror("mmap");
return -1;
}
printf("pfb = %p.n", 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<height; y++)
{
for (x=0; x<width; x++)
{
*(pfb + y * WIDTH + x) = color;
}
}
}
void fb_draw_line(unsigned int color)
{
unsigned int x, y;
for (x=50; x<600; x++)
{
*(pfb + 200 * WIDTH + x) = color;
}
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

最后

以上就是坦率纸飞机为你收集整理的图片播放器(二):framebuffer基本操作代码的全部内容,希望文章能够帮你解决图片播放器(二):framebuffer基本操作代码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部