Castor3D 0.16.0
Multiplatform 3D engine
Public Member Functions | Static Public Attributes | List of all members
castor3d::DepthPass Class Reference

#include <DepthPass.hpp>

Inheritance diagram for castor3d::DepthPass:
Inheritance graph
[legend]
Collaboration diagram for castor3d::DepthPass:
Collaboration graph
[legend]

Public Member Functions

C3D_API DepthPass (RenderTechnique *parent, crg::FramePass const &pass, crg::GraphContext &context, crg::RunnableGraph &graph, RenderDevice const &device, crg::ImageViewIdArray targetDepth, SsaoConfig const &ssaoConfig, RenderNodesPassDesc const &renderPassDesc)
 Constructor.
 
C3D_API ShaderFlags getShaderFlags () const noexcept override
 
- Public Member Functions inherited from castor3d::RenderTechniqueNodesPass
C3D_API void accept (RenderTechniqueVisitor &visitor) override
 Visitor acceptance function.
 
C3D_API void update (CpuUpdater &updater) override
 Updates the render pass, CPU wise.
 
C3D_API PipelineFlags createPipelineFlags (PassComponentCombine const &passComponents, SubmeshComponentCombine const &submeshComponents, BlendMode colourBlendMode, BlendMode alphaBlendMode, RenderPassTypeID renderPassTypeId, LightingModelID lightingModelId, BackgroundModelID backgroundModelId, VkCompareOp alphaFunc, VkCompareOp blendAlphaFunc, TextureCombine const &textures, ProgramFlags const &programFlags, SceneFlags const &sceneFlags, VkPrimitiveTopology topology, bool isFrontCulled, uint32_t passLayerIndex, GpuBufferOffsetT< castor::Point4f > const &morphTargets, SubmeshRenderData *submeshData) const override
 Creates the pipeline flags for given configuration.
 
C3D_API ShaderFlags getShaderFlags () const noexcept override
 
C3D_API void countNodes (RenderInfo &info) const noexcept override
 Registers nodes counts to given RenderInfo.
 
C3D_API bool areValidPassFlags (PassComponentCombine const &passFlags) const noexcept override
 
C3D_API bool isPassEnabled () const noexcept override
 
EnginegetEngine () const noexcept
 
Scene const & getScene () const noexcept
 
RenderTechnique const & getTechnique () const noexcept
 
DebugConfiggetDebugConfig () const noexcept
 
ClustersConfig const * getClustersConfig () const noexcept override
 
bool hasSsao () const noexcept override
 
bool areDebugTargetsEnabled () const noexcept override
 
- Public Member Functions inherited from castor3d::RenderNodesPass
C3D_API ~RenderNodesPass () noexcept override
 Destructor.
 
C3D_API void getSubmeshShaderSource (PipelineFlags const &flags, ast::ShaderBuilder &builder) const
 Retrieves the geometry shader source matching the given flags.
 
C3D_API void getPixelShaderSource (PipelineFlags const &flags, ast::ShaderBuilder &builder) const
 Retrieves the pixel shader source matching the given flags.
 
C3D_API void forceAdjustFlags (PipelineFlags &flags) const
 Adjusts given flags to match the render pass requirements.
 
C3D_API SubmeshComponentCombine adjustFlags (SubmeshComponentCombine const &submeshCombine) const
 Adjusts given flags to match the render pass requirements.
 
C3D_API PassComponentCombine adjustFlags (PassComponentCombine const &passCombine) const
 Adjusts given flags to match the render pass requirements.
 
C3D_API ProgramFlags adjustFlags (ProgramFlags flags) const
 Adjusts given flags to match the render pass requirements.
 
C3D_API SceneFlags adjustFlags (SceneFlags flags) const
 Adjusts given flags to match the render pass requirements.
 
C3D_API TextureCombine adjustFlags (TextureCombine const &textureCombine) const
 Filters the given textures flags using this pass needed textures.
 
