gui窗口遮挡算法_软件更新丨AWTK 1.2 发布,国产开源 GUI 引擎
AWTK全稱為T(mén)oolkit AnyWhere,是ZLG傾心打造的一套基于C語(yǔ)言開(kāi)發(fā)的GUI框架。旨在為用戶提供一個(gè)功能強(qiáng)大、高效可靠、簡(jiǎn)單易用、可輕松做出炫酷效果的GUI引擎,并支持跨平臺(tái)同步開(kāi)發(fā),一次編程,終生使用。
AWTK當(dāng)前升級(jí)到了v1.2版本,相對(duì)于v1.1,我們完善了許多細(xì)節(jié),增加了部分特性、控件以及API等,讓AWTK支持更多的功能和更炫酷的效果。
1.2版本更新的內(nèi)容
細(xì)節(jié)完善
- 輸入法候選字支持滾動(dòng);
- slider支持上下左右鍵;
- guage pointer支持錨點(diǎn);
- slide view indicator作為獨(dú)立控件;
- 完善idl gen工具;
- 完善doc gen工具;
- 支持用focusable屬性設(shè)置控件焦點(diǎn);
- 去掉TK_DEFAULT_FONT宏定義;
- 增加style border_width;
- 支持動(dòng)態(tài)修改屏保時(shí)間;
- SDL FB模式啟用臟矩形;
- 新增內(nèi)存耗盡處理;
- ...
新增特性
- cairo實(shí)現(xiàn)的vgcanvas;
- 支持32位Windows編譯;
- 增加條件變量tk_cond_var;
- 支持用tab鍵切換控件的焦點(diǎn);
- 支持在不同位置彈出完整窗口動(dòng)畫(huà);
- svg/gif支持從文件系統(tǒng)中加載圖片;
- 增加widget_gen腳本生成自定義控件;
- 增加self_layouter_menu實(shí)現(xiàn)彈出菜單;
- 增加lcd_mem_special;
- style增加margin參數(shù)。
新增控件
- mledit多行編輯器;
- overlay overlay窗口;
- hscroll_label可水平滾動(dòng)的文本。
新增重要API
- timer_modify
- widget_add_idle
- widget_find_animator
在線運(yùn)行效果: http://zlgawtk.bceapp.com/
AWTK介紹:
AWTK 全稱 Toolkit AnyWhere,是 ZLG 開(kāi)發(fā)的開(kāi)源 GUI 引擎,旨在為嵌入式系統(tǒng)、WEB、各種小程序、手機(jī)和 PC 打造的通用 GUI 引擎,為用戶提供一個(gè)功能強(qiáng)大、高效可靠、簡(jiǎn)單易用、可輕松做出炫酷效果的 GUI 引擎。
AWTK 寓意有兩個(gè)方面:
- Toolkit AnyWhere。
- ZLG 物聯(lián)網(wǎng)操作系統(tǒng) AWorks 內(nèi)置 GUI。
AWTK 源碼倉(cāng)庫(kù):
- 主源碼倉(cāng)庫(kù):https://github.com/zlgopen/awtk
- 鏡像源碼倉(cāng)庫(kù):https://gitee.com/zlgopen/awtk
運(yùn)行效果截圖:
二、最終目標(biāo):
- 支持開(kāi)發(fā)嵌入式應(yīng)用程序。
- 支持開(kāi)發(fā) Linux 應(yīng)用程序。
- 支持開(kāi)發(fā) MacOS 應(yīng)用程序。
- 支持開(kāi)發(fā) Windows 應(yīng)用程序。
- 支持開(kāi)發(fā) Web APP。
- 支持開(kāi)發(fā)微信小程序。
- 支持開(kāi)發(fā)支付寶小程序。
- 支持開(kāi)發(fā)百度小程序。
- 支持開(kāi)發(fā) Android 應(yīng)用程序。
- 支持開(kāi)發(fā) iOS 應(yīng)用程序。
- 支持開(kāi)發(fā) 2D 小游戲。
三、主要特色
1. 跨平臺(tái)
AWTK 是跨平臺(tái)的,這有兩個(gè)方面的意思:
- AWTK 本身是跨平臺(tái)的。目前支持的平臺(tái)有 ZLG AWorks、Windows、Linux、MacOS、嵌入式 Linux 和嵌入式裸系統(tǒng),可以輕松的移植到各種 RTOS 上。AWTK 以后也可以運(yùn)行在瀏覽器 (即將公測(cè))、各種小程序、Android 和 iOS 等平臺(tái)上運(yùn)行。
- AWTK 同時(shí)還提供了一套跨平臺(tái)的基礎(chǔ)工具庫(kù)。其中包括鏈表、數(shù)組、字符串 (UTF8 和 widechar),事件發(fā)射器、值、對(duì)象、文件系統(tǒng)、互斥鎖和線程、表達(dá)式和字符串解析等等,讓你用 AWTK 開(kāi)發(fā)的應(yīng)用程序可以真正跨平臺(tái)運(yùn)行。
2. 高效
AWTK 通過(guò)一系列的手段保證 AWTK 應(yīng)用程序高效運(yùn)行:
- 通過(guò)臟矩算法只更新變化的部分。
- 支持 3 FrameBuffer 讓界面以最高幀率運(yùn)行 (可選)。
- UI 描述文件和主題文件使用高效的二進(jìn)制格式,解析在瞬間完成。
- 支持各種 GPU 加速接口。如 OpenGL、DirectX、Vulkan 和 Metal 等。
- 支持嵌入式平臺(tái)的各種 2D 加速接口。目前 STM32 的 DMA2D 和 NXP 的 PXP 接口,廠家可以輕松擴(kuò)展自己的加速接口。
3. 穩(wěn)定
AWTK 通過(guò)下列方式極力讓代碼穩(wěn)定可靠:
- 使用 cppcheck 和 facebook infer 進(jìn)行靜態(tài)檢查。
- 使用 valgrind 進(jìn)行動(dòng)態(tài)內(nèi)存檢查。
- 近兩萬(wàn)行的單元測(cè)試代碼。
- ZLG 強(qiáng)大 GUI 團(tuán)隊(duì)的支持。
- 經(jīng)過(guò)多個(gè)實(shí)際項(xiàng)目驗(yàn)證。
- 多平臺(tái) / 多編譯器驗(yàn)證。
- 優(yōu)秀的架構(gòu)設(shè)計(jì)。
- Code Review。
- 手工測(cè)試。
4. 強(qiáng)大
- 豐富的控件 (持續(xù)增加中)。
- 支持各種圖片格式 (png/jpg/gif/svg)。
- 支持各種字體格式 (點(diǎn)陣和矢量)。
- 支持窗口動(dòng)畫(huà)
- 支持控件動(dòng)畫(huà)
- 支持高清屏。
- 支持界面描述文件。
- 支持主題描述文件。
- 支持控件布局策略。
- 支持對(duì)話框高亮策略。
- 豐富的輔助工具。
- 支持從低端的 Cortex M3 到各種高端 CPU。
- 支持無(wú)文件系統(tǒng)和自定義的文件系統(tǒng)。
- 支持裸系統(tǒng)和 RTOS。
5. 易用
- 大量的示例代碼。
- 完善的 API 文檔和使用文檔。
- ZLG 強(qiáng)大的技術(shù)支持團(tuán)隊(duì)。
- 用 AWTK 本身開(kāi)發(fā)的界面編輯器 (開(kāi)發(fā)中)。
- 聲明式的界面描述語(yǔ)言。一行代碼啟用控件動(dòng)畫(huà),啟用窗口動(dòng)畫(huà),顯示圖片 (png/jpg/svg/gif)。
6. 高度擴(kuò)展性
- 可以擴(kuò)展自己的控件。
- 可以擴(kuò)展自己的動(dòng)畫(huà)。
- 可以實(shí)現(xiàn)自己的主循環(huán)。
- 可以擴(kuò)展自己的軟鍵盤(pán)。
- 可以擴(kuò)展自己的圖片加載器。
- 可以擴(kuò)展自己的字體加載器。
- 可以擴(kuò)展自己的輸入法引擎。
- 可以擴(kuò)展自己的控件布局算法。
- 可以擴(kuò)展自己的對(duì)話框高亮策略。
- 可以實(shí)現(xiàn)自己的 LCD 接口。
- 可以擴(kuò)展自己的矢量引擎 (如使用 skia/cairo)。
- 所有擴(kuò)展組件和內(nèi)置組件具有相同的待遇。
7. 多種開(kāi)發(fā)語(yǔ)言
AWTK 本身是用 C 語(yǔ)言開(kāi)發(fā)的,可以通過(guò) IDL 生成各種腳本語(yǔ)言的綁定。生成的綁定代碼不是簡(jiǎn)單的把 C 語(yǔ)言的 API 映射到腳本語(yǔ)言,而是生成腳本語(yǔ)言原生代碼風(fēng)格的 API。目前支持以下語(yǔ)言 (以后根據(jù)需要增加):
- C
- Lua
- Javascript on jerryscript
- Javascript on nodejs
8. 國(guó)際化
- 支持 Unicode。
- 支持輸入法。
- 支持字符串翻譯 (實(shí)時(shí)生效)。
- 支持圖片翻譯 (實(shí)時(shí)生效)。
- 文字雙向排版 (計(jì)劃中)。
9. 開(kāi)放源碼,免費(fèi)商用 (LGPL)。
作者: lixianjing
軟件下載:「鏈接」
總結(jié)
以上是生活随笔為你收集整理的gui窗口遮挡算法_软件更新丨AWTK 1.2 发布,国产开源 GUI 引擎的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 藏历新年的意义
- 下一篇: 虚拟成像技术_AI帝国将崛起,国内幻真虚