Build Options :
- Debug : Program is compiled with Debug Flags
- Release : Program is compiled with Release Flags
OS :
- Windows : Windows macro is inserted
- Linux : Linux macro is inserted
Compilers :
- MSVC : For Visual Studio work
- g++ : For general purpose compiling
This framework for OpenGL is organized based on the directory underneath underneath the /OpenGL-Core/src/...
. Such that OpenGL-Core/src/[dir]
corresponds to the GLCore::[dir]
namespace.
Note that anything under OpenGL-Core/src/
is accessible by default using GLCore::[name]
All the methods & classes for using the basic framework.
- Application : Bundles all the other classes in
GLCore::[name]
together. Anything to do with getting information about the status of the running application can be done here. - Window : The window class to display for different OS.
- LayerList : An ArrayList containing all the
Layer
- Layer(Abstract) : Every iteration / re-render of the window, the code in the layer is ran. Data in layers are INDEPDENT from eachother!
Simplification of opengl and also helpful utilities
- AssetPool(Abstract) : A hashmap that keeps track of certain instances of classes under extensions.
- VertexPipelineShader : Shader for rendering vertices to the window.
- ComputeShder : Shader for sending and recieving data computed in parallel from the GPU. IMPORTANT whenever you upload a vecN to the shader, the sum of all the vecN in the struct must be a multiple of 4 floats. ComputeShaders are optimized for vec4 so that is probably why; if you don't do this, you'll see weird outputs from the ssbo in the CPU.
- Texture : a 2D buffer object for GPU computations.
- VAO : Vertex array object
- VBO : Vertex buffer object
- EBO : Element buffer object
- PerspectiveCamera - a perspective camera class
-
Release & Debug Configurations
-
MSVC Support
-
g++ support
-
Windows Support
-
Linux Support
-
Importing Third Party Libraries
- glad
- glfw
- imgui
- spdlog
- stb_image
-
Core
- Application
- Window
- Layer & LayerStack & ImGuiLayer
- OpenGLDebug
- Log
-
Extension
- Primitives
- VertexPipeline
- SSBO
- Texture
- Shaders
- Shader (Base Class)
- VertexPipelineShader
- ComputeShader
- AssetPool
- Primitives