Skip to content


Repository files navigation


Linux & MacOS status: Build Status Windows: Build status

GWork is a skinnable, embeddable GUI library with an extensive control set. Control rendering is abstracted, and can be implemented by any application wishing to use the library. Gwork (pronounced "gw-orc") is a fork of the GUI library GWEN. It was forked to fix issues with GWEN and add new features.

A number of rendering backends are provided for use, or as an example for your own:

  • Allegro5 (cross-platform).
  • DirectX 11 (Windows 7+).
  • Irrlicht3D (cross-platform).
  • OpenGL2 (cross-platform. Uses GLFW).
  • OpenGL Core Profile (cross-platform. Uses GLM, GLEW, GLFW).
  • SDL2 (cross-platform).
  • SFML2 (cross-platform).
  • Software (cross-platform). Render to texture.

Note that the software renderer can be used on any platform, but, obviously, with the penalty of not having hardware acceleration. For more information see the documentation.



  • See CHANGELOG for changes to Gwork, and the differences from GWEN.


Please report problems to Github or they'll get lost.


Get source code:

  • From git: git clone gwork or
  • Download zip & unzip

CMake is used to generate the project files. See cmake -h to see all the generators for your platform. Only have one renderer per build directory. Choose renderer:


For example to build Allegro 5 renderer using Ninja:

cd gwork
mkdir build && cd build                 # put build files in subdirectory
cmake -GNinja -DRENDER_ALLEGRO5=ON ..   # create Ninja project files

Providing the dependencies are present, this will create a sample executable. When run it will demonstrate all of the controls available:

ninja                       # build project
bin/GworkAllegro5Sample     # run sample