C3D_API PipelineFlags createPipelineFlags (PassComponentCombine const &passComponents, SubmeshComponentCombine const &submeshComponents, BlendMode colourBlendMode, BlendMode alphaBlendMode, RenderPassTypeID renderPassTypeId, LightingModelID lightingModelId, BackgroundModelID backgroundModelId, VkCompareOp alphaFunc, VkCompareOp blendAlphaFunc, TextureCombine const &textures, ProgramFlags const &programFlags, SceneFlags const &sceneFlags, VkPrimitiveTopology topology, bool isFrontCulled, uint32_t passLayerIndex, GpuBufferOffsetT< castor::Point4f > const &morphTargets, SubmeshRenderData const *submeshData) const noexcept
 Creates the pipeline flags for given configuration.
 
C3D_API PipelineFlags createPipelineFlags (Pass const &pass, TextureCombine const &textures, SubmeshComponentCombine const &submeshComponents, ProgramFlags const &programFlags, SceneFlags const &sceneFlags, VkPrimitiveTopology topology, bool isFrontCulled, GpuBufferOffsetT< castor::Point4f > const &morphTargets, SubmeshRenderData const *submeshData) const noexcept
 Creates the pipeline flags for given configuration.
 
C3D_API PipelineAndID prepareBackPipeline (PipelineFlags const &pipelineFlags, ashes::PipelineVertexInputStateCreateInfoCRefArray const &vertexLayouts, ashes::DescriptorSetLayout const *meshletDescriptorLayout)
 Prepares the pipeline matching the given flags, for back face culling nodes.
 
C3D_API PipelineAndID prepareFrontPipeline (PipelineFlags const &pipelineFlags, ashes::PipelineVertexInputStateCreateInfoCRefArray const &vertexLayouts, ashes::DescriptorSetLayout const *meshletDescriptorLayout)
 Prepares the pipeline matching the given flags, for front face culling nodes.
 
C3D_API void cleanupPipelines ()
 Cleans up all pipelines from the lists.
 
C3D_API void initialiseAdditionalDescriptor (RenderPipeline &pipeline, ShadowMapLightTypeArray const &shadowMaps, ShadowBuffer const *shadowBuffer)
 Initialises the additional descriptor set.
 
C3D_API void setIgnoredNode (SceneNode const &node)
 Sets the node ignored node.
 
C3D_API void countNodes (RenderInfo &info) const noexcept
 Registers nodes counts to given RenderInfo.
 
C3D_API bool areValidPassFlags (PassComponentCombine const &passFlags) const noexcept
 
C3D_API bool isValidPass (Pass const &pass) const noexcept
 
C3D_API bool isValidRenderable (RenderedObject const &object) const noexcept
 
C3D_API bool isValidNode (SceneNode const &node) const noexcept
 
C3D_API bool allowClusteredLighting (ClustersConfig const &config) const noexcept
 
C3D_API bool hasNodes () const noexcept
 
C3D_API ScenegetScene () const noexcept
 
C3D_API SceneNode const * getIgnoredNode () const noexcept
 
C3D_API bool isMeshShading () const noexcept
 
C3D_API PipelinesNodesT< SubmeshRenderNode > const & getSubmeshNodes () const
 
C3D_API InstantiatedPipelinesNodesT< SubmeshRenderNode > const & getInstancedSubmeshNodes () const
 
C3D_API PipelinesNodesT< BillboardRenderNode > const & getBillboardNodes () const
 
C3D_API uint32_t getMaxPipelineId () const
 
C3D_API PipelineBufferArray const & getPassPipelineNodes () const
 
C3D_API uint32_t getPipelineNodesIndex (PipelineBaseHash const &hash, ashes::BufferBase const &buffer) const
 
C3D_API uint32_t getDrawCallsCount () const
 
C3D_API RenderCounts const & getVisibleCounts () const
 
ComponentModeFlags getComponentsMask () const noexcept
 
bool isOrderIndependent () const noexcept
 
