SolarSim
Loading...
Searching...
No Matches
solarsim::Renderer Class Reference

Handles all rendering operations and graphics state. More...

#include <renderer.hpp>

Data Structures

struct  CameraUBO
struct  LightData
struct  LightsUBO
struct  RBData
struct  RBUBO

Public Member Functions

 Renderer ()
 ~Renderer ()
void render ()
 Execute one frame of rendering.
void toggleGrid ()
 Toggle grid visibility.

Private Member Functions

void bindCameraMatrices (Registry &reg)
 Bind camera matrices to UBO.
void bindLightUBOS (Registry &reg)
 Bind light data to UBO.
void bindRigidBodyUBOS (Registry &reg)
 Bind rigid body data to UBO.
void renderGrid (Registry &reg)
 Render the debug grid.
void renderLights (Registry &reg)
 Render all light entities.
void renderMeshes (Registry &reg)
 Render all mesh entities.
void renderGui (Registry &reg)
 Toggle grid visibility.

Private Attributes

uint32_t cameraUBO
uint32_t lightsUBO
uint32_t rbUBO
bool showGrid = true
glm::vec4 clearColor = glm::vec4(0.0f, 0.0f, 0.0f, 1.0f)

Detailed Description

Handles all rendering operations and graphics state.

Note
Manages UBOs for camera, lights, and rigid bodies
Warning
Ensure OpenGL context is active before calling render methods

Constructor & Destructor Documentation

◆ Renderer()

solarsim::Renderer::Renderer ( )

◆ ~Renderer()

solarsim::Renderer::~Renderer ( )

Member Function Documentation

◆ bindCameraMatrices()

void solarsim::Renderer::bindCameraMatrices ( Registry & reg)
private

Bind camera matrices to UBO.

Parameters
regRegistry containing camera entities

◆ bindLightUBOS()

void solarsim::Renderer::bindLightUBOS ( Registry & reg)
private

Bind light data to UBO.

Parameters
regRegistry containing light entities

◆ bindRigidBodyUBOS()

void solarsim::Renderer::bindRigidBodyUBOS ( Registry & reg)
private

Bind rigid body data to UBO.

Parameters
regRegistry containing rigid body entities

◆ render()

void solarsim::Renderer::render ( )

Execute one frame of rendering.

Note
Binds all UBOs and renders grid and meshes
Warning
Call this only from the main thread with active GL context

◆ renderGrid()

void solarsim::Renderer::renderGrid ( Registry & reg)
private

Render the debug grid.

Parameters
regRegistry containing grid entities

◆ renderGui()

void solarsim::Renderer::renderGui ( Registry & reg)
private

Toggle grid visibility.

◆ renderLights()

void solarsim::Renderer::renderLights ( Registry & reg)
private

Render all light entities.

Parameters
regRegistry containing mesh entities

◆ renderMeshes()

void solarsim::Renderer::renderMeshes ( Registry & reg)
private

Render all mesh entities.

Parameters
regRegistry containing mesh entities

◆ toggleGrid()

void solarsim::Renderer::toggleGrid ( )
inline

Toggle grid visibility.

Field Documentation

◆ cameraUBO

uint32_t solarsim::Renderer::cameraUBO
private

OpenGL handle for camera UBO

◆ clearColor

glm::vec4 solarsim::Renderer::clearColor = glm::vec4(0.0f, 0.0f, 0.0f, 1.0f)
private

OpenGL clear buffer bit color

◆ lightsUBO

uint32_t solarsim::Renderer::lightsUBO
private

OpenGL handle for lights UBO

◆ rbUBO

uint32_t solarsim::Renderer::rbUBO
private

OpenGL handle for rigid bodies UBO

◆ showGrid

bool solarsim::Renderer::showGrid = true
private

Whether to render the debug grid


The documentation for this class was generated from the following files: