Code Quality Rank: L1
Programming language: C++
Tags: GUI    

GacUI alternatives and similar libraries

Based on the "GUI" category

Do you think we are missing an alternative of GacUI or a related project?

Add another 'GUI' Library



GPU Accelerated C++ User Interface, with WYSIWYG developing tools, XML supports, built-in data binding and MVVM features.

Read the LICENSE first.

  • The release of the GacUI project is put in vczh-libraries/Release.
  • DO NOT download source code from this repo if you are not intended to create pull request. This is not for end users.


For Home Page: click here

For Gaclib: click here

For GacUI: click here

gaclib.net is a mirror to github pages above

Content of This Project

  • The Tutorial shows how to start using this marvelous GUI library.
  • The Demos section show you all demos using this GUI library.


Using this library requires you to use C++ source files directly in

All other files are for library development only.


This GUI library provides the following features:

  • Develop your GUI using pure C++, Workflow script, XML or even JavaScript (under construction).
  • Cross-platform abilities.
    • for Windows: Just use the code here
    • for Linux: XGac repo (developing)
    • for OSX: iGac repo (developing)
    • for running in Browser using WASM: (2.0)
  • Rich control library. Container controls supports MVC and virtual list mode.
  • Control template system. You can write your own.
  • GPU acceleration.
  • XML resource supports.
    • You can use the provided GacGen.exe to generate multiple XML files with binary resources (images) into a compressed binary format.
    • This program will also generate C++ code behind for you. You can fill event handlers (but we suggest you use MVVM and Data Binding instead) in generated C++ files.
    • If you update your UI, GacGen.exe will merge your modification in C++ code and modification in XML together to generate new C++ code behind. Your update will still exist.
    • NOTE: You will see a very obvious mark USERIMPL(/* ... */) in the generated code. Here is where you want to add your code. All your modification outside of these places will be discarded on the next GacGen.exe run.
  • MVVM and Data Binding.
    • You can define interfaces that required to build your own MVVM pattern in XML and GacGen.exe will generate the C++ interface declaration for you.
    • You can also use Workflow expressions in Data Binding and statements in event handlers (instead of writing C++ code in code behind).

*Note that all licence references and agreements mentioned in the GacUI README section above are relevant to that project's source code only.