Struct PipelineStateRenderPass

pub struct PipelineStateRenderPass(/* private fields */);
Expand description

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:

  • BlendModeProperty property is set to Premultiplied alpha
  • ColorWriteModeProperty property is set to RGBA
  • Depth test is enabled and DepthTestFunctionProperty is set to Less
  • DepthWriteEnabledProperty property is enabled
  • CullModeProperty property is enabled and set to Back
  • StencilTestFunctionProperty property is disabled
  • ViewportProperty property is set to the complete size of Viewport2D node or of the current composition target set by a CompositionTargetRenderPass
  • ScissorProperty property is disabled, unless the current Viewport2D node does not fill the whole composition target area
  • PolygonDepthOffsetProperty property is not set.

Kanzi groups the rendering state combinations that a Pipeline State Render Pass applies into these state stacks:

  • Color and blend state
  • Depth and stencil state
  • Composition (viewport and scissor) state
  • Rasterization state

If you do not set a property, Kanzi uses the default or previously set value. See CompositionStack.

§Examples

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:

Implementations§

§

impl PipelineStateRenderPass

pub fn create( domain: &Domain, name: impl AsRef<KanziStr>, ) -> Result<PipelineStateRenderPass, Error>

Create a Pipeline State Render Pass.

§Arguments
  • domain - The domain to use.
  • name - The name of the Pipeline State Render Pass.
§Returns

The created Pipeline State Render Pass.

§

impl PipelineStateRenderPass

pub fn get_blend_mode(&self) -> Result<i32, Error>

pub fn set_blend_mode(&self, value: i32) -> Result<(), Error>

pub fn get_color_write_mode(&self) -> Result<GraphicsColorWriteMode, Error>

pub fn set_color_write_mode( &self, value: GraphicsColorWriteMode, ) -> Result<(), Error>

pub fn get_cull_mode(&self) -> Result<GraphicsCullMode, Error>

pub fn set_cull_mode(&self, value: GraphicsCullMode) -> Result<(), Error>

pub fn get_depth_test_function(&self) -> Result<GraphicsCompareFunction, Error>

pub fn set_depth_test_function( &self, value: GraphicsCompareFunction, ) -> Result<(), Error>

pub fn get_depth_write_enabled(&self) -> Result<bool, Error>

pub fn set_depth_write_enabled(&self, value: bool) -> Result<(), Error>

pub fn get_viewport(&self) -> Result<Vector4, Error>

pub fn set_viewport(&self, value: Vector4) -> Result<(), Error>

pub fn get_viewport_mode(&self) -> Result<ViewportMode, Error>

pub fn set_viewport_mode(&self, value: ViewportMode) -> Result<(), Error>

pub fn get_scissor(&self) -> Result<Vector4, Error>

pub fn set_scissor(&self, value: Vector4) -> Result<(), Error>

pub fn get_scissor_mode(&self) -> Result<ViewportMode, Error>

pub fn set_scissor_mode(&self, value: ViewportMode) -> Result<(), Error>

pub fn get_stencil_test_function( &self, ) -> Result<GraphicsCompareFunction, Error>

pub fn set_stencil_test_function( &self, value: GraphicsCompareFunction, ) -> Result<(), Error>

pub fn get_stencil_reference_value(&self) -> Result<i32, Error>

pub fn set_stencil_reference_value(&self, value: i32) -> Result<(), Error>

pub fn get_stencil_mask(&self) -> Result<i32, Error>

pub fn set_stencil_mask(&self, value: i32) -> Result<(), Error>

pub fn get_stencil_fail_operation( &self, ) -> Result<GraphicsStencilOperation, Error>

pub fn set_stencil_fail_operation( &self, value: GraphicsStencilOperation, ) -> Result<(), Error>

pub fn get_stencil_pass_depth_fail_operation( &self, ) -> Result<GraphicsStencilOperation, Error>

pub fn set_stencil_pass_depth_fail_operation( &self, value: GraphicsStencilOperation, ) -> Result<(), Error>

pub fn get_stencil_pass_depth_pass_operation( &self, ) -> Result<GraphicsStencilOperation, Error>

pub fn set_stencil_pass_depth_pass_operation( &self, value: GraphicsStencilOperation, ) -> Result<(), Error>

pub fn get_stencil_write_enabled(&self) -> Result<bool, Error>

pub fn set_stencil_write_enabled(&self, value: bool) -> Result<(), Error>

pub fn get_polygon_depth_offset(&self) -> Result<Vector2, Error>

pub fn set_polygon_depth_offset(&self, value: Vector2) -> Result<(), Error>

Methods from Deref<Target = RenderPass>§

Methods from Deref<Target = Resource>§

pub fn get_name(&self) -> Result<KanziString, Error>

Gets the resource name.

pub fn get_url(&self) -> Result<KanziString, Error>

Gets the resource URL. Note that the URL is not necessarily in URL form if resource has been just created.

§Returns

URL string.

pub fn set_keep_alive(&self, keep_alive: bool) -> Result<(), Error>

Sets the keep alive flag. Can be set only before the resource is registered to the resource manager. Normally set by loadFromKZB.

§Arguments
  • keep_alive - Value for the keep alive flag.

Methods from Deref<Target = Object>§

pub fn as_ptr(&self) -> *mut ObjectWrapper

pub fn as_wrapper(&self) -> &ObjectWrapper

pub fn as_object(&self) -> &Object

Represents any type inheriting from Object as &Object. This is useful for comparisions when PartialEq traits failed to compare objects of different types.

