Use the Pipeline State Render Pass to set for its child render passes the depth and stencil testing, transparency, and culling. More...
#include <kanzi/core.ui/graphics3d/pipeline_state_render_pass.hpp>
Public Types | |
enum | ViewportMode { ViewportModeAbsolute, ViewportModeRelative } |
![]() | |
typedef vector< RenderPassSharedPtr > | ChildContainer |
![]() | |
typedef intrusive_ptr< AbstractPropertyTypeDescriptor::PropertyStorage > | PropertyStoragePtr |
typedef vector< PropertyStoragePtr > | PropertyStorageContainer |
typedef PropertyStorageContainer::iterator | PropertyStorageIterator |
typedef PropertyStorageContainer::const_iterator | PropertyStorageConstIterator |
typedef PropertyStorageContainer::reverse_iterator | PropertyStorageReverseIterator |
Static Public Member Functions | |
static PropertyTypeEditorInfoSharedPtr | makeEditorInfo () |
static PipelineStateRenderPassSharedPtr | create (Domain *domain, string_view name) |
Create a Pipeline State Render Pass. More... | |
![]() | |
static PropertyTypeEditorInfoSharedPtr | makeEditorInfo () |
static RenderPassSharedPtr | create (Domain *domain, string_view name) |
Create a render pass. More... | |
static ResourceManager::LoadTaskSharedPtr | createLoadTask (string_view name, KzbFile *kzbFile, unique_ptr< ReadOnlyMemoryFile > file) |
Factory function for RenderPass Load Task, which loads a RenderPass from a kzb file. More... | |
![]() | |
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... | |
Properties | |
static PropertyType< GraphicsBlendMode > | BlendModeProperty |
Use the Blend Mode property to override the blend mode set in each node that this render pass renders. More... | |
static PropertyType< GraphicsColorWriteMode > | ColorWriteModeProperty |
Use the Color Write Mode property to set which channels the render pass writes to the color buffer. More... | |
static PropertyType< GraphicsCompareFunction > | DepthTestFunctionProperty |
Use the Depth Test Function property to control whether the depth test discards a fragment. More... | |
static PropertyType< bool > | DepthWriteEnabledProperty |
Use the Depth Write Enabled property to set whether the render pass writes to the depth buffer. More... | |
static PropertyType< GraphicsCompareFunction > | StencilTestFunctionProperty |
Use the Stencil Test Function property to control whether the stencil test discards a fragment. More... | |
static PropertyType< int > | StencilReferenceValueProperty |
Use the Stencil Reference Value property to set the reference value for the stencil test. More... | |
static PropertyType< int > | StencilMaskProperty |
Use the Stencil Mask property to set a mask on which the AND operation is executed with both the reference value and the stored stencil value when the test is done. More... | |
static PropertyType< GraphicsStencilOperation > | StencilFailOperationProperty |
Use the Stencil Fail Operation property to set the operation that the render pass performs when the stencil test fails. More... | |
static PropertyType< GraphicsStencilOperation > | StencilPassDepthFailOperationProperty |
Use the Stencil Pass Depth Fail Operation property to set the operation that the render pass performs when the stencil test passes, but the depth test fails. More... | |
static PropertyType< GraphicsStencilOperation > | StencilPassDepthPassOperationProperty |
Use the Stencil Pass Depth Pass Operation property to set the operation that the render pass performs when both, the stencil and the depth test, pass. More... | |
static PropertyType< bool > | StencilWriteEnabledProperty |
Use the Stencil Write Enabled property to set whether to enable writing to the stencil buffer. More... | |
static PropertyType< GraphicsCullMode > | CullModeProperty |
Use the Cull Mode property to set the culling of the triangle faces in the rendered meshes. More... | |
static PropertyType< Vector4 > | ViewportProperty |
Use the Viewport property to modify the current rendering Viewport 2D node. More... | |
static PropertyType< ViewportMode > | ViewportModeProperty |
Use the Viewport Mode property to set the coordinate type for the Viewport 2D node. More... | |
static PropertyType< Vector4 > | ScissorProperty |
Use the Scissor property to set the scissor test within the current rendering Viewport 2D node. More... | |
static PropertyType< ViewportMode > | ScissorModeProperty |
Use the Scissor Mode property to set the scissor test coordinate mode. More... | |
GraphicsBlendMode | getBlendMode () const |
Gets the value of the BlendModeProperty property. More... | |
void | setBlendMode (GraphicsBlendMode value) |
Sets the value of the BlendModeProperty property. More... | |
GraphicsColorWriteMode | getColorWriteMode () const |
Gets the value of the ColorWriteModeProperty property. More... | |
void | setColorWriteMode (GraphicsColorWriteMode value) |
Sets the value of the ColorWriteModeProperty property. More... | |
GraphicsCompareFunction | getDepthTestFunction () const |
Gets the value of the DepthTestFunctionProperty property. More... | |
void | setDepthTestFunction (GraphicsCompareFunction value) |
Sets the value of the DepthTestFunctionProperty property. More... | |
bool | isDepthWriteEnabled () const |
Gets the value of the DepthWriteEnabledProperty property. More... | |
void | setDepthWriteEnabled (bool value) |
Sets the value of the DepthWriteEnabledProperty property. More... | |
GraphicsCompareFunction | getStencilTestFunction () const |
Gets the value of the StencilTestFunctionProperty property. More... | |
void | setStencilTestFunction (GraphicsCompareFunction value) |
Sets the value of the StencilTestFunctionProperty property. More... | |
int | getStencilReferenceValue () const |
Gets the value of the StencilReferenceValueProperty property. More... | |
void | setStencilReferenceValue (int value) |
Sets the value of the StencilReferenceValueProperty property. More... | |
int | getStencilMask () const |
Gets the value of the StencilMaskProperty property. More... | |
void | setStencilMask (int value) |
Sets the value of the StencilMaskProperty property. More... | |
GraphicsStencilOperation | getStencilFailOperation () const |
Gets the value of the StencilFailOperationProperty property. More... | |
void | setStencilFailOperation (GraphicsStencilOperation value) |
Sets the value of the StencilFailOperationProperty property. More... | |
GraphicsStencilOperation | getStencilPassDepthFailOperation () const |
Gets the value of the StencilPassDepthFailOperationProperty property. More... | |
void | setStencilPassDepthFailOperation (GraphicsStencilOperation value) |
Sets the value of the StencilPassDepthFailOperationProperty property. More... | |
GraphicsStencilOperation | getStencilPassDepthPassOperation () const |
Gets the value of the StencilPassDepthPassOperationProperty property. More... | |
void | setStencilPassDepthPassOperation (GraphicsStencilOperation value) |
Sets the value of the StencilPassDepthPassOperationProperty property. More... | |
bool | isStencilWriteEnabled () const |
Gets the value of the StencilWriteEnabledProperty property. More... | |
void | setStencilWriteEnabled (bool value) |
Sets the value of the StencilWriteEnabledProperty property. More... | |
GraphicsCullMode | getCullMode () const |
Gets the value of the CullModeProperty property. More... | |
void | setCullMode (GraphicsCullMode value) |
Sets the value of the CullModeProperty property. More... | |
Vector4 | getViewport () const |
Gets the value of the ViewportProperty property. More... | |
void | setViewport (Vector4 value) |
Sets the value of the ViewportProperty property. More... | |
ViewportMode | getViewportMode () const |
Gets the value of the ViewportModeProperty property. More... | |
void | setViewportMode (ViewportMode value) |
Sets the value of the ViewportModeProperty property. More... | |
Vector4 | getScissor () const |
Gets the value of the ScissorProperty property. More... | |
void | setScissor (Vector4 value) |
Sets the value of the ScissorProperty property. More... | |
ViewportMode | getScissorMode () const |
Gets the value of the ScissorModeProperty property. More... | |
void | setScissorMode (ViewportMode value) |
Sets the value of the ScissorModeProperty property. More... | |
Additional Inherited Members | |
![]() | |
RenderPassSharedPtr | lookupRenderPass (string_view path) |
Resolve a render pass by path. More... | |
void | render (Renderer3D &renderer, TransformedScene3D &transformedScene, CompositionStack &compositionStack) |
Recursively render RenderPass and all of its child render passes. More... | |
void | renderMesh (Node3D &node, Morph *morph, Mesh &mesh, unsigned int clusterIndex, MaterialRenderer &materialRenderer) |
Use this function to render a mesh owned by a node using the material renderer that the node owns. More... | |
void | addChild (RenderPassSharedPtr childRenderPass) |
Adds a render pass as the last child of the render pass you set. 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... | |
void | removeChild (RenderPass &childRenderPass) |
Removes a child render pass. More... | |
void | removeAllChildren () |
Removes all child render passes from a render pass. More... | |
RenderPassSharedPtr | getParent () const |
Gets the parent of a render pass. More... | |
void | setParent (RenderPassSharedPtr parent) |
Sets the parent of a render pass. 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... | |
ChildContainer::const_iterator | beginChildren () const |
Returns an iterator to the beginning of the container of child render passes. More... | |
ChildContainer::const_iterator | endChildren () const |
Returns an iterator to the end of the container of child render passes. More... | |
TextureSharedPtr | getCompositionResult (Framebuffer::AttachmentPoint attachmentPoint) |
Gets color composition target that was used for rendering. More... | |
size_t | getTextureBindingCount () const |
Gets the number of texture bindings. More... | |
ResourceBinding | getTextureBinding (size_t index) const |
Gets a texture binding by index. More... | |
void | addTextureBinding (AbstractPropertyType propertyType, string_view path, bool fromKzb) |
Adds a texture binding. More... | |
void | addTextureBinding (AbstractPropertyType propertyType, string_view path) |
Adds a texture binding. More... | |
bool | removeTextureBinding (AbstractPropertyType propertyType) |
Removes the texture binding. More... | |
void | removeKzbTextureBindings () |
Removes the resource bindings loaded from kzb files. More... | |
void | restoreResourcesRecursive () |
Recursively calls restoreResources for a RenderPass and all its children. More... | |
virtual void | restoreResources () |
Restore resources after suspend. More... | |
virtual void | loadFromKZB (const ResourceLoaderThreadContext *threadContext, KzcInputStream *inputStream, const KzuBinaryFileInfo *file) KZ_OVERRIDE |
Resource::loadFromKZB() implementation. More... | |
![]() | |
KzcMemoryManager * | getMemoryManager () const |
Resource (Domain *domain, string_view name) | |
virtual | ~Resource () |
virtual void | unloadOverride () |
Unload function for resource. Releases all CPU memory taken by the resource except the resource loader. More... | |
virtual unsigned int | getCPUMemoryUsage () const |
Function for getting the memory usage of a resource. More... | |
void | setKZB (const KzuBinaryDirectory *binaryDirectory, string_view path) |
Set the binary directory and path of the resource. More... | |
const string & | getName () const |
Gets the resource name. More... | |
const string & | getUrl () const |
Gets the resource URL. More... | |
void | setUrl (string_view url) |
Sets the resource URL. More... | |
void | setNotLoaded () |
bool | isFromKZB () const |
void | reload () |
void | reloadFromKzb (KzcInputStream *inputStream, const KzuBinaryFileInfo *file) |
void | reloadFromKzb (KzbFile &kzbFile, ReadOnlyMemoryFile &file, KzbMemoryParser &parser) |
void | reloadFromFile (string_view filePath) |
void | load () |
void | unload () |
bool | isLoaded () const |
void | kzuResourceLoad_private (const ResourceLoaderThreadContext *threadContext) |
Private function for kzuResourceLoad() with specified thread context. More... | |
void | kzuResourceFinishLoading_private (const ResourceLoaderThreadContext *threadContext) |
Private function for finishing the loading of the resource. More... | |
bool | isKeepAlive () const |
Tells if the resource has keep alive flag set. More... | |
void | setKeepAlive (bool keepAlive) |
Sets the keep alive flag. More... | |
![]() | |
Object (Domain *domain) | |
virtual | ~Object () |
Domain * | getDomain () const |
Returns the domain the object belongs to. More... | |
KzuTaskScheduler * | getTaskScheduler () const |
Returns the task scheduler of the object. More... | |
KzuMessageDispatcher * | getMessageDispatcher () const |
Returns the message dispatcher of the object. More... | |
ResourceManager * | getResourceManager () const |
Returns the resource manager of the object. More... | |
virtual const Metaclass * | getDynamicMetaclass () const KZ_OVERRIDE |
Returns the metaclass of the dynamic type of the object. More... | |
AppliedStyleEntrySharedPtr | applyObjectStyle (kanzi::StyleSharedPtr style) |
Applies a style to an object. More... | |
void | unapplyObjectStyle (AppliedStyleEntrySharedPtr appliedStyleEntry) |
void | applyObjectStyles () |
Apply all styles for an object node. More... | |
void | unapplyObjectStyles () |
Unapplies and removes all applied styles. More... | |
![]() | |
virtual | ~MetaObject () |
bool | isTypeOf (const Metaclass *objectType) const |
Determines if the type of this object is the given type or derived from it. More... | |
![]() | |
PropertyObject () | |
virtual | ~PropertyObject () |
template<typename DataType > | |
void | setProperty (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Traits::ParameterType value) |
Sets the local value of a property. More... | |
void | removeKzbProperties () |
template<typename DataType > | |
PropertyType< DataType >::Traits::ReturnType | getProperty (const PropertyType< DataType > &propertyType) const |
Returns the current value of a property. More... | |
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 > | |
PropertyType< DataType >::Traits::ReturnType | getPropertyBase (const PropertyType< DataType > &propertyType) const |
Returns the current value of a property disregarding modifiers. More... | |
template<typename DataType > | |
void | setAbstractProperty (AbstractPropertyType abstractPropertyType, typename PropertyType< DataType >::Traits::ParameterType value) |
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 |
void | setPropertyFlag (AbstractPropertyType propertyType, uint32_t flag) |
bool | isPropertyFlagSet (AbstractPropertyType propertyType, uint32_t flag) const |
void | clearPropertyFlag (AbstractPropertyType propertyType, uint32_t flag) |
bool | hasValue (AbstractPropertyType propertyType) const |
Evaluates whether there are any inputs into the property value. 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... | |
void | removeLocalValue (AbstractPropertyType propertyType) |
Removes the local value associated with the property. More... | |
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... | |
virtual void | onPropertyChanged (AbstractPropertyType propertyType, PropertyNotificationReason reason) |
Virtual function to handle property change notifications. More... | |
template<typename DataType > | |
void | addPropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, PropertyValuePrecedence precedence, void *owner) |
template<typename DataType > | |
void | removePropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, void *owner) |
template<typename DataType > | |
void | addPropertyModifier (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::ModifierCallback callback, void *owner) |
template<typename DataType > | |
void | removePropertyModifier (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::ModifierCallback callback, void *owner) |
void | validatePropertyModifiers (AbstractPropertyType propertyType) |
template<typename DataType > | |
void | addPropertyNotificationHandler (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::NotificationCallback callback, void *owner) |
template<typename DataType > | |
void | removePropertyNotificationHandler (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::NotificationCallback callback, void *owner) |
template<typename DataType > | |
size_t | getPropertyNotificationHandlerCount (const PropertyType< DataType > &propertyType) |
Gets number of current notification handlers for given property type. More... | |
![]() | |
typedef vector< AppliedStyleEntrySharedPtr > | AppliedStyleContainer |
Applied style container. More... | |
![]() | |
AppliedStyleContainer | m_appliedStyles |
Listing of applied styles applied to this object. More... | |
Use the Pipeline State Render Pass to set for its child render passes the depth and stencil testing, transparency, and culling.
This render pass sets the rendering state before passing the control to its descendants. After the descendant render passes of a Pipeline State Render Pass execute, Kanzi restores the rendering state. If a Pipeline State Render Pass does not have any descendants, Kanzi does not apply the rendering state you set in that render pass.
You change the rendering state by setting the properties in a Pipeline State Render Pass. The default settings in a Pipeline State Render Pass that you can set are:
Kanzi groups the rendering state combinations that a Pipeline State Render Pass applies into these state stacks:
If you do not set a property, Kanzi uses the default or previously set value. See CompositionStack.
To turn on stencil test and only render where stencil buffer value is not 0:
To render only the back faces of objects:
To turn off alpha blending:
|
explicitprotected |
Constructor.
domain | Domain. |
name | Name of the Pipeline State Render Pass. |
|
inline |
Gets the value of the BlendModeProperty property.
|
inline |
Sets the value of the BlendModeProperty property.
|
inline |
Gets the value of the ColorWriteModeProperty property.
|
inline |
Sets the value of the ColorWriteModeProperty property.
|
inline |
Gets the value of the DepthTestFunctionProperty property.
|
inline |
Sets the value of the DepthTestFunctionProperty property.
|
inline |
Gets the value of the DepthWriteEnabledProperty property.
|
inline |
Sets the value of the DepthWriteEnabledProperty property.
|
inline |
Gets the value of the StencilTestFunctionProperty property.
|
inline |
Sets the value of the StencilTestFunctionProperty property.
|
inline |
Gets the value of the StencilReferenceValueProperty property.
|
inline |
Sets the value of the StencilReferenceValueProperty property.
|
inline |
Gets the value of the StencilMaskProperty property.
|
inline |
Sets the value of the StencilMaskProperty property.
|
inline |
Gets the value of the StencilFailOperationProperty property.
|
inline |
Sets the value of the StencilFailOperationProperty property.
|
inline |
Gets the value of the StencilPassDepthFailOperationProperty property.
|
inline |
Sets the value of the StencilPassDepthFailOperationProperty property.
|
inline |
Gets the value of the StencilPassDepthPassOperationProperty property.
|
inline |
Sets the value of the StencilPassDepthPassOperationProperty property.
|
inline |
Gets the value of the StencilWriteEnabledProperty property.
|
inline |
Sets the value of the StencilWriteEnabledProperty property.
|
inline |
Gets the value of the CullModeProperty property.
|
inline |
Sets the value of the CullModeProperty property.
|
inline |
Gets the value of the ViewportProperty property.
|
inline |
Sets the value of the ViewportProperty property.
|
inline |
Gets the value of the ViewportModeProperty property.
|
inline |
Sets the value of the ViewportModeProperty property.
|
inline |
Gets the value of the ScissorProperty property.
|
inline |
Sets the value of the ScissorProperty property.
|
inline |
Gets the value of the ScissorModeProperty property.
|
inline |
Sets the value of the ScissorModeProperty property.
|
static |
|
static |
Create a Pipeline State Render Pass.
domain | The domain to use. |
name | The name of the Pipeline State Render Pass. |
|
protected |
Push the color or blend state into the composition stack.
compositionStack | Composition stack to use. |
|
protected |
Push the depth or stencil state into the composition stack.
compositionStack | Composition stack to use. |
|
protected |
Push the rasterization state into the composition stack.
compositionStack | Composition stack to use. |
|
protected |
Push the Viewport 2D scissor state into the composition stack.
Effectively pushes new composition area.
compositionStack | Composition stack to use. |
|
protectedvirtual |
RenderPass::renderOverride() implementation.
Reimplemented from kanzi::RenderPass.
|
protectedvirtual |
RenderPass::requiresDepthBuffer() implementation.
Reimplemented from kanzi::RenderPass.
|
static |
Use the Blend Mode property to override the blend mode set in each node that this render pass renders.
The default value is GraphicsBlendModeOpaque.
|
static |
Use the Color Write Mode property to set which channels the render pass writes to the color buffer.
To disable the color write, set the property to None. The default value is GraphicsColorWriteModeRGBA.
|
static |
Use the Depth Test Function property to control whether the depth test discards a fragment.
The default value is GraphicsCompareFunctionLess.
|
static |
Use the Depth Write Enabled property to set whether the render pass writes to the depth buffer.
The default value is True.
|
static |
Use the Stencil Test Function property to control whether the stencil test discards a fragment.
The default value is GraphicsCompareFunctionDisabled.
|
static |
Use the Stencil Reference Value property to set the reference value for the stencil test.
The default value is 0.
|
static |
Use the Stencil Mask property to set a mask on which the AND operation is executed with both the reference value and the stored stencil value when the test is done.
The default value is 255.
|
static |
Use the Stencil Fail Operation property to set the operation that the render pass performs when the stencil test fails.
The default value is GraphicsStencilOperationKeep.
|
static |
Use the Stencil Pass Depth Fail Operation property to set the operation that the render pass performs when the stencil test passes, but the depth test fails.
The default value is GraphicsStencilOperationKeep.
|
static |
Use the Stencil Pass Depth Pass Operation property to set the operation that the render pass performs when both, the stencil and the depth test, pass.
The default value is GraphicsStencilOperationKeep.
|
static |
Use the Stencil Write Enabled property to set whether to enable writing to the stencil buffer.
The default value is True.
|
static |
Use the Cull Mode property to set the culling of the triangle faces in the rendered meshes.
Set to:
|
static |
Use the Viewport property to modify the current rendering Viewport 2D node.
You can define the Viewport 2D node in either relative or absolute coordinates, the default is relative. Use the ViewportModeProperty property to set the coordinate type.
|
static |
Use the Viewport Mode property to set the coordinate type for the Viewport 2D node.
|
static |
Use the Scissor property to set the scissor test within the current rendering Viewport 2D node.
You can define the scissor in either relative or absolute coordinates, the default is relative. Use the ScissorModeProperty property to set the coordinate type.
|
static |
Use the Scissor Mode property to set the scissor test coordinate mode.