SceneCullergetCuller () const noexcept
 
CameraUbo const & getMatrixUbo () const noexcept
 
uint32_t getPipelinesCount () const noexcept
 
bool isDirty () const noexcept
 
bool forceTwoSided () const noexcept
 
RenderFilters getRenderFilters () const noexcept
 
castor::String const & getTypeName () const noexcept
 
RenderPassTypeID getTypeID () const noexcept
 
bool filtersStatic () const noexcept
 
bool filtersNonStatic () const noexcept
 
bool handleStatic () const noexcept
 
DeferredLightingFilter getDeferredLightingFilter () const noexcept
 
ParallaxOcclusionFilter getParallaxOcclusionFilter () const noexcept
 
- Public Member Functions inherited from castor::OwnedBy< Engine >
Engine * getOwner () const
 
- Public Member Functions inherited from castor::NamedBaseT< T >
 NamedBaseT (T name) noexcept
 Constructor.
 
T const & getName () const noexcept
 Retrieves the name.
 
void rename (T name) noexcept
 
- Public Member Functions inherited from castor3d::RenderTechniquePass
virtual C3D_API ~RenderTechniquePass () noexcept=default
 
C3D_API EnginegetEngine () const noexcept
 
C3D_API IndirectLightingData const & getIndirectLighting () const noexcept
 
C3D_API DebugConfiggetDebugConfig () const noexcept
 
C3D_API bool areDebugTargetsEnabled () const noexcept
 
Scene const & getScene () noexcept
 
Scene const & getScene () const noexcept
 
RenderTechnique const & getTechnique () const noexcept
 

Static Public Attributes

static C3D_API castor::String const Type
 

Additional Inherited Members

- Static Public Member Functions inherited from castor3d::RenderNodesPass
static C3D_API ashes::PipelineColorBlendStateCreateInfo createBlendState (BlendMode colourBlendMode, BlendMode alphaBlendMode, uint32_t attachesCount)
 
static C3D_API void addShadowBindings (SceneFlags const &sceneFlags, ashes::VkDescriptorSetLayoutBindingArray &bindings, VkShaderStageFlags shaderStages, uint32_t &index)
 Adds shadow maps descriptor layout bindings to given list.
 
static C3D_API void addShadowBindings (ashes::VkDescriptorSetLayoutBindingArray &bindings, VkShaderStageFlags shaderStages, uint32_t &index)
 Adds shadow maps descriptor layout bindings to given list.
 
static C3D_API void addBackgroundBindings (SceneBackground const &background, ashes::VkDescriptorSetLayoutBindingArray &bindings, VkShaderStageFlags shaderStages, uint32_t &index)
 Adds background descriptor layout bindings to given list.
 
static C3D_API void addGIBindings (SceneFlags flags, IndirectLightingData const &indirectLighting, ashes::VkDescriptorSetLayoutBindingArray &bindings, VkShaderStageFlags shaderStages, uint32_t &index)
 Adds indirect lighting descriptor layout bindings to given list.
 
static C3D_API void addClusteredLightingBindings (FrustumClusters const &frustumClusters, ashes::VkDescriptorSetLayoutBindingArray &bindings, VkShaderStageFlags shaderStages, uint32_t &index)
 Adds clusters descriptor layout bindings to given list.
 
static C3D_API void addShadowDescriptor (RenderSystem const &renderSystem, crg::RunnableGraph &graph, ashes::WriteDescriptorSetArray &descriptorWrites, ShadowMapLightTypeArray const &shadowMaps, ShadowBuffer const &shadowBuffer, uint32_t &index)
 
static C3D_API void addShadowDescriptor (RenderSystem const &renderSystem, crg::RunnableGraph &graph, SceneFlags const &sceneFlags, ashes::WriteDescriptorSetArray &descriptorWrites, ShadowMapLightTypeArray const &shadowMaps, ShadowBuffer const &shadowBuffer, uint32_t &index)
 
