# [`gltraits`][] A [C++11][]/[OpenGL][]>=[1.0][](/[GLM][]) [trait][]s library. This library seeks to unify some parts of the OpenGL [API][] to ease [generic programming][]. It also provides sensible default arguments, [optional][debug] [check][]s for [version][]/[extension][] support, and optional support for [OpenGL Mathematics (GLM)][GLM] (which provides [GLSL][]-like types). A more philosophical description: it aims to make the implicit symmetries of the OpenGL API explicit. In the process, some wrinkles in the symmetry are also brought to light. Therefore, it may be useful for learning and understanding the OpenGL API (although this use case may be limited due to the (ab)use of C++ language features). [`gltraits`]: https://git.rcrnstn.net/rcrnstn/gltraits [C++11]: https://en.wikipedia.org/wiki/C++11 [OpenGL]: https://en.wikipedia.org/wiki/OpenGL [1.0]: https://en.wikipedia.org/wiki/OpenGL#Version_history [GLM]: https://glm.g-truc.net [trait]: https://en.wikipedia.org/wiki/Trait_(computer_programming) [API]: https://en.wikipedia.org/wiki/API [generic programming]: https://en.wikipedia.org/wiki/Generic_programming [debug]: https://git.rcrnstn.net/rcrnstn/glbase#debug [check]: https://git.rcrnstn.net/rcrnstn/glbase#check [version]: https://en.wikipedia.org/wiki/OpenGL#Version_history [extension]: https://www.khronos.org/opengl/wiki/OpenGL_Extension [GLSL]: https://www.khronos.org/opengl/wiki/OpenGL_Shading_Language ## Building See [`BUILDING.md`][]. [`BUILDING.md`]: BUILDING.md ## License Licensed under the [ISC License][] unless otherwise noted, see the [`LICENSE`][] file. [ISC License]: https://choosealicense.com/licenses/isc [`LICENSE`]: LICENSE