![]() |
galaxy 1.0.0
Real-Time C++23 Game Programming Framework. Built on data-driven design principles and agile software engineering.
|
2D OpenGL renderer. More...
#include <Renderer.hpp>
Public Member Functions | |
void | init () |
Initialize renderer. | |
void | destroy () |
Cleanup renderer data. | |
void | on_window_resized (const events::WindowResized &e) |
Event processing method for window size change. | |
void | submit_camera (Camera &camera) |
Set the camera to use when calling draw(). | |
void | submit_cmd (RenderCommand &command) |
Add an entity rendering command. | |
void | submit_texture (const Texture2D &texture, VertexArray &va, Transform &tf, const int layer, const float opacity) |
Submit a standalone texture to be rendered. | |
void | submit_text (Text &text, Transform &tf, const int layer) |
Submit standalone text to be rendered. | |
void | submit_shape (Shape *shape, Transform &tf, const int layer) |
Submit a standalone shape to be rendered. | |
void | draw_texture_to_target (RenderTexture &target, Texture *texture, VertexArray &va, Transform &tf) |
Draw a texture to a render texture. | |
void | draw () |
Draw all submitted render commands to screen. | |
void | flush () |
Deletes all submitted render commands. | |
void | clear_active () |
Clears currently active framebuffer. | |
void | begin_post () |
Begin rendering to post process framebuffer. | |
void | end_post () |
Renders effects to post processing framebuffer and rebinds to default framebuffer. | |
void | render_post () |
Renders final post processing output to active framebuffer. | |
void | begin_default () |
Start rendering to default framebuffer. | |
void | end_default () |
Swaps buffers. | |
Static Public Member Functions | |
static Renderer & | ref () |
Get reference to renderer singleton. | |
Private Member Functions | |
Renderer () | |
Constructor. | |
~Renderer ()=default | |
Destructor. | |
void | calc_viewport (int window_width, int window_height) |
Need to recalculate default framebuffer viewport. | |
Private Attributes | |
meta::vector< RenderCommand > | m_cmds |
List of renderables to draw. | |
Shader | m_r2d_shader |
Mono render shader. | |
ShaderStorageBuffer | m_camera |
Camera buffer storage. | |
ShaderStorageBuffer | m_renderdata |
Uniform buffer storage. | |
PostProcess | m_post |
Post processor. | |
glm::vec4 | m_viewport |
Default framebuffer viewport. | |
2D OpenGL renderer.
Definition at line 32 of file Renderer.hpp.
|
private |
Constructor.
Definition at line 25 of file Renderer.cpp.
|
privatedefault |
Destructor.
|
staticnodiscard |
Get reference to renderer singleton.
Definition at line 19 of file Renderer.cpp.
void galaxy::graphics::Renderer::init | ( | ) |
Initialize renderer.
Definition at line 31 of file Renderer.cpp.
void galaxy::graphics::Renderer::destroy | ( | ) |
Cleanup renderer data.
Definition at line 62 of file Renderer.cpp.
void galaxy::graphics::Renderer::on_window_resized | ( | const events::WindowResized & | e | ) |
Event processing method for window size change.
e | Takes in a window resized event. |
Definition at line 71 of file Renderer.cpp.
void galaxy::graphics::Renderer::submit_camera | ( | Camera & | camera | ) |
Set the camera to use when calling draw().
camera | Camera object to buffer. |
Definition at line 76 of file Renderer.cpp.
void galaxy::graphics::Renderer::submit_cmd | ( | RenderCommand & | command | ) |
Add an entity rendering command.
command | Rendering command to draw. |
Definition at line 81 of file Renderer.cpp.
void galaxy::graphics::Renderer::submit_texture | ( | const Texture2D & | texture, |
VertexArray & | va, | ||
Transform & | tf, | ||
const int | layer, | ||
const float | opacity ) |
Submit a standalone texture to be rendered.
texture | Texture to use when drawing. |
va | Vertex data to use when drawing. |
tf | Object transformation. |
layer | Rendering z-level layer. |
opacity | Object opacity. |
Definition at line 86 of file Renderer.cpp.
Submit standalone text to be rendered.
text | Text to draw. |
tf | Object transformation. |
layer | Rendering z-level layer. |
Definition at line 106 of file Renderer.cpp.
Submit a standalone shape to be rendered.
shape | Polymorphic shape to render. |
tf | Object transformation. |
layer | Rendering z-level layer. |
Definition at line 126 of file Renderer.cpp.
void galaxy::graphics::Renderer::draw_texture_to_target | ( | RenderTexture & | target, |
Texture * | texture, | ||
VertexArray & | va, | ||
Transform & | tf ) |
Draw a texture to a render texture.
Standalone function.
target | Target to draw texture to. |
texture | Texture to draw to the target. |
va | Vertex array object. |
transform | Orthographic transform. |
Definition at line 146 of file Renderer.cpp.
void galaxy::graphics::Renderer::draw | ( | ) |
Draw all submitted render commands to screen.
Definition at line 166 of file Renderer.cpp.
void galaxy::graphics::Renderer::flush | ( | ) |
Deletes all submitted render commands.
Definition at line 189 of file Renderer.cpp.
void galaxy::graphics::Renderer::clear_active | ( | ) |
Clears currently active framebuffer.
Definition at line 194 of file Renderer.cpp.
void galaxy::graphics::Renderer::begin_post | ( | ) |
Begin rendering to post process framebuffer.
Definition at line 200 of file Renderer.cpp.
void galaxy::graphics::Renderer::end_post | ( | ) |
Renders effects to post processing framebuffer and rebinds to default framebuffer.
Definition at line 206 of file Renderer.cpp.
void galaxy::graphics::Renderer::render_post | ( | ) |
Renders final post processing output to active framebuffer.
Definition at line 212 of file Renderer.cpp.
void galaxy::graphics::Renderer::begin_default | ( | ) |
Start rendering to default framebuffer.
This should be called at the end of rendering, only rendering your final framebuffer, since afterwards we swap buffers.
Definition at line 217 of file Renderer.cpp.
void galaxy::graphics::Renderer::end_default | ( | ) |
Swaps buffers.
Definition at line 238 of file Renderer.cpp.
|
private |
Need to recalculate default framebuffer viewport.
window_width | New window width. |
window_height | New window height. |
Definition at line 243 of file Renderer.cpp.
|
private |
List of renderables to draw.
Definition at line 179 of file Renderer.hpp.
|
private |
Mono render shader.
Definition at line 184 of file Renderer.hpp.
|
private |
Camera buffer storage.
Definition at line 189 of file Renderer.hpp.
|
private |
Uniform buffer storage.
Definition at line 194 of file Renderer.hpp.
|
private |
Post processor.
Definition at line 199 of file Renderer.hpp.
|
private |
Default framebuffer viewport.
Definition at line 204 of file Renderer.hpp.