update HowToWork-cn

This commit is contained in:
idea4good 2019-05-07 23:42:22 +08:00
parent 1329f375f1
commit ad9bbe926b
1 changed files with 23 additions and 6 deletions

View File

@ -1,5 +1,14 @@
# 设计原理及代码注释
## GuiLite的基本原理
# GuiLite设计原理及代码注释
- [基本原理](#基本原理)
- [扩展方法](#扩展方法)
- [代码目录结构](#代码目录结构)
- [界面元素管理](#界面元素管理)
- [图形绘制](#图形绘制)
- [文件注释](#文件注释)
- [函数注释](#函数注释)
- [速成路线图](#速成路线图)
***
## 基本原理
GuiLite只作两个工作界面元素管理和图形绘制。
界面管理包括:
@ -12,14 +21,14 @@ GuiLite只作两个工作界面元素管理和图形绘制。
- 设置绘制图层,如果需要多个图层,在基本点线绘制时,需要给出图层的索引值
- 图层处理,在图层界面发生变化的时候,将其正确的组合,并输出到最终显示终端上
## GuiLite的扩展方法
## 扩展方法
GuiLite只给出了基本控件例如按钮标签键盘选择框的实现方法旨在说明控件的实现方法。对于扩展控件可以选择下面的方式
- 如果开发者需要调整基本控件的细节,可以直接在源代码中修改
- 如果开发者需要构建全新的控件,可以参考基本控件的实现方法,重新实现
对于扩展绘制例如画圆画曲线可以直接在surface.cpp文件中添加响应的函数接口。
## 代码介绍
## 代码目录结构
core:
- 实现了底层绘制,图层管理和消息传递
- adapter实现了各个平台例如Windows, LinuxAndroidiOSmacOS,未知OS或无OS的封装。
@ -61,7 +70,7 @@ surface层
frame层:
该层属于surface层的一个部分它现实叠加界面元素而存在。
### 文件注释
## 文件注释
| core 重要程度/文件名称 | 代码简介 | 推荐学习时间 |
| --- | --- | --- |
| ★★★ wnd.cpp | UI元素的基本类定义所有的UI元素信息、绘制及管理办法 | 1.5小时 |
@ -94,7 +103,7 @@ frame层:
| ★★★ wave_buffer.cpp | 波形数据的缓冲管理 | 1.5小时 |
| ★★★ wave_ctrl.cpp | 实现波形控件 | 1.5小时 |
### 函数注释
## 函数注释
| 函数名称 | display.cpp 函数接口注释 |
| --- | --- |
| c_display | c_display构造函数初始化显示参数。输入物理framebuffer指针物理显示器宽度物理显示器高度surface宽度surface高度颜色深度surface个数/滑动页面的个数 |
@ -102,3 +111,11 @@ frame层:
| merge_surface | 横向组合surface多用于滑动surface。输入待组合的surface源1待组合的surface源2surface源1的起始点x坐标surface源2的起始点x坐标surface源1的起始点y坐标surface源2的起始点y坐标横向组合的偏移距离输出可能改变当前显示内容 |
| get_updated_fb | 获取该display的物理framebuffer指针 |
| snap_shot | 生成当前显示的快照并输出到bmp文件 |
## 速成路线图
1. 精读源文件wnd.cpp中的connect, on_touch, on_key函数理解界面元素的串联办法理解响应触控操作的基本原理理解响应硬按键的基本原理
2. 快速浏览surface.cpp中用于绘制的draw_xxx函数熟悉基本的绘制接口精读c_surface构造函数理解c_surface类的各种成员关系
3. 精读button.cpp文件初步掌握界面元素的基本开发方法
4. - 快速浏览HelloStar实例的BuildLinux/main.cpp理解构建一般Linux应用的办法
- 快速浏览HelloStar实例的BuildMFC/HelloStarDlg.cpp理解构建一般Windows应用的办法
- 快速浏览HelloStar实例的BuildSTM32F103-Keil/USER/main.c理解构建一般单片机系统的办法