资源简介
linux fb-test-帧缓冲 两个例子(完整源代码),在Ubuntu上实验通过。
代码片段和文件信息
#if 0
#include
#include
#include
#include
#include
#include
int main()
{
int fbfd = 0;
struct fb_var_screeninfo vinfo;
struct fb_fix_screeninfo finfo;
long int screensize = 0;
char *fbp = 0;
int x = 0 y = 0;
long int location = 0;
fbfd = open(“/dev/fb0“ O_RDWR);
if (!fbfd) {
printf(“Error: cannot open framebuffer device.\n“);
exit(1);
}
printf(“The framebuffer device was opened successfully.\n“);
if (ioctl(fbfd FBIOGET_FSCREENINFO &finfo)) {
printf(“Error reading fixed information.\n“);
exit(2);
}
if (ioctl(fbfd FBIOGET_VSCREENINFO &vinfo)) {
printf(“Error reading variable information.\n“);
exit(3);
}
printf(“%dx%d %dbpp\n“ vinfo.xres vinfo.yres vinfo.bits_per_pixel );
screensize = vinfo.xres * vinfo.yres * vinfo.bits_per_pixel / 8;
fbp = (char *)mmap(0 screensize PROT_READ | PROT_WRITE MAP_SHARED
fbfd 0);
if ((int)fbp == -1) {
printf(“Error: failed to map framebuffer device to memory.\n“);
exit(4);
}
printf(“lsq--1->The framebuffer device was mapped to memory successfully.\n“);
x = 100;
y = 100;
for ( y = 100; y < 300; y++ )
for ( x = 100; x < 300; x++ ) {
location = (x + vinfo.xoffset) * (vinfo.bits_per_pixel / 8) +
(y + vinfo.yoffset) * finfo.line_length;
if ( vinfo.bits_per_pixel == 32 ) {
*(fbp + location) = 100;
*(fbp + location + 1) = 15 + (x - 100) / 2;
*(fbp + location + 2) = 200 - (y - 100) / 5;
*(fbp + location + 3) = 0;
} else {
int b = 10;
int g = (x - 100) / 6;
int r = 31 - (y - 100) / 16;
unsigned short int t = r << 11 | g << 5 | b;
*((unsigned short int*)(fbp + location)) = t;
}
}
munmap(fbp screensize);
close(fbfd);
printf(“lsq--2-> close(fbfd).\n“);
return 0;
}
#endif
#include
#include
#include
#include
#include
#include
#include
int main()
{
int fbfd = 0;
struct fb_var_screeninfo vinfo;
struct fb_fix_screeninfo finfo;
long int screensize = 0;
char *fbp = 0;
int x = 0 y = 0;
long int location = 0;
int startx=0 starty=0;
int width height;
// Open the file for reading and writing
fbfd = open(“/dev/fb0“ O_RDWR);
if (fbfd == -1) {
perror(“Error: cannot open framebuffer device“);
exit(1);
}
printf(“The framebuffer device was opened successfully.\n“);
// Get fixed screen information
if (ioctl(fbfd FBIOGET_FSCREENINFO &finfo) == -1) {
perror(“Error reading fixed information“);
exit(2);
}
// Get variable sc
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4925 2017-05-12 15:23 linux fb-test-帧缓冲 两个例子(完整源代码)\fb-test1.c
文件 1945 2017-05-12 15:16 linux fb-test-帧缓冲 两个例子(完整源代码)\fb-tst2.c
文件 13224 2017-05-12 15:23 linux fb-test-帧缓冲 两个例子(完整源代码)\test1
文件 9344 2017-05-12 15:22 linux fb-test-帧缓冲 两个例子(完整源代码)\test2
文件 724 2017-05-12 16:03 linux fb-test-帧缓冲 两个例子(完整源代码)\在Ubuntu16.04系统下测试帧缓冲(fr
目录 0 2017-06-18 18:05 linux fb-test-帧缓冲 两个例子(完整源代码)
----------- --------- ---------- ----- ----
30162 6
- 上一篇:usb3.0_fpga_ddr2原理图
- 下一篇:二层交换机测试方案
相关资源
- GTK+glade3设计的计算器适用于linux、w
- minigui clock时钟
- Linux命令速查手册.CHM
- 自己实现linux下ls命令 的两个选项
- linux题
- Linux环境下的网络抓包工具pcap,界面
- walkingman.fbx
- 最新版本linux libc库实现源码
- gtk写的贪吃蛇游戏
- grub引导文件
- linux为服务器,Windows为客户端的简单
- VmwareHorizonView6ForLinuxVDI全套解决方案所
- 学生信息管理系统项 Linux
- 操作系统接口:兼容Unix/Linux命令接口
- OpenVPN在Linux教程.pdf
- Linux 常用C函数中文版
- linux c下acc打包成RTP并在VLC上播放
- 用net-snmp的api实现trap接收,windows+li
- 基于Linux嵌入式网络视频监控系统
- linux网络编程源码
- 把Linux中的文本文件格式转为Windows的
- Live555基于h264嵌入式linux下rtsp项目的裁
- OK6410 linux混杂设备驱动LED
- Linux RS485 通信代码
- Linux系统下dhcp源码
- arm开发板上摄像头抓图源代码(v4l通
- Bluez5.50 arm交叉编译脚本亲测成功
- IIC Linux 应用层的两种操作方式
- AES加解密算法以及五种工作模式的实
- nmon工具linux性能32位的
评论
共有 条评论