framebuffer实现命令行下绘图

简介: 版权声明:您好,转载请留下本人博客的地址,谢谢 https://blog.csdn.net/hongbochen1223/article/details/49427369 (一):写...
版权声明:您好,转载请留下本人博客的地址,谢谢 https://blog.csdn.net/hongbochen1223/article/details/49427369

(一):写在前面

在这一小节当中,我主要是实现了对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地址

目录
相关文章
|
编解码 图形学
29 QT - 绘图设备
29 QT - 绘图设备
39 0
|
6月前
|
API C语言 图形学
EasyX图形库学习(一、窗口创建函数initgraph、背景颜色设置setbkcolor、图形绘制函数)
EasyX图形库学习(一、窗口创建函数initgraph、背景颜色设置setbkcolor、图形绘制函数)
|
6月前
win32编程 -- GDI绘图操作
win32编程 -- GDI绘图操作
50 0
|
算法 数据可视化 Windows
【Win32绘图编程,GDI绘图对象】绘图基础,位图处理,绘图消息处理,画笔,画刷,文本绘制(下)
【Win32绘图编程,GDI绘图对象】绘图基础,位图处理,绘图消息处理,画笔,画刷,文本绘制
|
API 图形学
【Win32绘图编程,GDI绘图对象】绘图基础,位图处理,绘图消息处理,画笔,画刷,文本绘制(上)
【Win32绘图编程,GDI绘图对象】绘图基础,位图处理,绘图消息处理,画笔,画刷,文本绘制
|
编解码 API 图形学
Qt 5——绘图和绘图设备
Qt 5——绘图和绘图设备
204 0
Qt 5——绘图和绘图设备
|
开发工具 Windows
SDL开发笔记(三):使用SDL渲染窗口颜色和图片
SDL开发笔记(三):使用SDL渲染窗口颜色和图片
SDL开发笔记(三):使用SDL渲染窗口颜色和图片
【OpenGL】八、初始化 OpenGL 渲染环境 ( 导入 OpenGL 头文件 | 链接 OpenGL 库 | 将窗口设置为 OpenGL 窗口 | 设置像素格式描述符 | 渲染绘制 ) ★(二)
【OpenGL】八、初始化 OpenGL 渲染环境 ( 导入 OpenGL 头文件 | 链接 OpenGL 库 | 将窗口设置为 OpenGL 窗口 | 设置像素格式描述符 | 渲染绘制 ) ★(二)
190 0
【OpenGL】八、初始化 OpenGL 渲染环境 ( 导入 OpenGL 头文件 | 链接 OpenGL 库 | 将窗口设置为 OpenGL 窗口 | 设置像素格式描述符 | 渲染绘制 ) ★(二)
|
编解码 API 图形学
10、QT基础——绘图和绘图设备
10、QT基础——绘图和绘图设备
251 0
10、QT基础——绘图和绘图设备
|
存储 Windows
【OpenGL】八、初始化 OpenGL 渲染环境 ( 导入 OpenGL 头文件 | 链接 OpenGL 库 | 将窗口设置为 OpenGL 窗口 | 设置像素格式描述符 | 渲染绘制 ) ★(一)
【OpenGL】八、初始化 OpenGL 渲染环境 ( 导入 OpenGL 头文件 | 链接 OpenGL 库 | 将窗口设置为 OpenGL 窗口 | 设置像素格式描述符 | 渲染绘制 ) ★(一)
272 0