|
| BaseOffscreenRenderStage (const std::string &shaderFilepath, const nlohmann::json &templateFramebufferDescription) |
| Constructs a new Base Offscreen Render Stage object.
|
|
void | setTargetTexture (std::shared_ptr< Texture > texture, std::size_t targetID) |
| I don't really know what my intention for this was.
|
|
std::size_t | attachTextureAsTarget (std::shared_ptr< Texture > textureHandle) |
| Adds a texture to this stage's list of target textures.
|
|
std::size_t | attachTextureAsTarget (const std::string &targetName, std::shared_ptr< Texture > textureHandle) |
| Adds a texture to this stage's list of named target textures.
|
|
void | declareRenderTarget (const std::string &name, unsigned int index) |
| Assigns a name to an attached target texture, intended to be used by the system connecting render stages together by input and output.
|
|
std::shared_ptr< Texture > | getRenderTarget (const std::string &name) |
| Gets a named render target texture from this stage.
|
|
void | detachTargetTexture (std::size_t targetTextureID) |
| (in theory) Removes a target texture from this stage's list of target textures.
|
|
void | removeRenderTarget (const std::string &name) |
| (in theory) Removes a target texture that was given a name from a list of named target textures.
|
|
bool | hasAttachedRBO () const |
| Tests whether an RBO was attached to this render stage.
|
|
bool | hasOwnRBO () const |
| Tests whether this stage has created and owns an RBO.
|
|
RBO & | getOwnRBO () |
| Returns the RBO owned by this stage's Framebuffer, if it has one.
|
|
void | attachRBO (RBO &rbo) |
| Attaches an RBO to this stage's Framebuffer which may or may not be owned by it.
|
|
void | detachRBO () |
| Detaches the RBO currently attached to this stage's Framebuffer.
|
|
| BaseRenderStage (const std::string &shaderFilepath) |
| Constructs a new BaseRenderStage object.
|
|
| BaseRenderStage (const BaseRenderStage &other)=delete |
|
| BaseRenderStage (BaseRenderStage &&other)=delete |
|
BaseRenderStage & | operator= (const BaseRenderStage &other)=delete |
|
BaseRenderStage & | operator= (BaseRenderStage &&other)=delete |
|
virtual | ~BaseRenderStage () |
| Destroys the Base Render Stage object.
|
|
virtual void | setup (const glm::u16vec2 &targetDimensions)=0 |
| Sets up the program per its configuration.
|
|
virtual void | validate ()=0 |
| Validates this stage by checking for availability of required resources, connections with adjacent render stages.
|
|
virtual void | execute ()=0 |
| Executes this render stage, presumably after preceding render stages have been executed.
|
|
void | attachTexture (const std::string &name, std::shared_ptr< Texture > textureHandle) |
| Attaches a named texture to this rendering stage.
|
|
void | attachMesh (const std::string &name, std::shared_ptr< StaticMesh > meshHandle) |
| Attaches a named texture to this rendering stage.
|
|
void | attachMaterial (const std::string &name, std::shared_ptr< Material > materialHandle) |
| Attaches a named material to this rendering stage.
|
|
std::shared_ptr< Texture > | getTexture (const std::string &name) |
| Gets a reference to an attached texture by its name.
|
|
std::shared_ptr< StaticMesh > | getMesh (const std::string &name) |
| Gets a reference to an attached mesh by its name.
|
|
std::shared_ptr< Material > | getMaterial (const std::string &name) |
| Gets a reference to an attached material by its name.
|
|
void | useViewport () |
| Should be called once this stage's shader is made active; applies the viewport config associated with this render stage.
|
|
void | setTargetViewport (const SDL_Rect &targetViewport) |
| Sets the rendering area for this stage, a rectangular sub-region of the target texture.
|
|
void | submitToRenderQueue (OpaqueRenderUnit renderUnit) |
| Adds an opaque render unit expected by this stage to its associated render queue.
|
|
void | submitToRenderQueue (LightRenderUnit lightRenderUnit) |
| Adds a light render unit expected by this stage to its associated render queue.
|
|
|
std::shared_ptr< Framebuffer > | mFramebufferHandle |
| The framebuffer owned by this stage, to which this stage renders its results.
|
|
nlohmann::json | mTemplateFramebufferDescription |
| A description of this stage's framebuffer, used as a template to create a framebuffer matching requested render dimensions.
|
|
std::map< std::string, unsigned int > | mRenderTargets {} |
| A list of named render target textures along with their indices in this stage's framebuffer's target color buffer list.
|
|
GLuint | mVertexArrayObject {} |
| The OpenGL vertex array object associated with this object.
|
|
std::shared_ptr< ShaderProgram > | mShaderHandle |
| A handle to the compiled and uploaded shader program associated with this render stage.
|
|
std::map< std::string, std::shared_ptr< Texture > > | mTextureAttachments {} |
| This stage's named texture attachments.
|
|
std::map< std::string, std::shared_ptr< StaticMesh > > | mMeshAttachments {} |
| This stage's named mesh attachments.
|
|
std::map< std::string, std::shared_ptr< Material > > | mMaterialAttachments {} |
| This stage's named material attachments.
|
|
std::priority_queue< OpaqueRenderUnit > | mOpaqueMeshQueue {} |
| A queue containing all the opaque meshes to be rendered this frame by this stage.
|
|
std::priority_queue< LightRenderUnit > | mLightQueue {} |
| A queue containing all the light units to be rendered this frame by this stage.
|
|
SDL_Rect | mTargetViewport {0, 0, 800, 600} |
| The rectangle defining the sub-region of its target texture to which this render stage renders.
|
|
Base class for render stages which render to an offscreen buffer.