45 lines
1.2 KiB
Markdown
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).
|