Lysa  0.0
Lysa 3D Engine
DepthPrepass Class Reference

Detailed Description

Render pass for generating the depth pre-pass

+ Inheritance diagram for DepthPrepass:

Public Member Functions

 DepthPrepass (const RendererConfiguration &config, bool withStencil)
 
void updatePipelines (const std::unordered_map< pipeline_id, std::vector< unique_id >> &pipelineIds)
 
auto getMultisampledDepthAttachment (const uint32 frameIndex)
 
void render (vireo::CommandList &commandList, const SceneFrameData &scene, const std::shared_ptr< vireo::RenderTarget > &depthAttachment, uint32 frameIndex)
 
void resize (const vireo::Extent &extent, const std::shared_ptr< vireo::CommandList > &commandList) override
 
- Public Member Functions inherited from Renderpass
 Renderpass (const RendererConfiguration &config, const std::string &name)
 
virtual void update (uint32 frameIndex)
 
virtual ~Renderpass () = default
 
 Renderpass (Renderpass &) = delete
 
Renderpass & operator= (Renderpass &) = delete
 

Additional Inherited Members

- Static Public Member Functions inherited from Renderpass
static void destroyShaderModules ()
 
- Protected Member Functions inherited from Renderpass
std::shared_ptr< vireo::ShaderModule > loadShader (const std::string &shaderName) const
 
void init (vireo::GraphicPipelineConfiguration &pipelineConfig, vireo::RenderingConfiguration &renderingConfig, const std::shared_ptr< vireo::DescriptorLayout > &descriptorLayout, bool withStencil)
 
void init (vireo::GraphicPipelineConfiguration &pipelineConfig, vireo::RenderingConfiguration &renderingConfig, bool withStencil) const
 
void initForScene (vireo::GraphicPipelineConfiguration &pipelineConfig, vireo::RenderingConfiguration &renderingConfig, bool withStencil) const
 
void initRendering (vireo::CommandList &commandList, const std::shared_ptr< vireo::GraphicPipeline > &pipeline, const std::shared_ptr< vireo::DescriptorSet > &sceneDescriptorSet, const std::shared_ptr< vireo::DescriptorSet > &descriptorSet)
 
void initCompute (vireo::CommandList &commandList, const std::shared_ptr< vireo::ComputePipeline > &pipeline, const std::shared_ptr< vireo::DescriptorSet > &sceneDescriptorSet, const std::shared_ptr< vireo::DescriptorSet > &descriptorSet)
 
- Protected Attributes inherited from Renderpass
const std::string name
 
const RendererConfigurationconfig
 
- Static Protected Attributes inherited from Renderpass
static std::mutex shaderModulesMutex
 
static std::unordered_map< std::string, std::shared_ptr< vireo::ShaderModule > > shaderModules
 

Constructor & Destructor Documentation

DepthPrepass ( const RendererConfiguration config,
bool  withStencil 
)

Constructs a DepthPrepass render pass

Parameters
configThe renderer configuration
withStencilWhether to enable stencil testing

Member Function Documentation

auto getMultisampledDepthAttachment ( const uint32  frameIndex)
inline

Gets the multisampled depth attachment for a specific frame

Parameters
frameIndexIndex of the current frame
Returns
A shared pointer to the multisampled depth render target
void render ( vireo::CommandList &  commandList,
const SceneFrameData scene,
const std::shared_ptr< vireo::RenderTarget > &  depthAttachment,
uint32  frameIndex 
)

Renders the depth pre-pass

Parameters
commandListThe command list to record rendering commands into
sceneThe scene frame data
depthAttachmentThe target depth attachment
frameIndexIndex of the current frame
void resize ( const vireo::Extent &  extent,
const std::shared_ptr< vireo::CommandList > &  commandList 
)
overridevirtual

Recreate pass resources after a resize (default: no-op).

Reimplemented from lysa::Renderpass::resize()

void updatePipelines ( const std::unordered_map< pipeline_id, std::vector< unique_id >> &  pipelineIds)

Updates the graphics pipelines based on active pipeline IDs

Parameters
pipelineIdsMap of pipeline IDs to unique object IDs