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... | |
| ShaderProgram * | getShader () |
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< RenderBatch > | m_batches |
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.
| BARE2D::Renderer::Renderer | ( | ) |
Definition at line 7 of file Renderer.cpp.
|
virtual |
Definition at line 10 of file Renderer.cpp.
|
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:
|
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:
|
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:
|
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:| ShaderProgram * BARE2D::Renderer::getShader | ( | ) |
Definition at line 81 of file Renderer.cpp.
References m_shader.
|
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:
|
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:
|
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:
|
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:
|
virtual |
Actually renders the contents to the screen!
Reimplemented in BARE2D::DebugRenderer, BARE2D::FBORenderer, and BARE2D::BumpyRenderer.
Definition at line 48 of file Renderer.cpp.
References BARE2D::VAO::bind(), BARE2D::GLContext::bindTexture(), createRenderBatches(), BARE2D::GLContextManager::getContext(), m_batches, m_shader, m_vertexArrayObject, preRender(), BARE2D::GLContext::setActiveTexture(), BARE2D::VAO::unbind(), BARE2D::ShaderProgram::unuse(), and BARE2D::ShaderProgram::use().
Here is the call graph for this function:
|
protected |
Definition at line 67 of file Renderer.hpp.
Referenced by begin(), BARE2D::BumpyRenderer::createRenderBatches(), BARE2D::BasicRenderer::createRenderBatches(), BARE2D::FBORenderer::createRenderBatches(), BARE2D::TexturelessRenderer::createRenderBatches(), BARE2D::BumpyRenderer::render(), BARE2D::FBORenderer::render(), and render().
|
protected |
Definition at line 65 of file Renderer.hpp.
Referenced by begin(), BARE2D::FBORenderer::begin(), destroy(), end(), BARE2D::FBORenderer::end(), getShader(), BARE2D::BasicRenderer::init(), BARE2D::FBORenderer::init(), BARE2D::TexturelessRenderer::init(), init(), BARE2D::DebugRenderer::init(), BARE2D::FBORenderer::initUniforms(), BARE2D::BumpyRenderer::initUniforms(), link(), BARE2D::BasicRenderer::preRender(), BARE2D::TexturelessRenderer::preRender(), BARE2D::BumpyRenderer::preRender(), BARE2D::FBORenderer::preRender(), BARE2D::BumpyRenderer::render(), BARE2D::FBORenderer::render(), render(), and BARE2D::DebugRenderer::render().
|
protected |
Definition at line 66 of file Renderer.hpp.
Referenced by BARE2D::BumpyRenderer::createRenderBatches(), BARE2D::BasicRenderer::createRenderBatches(), BARE2D::FBORenderer::createRenderBatches(), BARE2D::TexturelessRenderer::createRenderBatches(), BARE2D::DebugRenderer::createRenderBatches(), destroy(), BARE2D::BasicRenderer::init(), BARE2D::FBORenderer::init(), BARE2D::TexturelessRenderer::init(), init(), BARE2D::DebugRenderer::init(), BARE2D::BumpyRenderer::render(), BARE2D::FBORenderer::render(), render(), and BARE2D::DebugRenderer::render().