Skip to content

holtrop/glcxx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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
  • Texture

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

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.

glcxx headers need access to an OpenGL header. The integrating project should define the macro GLCXX_GL_INCLUDE to a string naming the include file to use.

License

glcxx is licensed under the MIT License.

About

A Modern C++ Interface to OpenGL Object Management

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages