glcxx/README.md

45 lines
1.2 KiB
Markdown

# glcxx
glcxx is a Modern C++ Interface for OpenGL Object Management.
It provides an object-oriented interface for the following OpenGL objects:
- Array (VAO)
- Buffer (VBO)
- Shader
- Program
glcxx is not an OpenGL loading library. It does not provide window or OpenGL
context creation.
Other libraries such as GL3W, GLEW, SDL, Qt, GTK, etc... can be used in
conjunction with glcxx.
## Features
### Modern C++11 API
glcxx uses modern C++11 features such as initializer_list and variadic
templates to provide a user-friendly API.
For example, an OpenGL buffer can be allocated and filled with data with a
a single call:
```
auto buffer = glcxx::Buffer::create(GL_ARRAY_BUFFER, GL_STATIC_DRAW,
{-1, -1, 1, -1, 1, 1, -1, 1});
```
## Documentation
[https://holtrop.github.io/glcxx/doxygen/annotated.html](https://holtrop.github.io/glcxx/doxygen/annotated.html)
## Integrating onto a Project
glcxx can be imported into an OpenGL project as a subdirectory and built along
with the project. The top-level `include` directory needs to be added to the
C++ include path, and the *.cpp sources under the `src` directory need to be
compiled and linked with the project.
## License
glcxx is licensed under the [MIT License](LICENSE).