pub struct ShapeMaskNode { /* private fields */ }Expand description
Clear the alpha of inputs[0] outside a rectangle of the source frame.
Pixels inside the rectangle keep their alpha; all others are made fully transparent. The rectangle reaches the shader as a uniform, so the node holds no mask buffer and uploads nothing per frame (#1710).
Implementations§
Trait Implementations§
Source§impl RenderNode for ShapeMaskNode
Available on crate feature wgpu only.
impl RenderNode for ShapeMaskNode
Available on crate feature
wgpu only.Source§fn set_param(&self, param: NodeParam) -> bool
fn set_param(&self, param: NodeParam) -> bool
Takes NodeParam::ShapeMaskRect, so an
animated rectangle moves without the graph being rebuilt around it.
Source§fn input_count(&self) -> usize
fn input_count(&self) -> usize
Number of input textures required by this node (default: 1).
Source§fn process(
&self,
inputs: &[&Texture],
outputs: &[&Texture],
ctx: &RenderContext,
)
fn process( &self, inputs: &[&Texture], outputs: &[&Texture], ctx: &RenderContext, )
Run the GPU render pass. Read more
Source§fn pass_count(&self) -> usize
fn pass_count(&self) -> usize
Number of render passes (default: 1). Multi-pass nodes (e.g. gaussian
blur) return 2 or more.
Source§impl RenderNodeCpu for ShapeMaskNode
impl RenderNodeCpu for ShapeMaskNode
Source§fn process_cpu(&self, rgba: &mut [u8], w: u32, _h: u32)
fn process_cpu(&self, rgba: &mut [u8], w: u32, _h: u32)
Tests the rectangle against the coordinates of the buffer it is given.
Those are the previous node’s output pixels, where the GPU path evaluates the
rectangle in the original source frame’s pixels. The two agree until a node
that resizes (a ScaleNode) runs in front of this one.
Auto Trait Implementations§
impl !Freeze for ShapeMaskNode
impl !RefUnwindSafe for ShapeMaskNode
impl !Sync for ShapeMaskNode
impl !UnwindSafe for ShapeMaskNode
impl Send for ShapeMaskNode
impl Unpin for ShapeMaskNode
impl UnsafeUnpin for ShapeMaskNode
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more