Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lecrapouille/openglcppwrapper
[Lib][Version 0.9][Partially Functional][WIP] A C++ 11 wrapper for Core Profile OpenGL allowing to write complete applications in a reduced number of lines of code
https://github.com/lecrapouille/openglcppwrapper
3d 3d-engine 3d-game 3d-graphics cpp cpp11 game-development glumpy graphics graphics-programming opengl opengl-functions opengl-tutorial opengl-wrapper rendering shaders three-cpp three-js wrapper
Last synced: 3 months ago
JSON representation
[Lib][Version 0.9][Partially Functional][WIP] A C++ 11 wrapper for Core Profile OpenGL allowing to write complete applications in a reduced number of lines of code
- Host: GitHub
- URL: https://github.com/lecrapouille/openglcppwrapper
- Owner: Lecrapouille
- License: gpl-3.0
- Created: 2018-11-15T22:41:35.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-03-31T09:05:57.000Z (10 months ago)
- Last Synced: 2024-10-11T11:12:59.516Z (4 months ago)
- Topics: 3d, 3d-engine, 3d-game, 3d-graphics, cpp, cpp11, game-development, glumpy, graphics, graphics-programming, opengl, opengl-functions, opengl-tutorial, opengl-wrapper, rendering, shaders, three-cpp, three-js, wrapper
- Language: C++
- Homepage:
- Size: 2.2 MB
- Stars: 12
- Watchers: 3
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog
- License: LICENSE
- Authors: AUTHORS
Awesome Lists containing this project
README
# OpenGLCppWrapper
## What is OpenGLCppWrapper Library ?
[OpenGLCppWrapper](https://github.com/Lecrapouille/OpenGLCppWrapper) is a
C++11 wrapper for writing OpenGL `Core Profile` applications in few lines of
code.**Warning:** Do not confuse Core Profile OpenGL (>= 2.2) with Legacy Profile
OpenGL (<= 2.1). This API does not manage OpenGL Legacy Profile, but manages
OpenGL Core Profile version >= 3.3.This API is split in two parts:
- The first API part (functional), greatly been inspired by the
[Glumpy](https://github.com/glumpy/glumpy) project, is object-oriented based
does not just content to give a C++ flavor name to OpenGL routines but hides
for you the complexity of calling in the correct order OpenGL functions as
well as passing correct parameters to them. You, as developer, will have just
to deal writing your OpenGL shaders (GLSL language), asking to
OpenGLCppWrapper to compile them, and filling data to populated VBOs (such as
vertices position, texture coordinates, normals ...) or loading the desired
textures image (png, jpeg) to populated samplers. Nothing more complex indeed,
OpenGLCppWrapper will instantiate classes wrapping OpenGL VAOs, VBOs, texture,
framebuffers once shaders have been compiled ... It also manages OpenGL object
lifetime: it makes automatic the transfer of "dirty" CPU data (from your C++
space memory point of view) to the graphics card memory (VBOs, textures).- The second API part (not functional, rework in progress), greatly been
inspired by the [three.js](https://github.com/mrdoob/three.js) project gives
you more abstraction, by offering some basic functionalities such as geometric
primitives, materials, camera, lights and scene graph. This part will simplify
you creating OpenGL scenes.**Warning:** This library is not a game engine but just an oriented object
wrapper for OpenGL that can be used for a game engine. As drawbacks, this API is
less cache friendly than calling directly your OpenGL routines (due to a lot of
if-then-else, smart pointers and dynamic cast). This is the price of hiding the
complexity and staying generic.### Table Of Contents
* [Installation](doc/Install.md)
* [Tutorial](doc/tutorials/Core.md)
* [Examples](examples/README.md)
* [Architecture](doc/Architecture.md)
* [Credits](doc/Credits.md)