Raftel Engine
Loading...
Searching...
No Matches
systems.hpp
Go to the documentation of this file.
1
18
19
#ifndef __SYSTEMS_HPP__
20
#define __SYSTEMS_HPP__
21
22
#pragma once
23
24
25
namespace
Raftel {
26
class
Camera
;
27
class
ShaderProgram
;
28
class
EntityManager
;
29
class
Texture
;
30
class
Mesh
;
44
class
RenderSystem
45
{
46
public
:
53
static
void
Initialize
();
54
69
static
void
UpdateRenderSystem
(
EntityManager
& em,
Camera
& cam, glm::ivec2 screen,
bool
shadow =
false
);
70
79
static
void
SetSkyboxTexture
(std::shared_ptr<Raftel::Texture> cubemapTexture);
80
87
static
void
Shutdown
();
88
89
private
:
100
static
void
DrawDeferred(
EntityManager
& em,
ShaderProgram
& shader);
101
112
static
void
UpdateDeferredRenderSystem(
EntityManager
& em,
Camera
& cam,
ShaderProgram
& shader);
113
122
static
void
UpdateCoreSystems(
EntityManager
& em);
123
133
static
void
UpdateCameraSystem(
Camera
& cam,
ShaderProgram
& shader);
134
145
static
void
RenderWithShadows(
EntityManager
& em,
ShaderProgram
& lit_shader,
Camera
& cam);
146
155
static
void
UpdateTransformSystem(
EntityManager
& em);
156
167
static
void
UpdateLightSystem(
EntityManager
& em,
ShaderProgram
& lit_shader,
Camera
& cam);
168
179
static
void
UpdateLightShadowSystem(
EntityManager
& em,
ShaderProgram
& lit_shader,
Camera
& cam);
180
189
static
void
UpdateScriptingSystem(
EntityManager
& em);
190
199
static
void
RenderSceneFromLight(
EntityManager
& em);
200
210
static
void
RenderSkybox(
Camera
& cam);
211
212
static
std::shared_ptr<Texture> skyboxTexture;
213
214
static
Raftel::ShaderProgram
CoreForwardShader;
215
216
};
217
}
// namespace Raftel
218
219
#endif
// !__SYSTEMS_HPP__
Raftel::Camera
Camera class for handling movement and view transformations.
Definition
camera.hpp:27
Raftel::EntityManager
Manages entities in the ECS (Entity Component System).
Definition
ecs.hpp:223
Raftel::Mesh
Represents a 3D mesh, including vertex data, indices, and materials.
Definition
mesh.hpp:89
Raftel::RenderSystem
Handles the updating and rendering of entities, camera, and shaders in a graphical environment.
Definition
systems.hpp:45
Raftel::RenderSystem::Shutdown
static void Shutdown()
Releases all resources related to the skybox.
Raftel::RenderSystem::Initialize
static void Initialize()
Initializes the render system.
Raftel::RenderSystem::UpdateRenderSystem
static void UpdateRenderSystem(EntityManager &em, Camera &cam, glm::ivec2 screen, bool shadow=false)
Updates and renders the entire scene based on the current entity manager, camera, and shaders.
Raftel::RenderSystem::SetSkyboxTexture
static void SetSkyboxTexture(std::shared_ptr< Raftel::Texture > cubemapTexture)
Sets the skybox texture.
Raftel::ShaderProgram
A class to represent an OpenGL shader program, combining vertex and fragment shaders.
Definition
shader.hpp:119
Raftel::Texture
Represents an OpenGL texture object.
Definition
texture.hpp:88
include
raftel
systems.hpp
Generated by
1.13.2