8#ifndef GALAXY_GRAPHICS_RENDERER_HPP_
9#define GALAXY_GRAPHICS_RENDERER_HPP_
11#include <ankerl/unordered_dense.h>
OpenGL 4.6 Renderer that tries to mimic vulkan pipeline.
ShaderBuffer m_camera_storage
Camera buffer.
unsigned int m_uniform_data_index
Uniform data current max index.
std::vector< RenderCmd > m_commands
RenderCmd storage.
std::vector< RenderData > m_uniform_data
Renderable uniform data storage.
void end_pass(Camera &camera)
Renders everything configured in this pass.
ShaderBuffer m_uniform_storage
Renderable uniforms buffer.
VertexBatch m_quads
Quad vertex batch.
void push_cmd(RenderCmd &cmd) noexcept
Push a renderable object.
void bind_pipeline(RenderPipeline &pipeline)
Binds the GPU state specified in pipeline.
RenderPass * m_pass
Currently active pass.
void begin_pass(RenderPass &pass)
Binds framebuffer, viewport, sissor region and clears buffers.
void prepare()
Called only in the update loop when we need to refresh data to render.
RenderPipeline * m_pipeline
Currently active pipeline.
OpenGL Shader storage buffer.
A group of vertices for multiple renderables batched together.
Data required to draw an object.
The configuration for drawing something.