refactor display, surface; get_frame_buffer will return NULL if no UI update

This commit is contained in:
idea4good
2018-12-17 15:51:00 +08:00
parent 78f42abe7b
commit bb90464136
17 changed files with 109 additions and 97 deletions

View File

@@ -1,16 +1,28 @@
# GuiLite - 简洁出奇迹
- [功能介绍](#功能介绍)
- [实例程序](#实例程序)
- [开发文档](#开发文档)
- [致谢](#致谢)
***
## GuiLite是什么鬼
- GuiLite超轻量UI框架是5千行代码的**全平台UI框架**可以完美运行在iOSAndroidWindows包含VRMac单片机和**市面所有的 ARM Linux物联网终端设备**上。
- GuiLite可以嵌入在iOS、Android、MFC、QT等其他UI系统中让你的界面集百家之长又不失个性。
- GuiLite鼓励混合编程开发者可以用GuiLite接管UI部分用SwiftJavaGoC#Python开业务部分。
- GuiLite鼓励混合编程开发者可以用GuiLite接管UI部分用SwiftJavaGoC#Python开业务部分。
相比QT、MFCGuiLite不预设开发者的使用场景不在具体功能上大包大揽用框架的简洁换取开发的自由GuiLite在图形绘制上面力图一步到位运行效率感人。
## 新功能多语言demo -- HelloFont
![HelloFont](doc/HelloFont.gif)
## 为什么开发GuiLite如何使用
- 任何UI框架都不是为你我而生的只有掌握核心原理对其深度定制才能真正掌握自己的命运因此我们开发了GuiLite希望用这5千行代码揭示UI的核心原理和定制方法。
- 我们不推荐开发者全盘使用GuiLite鼓励开发者在吃透代码后根据自身业务特点修改出更加丰富、个性的界面或者发展出适合自己的UI框架。
- 为了聚焦UI核心原理GuiLite会一直保持单片机的代码体量。
**信不信由你代码只有100+行!**[查阅代码](https://gitee.com/idea4good/GuiLiteSamples/blob/master/HelloFont/UIcode/UIcode.cpp)
## 新功能滑屏demo -- HelloSlide
![HelloSlide](doc/HelloSlide.gif)
## 卓越的跨平台能力
**信不信由你代码只有100+行!**[查阅代码](https://gitee.com/idea4good/GuiLiteSamples/blob/master/HelloSlide/UIcode/UIcode.cpp)
## 功能介绍
### 卓越的跨平台能力
在Mac, iOS下的运行效果:
![Mac](doc/Mac.gif) ![iOS](doc/Ios.landscape.gif)
@@ -23,7 +35,7 @@
![Win MR](doc/WinMR.gif)
## 万国语和墙纸
### 万国语和墙纸
墙纸:
![unicode](doc/wallpaper.jpg)
@@ -32,12 +44,12 @@
[如何制作多种文字/位图资源?](https://github.com/idea4good/GuiLiteToolkit)
## “换肤”功能
### “换肤”功能
![multi-theme](doc/multi-theme.png)
[如何“换肤”?](https://github.com/idea4good/GuiLiteSamples/blob/master/HostMonitor/SampleCode/source/resource/resource.cpp)
[如何“换肤”?](https://gitee.com/idea4good/GuiLiteSamples/blob/master/HostMonitor/SampleCode/source/resource/resource.cpp)
## 自我监控
### 自我监控
**上报“编译/运行”情况至“云端”:**
![BuildInfo](doc/BuildInfo.png)
@@ -46,34 +58,27 @@
![DataOnCloud](doc/data_on_cloud.png)
## 为什么开发GuiLite如何使用
任何UI框架都不是为你我而生的只有掌握核心原理对其深度定制才能真正掌握自己的命运因此我们开发了GuiLite希望用这5千行代码揭示UI的核心原理和定制方法
我们不推荐开发者全盘使用GuiLite鼓励开发者在吃透代码后根据自身业务特点修改出更加丰富、个性的界面或者发展出适合自己的UI框架。
为了聚焦UI核心原理GuiLite会一直保持单片机的代码体量。
## 快速上手
- 下载实例代码: `git clone https://gitee.com/idea4good/GuiLiteSamples`
- `cd GuiLiteSamples\HostMonitor`
- [编译/运行在任意平台上](https://gitee.com/idea4good/GuiLiteSamples/tree/master/HostMonitor/README.md)
## 实例程序
GuiLite只是一个框架本身并不能生成UI。为了能够展示如何用GuiLite开发App我们提供了一些实例程序给大家参考
- 点击[这里](https://gitee.com/idea4good/GuiLiteSamples)预览UI效果。
- 实例程序的功能说明:
| 实例名称 | 支持的平台 | 功能简介 | 编译方法 | 难度 |
| --- | --- | --- | --- | --- |
| HelloGuiLite | Windows, Linux | 初始化GuiLite加载资源布局界面元素按钮响应 | [编译/运行](https://gitee.com/idea4good/GuiLiteSamples/blob/master/HelloGuiLite/README.md) | 初级 |
| HelloFont | Windows, Linux | 显示多种语言(不限:中、英文) | [编译/运行](https://gitee.com/idea4good/GuiLiteSamples/blob/master/HelloFont/README.md) | 初级 |
| HelloSlide | Windows, Linux | 滑屏界面的应用 | [编译/运行](https://gitee.com/idea4good/GuiLiteSamples/blob/master/HelloSlide/README.md) | 中级 |
| HostMonitor | iOS, Mac, Android, Windows, Linux | 创建复杂界面,扩展自定义控件,适配全平台 | [编译/运行](https://gitee.com/idea4good/GuiLiteSamples/blob/master/HostMonitor/README.md) | 高级 |
## 开发文档
[代码结构及注释](doc/CodeWalkthrough-cn.md)
[如何编译?](doc/HowToBuild.md)
[如何布局UI?](doc/HowLayoutWork.md)
[如何传递消息?](doc/HowMessageWork.md)
- [如何编译?](doc/HowToBuild.md)
- [设计原理](doc/CodeWalkthrough-cn.md)
- [UML示意图](doc/UML.md)
- [如何布局UI?](doc/HowLayoutWork.md)
- [如何传递消息?](doc/HowMessageWork.md)
## 视频链接:
[GuiLite简介](https://v.youku.com/v_show/id_XMzA5NTMzMTYyOA)
[3D GuiLite](https://v.youku.com/v_show/id_XMzYxNTE3MTI0MA)
## 实例代码链接
[GuiLiteSamples](https://gitee.com/idea4good/GuiLiteSamples)
- [GuiLite简介](https://v.youku.com/v_show/id_XMzA5NTMzMTYyOA)
- [3D GuiLite](https://v.youku.com/v_show/id_XMzYxNTE3MTI0MA)
## GitHub链接
[GitHub链接](https://github.com/idea4good/GuiLite)