implement mint conversions (#1930)
Implement conversions for [mint](https://docs.rs/mint) (math interoperability standard types). - `impl From<mint::Point2> for {Physical, Logical}Position` - `impl From<{Physical, Logical}Position> for mint::Point2` - `impl From<mint::Vector2> for {Physical, Logical}Size` - `impl From<{Physical, Logical}Size> for mint::Vector2`
This commit is contained in:
parent
41d9826ee9
commit
078b9719cc
4 changed files with 71 additions and 0 deletions
68
src/dpi.rs
68
src/dpi.rs
|
|
@ -228,6 +228,23 @@ impl<P: Pixel, X: Pixel> Into<[X; 2]> for LogicalPosition<P> {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "mint")]
|
||||
impl<P: Pixel> From<mint::Point2<P>> for LogicalPosition<P> {
|
||||
fn from(mint: mint::Point2<P>) -> Self {
|
||||
Self::new(mint.x, mint.y)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "mint")]
|
||||
impl<P: Pixel> From<LogicalPosition<P>> for mint::Point2<P> {
|
||||
fn from(winit: LogicalPosition<P>) -> Self {
|
||||
mint::Point2 {
|
||||
x: winit.x,
|
||||
y: winit.y,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// A position represented in physical pixels.
|
||||
#[derive(Debug, Copy, Clone, Eq, PartialEq, Default, Hash)]
|
||||
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
|
||||
|
|
@ -293,6 +310,23 @@ impl<P: Pixel, X: Pixel> Into<[X; 2]> for PhysicalPosition<P> {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "mint")]
|
||||
impl<P: Pixel> From<mint::Point2<P>> for PhysicalPosition<P> {
|
||||
fn from(mint: mint::Point2<P>) -> Self {
|
||||
Self::new(mint.x, mint.y)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "mint")]
|
||||
impl<P: Pixel> From<PhysicalPosition<P>> for mint::Point2<P> {
|
||||
fn from(winit: PhysicalPosition<P>) -> Self {
|
||||
mint::Point2 {
|
||||
x: winit.x,
|
||||
y: winit.y,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// A size represented in logical pixels.
|
||||
#[derive(Debug, Copy, Clone, Eq, PartialEq, Default, Hash)]
|
||||
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
|
||||
|
|
@ -358,6 +392,23 @@ impl<P: Pixel, X: Pixel> Into<[X; 2]> for LogicalSize<P> {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "mint")]
|
||||
impl<P: Pixel> From<mint::Vector2<P>> for LogicalSize<P> {
|
||||
fn from(mint: mint::Vector2<P>) -> Self {
|
||||
Self::new(mint.x, mint.y)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "mint")]
|
||||
impl<P: Pixel> From<LogicalSize<P>> for mint::Vector2<P> {
|
||||
fn from(winit: LogicalSize<P>) -> Self {
|
||||
mint::Vector2 {
|
||||
x: winit.width,
|
||||
y: winit.height,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// A size represented in physical pixels.
|
||||
#[derive(Debug, Copy, Clone, Eq, PartialEq, Default, Hash)]
|
||||
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
|
||||
|
|
@ -420,6 +471,23 @@ impl<P: Pixel, X: Pixel> Into<[X; 2]> for PhysicalSize<P> {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "mint")]
|
||||
impl<P: Pixel> From<mint::Vector2<P>> for PhysicalSize<P> {
|
||||
fn from(mint: mint::Vector2<P>) -> Self {
|
||||
Self::new(mint.x, mint.y)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "mint")]
|
||||
impl<P: Pixel> From<PhysicalSize<P>> for mint::Vector2<P> {
|
||||
fn from(winit: PhysicalSize<P>) -> Self {
|
||||
mint::Vector2 {
|
||||
x: winit.width,
|
||||
y: winit.height,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// A size that's either physical or logical.
|
||||
#[derive(Debug, Copy, Clone, PartialEq)]
|
||||
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue