[−][src]Struct druid::Scale
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]
T: Scalable,
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]
T: Into<f64>,
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]
T: Into<f64>,
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]
T: Into<f64>,
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]
T: Scalable,
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]
T: 'static + ?Sized,
impl<T> AnyEq for T where
T: PartialEq<T> + Any,
[src]
T: PartialEq<T> + Any,
fn equals(&self, other: &(dyn Any + 'static)) -> bool
[src]
fn as_any(&self) -> &(dyn Any + 'static)
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> RoundFrom<T> for T
fn round_from(x: T) -> T
impl<T, U> RoundInto<U> for T where
U: RoundFrom<T>,
U: RoundFrom<T>,
fn round_into(self) -> U
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,