Turn from: 80958279
AWTK = Toolkit AnyWhere
AWTK is the essence of FTK and CANTK, the re-developed GUI, which is planned to be implemented in the following phases:
- The first phase focuses on embedded systems to reach and exceed the touchgfx/embedded Wizard's capabilities. The plan was completed at the end of 2018/9.
- The second stage uses the AWTK itself to develop the interface editor (or configuration software IDE) to verify AWTK's ability to support PC software development. The plan is to be completed by the end of 2018.
- The third phase supports mobile application development, which is easier because the first stage is to extend the modern GUI on the phone to a traditional embedded system. The plan was completed in 2019/3.
- Phase IV supports 2D game development, incorporating the experience of the previous development of the game engine into the AWTK to facilitate the development of interactive multimedia applications. The plan was completed in 2019/6.
Final goal:
- Support the development of embedded software.
- Support for developing Linux applications.
- Support for developing MacOS applications.
- Support for developing Windows applications.
- Supports the development of Android apps.
- Support for developing iOS apps.
- Support the development of 2D games.
Its main features are:
Small. In a thin configuration, you can develop some simple graphics applications without relying on third-party packages, only 8K ram+32k Flash.
Efficient. The dirty rectangle clipping algorithm is used to draw and update only the changing parts at a time, which greatly improves the running efficiency and energy utilization.
Stability. The stability of its operation is ensured through good architectural design and programming style, Unit testing, dynamic (Valgrind) checking and code review.
Rich GUI components. Provides Windows, dialogs, and a variety of common components (users can configure the components they need to reduce the requirements of the operating environment).
Supports multiple font formats. Built-in bitmap fonts (with conversion tools), or you can use Stb_truetype or FreeType to load TTF fonts.
Supports multiple image formats. Built-in bitmap images (with conversion tools), or you can use Stb_image to load images in formats such as png/jpg.
Compact binary Interface description format. An XML-formatted interface profile can be edited manually, or you can use the QT designer interface to convert to a compact binary interface description format to improve operational efficiency and reduce memory overhead.
Supports themes and uses a compact binary format. Development uses an XML format to describe the topic, and then transforms it into a compact binary format that improves operational efficiency and reduces memory overhead.
Bare system support, no OS and file system required. Fonts, pictures, themes, and interface description data are compiled into code, stored as constant data, and run without loading into memory.
Built-in AGG/PICASSO/NANOVG for high-quality vector animations.
Supports modern GUI features such as window animations, control animations, and slide animations.
Support Internationalization (Unicode, string translation, input method, and so on).
Portable. Supports porting to various RTOs and embedded Linux systems and runs through SDL on a variety of popular pc/phone systems.
Scripted. Extracts the API's descriptive information from API annotations, which can be used to automatically generate binding code for various scripts.
Open source with the LGPL protocol, which is not paid for when used in commercial software.
Now that the core functions have been completed (not yet applied to the product level), interested friends are welcome to transplant to each RTOS.
Analog Run: Mac
If you do not have scons and SDL2 installed, run the following command at the terminal (assuming that brew is installed):
install scons sdl2
Compile and run (under Terminal, go to the directory where AWTK is located and run the following command):
scons./bin/demoui
Ubuntu
If you do not have scons and Libsdl2-dev installed, run the following command at the terminal:
sudo apt-get install scons libsdl2-dev
Compile and run (under Terminal, go to the directory where AWTK is located and run the following command):
scons./bin/demoui
Windows
(Please first install scons and visual Studio C + + (version >2012)
Compile run (in command-line mode, go to the directory where AWTK is located and run the following command):
sconsbin\demoui
Porting for each platform
Stm32f103ze
Stm32f429igtx
awtk-aworks-rt1052
Document 1: Working with Documents
- Introduction to layout parameters for AWTK controls
- Introduction to AWTK Interface description file
- How to display pictures in AWTK
- Vector graph drawing function in AWTK
- Event handler functions in the AWTK
- The international string translation in AWTK
- Topics in AWTK
- Resource Manager in AWTK
- Window animations in the AWTK
- Animation of controls in AWTK
- LCD rotation (horizontal screen and vertical screen)
- Input methods in the AWTK
2.HowTos
- How to manipulate GUI controls in non-GUI threads
3. Internal principles
- AWTK implementation of script bindings-LUA binding
4. Porting Documents
- Embedded platform porting considerations
- Porting the AWTK to the Stm32f103ze bare system
- Porting the AWTK to the STM32F429IGTX bare system
- Porting AWTK to the Aworks platform
5. Technical Notes
- Several ways to use framebuffer
- Three ways to implement LCD interface
Completion of tasks
Todo.md
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced. 80958279Article Tags: GUI awtkPersonal Category: Game engine/gui design and implementation of embedded GUI FTK
AWTK (Toolkit AnyWhere): Universal GUI "turn" for embedded, mobile and desktop development