BARE2D
BARE2D::Renderer Class Referenceabstract

The renderer class holds some shader program, manages some VBO, some render batch(es), and allows customizable, simple rendering. More...

#include <Renderer.hpp>

+ Inheritance diagram for BARE2D::Renderer:
+ Collaboration diagram for BARE2D::Renderer:

Public Member Functions

 Renderer ()
 
virtual ~Renderer ()
 
virtual void begin ()
 Clears the necessary vectors, etc. to prepare for draw() calls, etc. More...
 
virtual void end ()
 Creates the renderbatches, does necessary stuff before render() call. More...
 
virtual void init ()
 Initializes all necessary bits of the renderer. More...
 
virtual void initUniforms ()
 Initializes all uniforms, such as colour attachments, depth attachments, etc. More...
 
virtual void destroy ()
 Frees all necessary memory. More...
 
virtual void render ()
 Actually renders the contents to the screen! More...
 
ShaderProgramgetShader ()
 

Protected Member Functions

virtual void preRender ()
 Does stuff inside of the render function, within the shader's use. More...
 
virtual void link (std::initializer_list< std::string > attributes)
 
virtual void createRenderBatches ()=0
 Constructs all of the render batches from data given by, say, draw() calls. More...
 

Protected Attributes

ShaderProgram m_shader
 
VAO m_vertexArrayObject
 
std::vector< RenderBatchm_batches
 

Detailed Description

The renderer class holds some shader program, manages some VBO, some render batch(es), and allows customizable, simple rendering.

Definition at line 15 of file Renderer.hpp.

Constructor & Destructor Documentation

◆ Renderer()

BARE2D::Renderer::Renderer ( )

Definition at line 7 of file Renderer.cpp.

◆ ~Renderer()

BARE2D::Renderer::~Renderer ( )
virtual

Definition at line 10 of file Renderer.cpp.

Member Function Documentation

◆ begin()

void BARE2D::Renderer::begin ( )
virtual

Clears the necessary vectors, etc. to prepare for draw() calls, etc.

Reimplemented in BARE2D::DebugRenderer, and BARE2D::FBORenderer.

Definition at line 13 of file Renderer.cpp.

References m_batches, m_shader, and BARE2D::ShaderProgram::use().

Referenced by BARE2D::FBORenderer::begin(), and BARE2D::DebugRenderer::begin().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ createRenderBatches()

virtual void BARE2D::Renderer::createRenderBatches ( )
protectedpure virtual

Constructs all of the render batches from data given by, say, draw() calls.

Implemented in BARE2D::DebugRenderer, BARE2D::TexturelessRenderer, BARE2D::FBORenderer, BARE2D::BasicRenderer, and BARE2D::BumpyRenderer.

Referenced by render().

+ Here is the caller graph for this function:

◆ destroy()

void BARE2D::Renderer::destroy ( )
virtual

Frees all necessary memory.

Reimplemented in BARE2D::FBORenderer.

Definition at line 43 of file Renderer.cpp.

References BARE2D::VAO::destroy(), BARE2D::ShaderProgram::destroy(), m_shader, and m_vertexArrayObject.

Referenced by BARE2D::FBORenderer::destroy().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ end()

void BARE2D::Renderer::end ( )
virtual

Creates the renderbatches, does necessary stuff before render() call.

Reimplemented in BARE2D::FBORenderer.

Definition at line 20 of file Renderer.cpp.

References m_shader, and BARE2D::ShaderProgram::unuse().

+ Here is the call graph for this function:

◆ getShader()

ShaderProgram * BARE2D::Renderer::getShader ( )

Definition at line 81 of file Renderer.cpp.

References m_shader.

◆ init()

void BARE2D::Renderer::init ( )
virtual

Initializes all necessary bits of the renderer.

Reimplemented in BARE2D::DebugRenderer, BARE2D::TexturelessRenderer, BARE2D::FBORenderer, and BARE2D::BasicRenderer.

Definition at line 25 of file Renderer.cpp.

References BARE2D::VAO::init(), initUniforms(), m_shader, m_vertexArrayObject, BARE2D::ShaderProgram::unuse(), and BARE2D::ShaderProgram::use().

Referenced by BARE2D::BasicRenderer::init(), BARE2D::FBORenderer::init(), BARE2D::TexturelessRenderer::init(), and BARE2D::DebugRenderer::init().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initUniforms()

void BARE2D::Renderer::initUniforms ( )
virtual

Initializes all uniforms, such as colour attachments, depth attachments, etc.

Reimplemented in BARE2D::BumpyRenderer, and BARE2D::FBORenderer.

Definition at line 40 of file Renderer.cpp.

Referenced by init().

+ Here is the caller graph for this function:

◆ link()

void BARE2D::Renderer::link ( std::initializer_list< std::string >  attributes)
protectedvirtual

Definition at line 85 of file Renderer.cpp.

References BARE2D::ShaderProgram::bindFragOutputLocation(), BARE2D::ShaderProgram::linkShaders(), and m_shader.

Referenced by BARE2D::BasicRenderer::init(), BARE2D::FBORenderer::init(), BARE2D::TexturelessRenderer::init(), and BARE2D::DebugRenderer::init().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ preRender()

virtual void BARE2D::Renderer::preRender ( )
inlineprotectedvirtual

Does stuff inside of the render function, within the shader's use.

Reimplemented in BARE2D::FBORenderer, BARE2D::BumpyRenderer, BARE2D::TexturelessRenderer, and BARE2D::BasicRenderer.

Definition at line 56 of file Renderer.hpp.

Referenced by render().

+ Here is the caller graph for this function:

◆ render()

Field Documentation

◆ m_batches

◆ m_shader

◆ m_vertexArrayObject


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