Skip to main content

Shadow

Struct Shadow 

Source
pub struct Shadow {
    pub color: Color,
    pub offset: Offset,
    pub blur_radius: f64,
}
Expand description

A representation of a shadow.

Fields§

§color: Color

Color that the shadow will be drawn with.

The shadows are shapes composited directly over the base canvas, and do not represent optical occlusion.

§offset: Offset

The displacement of the shadow from the casting element.

Positive x/y offsets will shift the shadow to the right and down, while negative offsets shift the shadow to the left and up. The offsets are relative to the position of the element that is casting it.

§blur_radius: f64

The standard deviation of the Gaussian to convolve with the shadow’s shape.

Implementations§

Source§

impl Shadow

Source

pub fn new(color: Color, offset: Offset, blur_radius: f64) -> Shadow

Construct a shadow.

The default shadow is a black shadow with zero offset and zero blur. Default shadows should be completely covered by the casting element, and not be visible.

Transparency should be adjusted through the color alpha.

Shadow order matters due to compositing multiple translucent objects not being commutative.

Source

pub fn convert_radius_to_sigma(radius: f64) -> f64

Converts a blur radius in pixels to sigmas.

See SkBlurMask::ConvertRadiusToSigma().

Source

pub fn blur_sigma(&self) -> f64

The blur_radius in sigmas instead of logical pixels.

Source

pub fn scale(&self, factor: f64) -> Shadow

Returns a new shadow with its offset and blur_radius scaled by the given factor.

Source

pub fn to_paint(&self) -> Paint

Create the Paint object that corresponds to this shadow description.

The offset is not represented in the Paint object. To honor this as well, the shape should be translated by offset before being filled using this paint.

Source

pub fn lerp(a: Option<Shadow>, b: Option<Shadow>, t: f64) -> Option<Shadow>

Linearly interpolate between two shadows.

If either shadow is null, this function linearly interpolates from a shadow that matches the other shadow in color but has a zero offset and a zero blurRadius.

Source

pub fn lerp_list( a: Option<&[Shadow]>, b: Option<&[Shadow]>, t: f64, ) -> Option<Vec<Shadow>>

Linearly interpolate between two lists of shadows.

If the lists differ in length, excess items are lerped with null.

Trait Implementations§

Source§

impl Clone for Shadow

Source§

fn clone(&self) -> Shadow

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for Shadow

Source§

impl Debug for Shadow

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for Shadow

Source§

fn default() -> Shadow

Returns the “default value” for a type. Read more
Source§

impl PartialEq for Shadow

Source§

fn eq(&self, other: &Shadow) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Shadow

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
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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> Downcast<T> for T

Source§

fn downcast(&self) -> &T

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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 = !

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

fn try_from(value: U) -> Result<T, !>

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.
Source§

impl<T> Upcast<T> for T

Source§

fn upcast(&self) -> Option<&T>

Source§

impl<T> WasmNotSend for T
where T: Send,

Source§

impl<T> WasmNotSendSync for T

Source§

impl<T> WasmNotSync for T
where T: Sync,