togo
togo copied to clipboard
A collection of C++ libraries and tools for games and applications.
What be it?
togo is a collection of libraries with simplicity and rapid iteration at heart.
Components
Library: core
Core library. All other libraries depend on it.
Dependencies:
-
Lua
== 5.3.5
Library: image
Imaging library.
Library: platform
Platform library.
Dependencies:
-
libnotify
(system)
Library: window
Windowing library.
Dependencies:
- glad
- Backend (one of):
- SDL >= 2.0.3 (OpenGL, raster)
- GLFW >= 3.0.4 (OpenGL)
- With raster backends:
-
lib/image
Library: game
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)
Tool: res_build
Resource package compiler for the game library. Interface is available as a static library for extension and automation.
Dependencies:
-
lib/game
Platforms
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).
Building
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.
License
togo carries the MIT license, which can be found in the LICENSE
file.