Linux & MacOS status: Windows:
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 https://github.com/billyquith/GWork.git 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:
-DRENDER_ALLEGRO5=ON
-DRENDER_DIRECTX11=ON
-DRENDER_IRRLICHT=ON
-DRENDER_OPENGL=ON
-DRENDER_OPENGL_CORE=ON
-DRENDER_SDL2=ON
-DRENDER_SFML2=ON
-DRENDER_SW=ON
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