RenderPass is the base class for Kanzi render passes. More...
#include <kanzi/core.ui/graphics3d/render_pass.hpp>
Classes | |
struct | CameraSettings |
Camera settings structure. More... | |
Public Types | |
enum | AttachmentState { Detached, Detaching, Attaching, Attached } |
Attachment state for keeping track current status. More... | |
typedef BindingRuntimeContainer::const_iterator | BindingRuntimeConstIterator |
Const iterator type for binding runtime container. More... | |
typedef vector< AbstractBindingRuntimeSharedPtr > | BindingRuntimeContainer |
Container type for binding runtimes. More... | |
typedef BindingRuntimeContainer::iterator | BindingRuntimeIterator |
Iterator type for binding runtime container. More... | |
using | CameraSettingsPtr = unique_ptr< CameraSettings > |
Camera settings unique pointer type. More... | |
typedef ChildContainer::const_iterator | ChildConstIterator |
Child container iterator type. More... | |
typedef vector< RenderPassSharedPtr > | ChildContainer |
Container type for children. More... | |
![]() | |
typedef PropertyStorageContainer::const_iterator | PropertyStorageConstIterator |
typedef vector< PropertyStoragePtr > | PropertyStorageContainer |
typedef PropertyStorageContainer::iterator | PropertyStorageIterator |
typedef intrusive_ptr< AbstractPropertyTypeDescriptor::PropertyStorage > | PropertyStoragePtr |
typedef PropertyStorageContainer::reverse_iterator | PropertyStorageReverseIterator |
![]() | |
using | BindingHostConceptSharedPtr = shared_ptr< BindingHostConcept > |
Binding host concept shared pointer type. More... | |
using | BindingRuntimeConstIterator = BindingRuntimeContainer::const_iterator |
Const iterator for binding runtimes. More... | |
using | BindingRuntimeContainer = vector< AbstractBindingRuntimeSharedPtr > |
Container for binding runtimes. More... | |
using | BindingRuntimeIterator = BindingRuntimeContainer::iterator |
Iterator for binding runtimes. More... | |
Public Member Functions | |
void | addChild (RenderPassSharedPtr childRenderPass) |
Adds a render pass as the last child of the render pass you set. More... | |
void | attach () |
Attaches the render pass. More... | |
void | attachRecursive (Node &node) |
Recursively attaches a render pass tree. More... | |
ChildConstIterator | beginChildren () const |
Returns an iterator to the beginning of the container of child render passes. More... | |
BindingLookupContextPtr | createLookupContext (RenderPassSharedPtr templateRoot) |
Creates a lookup context for a given render pass. More... | |
void | detach () |
Detaches the render pass. More... | |
void | detachRecursive () |
Recursively detaches a render pass tree. More... | |
ChildConstIterator | endChildren () const |
Returns an iterator to the end of the container of child render passes. More... | |
string | getCamera () const |
Gets the value of the CameraProperty. More... | |
RenderPassSharedPtr | getChild (size_t index) |
Gets a child render pass at the given index. More... | |
size_t | getChildCount () const |
Returns the number of child render passes. More... | |
size_t | getChildIndex (RenderPass &childRenderPass) const |
Gets the index of a child in this render pass. More... | |
virtual CompositionRequirements | getCompositionRequirements () |
Queries if a render pass requires a depth buffer. More... | |
Node * | getHostNode () const |
Gets the host node of a render pass. More... | |
Vector4 | getInputViewport () const |
Gets the value of InputViewportAreaProperty. More... | |
RenderPass * | getParent () const |
Gets the parent of a render pass. More... | |
Scene * | getSceneForRenderPass () const |
Gets the scene being rendered by the render pass. More... | |
RenderPassSharedPtr | getTemplateRoot () const |
Gets the template root of this render pass. More... | |
Viewport2D * | getViewportForRenderPass () const |
Gets a viewport parent for a render pass. More... | |
void | insertChild (size_t index, RenderPassSharedPtr childRenderPass) |
Adds a render pass as a child render pass at given index of the render pass you set. More... | |
bool | isAttached () const |
Tells if a render pass is attached. More... | |
bool | isAttaching () const |
Tells if a render pass is attaching. More... | |
bool | isDetached () const |
Tells if a render pass is detached. More... | |
bool | isDetaching () const |
Tells if render pass is detaching. More... | |
bool | isEnabled () const |
Gets the value of the EnabledProperty property. More... | |
ObjectSharedPtr | lookupObject (string_view relativePath) |
Lookup for an object from a node. More... | |
template<typename T > | |
shared_ptr< T > | lookupObject (string_view relativePath) |
Lookup a relative object of specific type. More... | |
void | removeAllChildren () |
Removes all child render passes from a render pass. More... | |
void | removeChild (RenderPass &childRenderPass) |
Removes a child render pass. More... | |
void | removeChild (size_t index) |
Removes a child render pass. More... | |
void | render (Renderer3D &renderer, CompositionStack &compositionStack, const CameraSettings *cameraSettings) |
Recursively render RenderPass and all of its child render passes. More... | |
virtual void | restoreResources () |
Restore resources after suspend. More... | |
void | restoreResourcesRecursive () |
Recursively calls restoreResources for a RenderPass and all its children. More... | |
void | setCamera (string_view value) |
Sets the value of the CameraProperty. More... | |
void | setEnabled (bool value) |
Sets the value of the EnabledProperty. More... | |
void | setHostNode (Node *hostNode) |
Sets the host node of a render pass. More... | |
void | setParent (RenderPass *parent) |
Sets the parent of a render pass. More... | |
void | setTemplateRoot (RenderPassSharedPtr templateRoot) |
Sets the template root for this render pass. More... | |
~RenderPass () override | |
Destructor. More... | |
![]() | |
virtual unsigned int | getCPUMemoryUsage () const |
Function for getting the memory usage of a resource. More... | |
const string & | getName () const |
Gets the resource name. More... | |
const string & | getUrl () const |
Gets the resource URL. More... | |
bool | isKeepAlive () const |
Tells if the resource has keep alive flag set. More... | |
void | reload () |
void | reloadFromFile (string_view filePath) |
void | reloadFromKzb (KzbFile &kzbFile, ReadOnlyMemoryFile &file, KzbMemoryParser &parser) |
void | setKeepAlive (bool keepAlive) |
Sets the keep alive flag. More... | |
void | setUrl (string_view url) |
Sets the resource URL. More... | |
~Resource () override | |
Destructor. More... | |
![]() | |
AppliedStyleEntrySharedPtr | applyObjectStyle (kanzi::StyleSharedPtr style) |
Applies a style to an object. More... | |
void | applyObjectStyles () |
Apply all styles for an object node. More... | |
Domain * | getDomain () const |
Returns the domain the object belongs to. More... | |
const Metaclass * | getDynamicMetaclass () const override |
Returns the metaclass of the dynamic type of the object. More... | |
MainLoopScheduler * | getMainLoopScheduler () const |
Returns the MainLoopScheduler instance of the associated Domain. More... | |
detail::MessageDispatcher * | getMessageDispatcher () const |
Returns the message dispatcher of the object. More... | |
ResourceManager * | getResourceManager () const |
Returns the resource manager of the object. More... | |
ScriptingContextSharedPtr | getScriptingContext () const |
Gets the scripting context of the object. More... | |
Object (Domain *domain) | |
void | setScriptingContext (ScriptingContextSharedPtr context) |
Sets the scripting context of the object. More... | |
void | unapplyObjectStyle (AppliedStyleEntrySharedPtr appliedStyleEntry) |
void | unapplyObjectStyles () |
Unapplies and removes all applied styles. More... | |
~Object () override | |
![]() | |
bool | isTypeOf (const Metaclass *objectType) const |
Determines if the type of this object is the given type or derived from it. More... | |
virtual | ~MetaObject () |
![]() | |
template<typename DataType > | |
void | addPropertyModifier (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::ModifierCallback callback, void *owner) |
template<typename DataType > | |
void | addPropertyNotificationHandler (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::NotificationCallback callback, void *owner) |
template<typename DataType > | |
void | addPropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, PropertyValuePrecedence precedence, void *ownerPointer) |
template<typename DataType > | |
void | addPropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, PropertyValuePrecedence precedence, AbstractPropertyTypeDescriptor::ValueSourceOwner *owner) |
PropertyStorageContainer::iterator | beginPropertyStorage () |
Returns the begin iterator to the internal property storage container. More... | |
PropertyStorageContainer::const_iterator | beginPropertyStorage () const |
Returns the begin iterator to the internal property storage container. More... | |
void | clearPropertyFlag (AbstractPropertyType propertyType, uint32_t flag) |
void | copyLocalValue (const PropertyObject &other, AbstractPropertyType propertyType) |
Copies local value of single property from another object. More... | |
void | copyLocalValues (const PropertyObject &other) |
Copies all local values from another object. More... | |
PropertyStorageContainer::iterator | endPropertyStorage () |
Returns the end iterator to the internal property storage container. More... | |
PropertyStorageContainer::const_iterator | endPropertyStorage () const |
Returns the end iterator to the internal property storage container. More... | |
template<typename DataType > | |
PropertyType< DataType >::Traits::ReturnType | getAbstractProperty (AbstractPropertyType abstractPropertyType) const |
template<typename DataType > | |
PropertyType< DataType >::Traits::ReturnType | getAbstractPropertyBase (AbstractPropertyType abstractPropertyType) const |
template<typename DataType > | |
optional< typename PropertyType< DataType >::Traits::ReturnType > | getOptionalAbstractProperty (AbstractPropertyType abstractPropertyType) const |
template<typename DataType > | |
optional< typename PropertyType< DataType >::Traits::ReturnType > | getOptionalProperty (const PropertyType< DataType > &propertyType) const |
Evaluates the property value in the same way as the overload above but does not default to the value in property metadata if there are no inputs to the property value. More... | |
template<typename DataType > | |
optional< typename PropertyType< DataType >::Traits::ReturnType > | getOptionalPropertyBase (const PropertyType< DataType > &propertyType) const |
Returns the current value of a property disregarding modifiers, but does not default to the value in property metadata if there are no inputs to the property value. More... | |
template<typename DataType > | |
PropertyType< DataType >::Traits::ReturnType | getProperty (const PropertyType< DataType > &propertyType) const |
Returns the current value of a property type. More... | |
template<typename DataType > | |
PropertyType< DataType >::Traits::ReturnType | getPropertyBase (const PropertyType< DataType > &propertyType) const |
Returns the current value of a property disregarding modifiers. More... | |
template<typename DataType > | |
size_t | getPropertyNotificationHandlerCount (const PropertyType< DataType > &propertyType) const |
Gets number of current notification handlers for given property type. More... | |
bool | hasBaseValue (AbstractPropertyType propertyType) const |
Evaluates whether there are any inputs into the property value, disregarding modifiers. More... | |
bool | hasLocalValue (AbstractPropertyType propertyType) const |
Evaluates whether there is a local value set for the property. More... | |
bool | hasNonClassValue (AbstractPropertyType propertyType) const |
Evaluates whether there is a value of any precedence higher than class default value set for the property. More... | |
bool | hasValue (AbstractPropertyType propertyType) const |
Evaluates whether there are any inputs into the property value. More... | |
bool | isPropertyFlagSet (AbstractPropertyType propertyType, uint32_t flag) const |
PropertyObject () | |
void | removeKzbProperties (flat_set< AbstractPropertyType > *keepProperties) |
Remove all KZB properties that are not included in a given set. More... | |
void | removeKzbProperties () |
Remove all KZB properties. More... | |
template<typename DataType > | |
void | removeLocalPropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, void *ownerPointer) |
void | removeLocalValue (AbstractPropertyType propertyType) |
Removes the local value associated with the property. More... | |
template<typename DataType > | |
void | removePropertyModifier (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::ModifierCallback callback, void *owner) |
template<typename DataType > | |
void | removePropertyNotificationHandler (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::NotificationCallback callback, void *owner) |
template<typename DataType > | |
void | removePropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, void *ownerPointer) |
template<typename DataType > | |
void | setAbstractProperty (AbstractPropertyType abstractPropertyType, typename PropertyType< DataType >::Traits::ParameterType value) |
template<typename DataType > | |
void | setProperty (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Traits::ParameterType value) |
Sets the local value of a property type. More... | |
void | setPropertyFlag (AbstractPropertyType propertyType, uint32_t flag) |
void | validatePropertyModifiers (AbstractPropertyType propertyType) |
virtual | ~PropertyObject () |
![]() | |
void | addBindingRuntime (AbstractBindingRuntimeSharedPtr entry, shared_ptr< void > owner) |
Adds an already-created binding runtime to this binding host. More... | |
AbstractBindingRuntimeSharedPtr | setBinding (AbstractBindingSharedPtr binding, shared_ptr< RenderPass > templateRoot, AbstractPropertyType propertyType, PropertyField field, PropertyValuePrecedence precedence) |
Wrapper for setting a binding. More... | |
AbstractBindingRuntimeSharedPtr | setBinding (AbstractBindingSharedPtr binding, shared_ptr< RenderPass > templateRoot, AbstractPropertyType propertyType, PropertyField field) |
Wrapper for setting a binding. More... | |
AbstractBindingRuntimeSharedPtr | setBinding (AbstractBindingSharedPtr binding, shared_ptr< RenderPass > templateRoot, AbstractPropertyType propertyType, PropertyValuePrecedence precedence) |
Wrapper for setting a binding. More... | |
AbstractBindingRuntimeSharedPtr | setBinding (AbstractBindingSharedPtr binding, AbstractPropertyType propertyType, PropertyField field, PropertyValuePrecedence precedence) |
Wrapper for setting a binding. More... | |
AbstractBindingRuntimeSharedPtr | setBinding (AbstractBindingSharedPtr binding, AbstractPropertyType propertyType, PropertyField field) |
Wrapper for setting a binding. More... | |
AbstractBindingRuntimeSharedPtr | setBinding (AbstractBindingSharedPtr binding, AbstractPropertyType propertyType, PropertyValuePrecedence precedence) |
Wrapper for setting a binding. More... | |
AbstractBindingRuntimeSharedPtr | setBinding (AbstractBindingSharedPtr binding, AbstractPropertyType propertyType) |
Wrapper for setting a binding. More... | |
AbstractBindingRuntimeSharedPtr | setBinding (AbstractBindingSharedPtr binding, shared_ptr< RenderPass > templateRoot) |
Sets a binding with no target. More... | |
AbstractBindingRuntimeSharedPtr | setBinding (AbstractBindingSharedPtr binding) |
Wrapper for setting a binding with no target. More... | |
AbstractBindingRuntimeSharedPtr | setBindingWithOwner (AbstractBindingSharedPtr binding, shared_ptr< void > owner, shared_ptr< RenderPass > templateRoot, AbstractPropertyType propertyType, PropertyField field, PropertyValuePrecedence precedence) |
Sets a binding to a certain property. More... | |
AbstractBindingRuntimeSharedPtr | setBindingWithOwner (AbstractBindingSharedPtr binding, shared_ptr< void > owner, AbstractPropertyType propertyType, PropertyField field, PropertyValuePrecedence precedence) |
Wrapper for setting a binding with owner. More... | |
AbstractBindingRuntimeSharedPtr | setBindingWithOwner (AbstractBindingSharedPtr binding, shared_ptr< void > owner, AbstractPropertyType propertyType) |
Wrapper for setting a binding with owner. More... | |
AbstractBindingRuntimeSharedPtr | setBindingWithOwner (AbstractBindingSharedPtr binding, shared_ptr< void > owner, shared_ptr< RenderPass > templateRoot) |
Sets a binding with no target. More... | |
AbstractBindingRuntimeSharedPtr | setBindingWithOwner (AbstractBindingSharedPtr binding, shared_ptr< void > owner) |
Wrapper for setting a binding with no target. More... | |
AbstractBindingRuntimeSharedPtr | setModifierBinding (AbstractBindingSharedPtr binding, shared_ptr< RenderPass > templateRoot, AbstractPropertyType propertyType, PropertyField field) |
Wrapper for setting a modifier binding. More... | |
AbstractBindingRuntimeSharedPtr | setModifierBinding (AbstractBindingSharedPtr binding, AbstractPropertyType propertyType, PropertyField field) |
Wrapper for setting a modifier binding. More... | |
AbstractBindingRuntimeSharedPtr | setModifierBinding (AbstractBindingSharedPtr binding, AbstractPropertyType propertyType) |
Wrapper for setting a modifier binding. More... | |
AbstractBindingRuntimeSharedPtr | setModifierBindingWithOwner (AbstractBindingSharedPtr binding, shared_ptr< void > owner, shared_ptr< RenderPass > templateRoot, AbstractPropertyType propertyType, PropertyField field) |
Sets a modifier binding. More... | |
AbstractBindingRuntimeSharedPtr | setModifierBindingWithOwner (AbstractBindingSharedPtr binding, shared_ptr< void > owner, AbstractPropertyType propertyType, PropertyField field) |
Wrapper for setting a modifier binding. More... | |
AbstractBindingRuntimeSharedPtr | setModifierBindingWithOwner (AbstractBindingSharedPtr binding, shared_ptr< void > owner, AbstractPropertyType propertyType) |
Wrapper for setting a modifier binding. More... | |
![]() | |
BindingRuntimeConstIterator | beginBindingRuntimes () const |
Returns an iterator to the beginning of binding runtimes. More... | |
BindingRuntimeConstIterator | endBindingRuntimes () const |
Returns an iterator to the end of binding runtimes. More... | |
AbstractBindingRuntimeSharedPtr | getBindingRuntime (size_t idx) |
Gets binding by index. More... | |
size_t | getBindingRuntimeCount () const |
Gets the number of binding runtimes added to this node. More... | |
void | removeAllBindings () |
Removes all binding runtimes. More... | |
void | removeBinding (AbstractBindingRuntime &bindingRuntime) |
Removes a binding runtime added earlier. More... | |
void | removeBindingsWithOwner (shared_ptr< void > owner) |
Removes all binding runtimes with the specified owner. More... | |
Static Public Member Functions | |
static RenderPassSharedPtr | create (Domain *domain, string_view name) |
Create a render pass. More... | |
static PropertyTypeEditorInfoSharedPtr | makeEditorInfo () |
![]() | |
static const Metaclass * | getStaticMetaclass () |
Returns the metaclass of Object class. More... | |
static PropertyTypeEditorInfoSharedPtr | makeEditorInfo () |
Default implementation that returns empty editor info. More... | |
![]() | |
static const Metaclass * | getStaticMetaclass () |
Returns the metaclass of Object class. More... | |
static PropertyTypeEditorInfoSharedPtr | makeEditorInfo () |
Default implementation that returns empty editor info. More... | |
Static Public Attributes | |
static PropertyType< string > | CameraProperty |
Sets the Camera node that you want this render pass to use to render content. More... | |
static PropertyType< bool > | EnabledProperty |
Use the Enabled property to turn render passes and render pass trees on or off. More... | |
static PropertyType< Vector4 > | InputViewportAreaProperty |
Reports the size of the Viewport 2D that uses this render pass. More... | |
Protected Attributes | |
AttachmentState | m_attachmentState |
Render pass attachment state. More... | |
ChildContainer | m_children |
Child render passes. More... | |
bool | m_enabled |
Render pass enabled state. More... | |
Node * | m_hostNode |
Pointer to host node this render pass is attached under. More... | |
PropertyType< Vector4 >::Descriptor::TypedValueSource | m_inputViewportAreaValueSource |
Value source for the input viewport area property. More... | |
RenderPass * | m_parent |
Pointer to parent render pass. More... | |
weak_ptr< RenderPass > | m_templateRoot |
Weak pointer to template root object of this render pass. More... | |
![]() | |
AppliedStyleContainer | m_appliedStyles |
Listing of applied styles applied to this object. More... | |
![]() | |
BindingRuntimeContainer | m_bindingRuntimes |
Bindings in this object. More... | |
Additional Inherited Members | |
![]() | |
typedef vector< AppliedStyleEntrySharedPtr > | AppliedStyleContainer |
Applied style container. More... | |
RenderPass is the base class for Kanzi render passes.
Use render passes to perform singular render pass operations in 3D scenes. For example, use a render pass to clear the background, render nodes for a specific object source, set up a composition target, and so on.
Combine render passes into a hierarchy to create the rendering result you want to achieve.
The base RenderPass class does not implement any functionality, but renders its descendant render passes. This is the reason why the base RenderPass class is called Group Render Pass in Kanzi Studio. All other render passes either perform draw operations or set the state for successive render passes. In both cases, they pass the control to their descendant render passes only after they execute their own operations. Keep this in mind when you define your own render passes. See Creating your own render pass.
Render passes that perform draw operations are:
Render passes that set state are:
Kanzi excutes render passes by iterating the tree depth-first. This is similar to how Kanzi iterates nodes when it renders the node tree. Each render pass first executes itself, then, one at a time, all of its child render passes. Since the child render passes execute themselves, Kanzi executes the full tree starting from a child render pass before it executes the next child render pass. In the same way, the successive Kanzi executes the sibling render passes before it returns the control returns to the parent render pass.
You can use a render pass to create a texture and then use that texture in other render passes. The texture bindings are resolved on render. For example, you can show on the screen a texture that a CompositionTargetRenderPass creates, with a BlitRenderPass.
When you create a render pass, the create function calls the constructor, initializes the render pass, and returns the pointer to the render pass. The render pass constructors are protected and only inheriting classes can access them.
For example, to create a Group Render Pass:
You can combine render passes into a hierarchy to create the rendering result you cannot achieve with any single render pass. When you select a render pass for a Scene or a Viewport2D node, you can select either the root render pass or a specific render pass within such hierarchy. If you select a specific render pass within such hierarchy, Kanzi uses only that render pass and its descendants to render the content.
If a render pass is the root of its own tree, it does not have a parent render pass. In the same manner, if a render pass is a leaf render pass, it does not have any child render passes.
To create a render pass hierarchy:
To access descendant render passes (child render passes of the current render pass):
To access ascendant render pass (parent render pass of the current render pass):
If you cannot achieve the rendering result with the render passes that come with Kanzi, you can create your own render pass.
Start creating your own render pass by inheriting from the RenderPass base class. Define metaclass and declare property types in the same way as you would in the Node classes. See Node2D.
To create a simple custom render pass:
When you need to override the functionality of the RenderPass class, override the renderOverride() virtual method:
typedef vector<RenderPassSharedPtr> kanzi::RenderPass::ChildContainer |
Container type for children.
typedef ChildContainer::const_iterator kanzi::RenderPass::ChildConstIterator |
Child container iterator type.
using kanzi::RenderPass::CameraSettingsPtr = unique_ptr<CameraSettings> |
Camera settings unique pointer type.
Container type for binding runtimes.
typedef BindingRuntimeContainer::iterator kanzi::RenderPass::BindingRuntimeIterator |
Iterator type for binding runtime container.
typedef BindingRuntimeContainer::const_iterator kanzi::RenderPass::BindingRuntimeConstIterator |
Const iterator type for binding runtime container.
|
override |
Destructor.
|
explicitprotected |
Constructor.
domain | The domain to use. |
name | The name for the render pass. |
|
inline |
Gets the value of the EnabledProperty property.
|
inline |
Sets the value of the EnabledProperty.
value | The new value for Enabled property. |
|
inline |
|
inline |
Sets the value of the CameraProperty.
value | The new value for Camera property. |
|
inline |
Gets the value of InputViewportAreaProperty.
|
static |
|
static |
Create a render pass.
domain | The domain to use. |
name | The name for the render pass. |
void kanzi::RenderPass::render | ( | Renderer3D & | renderer, |
CompositionStack & | compositionStack, | ||
const CameraSettings * | cameraSettings | ||
) |
Recursively render RenderPass and all of its child render passes.
Calls renderOverride that you can implement by inheriting classes.
renderer | The renderer to use. |
compositionStack | The composition stack to use. |
cameraSettings | Camera settings passed from parent rendering. |
void kanzi::RenderPass::addChild | ( | RenderPassSharedPtr | childRenderPass | ) |
Adds a render pass as the last child of the render pass you set.
childRenderPass | The render pass to add. |
void kanzi::RenderPass::insertChild | ( | size_t | index, |
RenderPassSharedPtr | childRenderPass | ||
) |
Adds a render pass as a child render pass at given index of the render pass you set.
index | The index at which to insert the child render pass. |
childRenderPass | The render pass to add. |
size_t kanzi::RenderPass::getChildIndex | ( | RenderPass & | childRenderPass | ) | const |
Gets the index of a child in this render pass.
Throws an exception if the given render pass is not a child of this render pass.
childRenderPass | Child render pass to query index for. |
void kanzi::RenderPass::removeChild | ( | RenderPass & | childRenderPass | ) |
Removes a child render pass.
Throws an exception if the given render pass is not a child of this render pass.
childRenderPass | The render pass to remove. |
void kanzi::RenderPass::removeChild | ( | size_t | index | ) |
Removes a child render pass.
index | Index of the child render pass to remove. |
void kanzi::RenderPass::removeAllChildren | ( | ) |
Removes all child render passes from a render pass.
void kanzi::RenderPass::attachRecursive | ( | Node & | node | ) |
Recursively attaches a render pass tree.
node | Node associated with the root render pass. |
void kanzi::RenderPass::detachRecursive | ( | ) |
Recursively detaches a render pass tree.
Should be called from the node that attached the tree originally.
void kanzi::RenderPass::attach | ( | ) |
Attaches the render pass.
void kanzi::RenderPass::detach | ( | ) |
Detaches the render pass.
|
inline |
Tells if a render pass is attached.
|
inline |
Tells if a render pass is attaching.
|
inline |
Tells if a render pass is detached.
|
inline |
Tells if render pass is detaching.
|
inline |
Gets the template root of this render pass.
Template root is used in template root bindings. This is an internal function.
|
inline |
Sets the template root for this render pass.
Template root is used in template root bindings. This is an internal function.
|
inline |
Gets the parent of a render pass.
|
inline |
Sets the parent of a render pass.
parent | The parent render pass. |
|
inline |
Gets the host node of a render pass.
|
inline |
Sets the host node of a render pass.
hostNode | New host node for the render pass. Use nullptr to clear. |
Viewport2D* kanzi::RenderPass::getViewportForRenderPass | ( | ) | const |
Gets a viewport parent for a render pass.
Scene* kanzi::RenderPass::getSceneForRenderPass | ( | ) | const |
Gets the scene being rendered by the render pass.
|
inline |
Gets a child render pass at the given index.
Throws an error if the index is invalid.
index | The index of the child render pass that you want get. |
|
inline |
Returns the number of child render passes.
|
inline |
Returns an iterator to the beginning of the container of child render passes.
|
inline |
Returns an iterator to the end of the container of child render passes.
ObjectSharedPtr kanzi::RenderPass::lookupObject | ( | string_view | relativePath | ) |
Lookup for an object from a node.
Object found may be another render pass, a node or a resource within a node.
relativePath | Relative path to use for lookup. |
|
inline |
Lookup a relative object of specific type.
Even if object is found, if it's not of the given type, the search fails.
|
virtual |
Queries if a render pass requires a depth buffer.
Use this function to determine the depth buffer requirement for automatically created render targets.
Reimplemented in kanzi::CompositionTargetRenderPass, kanzi::PipelineStateRenderPass, and kanzi::ClearRenderPass.
void kanzi::RenderPass::restoreResourcesRecursive | ( | ) |
Recursively calls restoreResources for a RenderPass and all its children.
Calls happen in depth-first order.
|
virtual |
Restore resources after suspend.
Inheriting classes should call parent class methods.
Reimplemented in kanzi::CompositionTargetRenderPass, and kanzi::CubeMapRenderPass.
BindingLookupContextPtr kanzi::RenderPass::createLookupContext | ( | RenderPassSharedPtr | templateRoot | ) |
Creates a lookup context for a given render pass.
templateRoot | Template root for given render pass. |
|
overrideprotectedvirtual |
Object::onPropertyChanged() implementation.
Reimplemented from kanzi::PropertyObject.
Reimplemented in kanzi::RenderPassView.
|
protectedvirtual |
Called when a render pass becomes attached.
Inheriting classes should call parent class function.
Reimplemented in kanzi::GatherLightsRenderPass, kanzi::DrawObjectsRenderPass, kanzi::NodeListRenderPass, and kanzi::RenderPassView.
|
protectedvirtual |
Called when a render pass becomes detached.
Inheriting classes should call parent class function.
Reimplemented in kanzi::CompositionTargetRenderPass, kanzi::GatherLightsRenderPass, kanzi::DrawObjectsRenderPass, kanzi::NodeListRenderPass, and kanzi::RenderPassView.
|
protected |
|
inlineprotected |
Render all child render passes of a render pass.
renderer | The renderer to use. |
compositionStack | The composition stack to use. |
cameraSettings | Camera settings passed from parent rendering or set in this render pass. |
|
protected |
Iterates the children for composition requirements.
The requirements for children are merged with the requirements passed.
requirements | Initial requirements. |
|
inlineprotected |
Iterates the children for composition requirements.
Usually the user should call combineChildCompositionRequirements() instead. This function is used if the render pass has no requirements of its own.
|
protectedvirtual |
Render implementation specific to the RenderPass class.
The default implementation renders all child render passes, but does nothing else. For this reason the base render pass class is considered as a Group Render Pass.
renderer | The renderer to use. |
compositionStack | The composition stack to use. |
cameraSettings | Camera settings passed from parent rendering or set in this render pass. |
Reimplemented in kanzi::CompositionTargetRenderPass, kanzi::PipelineStateRenderPass, kanzi::GatherLightsRenderPass, kanzi::CubeMapRenderPass, kanzi::DrawObjectsRenderPass, kanzi::GatherNearestLightsRenderPass, kanzi::NodeListRenderPass, kanzi::ClearRenderPass, kanzi::BlitRenderPass, and kanzi::MaterialSetupRenderPass.
|
protectedvirtual |
Implementation-dependent rendering of all child render passes of a render pass.
renderer | The renderer to use. |
compositionStack | The composition stack to use. |
cameraSettings | Camera settings passed from parent rendering or set in this render pass. |
|
inlineprotected |
Updates the local value of a property in a Draw Objects Render Pass.
If the value of the property stays the same, do not run notification handlers for the property. Because we are setting the local value source, only check value sources, do not execute modifiers.
propertyType | Property type to update. |
valueSource | Value source to update. |
value | Value to set. |
|
static |
Use the Enabled property to turn render passes and render pass trees on or off.
The default value is true.
|
static |
Sets the Camera node that you want this render pass to use to render content.
The Camera node must be in the same Scene that is being rendered by the render pass tree. All descendant render passes use the selected camera unless you override it by setting the CameraProperty in those render passes.
|
static |
Reports the size of the Viewport 2D that uses this render pass.
Kanzi writes the value of this property when entering RenderPass::render(). Use this property to react to changes in viewport size as passed from parent rendering.
|
protected |
Child render passes.
|
protected |
Pointer to parent render pass.
|
protected |
Pointer to host node this render pass is attached under.
|
protected |
Weak pointer to template root object of this render pass.
May be a node or a render pass.
|
protected |
Value source for the input viewport area property.
|
protected |
Render pass attachment state.
|
protected |
Render pass enabled state.
Updated when enabled property is updated.