8#ifndef GALAXY_GRAPHICS_RENDERER_HPP_
9#define GALAXY_GRAPHICS_RENDERER_HPP_
23#include "galaxy/meta/Memory.hpp"
Manages post processing effects to apply to combined scene.
Draw to an opengl texture instead of the screen.
void submit_text(Text &text, Transform &tf, const int layer)
Submit standalone text to be rendered.
meta::vector< RenderCommand > m_cmds
List of renderables to draw.
glm::vec4 m_viewport
Default framebuffer viewport.
void end_default()
Swaps buffers.
void submit_texture(const Texture2D &texture, VertexArray &va, Transform &tf, const int layer, const float opacity)
Submit a standalone texture to be rendered.
void begin_post()
Begin rendering to post process framebuffer.
void render_post()
Renders final post processing output to active framebuffer.
ShaderStorageBuffer m_renderdata
Uniform buffer storage.
void end_post()
Renders effects to post processing framebuffer and rebinds to default framebuffer.
void clear_active()
Clears currently active framebuffer.
PostProcess m_post
Post processor.
~Renderer()=default
Destructor.
void flush()
Deletes all submitted render commands.
void submit_cmd(RenderCommand &command)
Add an entity rendering command.
void submit_camera(Camera &camera)
Set the camera to use when calling draw().
void init()
Initialize renderer.
void draw()
Draw all submitted render commands to screen.
static Renderer & ref()
Get reference to renderer singleton.
Shader m_r2d_shader
Mono render shader.
void submit_shape(Shape *shape, Transform &tf, const int layer)
Submit a standalone shape to be rendered.
void destroy()
Cleanup renderer data.
void draw_texture_to_target(RenderTexture &target, Texture *texture, VertexArray &va, Transform &tf)
Draw a texture to a render texture.
void calc_viewport(int window_width, int window_height)
Need to recalculate default framebuffer viewport.
void begin_default()
Start rendering to default framebuffer.
ShaderStorageBuffer m_camera
Camera buffer storage.
void on_window_resized(const events::WindowResized &e)
Event processing method for window size change.
Abstraction for OpenGL buffer objects.
String of glyphs rendered with a font.
Abstraction for OpenGL vertex array objects.
Data to be passed to the renderer.