![]() |
Castor3D 0.17.0
Multiplatform 3D engine
|
#include <NodesPass.hpp>
Public Member Functions | |
virtual | ~NodesPass () noexcept=default |
C3D_API void | update (CpuUpdater &updater) |
Updates the render pass, CPU wise. | |
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 TextureCombine | adjustFlags (TextureCombine const &textureCombine) const |
Filters the given textures flags using this pass needed textures. | |
C3D_API SceneFlags | adjustFlags (SceneFlags flags) const |
Adjusts given flags to match the render pass requirements. | |
C3D_API bool | areValidPassFlags (PassComponentCombine const &passFlags) const noexcept |
virtual C3D_API bool | isPassEnabled () 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 |
ComponentModeFlags | getComponentsMask () const noexcept |
bool | isDirty () 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 |
![]() | |
Engine * | getOwner () const noexcept |
void | setOwner (Engine &owner) noexcept |
![]() | |
NamedBaseT (T name) noexcept | |
Constructor. | |
T const & | getName () const noexcept |
Retrieves the name. | |
void | rename (T name) noexcept |
Static Public Member Functions | |
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 | |
NodesPassChangeSignal | onSortNodes |
Protected Member Functions | |
C3D_API | NodesPass (RenderDevice const &device, castor::String const &categoryName, castor::String const &typeName, castor::String const &fullName, crg::ImageViewIdArray targetImage, crg::ImageViewIdArray targetDepth, NodesPassDesc const &desc) |
Constructor. | |
virtual C3D_API void | doUpdate (CpuUpdater &updater)=0 |
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 |
virtual C3D_API SceneFlags | doAdjustSceneFlags (SceneFlags flags) const |
virtual C3D_API bool | doAreValidPassFlags (PassComponentCombine const &passFlags) const noexcept=0 |
virtual C3D_API bool | doIsValidNode (SceneNode const &node) const noexcept=0 |
![]() | |
OwnedBy (Engine &owner) noexcept | |
Constructor. | |
Protected Attributes | |
RenderDevice const & | m_device |
RenderSystem & | m_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_safeBand { false } |
bool | m_isDirty { true } |
SceneUbo const * | m_sceneUbo {} |
uint32_t | m_index { 0u } |
std::optional< bool > | m_handleStatic { std::nullopt } |
ComponentModeFlags | m_componentsMask {} |
![]() | |
T | m_name |
|
protected |
Constructor.
[in] | device | The GPU device. |
[in] | categoryName | The category name. |
[in] | typeName | The type name. |
[in] | fullName | The pass name. |
[in] | targetImage | The image this pass renders to. |
[in] | targetDepth | The depth image this pass renders to. |
[in] | desc | The construction data. |
|
virtualdefaultnoexcept |
|
static |
Adds background descriptor layout bindings to given list.
[in] | background | The background. |
[in,out] | bindings | Receives the bindings. |
[in] | shaderStages | The impacted shader stages. |
[in,out] | index | The current binding index. |
|
static |
|
static |
Adds clusters descriptor layout bindings to given list.
[in] | frustumClusters | The clusters. |
[in,out] | bindings | Receives the bindings. |
[in] | shaderStages | The impacted shader stages. |
[in,out] | index | The current binding index. |
|
static |
|
static |
Adds indirect lighting descriptor layout bindings to given list.
[in] | flags | The scene flags. |
[in] | indirectLighting | The indirect lighting data. |
[in,out] | bindings | Receives the bindings. |
[in] | shaderStages | The impacted shader stages. |
[in,out] | index | The current binding index. |
|
static |
|
static |
Adds shadow maps descriptor layout bindings to given list.
[in,out] | bindings | Receives the bindings. |
[in] | shaderStages | The impacted shader stages. |
[in,out] | index | The current binding index. |
|
static |
Adds shadow maps descriptor layout bindings to given list.
[in] | sceneFlags | Used to define what shadow maps need to be bound. |
[in,out] | bindings | Receives the bindings. |
[in] | shaderStages | The impacted shader stages. |
[in,out] | index | The current binding index. |
|
static |
|
static |
C3D_API PassComponentCombine castor3d::NodesPass::adjustFlags | ( | PassComponentCombine const & | passCombine | ) | const |
Adjusts given flags to match the render pass requirements.
[in] | passCombine | The flags. |
C3D_API SceneFlags castor3d::NodesPass::adjustFlags | ( | SceneFlags | flags | ) | const |
Adjusts given flags to match the render pass requirements.
[in] | flags | The flags. |
C3D_API SubmeshComponentCombine castor3d::NodesPass::adjustFlags | ( | SubmeshComponentCombine const & | submeshCombine | ) | const |
Adjusts given flags to match the render pass requirements.
[in] | submeshCombine | The flags. |
C3D_API TextureCombine castor3d::NodesPass::adjustFlags | ( | TextureCombine const & | textureCombine | ) | const |
Filters the given textures flags using this pass needed textures.
[in] | textureCombine | The textures flags. |
|
noexcept |
name Getters.
Referenced by castor3d::RenderTechniqueNodesPass::areValidPassFlags().
|
protectedvirtual |
Reimplemented in castor3d::RenderNodesPass, and castor3d::RenderTechniqueNodesPass.
|
protectedvirtual |
Reimplemented in castor3d::RenderNodesPass.
|
protectedpure virtualnoexcept |
Implemented in castor3d::RenderNodesPass.
|
protectedpure virtualnoexcept |
Implemented in castor3d::RenderNodesPass.
|
protectedvirtualnoexcept |
[in] | pass | The material pass. |
true
if the pass is rendered through this nodes pass. Reimplemented in castor3d::RenderNodesPass.
|
protectedvirtualnoexcept |
[in] | object | The rendered object. |
true
if the object is rendered through this nodes pass. Reimplemented in castor3d::RenderNodesPass.
|
protectedpure virtual |
Updates the render pass, CPU wise.
[in,out] | updater | The update data. |
Implemented in castor3d::RenderNodesPass.
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
References m_componentsMask.
|
inlinenoexcept |
References m_filters.
|
inlinenoexcept |
References m_typeID.
|
inlinenoexcept |
References m_typeName.
|
inlinenoexcept |
References m_handleStatic.
Referenced by filtersNonStatic(), and filtersStatic().
|
inlinenoexcept |
References m_isDirty.
|
virtualnoexcept |
Reimplemented in castor3d::VoxelizePass, castor3d::RenderNodesPass, castor3d::RenderTechniqueNodesPass, and castor3d::ShadowMapPass.
Referenced by castor3d::IsNodesPassEnabled::operator()().
|
noexcept |
C3D_API void castor3d::NodesPass::update | ( | CpuUpdater & | updater | ) |
Updates the render pass, CPU wise.
[in,out] | updater | The update data. |
|
protected |
Referenced by castor3d::RenderNodesPass::getMatrixUbo().
|
protected |
|
protected |
Referenced by getComponentsMask().
|
protected |
|
protected |
Referenced by getRenderFilters().
|
protected |
Referenced by filtersNonStatic(), filtersStatic(), and handleStatic().
|
protected |
|
protected |
Referenced by isDirty().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Referenced by getTypeID().
|
protected |
Referenced by getTypeName().
|
mutable |