static C3D_API void addBackgroundDescriptor (SceneBackground const &background, ashes::WriteDescriptorSetArray &descriptorWrites, crg::ImageViewIdArray const &targetImage, uint32_t &index)
 
static C3D_API void addGIDescriptor (SceneFlags sceneFlags, IndirectLightingData const &indirectLighting, ashes::WriteDescriptorSetArray &descriptorWrites, uint32_t &index)
 
static C3D_API void addClusteredLightingDescriptor (FrustumClusters const &frustumClusters, ashes::WriteDescriptorSetArray &descriptorWrites, uint32_t &index)
 
- Public Attributes inherited from castor3d::RenderNodesPass
RenderNodesPassChangeSignal onSortNodes
 
- Protected Member Functions inherited from castor3d::RenderTechniqueNodesPass
C3D_API RenderTechniqueNodesPass (RenderTechnique *parent, crg::FramePass const &pass, crg::GraphContext &context, crg::RunnableGraph &graph, RenderDevice const &device, castor::String const &typeName, crg::ImageViewIdArray targetImage, crg::ImageViewIdArray targetDepth, RenderNodesPassDesc const &renderPassDesc, RenderTechniquePassDesc const &techniquePassDesc)
 Constructor.
 
C3D_API void doAccept (castor3d::RenderTechniqueVisitor &visitor) override
 Visitor acceptance function.
 
C3D_API ProgramFlags doAdjustProgramFlags (ProgramFlags flags) const override
 
C3D_API SceneFlags doAdjustSceneFlags (SceneFlags flags) const override
 
C3D_API void doAddEnvBindings (ashes::VkDescriptorSetLayoutBindingArray &bindings, uint32_t &index) const
 
C3D_API void doAddGIBindings (ashes::VkDescriptorSetLayoutBindingArray &bindings, uint32_t &index) const
 
C3D_API void doAddPassSpecificsBindings (ashes::VkDescriptorSetLayoutBindingArray &bindings, uint32_t &index) const
 
C3D_API void doAddEnvDescriptor (ashes::WriteDescriptorSetArray &descriptorWrites, uint32_t &index) const
 
C3D_API void doAddGIDescriptor (ashes::WriteDescriptorSetArray &descriptorWrites, uint32_t &index) const
 
C3D_API void doAddPassSpecificsDescriptor (ashes::WriteDescriptorSetArray &descriptorWrites, uint32_t &index) const
 
- Protected Member Functions inherited from castor3d::RenderNodesPass
C3D_API RenderNodesPass (crg::FramePass const &pass, crg::GraphContext &context, crg::RunnableGraph &graph, RenderDevice const &device, castor::String const &typeName, crg::ImageViewIdArray targetImage, crg::ImageViewIdArray targetDepth, RenderNodesPassDesc const &desc)
 Constructor.
 
virtual C3D_API void doUpdateUbos (CpuUpdater &updater)
 Updates the render pass, CPU wise.
 
virtual C3D_API bool doIsValidPass (Pass const &pass) const noexcept
 
virtual C3D_API bool doIsValidRenderable (RenderedObject const &object) const noexcept
 
virtual C3D_API SubmeshComponentCombine doAdjustSubmeshComponents (SubmeshComponentCombine submeshCombine) const
 
C3D_API ShaderProgramRPtr doGetProgram (PipelineFlags const &flags)
 
C3D_API void doAccept (castor3d::RenderTechniqueVisitor &visitor)
 Visitor acceptance function.
 
C3D_API void doUpdateFlags (PipelineFlags &flags) const
 
C3D_API void doAddShadowBindings (Scene const &scene, ashes::VkDescriptorSetLayoutBindingArray &bindings, uint32_t &index) const
 
C3D_API void doAddBackgroundBindings (Scene const &scene, ashes::VkDescriptorSetLayoutBindingArray &bindings, uint32_t &index) const
 
C3D_API void doAddClusteredLightingBindings (RenderTarget const &target, ashes::VkDescriptorSetLayoutBindingArray &bindings, uint32_t &index) const
 
