framebuffer实现命令行下绘图
来源:互联网 发布:淘宝分享有礼怎么领取 编辑:程序博客网 时间:2024/06/05 21:05
(一):写在前面
在这一小节当中,我主要是实现了对frame buffer的操作编程,实现了将内存中的地址映射到逻辑地址空间,然后对其内存进行操作,包括在屏幕上画点,画线,画四边形,填充四边形等.然后,再将数据映射到内存中进行显示.这里的操作比较简单,只要实现一个画点的操作,就能以画点为基础,实现各种操作.
(二):画点的实现
首先,我们在上一个小节中已经将内存中的地址映射到相应的逻辑地址内存空间.就是使用mmap()函数.有关与mmap()函数的参数,在网上一搜即可.
当获取到相应的地址之后,我们就是根据相应地址的偏移量来对内存设置RGB和透明度的值.
uint32_t offset; uint8_t color[4]; color[0] = b; color[1] = g; color[2] = r; color[3] = 0x0; //透明度 //偏移量 offset = p.y * pFbdev->fb_fix.line_length + 4 * p.x;
颜色设置完成之后,我们需要将相应的值写入到内存当中,在这里,我们重新实现了一个函数,那就是memcpy()函数.
//映射到内存void fb_memcpy(void *addr,void *color,size_t len){ memcpy(addr,color,len);}
最后,我们使用该函数,将相应的内容映射到内存中.
//将操作映射到内存中 fb_memcpy((void*)pFbdev->fb_mem + pFbdev->fb_mem_offset + offset,color,4);
(四):编译运行方法
在此次源码文件中,我添加了一个Makefile文件,所以,如果要编译文件的话,只需使用make命令,就能将相应的test可执行文件编译出来.编译完成之后,我们使用ctrl+alt+f1进入到命令行界面,然后,进入到该目录运行.就可看出相应的运行结果.
(五):运行结果展示
下面是我使用手机拍摄的一张我的运行结果的照片.还是很漂亮的.
(六):后期规划
后面我打算能不能在命令行界面上实现一个图形化界面的库.这个难度其实是很大的,不过我觉着还是很有意思的.慢慢来吧,一个函数一个函数的写,一个函数一个函数的测试,脚踏实地.
(七):写在后面
昨天已经过去,明天还未来临,我们能做到只有活在当下.
注:我的代码已经长传到了CSDN的资源中和我的github中.
资源下载
github地址
- framebuffer实现命令行下绘图
- 在 Android 下使用 FrameBuffer 绘图
- Ubuntu 7.04 下实现FrameBuffer
- android屏幕framebuffer绘图
- android下实现framebuffer独占的原理
- (转)Android屏幕Framebuffer绘图机制
- Android FrameBuffer 中绘图的简单例子
- 通过framebuffer在LCD上绘图
- 命令行下实现Email收发
- FrameBuffer Linux下FrameBuffer直接写屏
- linux下开启FrameBuffer
- Linux下framebuffer操作方法
- Ubuntu 下开启 framebuffer
- Ubuntu 下开启 Framebuffer !
- linux下FrameBuffer学习
- linux下FrameBuffer学习
- VC2005下利用OpenGL实现三维绘图
- LCD-Framebuffer驱动实现
- iptables之LOG目标
- LeetCode Problem10 Regular Expression Matching
- JSONObject accumulate
- mac os brew install request githup token
- Android Studio 导入eclipse libs工程,.aar生成,引用等步骤
- framebuffer实现命令行下绘图
- 关于hashcode() 方法
- iOS学习笔记1(结合项目)---oc的@property属性
- android 相册 裁剪 提示失败
- 前后端分离的思考与实践(一)
- Camera Calibration 相机标定:Opencv应用方法
- 【bzoj1196】【HAOI2006】【公路修建】【二分+最小生成树】
- JSP开发c标签易错总结
- db2 SQL1005N