togo is a collection of libraries with simplicity and rapid iteration at heart.
Core library. All other libraries depend on it.
Dependencies:
Lua
== 5.3.5
Imaging library.
Platform library.
Dependencies:
libnotify
(system)
Windowing library.
Dependencies:
- glad
- Backend (one of):
- SDL >= 2.0.3 (OpenGL, raster)
- GLFW >= 3.0.4 (OpenGL)
- With raster backends:
lib/image
Game engine.
This library takes significant inspiration from bitsquid (now Stingray), who have written about their design in great detail.
Dependencies:
lib/window
(requires OpenGL backend)
Resource package compiler for the game library. Interface is available as a static library for extension and automation.
Dependencies:
lib/game
togo is developed under Linux and currently only supports Linux. Its primary interface implementations utilize POSIX and the C Standard Library (by way of the C++ Standard Library, of which only little is used).
togo libraries are compiled static libraries (by default).
All features support Clang 3.5+ with libc++ (roughly at SVN head) on Ubuntu 14.04 x86_64. GCC and libstdc++ might work, but they are untested.
Interface headers are generated by igen, which requires Python 2.x, Mako, and cindex.py (libclang wrapper).
Inclusions are sorted with include_sort
(see scripts/include_sort
), but it is not required to build togo.
See dep/README.md
for dependency setup. Components can then be built using
my standard project protocol.
The only difference from the project protocol is scripts/premake
in place of
Premake, which enforces recipe order to allow the use of GNU Make's --jobs
.
Build configuration:
-
--togo-test
Enable test mode.
-
--togo-window-backend=sdl | glfw
Set window backend. See lib/window above for the dependencies required.
togo carries the MIT license, which can be found in the LICENSE
file.