C3D_API void doAddShadowDescriptor (Scene const &scene, ashes::WriteDescriptorSetArray &descriptorWrites, ShadowMapLightTypeArray const &shadowMaps, ShadowBuffer const *shadowBuffer, uint32_t &index) const
 
C3D_API void doAddBackgroundDescriptor (Scene const &scene, ashes::WriteDescriptorSetArray &descriptorWrites, crg::ImageViewIdArray const &targetImage, uint32_t &index) const
 
C3D_API void doAddClusteredLightingDescriptor (RenderTarget const &target, ashes::WriteDescriptorSetArray &descriptorWrites, uint32_t &index) const
 
RenderQueuegetRenderQueue () const noexcept
 
- Protected Member Functions inherited from castor::OwnedBy< Engine >
 OwnedBy (Engine &owner)
 Constructor.
 
- Protected Member Functions inherited from castor3d::RenderTechniquePass
C3D_API RenderTechniquePass (RenderTechnique *parent, Scene const &scene, bool outputScattering)
 Constructor.
 
- Protected Attributes inherited from castor3d::RenderTechniqueNodesPass
Cameram_camera { nullptr }
 
ShaderFlags m_shaderFlags {}
 
SsaoConfig const * m_ssaoConfig {}
 
Texture const * m_ssao {}
 
IndirectLightingData m_indirectLighting
 
ClustersConfig const * m_clustersConfig {}
 
- Protected Attributes inherited from castor3d::RenderNodesPass
RenderDevice const & m_device
 
RenderSystemm_renderSystem
 
CameraUbo const & m_cameraUbo
 
crg::ImageViewIdArray m_targetImage
 
crg::ImageViewIdArray m_targetDepth
 
castor::String m_typeName
 
RenderPassTypeID m_typeID {}
 
RenderFilters m_filters { RenderFilter::eNone }
 
castor::String m_category
 
castor::Size m_size
 
bool m_oit { false }
 
bool m_forceTwoSided { false }
 
bool m_safeBand { false }
 
bool m_isDirty { true }
 
bool m_meshShading {}
 
SceneUbo const * m_sceneUbo {}
 
uint32_t m_index { 0u }
 
std::optional< bool > m_handleStatic { std::nullopt }
 
ComponentModeFlags m_componentsMask {}
 
bool m_allowClusteredLighting {}
 
DeferredLightingFilter m_deferredLightingFilter {}
 
ParallaxOcclusionFilter m_parallaxOcclusionFilter {}
 
- Protected Attributes inherited from castor::NamedBaseT< T >
m_name
 
- Protected Attributes inherited from castor3d::RenderTechniquePass
RenderTechniquem_parent {}
 
Scene const & m_scene
 
uint32_t m_drawCalls {}
 
bool m_outputScattering {}
 

Constructor & Destructor Documentation

◆ DepthPass()

C3D_API castor3d::DepthPass::DepthPass ( RenderTechnique * parent,
crg::FramePass const & pass,
crg::GraphContext & context,
crg::RunnableGraph & graph,
RenderDevice const & device,
crg::ImageViewIdArray targetDepth,
SsaoConfig const & ssaoConfig,
RenderNodesPassDesc const & renderPassDesc )

Constructor.

Parameters
[in]parentThe parent technique
[in]passThe parent frame pass.
[in]contextThe rendering context.
[in]graphThe runnable graph.
deviceThe GPU device.
targetDepthThe target depth textures.
[in]ssaoConfigThe SSAO configuration.
[in]renderPassDescThe render pass description.

Member Function Documentation

◆ getShaderFlags()

C3D_API ShaderFlags castor3d::DepthPass::getShaderFlags ( ) const
overridevirtualnoexcept

Reimplemented from castor3d::RenderNodesPass.

Member Data Documentation

◆ Type

C3D_API castor::String const castor3d::DepthPass::Type
static

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