mirror of
https://gitee.com/zlgopen/awtk.git
synced 2024-11-29 18:48:09 +08:00
update docs
This commit is contained in:
parent
88f9081306
commit
ea6491b253
@ -163,6 +163,12 @@ bin\demoui
|
||||
|
||||
## 最新动态
|
||||
|
||||
* 2018/09/24
|
||||
* 更新文档。
|
||||
|
||||
* 2018/09/23
|
||||
* 更新各个项目的工程。
|
||||
|
||||
* 2018/09/21-22
|
||||
* 移植awtk到stm32f767开发板。
|
||||
|
||||
|
28
TODO.md
28
TODO.md
@ -22,7 +22,6 @@
|
||||
* 基本layout功能
|
||||
* 极速模式
|
||||
* Qt界面文件转换器
|
||||
* 微软Rc界面文件转换器
|
||||
* stm32 移植
|
||||
* draw 9patch image
|
||||
* draw 3patch\_h image
|
||||
@ -48,33 +47,50 @@
|
||||
* listbox
|
||||
* spinbox
|
||||
* tab
|
||||
* row
|
||||
* app\_bar
|
||||
* col
|
||||
* jerryscript binging
|
||||
* lua binging
|
||||
* 支持tween动画
|
||||
* guage
|
||||
* 时钟控件
|
||||
* color picker
|
||||
* 移植到嵌入式linux
|
||||
* 移植到STM32F103
|
||||
* 移植到STM32F429
|
||||
* 移植到STM32F767
|
||||
* nanovg基于agge用纯软件实现的矢量图库。
|
||||
|
||||
## 短期计划(顺序不定)
|
||||
* API doc到PDF转换工具
|
||||
* text select
|
||||
* switch
|
||||
* text editor
|
||||
* port code editor
|
||||
* menu
|
||||
* chart
|
||||
* guage
|
||||
* property sheet
|
||||
* file browser
|
||||
* calendar
|
||||
* drag & drop
|
||||
* tableview
|
||||
* python binging
|
||||
* rtthread移植
|
||||
* sylixos移植
|
||||
* djyos移植
|
||||
* 嵌入式linux移植
|
||||
* remote client
|
||||
* 音频接口。
|
||||
* 键盘导航
|
||||
* API doc到PDF转换工具
|
||||
|
||||
## 长期计划
|
||||
* ios移植
|
||||
* android移植
|
||||
* 支持vue.js
|
||||
* 用AWTK实现界面编辑器
|
||||
* 支持粒子产生器
|
||||
* 支持骨骼动画
|
||||
* flash播放器支持
|
||||
* ios移植
|
||||
* android移植
|
||||
* 在浏览器中运行
|
||||
* 微信小程序类似的开发方法
|
||||
|
||||
|
@ -1,80 +1,166 @@
|
||||
## 嵌入式平台移植注意事项
|
||||
|
||||
### 一、几个常用的宏
|
||||
### 一、配置的宏
|
||||
|
||||
* 1.WITH\_BITMAP\_FONT 如果需要使用位图字体请定义该宏。
|
||||
```
|
||||
/**
|
||||
* 嵌入式系统有自己的main函数时,请定义本宏。
|
||||
*
|
||||
* #define USE_GUI_MAIN 1
|
||||
*/
|
||||
|
||||
* 2.WITH\_STB\_FONT 如果需要使用truetype字体请定义该宏(请确保stack不小于16KB)。一般WITH\_STB\_FONT和WITH\_BITMAP\_FONT任选一个。
|
||||
/**
|
||||
* 如果需要支持预先解码的图片,请定义本宏。一般只在RAM极小时,才启用本宏。
|
||||
* #define WITH_BITMAP_FONT 1
|
||||
*/
|
||||
|
||||
* 3.WITH\_STB\_IMAGE 如果需要使用png/jpg图片请定义该宏(请确保stack不小于16KB)。由于解码图片需要较大内存,所以在内存较
|
||||
少的情况下,我们直接把png/jpg转换成位图数据,当作常量编译到代码中,此时不需要定义该宏。
|
||||
/**
|
||||
* 如果支持png/jpeg图片,请定义本宏
|
||||
*
|
||||
* #define WITH_STB_IMAGE 1
|
||||
*/
|
||||
|
||||
* 4.WITH\_FS\_RES 如果支持从文件系统中加载资源请定义该宏。需要有兼容POSIX标准的FS接口,如果没有则需要自己实现src/base/fs.c中的函数。
|
||||
/**
|
||||
* 如果支持Truetype字体,请定义本宏
|
||||
*
|
||||
* #define WITH_STB_FONT 1
|
||||
*/
|
||||
|
||||
* 5.USE\_GUI\_MAIN 嵌入式系统有自己的main函数时请定义该宏。
|
||||
/**
|
||||
* 如果支持从文件系统加载资源,请定义本宏
|
||||
*
|
||||
* #define WITH_FS_RES 1
|
||||
*/
|
||||
|
||||
* 6.WITH\_WCSXXX 如果出现wcsxxx之类的函数没有定义时请定义该宏。
|
||||
/**
|
||||
* 如果定义本宏,使用标准的UNICODE换行算法,除非资源极为有限,请定义本宏。
|
||||
*
|
||||
* #define WITH_UNICODE_BREAK 1
|
||||
*/
|
||||
|
||||
/**
|
||||
* 如果定义本宏,将图片解码成BGRA8888格式,否则解码成RGBA8888的格式。
|
||||
*
|
||||
* #define WITH_BITMAP_BGRA 1
|
||||
*/
|
||||
|
||||
* 7.HAS\_FAST\_MEMCPY 如果有高效的memcpy函数请定义该宏。
|
||||
/**
|
||||
* 如果定义本宏,将不透明的PNG图片解码成RGB565格式,建议定义。
|
||||
*
|
||||
* #define WITH_BITMAP_RGB565 1
|
||||
*/
|
||||
|
||||
* 8.WITH\_BITMAP\_RGB565 如果支持rgb565格式请定义该宏。除了使用nanovg渲染,一般情况都可以定义该宏。
|
||||
/**
|
||||
* 如果不需输入法,请定义本宏
|
||||
*
|
||||
* #define WITH_NULL_IM 1
|
||||
*/
|
||||
|
||||
* 9.WITH\_BITMAP\_BGRA 缺省图片加载之后的格式为RGBA,但有的硬件加速需要使用BGRA格式(如stm32 dma2d),此时需要定义该宏。
|
||||
/**
|
||||
* 如果支持极速模式,请定义本宏。极速模式不支持控件透明半透明效果,只有在CPU配置极低时启用。
|
||||
*
|
||||
* #define USE_FAST_MODE 1
|
||||
*/
|
||||
|
||||
* 10.WITH\_LOW\_RES 资源有限时请定义该宏。
|
||||
/**
|
||||
* 如果FLASH空间较小,不足以放大字体文件时,请定义本宏
|
||||
*
|
||||
* #define WITH_MINI_FONT 1
|
||||
*/
|
||||
|
||||
* 11.WITH\_DYNAMIC\_TR 如果需要动态翻译字符串时请定义该宏。
|
||||
/**
|
||||
* 如果有标准的malloc/free/calloc等函数,请定义本宏
|
||||
*
|
||||
* #define HAS_STD_MALLOC 1
|
||||
*/
|
||||
|
||||
系统内存小余8M时,推荐定义:WITH\_BITMAP\_FONT,USE\_GUI\_MAIN,HAS\_FAST\_MEMCPY,WITH\_BITMAP\_RGB565,WITH\_LOW\_RES
|
||||
系统内存超过8M时,推荐定义:WITH\_STB\_FONT,WITH\_STB\_IMAGE,USE\_GUI\_MAIN,HAS\_FAST\_MEMCPY,WITH\_BITMAP\_RGB565,WITH\_DYNAMIC\_TR
|
||||
/**
|
||||
* 如果有优化版本的memcpy函数,请定义本宏
|
||||
*
|
||||
* #define HAS_FAST_MEMCPY 1
|
||||
*/
|
||||
|
||||
/**
|
||||
* 如果出现wcsxxx之类的函数没有定义时,请定义该宏
|
||||
*
|
||||
* #define WITH_WCSXXX 1
|
||||
*/
|
||||
|
||||
/**
|
||||
* 如果启用STM32 G2D硬件加速,请定义本宏
|
||||
*
|
||||
* #define WITH_STM32_G2D 1
|
||||
*/
|
||||
|
||||
/**
|
||||
* 如果启用NXP PXP硬件加速,请定义本宏
|
||||
*
|
||||
* #define WITH_PXP_G2D 1
|
||||
*/
|
||||
|
||||
/**
|
||||
* 如果启用VGCANVAS,而且没有OpenGL硬件加速,请定义本宏
|
||||
*
|
||||
* #define WITH_NANOVG_AGGE 1
|
||||
*/
|
||||
|
||||
/**
|
||||
* 如果启用VGCANVAS,请定义本宏
|
||||
*
|
||||
* #define WITH_VGCANVAS 1
|
||||
*/
|
||||
|
||||
```
|
||||
|
||||
> 请参考:src/base/awtk_config_sample.h
|
||||
|
||||
### 二、include路径
|
||||
|
||||
* 1.基本路径
|
||||
|
||||
```
|
||||
awtk
|
||||
awtk\src
|
||||
awtk\3rd
|
||||
```
|
||||
|
||||
* 2.picasso的路径(如果启用)
|
||||
|
||||
```
|
||||
awtk\3rd\picasso\src
|
||||
awtk\3rd\picasso\src\gfx
|
||||
awtk\3rd\picasso\include
|
||||
awtk\3rd\picasso\src\include
|
||||
awtk\3rd\picasso\build
|
||||
```
|
||||
|
||||
* 3.agg的路径(如果启用)
|
||||
|
||||
```
|
||||
3rd/agg/include
|
||||
awtk/src
|
||||
awtk/src/ext_widgets
|
||||
awtk/3rd
|
||||
awtk/3rd/agge/src
|
||||
awtk/3rd/agge/include
|
||||
awtk/3rd/nanovg/src
|
||||
awtk/3rd/gpinyin/include
|
||||
awtk/3rd/libunibreak/src
|
||||
awtk-port
|
||||
```
|
||||
|
||||
### 三、要加入到工程的文件
|
||||
|
||||
* src/base 全部加入。
|
||||
* src/font 全部加入。
|
||||
* src/main\_loop/main\_loop\_simple.*
|
||||
* src/window\_animators/ 如果需要窗口动画而且支持framebuffer加入window\_animator\_fb.c,否则加入window\_animator\_null.c。
|
||||
* src/image_loader 全部加入。
|
||||
* src/platforms/raw/mutex.c 加入本文件或者自己实现mutex。
|
||||
* src/ui\_loader 全部加入。
|
||||
* src/window_animators 全部加入。
|
||||
* src/blend 使用framebuffer时全部加入。
|
||||
* src/lcd 根据LCD类型选择相应的文件。
|
||||
* src/tk.c
|
||||
* src/tk.h
|
||||
* src/vgcanvas/vgcanvas\_null.c 如果不使用vgcanvas请加入本文件。
|
||||
* src/xml 可选。
|
||||
* 3rd/picasso 可选。
|
||||
* 3rd/agg 可选。
|
||||
| Tables | Are |
|
||||
|-----------------------------|:-------------|
|
||||
| src/awtk.c | 加入
|
||||
| src/base | 全部加入
|
||||
| src/xml | 全部加入
|
||||
| src/ui_loader | 全部加入
|
||||
| src/blend | 使用framebuffer时全部加入
|
||||
| src/ext\_widgets | 使用扩展控件时全部加入
|
||||
| src/font | 推荐全部加入(可只加需要的)
|
||||
| src/image\_loader | 推荐全部加入(可只加需要的)
|
||||
| src/input\_engines | 不需要输入法时加入input\_engine\_null.c,否则加入input\_engine\_pinyin.cpp
|
||||
| src/input\_methods | 加入input\_method\_creator.c,根据宏决定启用何种输入法
|
||||
| src/lcd | 根据LCD类型(OpenGL/FrameBuffer/Register)选择相应的文件
|
||||
| src/main\_loop | 嵌入式系统一般使用main\_loop\_simple.c
|
||||
| src/misc | 如果没有标准的内存管理函数请加入
|
||||
| src/platforms/raw/fs_os.c | 如果没有文件系统请加入,否则请自行实现fs接口
|
||||
| src/platforms/raw/mutex_null.c | 如果没有mutex请加入,否则请自行实现mutex接口
|
||||
| src/platforms/raw/sys_tick.c | 如果需要自己实现sys tick中断,可以加入
|
||||
| src/vgcanvas | 如果需要矢量图或图片旋转(不支持lcd\_reg)请加入vgcanvas\_nanovg.c,否则加入vgcanvas\_null.c
|
||||
| src/widget_animators | 除了使用LCD\_REG的平台外推荐全部加入
|
||||
| src/window_animators | 启用OpenGL(PC/Android/iOS)时加入window\_animator\_opengl.c,使用Framebuffer(一般嵌入式)时加入window\_animator\_fb.c,低端嵌入式平台请加入window\_animator\_null.c
|
||||
| awtk/3rd/agge | 在framebuffer模式启用vgcanvas时加入
|
||||
| awtk/3rd/gpinyin/src | 启用拼音输入法时加入
|
||||
| awtk/3rd/nanovg/src | 在启用vgcanvas时加入
|
||||
| awtk-port | 加入各个平台自己的移植代码。
|
||||
| awtk/demos | 在使用ui demos可以加入:assets.c demo\_main.c demo\_ui\_app.c。
|
||||
|
||||
### 四、其它
|
||||
|
||||
> 使用keil编译时,请在C/C++ -> Misc Controls中加上**--gnu**标志。
|
||||
* 1.如果要加载png/jpg图片格式StackSize不小于32K。
|
||||
* 2.使用keil编译时,请在C/C++ -> Misc Controls中加上**--gnu**标志。
|
||||
|
||||
|
||||
|
@ -19,7 +19,7 @@ sources=Glob('base/*.c') +\
|
||||
|
||||
sources += ['main_loop/main_loop_simple.c'];
|
||||
if os.environ['LCD'] == 'NANOVG':
|
||||
sources += ['window_animators/window_animator_nanovg.c'];
|
||||
sources += ['window_animators/window_animator_opengl.c'];
|
||||
sources += ['lcd/lcd_nanovg.c', 'main_loop/main_loop_nanovg.c'];
|
||||
elif os.environ['LCD'] == 'SDL':
|
||||
sources += ['window_animators/window_animator_fb.c'];
|
||||
|
@ -100,6 +100,12 @@
|
||||
* #define HAS_FAST_MEMCPY 1
|
||||
*/
|
||||
|
||||
/**
|
||||
* 如果出现wcsxxx之类的函数没有定义时,请定义该宏
|
||||
*
|
||||
* #define WITH_WCSXXX 1
|
||||
*/
|
||||
|
||||
/**
|
||||
* 如果启用STM32 G2D硬件加速,请定义本宏
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user