awtk/docs/how_to_support_mono_lcd.md
2020-08-16 09:10:01 +08:00

57 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 支持单色 LCD
## lcd_mono 实现
src/lcd/lcd_mono.c 提供单色 LCD 的 framebuffer每个像素占用一个比特实现了 LCD 的基本绘制函数,在使用时调用者需要提供 flush 函数,负责把脏矩形内的像素提交到 LCD 硬件。
## 模拟器
在 awtk_config.py 中可以打开单色 LCD 的配置。
```
LCD='SDL_FB_MONO'
```
## 单色字体生成
字体生成工具 fontgen 支持生成单色字体,加上可选参数 mono 即可。
```
fontgen.exe ttf_filename str_filename out_filename font_size [mono]
```
## 单色图片生成
图片生成工具 imagegen 支持生成单色图片,加上可选参数 mono 即可。
```
imagegen.exe in_filename out_filename (bgra|bgr565|mono)
```
> 由于单色图片只有两种颜色,所以在设计图片上只能使用白色 (#ffffff) 和黑色 (#000000),否则转换出来的效果不是期望的。
## 主题配置
主题中只能使用白色 (#ffffff) 和黑色 (#000000) 两种颜色。
## 资源生成
生成资源时需要加上 mono 参数,该参数会被传递给 fontgen 和 imagegen。
```
python scripts/update_res.py all x1 mono
```
## 应用程序
应用程序 UI 设计请考虑单色 LCD 的特殊性。
> demoui 没有考虑单色 LCD在单色 LCD 上运行效果不佳。
## 预览mono test查看运行效果
```
./bin/preview_ui design/default/ui/mono_test.xml
```