Foray Library
rapid prototyping framework for crossplatform development of vulkan hardware ray tracing applications
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | List of all members
foray::stages::RasterizedRenderStage Class Reference

Base class for rasterized render stages (no built-in functionality) More...

#include <foray_rasterizedRenderStage.hpp>

Inheritance diagram for foray::stages::RasterizedRenderStage:
foray::stages::RenderStage foray::stages::GBufferStage

Public Member Functions

 RasterizedRenderStage ()=default
 
virtual void SetupDescriptors ()
 
virtual void CreateDescriptorSets ()
 
virtual void UpdateDescriptors ()
 
virtual void CreatePipelineLayout ()
 
- Public Member Functions inherited from foray::stages::RenderStage
 RenderStage ()=default
 
virtual void RecordFrame (VkCommandBuffer cmdBuffer, base::FrameRenderInfo &renderInfo)
 Records a frame to cmdBuffer.
 
virtual void Destroy ()
 Destroy the render stage. Finalizes all components.
 
virtual void Resize (const VkExtent2D &extent)
 Default implementation accesses mImageOutputs and calls ManagedImage::Resize(extent) on any set image.
 
std::vector< core::ManagedImage * > GetImageOutputs ()
 Gets a vector to all color attachments that will be included in a texture array and can be referenced in the shader pass.
 
core::ManagedImageGetImageOutput (std::string_view name, bool noThrow=false)
 Gets an image output.
 
virtual void OnShadersRecompiled (const std::unordered_set< uint64_t > &recompiled)
 Notifies the stage that the shader compiler instance has recompiled a shader.
 
virtual ~RenderStage ()
 

Protected Attributes

VkFramebuffer mFrameBuffer = nullptr
 
VkRenderPass mRenderpass = nullptr
 
core::DescriptorSet mDescriptorSet
 
VkPipeline mPipeline = nullptr
 
util::PipelineLayout mPipelineLayout
 
- Protected Attributes inherited from foray::stages::RenderStage
std::unordered_map< std::string, core::ManagedImage * > mImageOutputs
 Inheriting types should emplace their images onto this collection to provide them in GetImageOutput interface.
 
std::vector< uint64_t > mShaderKeys
 Inheriting types should emplace their shader keys onto this collection such that if a shader has been recompiled, ReloadShaders() will be called.
 
core::ContextmContext = nullptr
 Context object the renderstage is built upon.
 

Additional Inherited Members

- Protected Member Functions inherited from foray::stages::RenderStage
virtual void ReloadShaders ()
 Override this to reload all shaders and rebuild pipelines after a registered shader has been recompiled.
 
virtual void DestroyOutputImages ()
 Calls Destroy() on any image in mImageOutputs and clears mImageOutputs.
 

Detailed Description

Base class for rasterized render stages (no built-in functionality)

Constructor & Destructor Documentation

◆ RasterizedRenderStage()

foray::stages::RasterizedRenderStage::RasterizedRenderStage ( )
default

Member Function Documentation

◆ CreateDescriptorSets()

virtual void foray::stages::RasterizedRenderStage::CreateDescriptorSets ( )
inlinevirtual

Reimplemented in foray::stages::GBufferStage.

◆ CreatePipelineLayout()

virtual void foray::stages::RasterizedRenderStage::CreatePipelineLayout ( )
inlinevirtual

Reimplemented in foray::stages::GBufferStage.

◆ SetupDescriptors()

virtual void foray::stages::RasterizedRenderStage::SetupDescriptors ( )
inlinevirtual

Reimplemented in foray::stages::GBufferStage.

◆ UpdateDescriptors()

virtual void foray::stages::RasterizedRenderStage::UpdateDescriptors ( )
inlinevirtual

Member Data Documentation

◆ mDescriptorSet

core::DescriptorSet foray::stages::RasterizedRenderStage::mDescriptorSet
protected

◆ mFrameBuffer

VkFramebuffer foray::stages::RasterizedRenderStage::mFrameBuffer = nullptr
protected

◆ mPipeline

VkPipeline foray::stages::RasterizedRenderStage::mPipeline = nullptr
protected

◆ mPipelineLayout

util::PipelineLayout foray::stages::RasterizedRenderStage::mPipelineLayout
protected

◆ mRenderpass

VkRenderPass foray::stages::RasterizedRenderStage::mRenderpass = nullptr
protected

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