let child = screen.get_child(0)?;
let parent = child.get_parent()?.into_error(ErrorKind::ObjectNotFound)?;
// assert_eq!(screen, parent); // <- Fails to compile!
assert_eq!(screen.as_object(), parent.as_object());

pub fn get_native(&self) -> Result<NonNull<c_void>, Error>

Gets a pointer to the backing C++ instance.

pub fn is_stale(&self) -> bool

Checks whether the weak reference has expired.

pub fn get_property<T>( &self, property_type: &PropertyType<T>, ) -> Result<<T as VariantConstraint>::RetArg, Error>

Returns the current value of a property disregarding modifiers.

Base value is affected by the following inputs where the highest entry in the list determines the base value:

  1. Local value set with setProperty or loaded from kzb
  2. Value set by a style affecting the property.
  3. Value defined by class metadata.

Modifiers are not applied, the highest-priority base value is returned.

If no inputs to the property value can be established the system returns the value default value from property type metadata.

§Arguments
  • property_type - The property type identifying the property to retrieve.
§Returns

The evaluated property value.

pub fn get_optional_property<T>( &self, property_type: &PropertyType<T>, ) -> Result<Option<<T as VariantConstraint>::RetArg>, Error>

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.

If there is no value sources, None is returned.

If no inputs to the property value can be established the system returns the value default value from property type metadata.

§Arguments
  • property_type - The property type identifying the property to retrieve.
§Returns

The evaluated property value.

pub fn set_property<T>( &self, property_type: &PropertyType<T>, value: <T as VariantConstraint>::DataArg<'_>, ) -> Result<(), Error>

Sets the local value of a property type.

pub fn has_value<T>( &self, property_type: &PropertyType<T>, ) -> Result<bool, Error>

Evaluates whether there are any inputs into the property value. Both value sources and modifiers are taken into account.

§Returns

Returns true if there are inputs into the property value, false otherwise.

pub fn remove_local_value<T>( &self, property_type: &PropertyType<T>, ) -> Result<(), Error>

Removes the local value associated with the property.

pub fn get_metaclass(&self) -> Result<Metaclass, Error>

Returns the metaclass of the dynamic type of the object.

pub fn get_domain(&self) -> Result<Domain, Error>

Returns the domain the object belongs to.

pub fn set_flag_keep_during_patching<T>( &self, property_type: &PropertyType<T>, ) -> Result<(), Error>

Sets the flag to indicate that the property was loaded from KZB.

pub fn debug_string(&self) -> Result<String, Error>

Builds a string representation of the object intended for debugging purposes.

Trait Implementations§

§

impl Clone for PipelineStateRenderPass

§

fn clone(&self) -> PipelineStateRenderPass

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl ConcreteObjectConstraint for PipelineStateRenderPass

§

fn create_instance( domain: &Domain, name: impl AsRef<KanziStr>, ) -> Result<Self, Error>

§

impl Debug for PipelineStateRenderPass

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Deref for PipelineStateRenderPass

§

type Target = RenderPass

The resulting type after dereferencing.
§

fn deref(&self) -> &<PipelineStateRenderPass as Deref>::Target

Dereferences the value.
§

impl Inheritable for PipelineStateRenderPass

§

unsafe fn downcast_unchecked<T>(self) -> T
where T: Inherits<Self>,

Downcast the object to a more specific type. Read more
§

unsafe fn downcast_unchecked_ref<T>(&self) -> &T
where T: Inherits<Self>,

Downcast the object reference to a more specific type. Read more
§

impl Inherits<Object> for PipelineStateRenderPass

§

fn upcast(self) -> Base

§

fn upcast_ref(&self) -> &Base

§

impl Inherits<RenderPass> for PipelineStateRenderPass

§

fn upcast(self) -> Base

§

fn upcast_ref(&self) -> &Base

§

impl Inherits<Resource> for PipelineStateRenderPass

§

fn upcast(self) -> Base

§

fn upcast_ref(&self) -> &Base

§

impl MetaclassConstraint for PipelineStateRenderPass

§

fn get_static_metaclass() -> &'static Metaclass

Gets metaclass associated with a given type.
§

impl ObjectConstraint for PipelineStateRenderPass

§

fn downcast<T>(self) -> Result<Option<T>, Error>
where T: MetaInherits<Self>,

Casts metaclass to a more specific type by value.
§

fn downcast_ref<T>(&self) -> Result<Option<&T>, Error>
where T: MetaInherits<Self>,

Casts metaclass to a more specific type by reference.
§

fn is_a<T>(&self) -> Result<bool, Error>
where T: MetaInherits<Self>,

Determines whether the class this metaclass describes derives from a class described by specified metaclass.
§

fn downgrade(self) -> Weak<Self>

§

fn downgrade_ref(&self) -> Weak<Self>

§

fn lock(self) -> ThreadObject<Self>

§

fn lock_ref(&self) -> ThreadObject<Self>

§

impl<T> PartialEq<T> for PipelineStateRenderPass

§

fn eq(&self, rhs: &T) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl<T> PartialEq<Weak<T>> for PipelineStateRenderPass

§

fn eq(&self, rhs: &Weak<T>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl Eq for PipelineStateRenderPass

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> AsAny for T
where T: 'static,

§

fn as_any(&self) -> &(dyn Any + 'static)

§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Inherits<T> for T

§

fn upcast(self) -> Base

§

fn upcast_ref(&self) -> &Base

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<Base, T> MetaInherits<Base> for T
where Base: ObjectConstraint, T: Inherits<Base> + ObjectConstraint,