Gaclib 0.7.9.0
Gaclib 0.7.9.0
GPU Accelerated C++ User Interface/Script Engine (Apache License 2.0 with extra conditions)
Website for this project: http://www.gaclib.net/
This repository contains the latest release for the GacUI project, including packed library source codes, development tools, demos and documents. Complete source code can be accessed in https://github.com/vczh-libraries .
Here is a simple description to the code
- Import Gaclib source code
- Tools
- GacGen.exe GacUI resource compiler and C++ code generator
- ParserGen.exe General LR parser to C++ code generator
- Tutorial Sample code
- Lib Static library projects for all tutorials
- GacUI_HelloWorlds Different ways to create a GacUI hello world project
- GacUI_Layout Demo how to use GacUI layout
- GacUI_Controls Demo how to use GacUI controls
- GacUI_ControlTemplate Demo how to create control templates (skin) for GacUI controls
- Improvements
- GacUI application reduces about 10MB in binary when using GacUI XML Resource with GacGen.exe to write windows or controls, compared with the previous release.
- VlppWorkflowCompiler.(h|cpp) and GacUICompiler.(h|cpp) are separated from the packed source files. Almost any GacUI application doesn't need the content of these source files. This reduces very much of the binary size.
- Refactor GacUI XML Resource pre-compilation for the comming marvelous feature: Workflow to C++! Hopefully it can be done in the next release.
- So that if an GacUI application doesn't need dynamic window resource loading or reflection of view model types (unfortunately GuiBindableDataGrid relies on reflection, this unnecessary dependency will be removed in the future), than GacGen.exe will have another option to convert window or control resources to C++ completely.
- So that a Workflow script virtual machine will not needed when building windows or controls.
- So that VlppWorkflow.(h|cpp) and GacUIReflection.(h|cpp) are not needed to compile such a GacUI application.
- So that the release binary will be reduced to 2 MB, no extra DLL files are required !