82 std::vector<RenderCommand> m_commands;
Engine-wide primitive type aliases and GLM math imports.
OpenGL 3.3 Core Profile abstraction layer.
Shader + uniform storage that defines how a surface is rendered.
Immutable GPU mesh (VAO + VBO + optional EBO).
Accumulates RenderCommands during Update and draws them in one pass.
void Draw(GraphicsAPI &graphicsAPI, const CameraData &cameraData, const std::vector< LightData > &lights)
Draw all submitted commands, then clear the queue.
void Submit(const RenderCommand &command)
Add a draw command to the queue for this frame.
glm::mat4 mat4
4×4 column-major float matrix (model/view/projection).
Per-frame camera matrices and world-space position.
One draw call unit: a Mesh + Material + world-space transform.
mat4 modelMatrix
Object → World transform for this draw call.
Mesh * mesh
Geometry to draw (non-owning raw pointer).
Material * material
Surface definition (non-owning raw pointer).