StevEngine
StevEngine is a customizable C++ game engine.
Loading...
Searching...
No Matches
StevEngine::Renderer::RenderSystem Class Reference

Core rendering system. More...

#include <visuals/renderer/RenderSystem.hpp>

Public Member Functions

void Init (SDL_Window *window)
 Initialize rendering system.
 
void DrawObject (const CustomObject &object, Utilities::Matrix4 transform, RenderQueue queue=STANDARD)
 Queue object for rendering.
 
void SetBackground (const Utilities::Color &color)
 Set background clear color.
 
void SetAmbientLight (float strength, const Utilities::Color &color=Utilities::Color(255, 255, 255, 255))
 Set ambient light properties.
 
void AddGlobalShader (ShaderProgram shader)
 Add global shader program.
 
void ResetGlobalShader (ShaderType type)
 Reset global shader to default.
 
void DrawFrame ()
 Draw a complete frame.
 
void SetViewSize (int WIDTH, int HEIGHT)
 Set viewport size.
 
void SetVSync (bool vsync)
 Set vertical sync.
 
void SetFaceCulling (bool enable, GLenum face=GL_FRONT, bool clockwise=false)
 Set face culling.
 
void SetMSAA (bool enable, uint16_t amount=4)
 Set anti-aliasing.
 
void SetEnabled (bool enabled)
 
const ShaderProgramGetDefaultVertexShaderProgram () const
 
const ShaderProgramGetDefaultFragmentShaderProgram () const
 
uint32_t GetShaderPipeline () const
 
Utilities::Color GetAmbientLightColor () const
 
float GetAmbientLightStrength () const
 
uint32_t GetLightID (std::string type)
 Get next available light ID for type.
 
std::vector< Visuals::Light * > GetLights () const
 Get all active lights.
 
void AddLight (Visuals::Light *light)
 Add light to scene.
 
void RemoveLight (Visuals::Light *light)
 Remove light from scene.
 
void ResetGPUBuffers ()
 Rebinds the GPU buffers (VBO, EBO, VAO) to the renderers.
 

Static Public Member Functions

static const Uint32 WindowType ()
 Get SDL window flags.
 

Detailed Description

Core rendering system.

Manages OpenGL rendering pipeline, window setup, and graphics state. Handles render queues, shaders, and frame drawing.

Member Function Documentation

◆ AddGlobalShader()

void StevEngine::Renderer::RenderSystem::AddGlobalShader ( ShaderProgram shader)

Add global shader program.

Parameters
shaderShader program to add

◆ AddLight()

void StevEngine::Renderer::RenderSystem::AddLight ( Visuals::Light * light)

Add light to scene.

Parameters
lightLight to add

◆ DrawObject()

void StevEngine::Renderer::RenderSystem::DrawObject ( const CustomObject & object,
Utilities::Matrix4 transform,
RenderQueue queue = STANDARD )

Queue object for rendering.

Parameters
objectObject to render
transformWorld transform matrix
queueQueue to add to

◆ GetLightID()

uint32_t StevEngine::Renderer::RenderSystem::GetLightID ( std::string type)

Get next available light ID for type.

Parameters
typeLight type string
Returns
Available light index

◆ GetLights()

std::vector< Visuals::Light * > StevEngine::Renderer::RenderSystem::GetLights ( ) const
inline

Get all active lights.

Returns
Vector of light pointers

◆ Init()

void StevEngine::Renderer::RenderSystem::Init ( SDL_Window * window)

Initialize rendering system.

Parameters
windowSDL window to render to

◆ RemoveLight()

void StevEngine::Renderer::RenderSystem::RemoveLight ( Visuals::Light * light)

Remove light from scene.

Parameters
lightLight to remove

◆ ResetGlobalShader()

void StevEngine::Renderer::RenderSystem::ResetGlobalShader ( ShaderType type)

Reset global shader to default.

Parameters
typeType of shader to reset

◆ SetAmbientLight()

void StevEngine::Renderer::RenderSystem::SetAmbientLight ( float strength,
const Utilities::Color & color = Utilities::Color(255,255,255,255) )

Set ambient light properties.

Parameters
strengthAmbient light intensity
colorAmbient light color

◆ SetBackground()

void StevEngine::Renderer::RenderSystem::SetBackground ( const Utilities::Color & color)

Set background clear color.

Parameters
colorNew background color

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