[][src]Struct druid::Scale

pub struct Scale { /* fields omitted */ }

Coordinate scaling between pixels and display points.

This holds the platform DPI and the equivalent scale factors.

Pixels and Display Points

A pixel (px) represents the smallest controllable area of color on the platform. A display point (dp) is a resolution independent logical unit. When developing your application you should primarily be thinking in display points. These display points will be automatically converted into pixels under the hood. One pixel is equal to one display point when the platform scale factor is 1.0.

Read more about pixels and display points in the druid book.

Converting with Scale

To translate coordinates between pixels and display points you should use one of the helper conversion methods of Scale or for manual conversion scale_x / scale_y.

Scale is designed for responsive applications, including responding to platform DPI changes. The platform DPI can change quickly, e.g. when moving a window from one monitor to another.

A copy of Scale will be stale as soon as the platform DPI changes.

Implementations

impl Scale[src]

pub fn from_dpi(dpi_x: f64, dpi_y: f64) -> Scale[src]

Create a new Scale state based on the specified DPIs.

Use this constructor if the platform provided DPI is the most accurate number.

pub fn from_scale(scale_x: f64, scale_y: f64) -> Scale[src]

Create a new Scale state based on the specified scale factors.

Use this constructor if the platform provided scale factor is the most accurate number.

pub fn dpi_x(&self) -> f64[src]

Returns the x axis platform DPI associated with this Scale.

pub fn dpi_y(&self) -> f64[src]

Returns the y axis platform DPI associated with this Scale.

pub fn scale_x(&self) -> f64[src]

Returns the x axis scale factor.

pub fn scale_y(&self) -> f64[src]

Returns the y axis scale factor.

pub fn to_px<T>(&self, item: &T) -> T where
    T: Scalable
[src]

Converts the item from display points into pixels, using the x axis scale factor for coordinates on the x axis and the y axis scale factor for coordinates on the y axis.

pub fn px_to_dp_x<T>(&self, x: T) -> f64 where
    T: Into<f64>, 
[src]

Converts from pixels into display points, using the x axis scale factor.

pub fn px_to_dp_y<T>(&self, y: T) -> f64 where
    T: Into<f64>, 
[src]

Converts from pixels into display points, using the y axis scale factor.

pub fn px_to_dp_xy<T>(&self, x: T, y: T) -> (f64, f64) where
    T: Into<f64>, 
[src]

Converts from pixels into display points, using the x axis scale factor for x and the y axis scale factor for y.

pub fn to_dp<T>(&self, item: &T) -> T where
    T: Scalable
[src]

Converts the item from pixels into display points, using the x axis scale factor for coordinates on the x axis and the y axis scale factor for coordinates on the y axis.

Trait Implementations

impl Clone for Scale[src]

impl Copy for Scale[src]

impl Data for Scale[src]

impl Debug for Scale[src]

impl Default for Scale[src]

impl PartialEq<Scale> for Scale[src]

impl StructuralPartialEq for Scale[src]

Auto Trait Implementations

impl RefUnwindSafe for Scale

impl Send for Scale

impl Sync for Scale

impl Unpin for Scale

impl UnwindSafe for Scale

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> AnyEq for T where
    T: PartialEq<T> + Any
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> RoundFrom<T> for T

impl<T, U> RoundInto<U> for T where
    U: RoundFrom<T>, 

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.