pub struct MotionBlurFilter {
pub velocity: Vec2,
pub peak_velocity_pps: f32,
pub max_kernel_px: f32,
}Expand description
Velocity-driven directional blur.
velocity is in primitive-local pixels per frame; the kernel size scales
with velocity.length() / peak_velocity_pps clamped at max_kernel_px.
Constants peak = 1400 and max = 14 are lifted from OpenScreen v1.4
zoomTransform.ts defaults — they feel right for cursor zoom motion.
Fields§
§velocity: Vec2Direction + magnitude, in primitive-local pixels per frame.
peak_velocity_pps: f32Reference speed at which the kernel reaches max_kernel_px.
max_kernel_px: f32Upper bound on per-tap displacement.
Implementations§
Source§impl MotionBlurFilter
impl MotionBlurFilter
fn kernel_pixels(&self) -> f32
fn unit_direction(&self) -> [f32; 2]
Trait Implementations§
Source§impl Clone for MotionBlurFilter
impl Clone for MotionBlurFilter
Source§fn clone(&self) -> MotionBlurFilter
fn clone(&self) -> MotionBlurFilter
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for MotionBlurFilter
impl Debug for MotionBlurFilter
Source§impl Default for MotionBlurFilter
impl Default for MotionBlurFilter
Source§impl Filter for MotionBlurFilter
impl Filter for MotionBlurFilter
Source§fn passes(&self) -> u32
fn passes(&self) -> u32
Number of passes (
>= 1). Multi-pass filters ping-pong between two
render targets across the orchestrator.Source§fn render_pass(
&self,
ctx: &mut FilterContext<'_>,
input: &RenderTexture,
output: &RenderTexture,
_pass: u32,
)
fn render_pass( &self, ctx: &mut FilterContext<'_>, input: &RenderTexture, output: &RenderTexture, _pass: u32, )
Render one pass: read from
input, write to output. The orchestrator
invokes this once per pass index [0, passes()).impl Copy for MotionBlurFilter
Auto Trait Implementations§
impl Freeze for MotionBlurFilter
impl RefUnwindSafe for MotionBlurFilter
impl Send for MotionBlurFilter
impl Sync for MotionBlurFilter
impl Unpin for MotionBlurFilter
impl UnsafeUnpin for MotionBlurFilter
impl UnwindSafe for MotionBlurFilter
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().