summaryrefslogtreecommitdiffstats
path: root/wgpu
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2023-10-24 05:34:03 +0200
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-02-02 02:24:45 +0100
commitf4d66486016076bb339a338bc589645119962d1e (patch)
treebbb9c4d996216893296cf4323857323542d6e757 /wgpu
parenta6e91d13d5d43796d0e6bb570fb4f010cf27921a (diff)
downloadiced-f4d66486016076bb339a338bc589645119962d1e.tar.gz
iced-f4d66486016076bb339a338bc589645119962d1e.tar.bz2
iced-f4d66486016076bb339a338bc589645119962d1e.zip
Introduce `with_transformation` to `Renderer` trait
Diffstat (limited to 'wgpu')
-rw-r--r--wgpu/src/backend.rs4
-rw-r--r--wgpu/src/geometry.rs3
-rw-r--r--wgpu/src/image.rs3
-rw-r--r--wgpu/src/layer.rs20
-rw-r--r--wgpu/src/layer/mesh.rs3
-rw-r--r--wgpu/src/layer/text.rs6
-rw-r--r--wgpu/src/quad.rs4
-rw-r--r--wgpu/src/text.rs20
-rw-r--r--wgpu/src/triangle.rs4
9 files changed, 33 insertions, 34 deletions
diff --git a/wgpu/src/backend.rs b/wgpu/src/backend.rs
index e86e52c4..77b6fa83 100644
--- a/wgpu/src/backend.rs
+++ b/wgpu/src/backend.rs
@@ -1,7 +1,7 @@
-use crate::core::{Color, Size};
+use crate::core::{Color, Size, Transformation};
use crate::graphics::backend;
use crate::graphics::color;
-use crate::graphics::{Transformation, Viewport};
+use crate::graphics::Viewport;
use crate::primitive::pipeline;
use crate::primitive::{self, Primitive};
use crate::quad;
diff --git a/wgpu/src/geometry.rs b/wgpu/src/geometry.rs
index d0660edc..8cfcfff0 100644
--- a/wgpu/src/geometry.rs
+++ b/wgpu/src/geometry.rs
@@ -1,6 +1,6 @@
//! Build and draw geometry.
use crate::core::text::LineHeight;
-use crate::core::{Pixels, Point, Rectangle, Size, Vector};
+use crate::core::{Pixels, Point, Rectangle, Size, Transformation, Vector};
use crate::graphics::color;
use crate::graphics::geometry::fill::{self, Fill};
use crate::graphics::geometry::{
@@ -8,7 +8,6 @@ use crate::graphics::geometry::{
};
use crate::graphics::gradient::{self, Gradient};
use crate::graphics::mesh::{self, Mesh};
-use crate::graphics::Transformation;
use crate::primitive::{self, Primitive};
use lyon::geom::euclid;
diff --git a/wgpu/src/image.rs b/wgpu/src/image.rs
index 1e5d3ee0..06c22870 100644
--- a/wgpu/src/image.rs
+++ b/wgpu/src/image.rs
@@ -8,8 +8,7 @@ mod vector;
use atlas::Atlas;
-use crate::core::{Rectangle, Size};
-use crate::graphics::Transformation;
+use crate::core::{Rectangle, Size, Transformation};
use crate::layer;
use crate::Buffer;
diff --git a/wgpu/src/layer.rs b/wgpu/src/layer.rs
index 4a2e72df..12588849 100644
--- a/wgpu/src/layer.rs
+++ b/wgpu/src/layer.rs
@@ -12,10 +12,12 @@ pub use text::Text;
use crate::core;
use crate::core::alignment;
-use crate::core::{Color, Font, Pixels, Point, Rectangle, Size, Vector};
+use crate::core::{
+ Color, Font, Pixels, Point, Rectangle, Size, Transformation, Vector,
+};
use crate::graphics;
use crate::graphics::color;
-use crate::graphics::{Transformation, Viewport};
+use crate::graphics::Viewport;
use crate::primitive::{self, Primitive};
use crate::quad::{self, Quad};
@@ -130,10 +132,10 @@ impl<'a> Layer<'a> {
layer.text.push(Text::Paragraph {
paragraph: paragraph.clone(),
- position: *position * transformation,
+ position: *position,
color: *color,
- clip_bounds: *clip_bounds * transformation,
- scale: transformation.scale_factor(),
+ clip_bounds: *clip_bounds,
+ transformation,
});
}
Primitive::Editor {
@@ -146,10 +148,10 @@ impl<'a> Layer<'a> {
layer.text.push(Text::Editor {
editor: editor.clone(),
- position: *position * transformation,
+ position: *position,
color: *color,
- clip_bounds: *clip_bounds * transformation,
- scale: transformation.scale_factor(),
+ clip_bounds: *clip_bounds,
+ transformation,
});
}
Primitive::Text {
@@ -168,7 +170,7 @@ impl<'a> Layer<'a> {
layer.text.push(Text::Cached(text::Cached {
content,
- bounds: *bounds * transformation,
+ bounds: *bounds + transformation.translation(),
size: *size * transformation.scale_factor(),
line_height: *line_height,
color: *color,
diff --git a/wgpu/src/layer/mesh.rs b/wgpu/src/layer/mesh.rs
index af3dc74a..5ed7c654 100644
--- a/wgpu/src/layer/mesh.rs
+++ b/wgpu/src/layer/mesh.rs
@@ -1,7 +1,6 @@
//! A collection of triangle primitives.
-use crate::core::Rectangle;
+use crate::core::{Rectangle, Transformation};
use crate::graphics::mesh;
-use crate::graphics::Transformation;
/// A mesh of triangles.
#[derive(Debug, Clone, Copy)]
diff --git a/wgpu/src/layer/text.rs b/wgpu/src/layer/text.rs
index 2a09aecc..4c2b66a4 100644
--- a/wgpu/src/layer/text.rs
+++ b/wgpu/src/layer/text.rs
@@ -1,6 +1,6 @@
use crate::core::alignment;
use crate::core::text;
-use crate::core::{Color, Font, Pixels, Point, Rectangle};
+use crate::core::{Color, Font, Pixels, Point, Rectangle, Transformation};
use crate::graphics;
use crate::graphics::text::editor;
use crate::graphics::text::paragraph;
@@ -15,7 +15,7 @@ pub enum Text<'a> {
position: Point,
color: Color,
clip_bounds: Rectangle,
- scale: f32,
+ transformation: Transformation,
},
/// An editor.
#[allow(missing_docs)]
@@ -24,7 +24,7 @@ pub enum Text<'a> {
position: Point,
color: Color,
clip_bounds: Rectangle,
- scale: f32,
+ transformation: Transformation,
},
/// Some cached text.
Cached(Cached<'a>),
diff --git a/wgpu/src/quad.rs b/wgpu/src/quad.rs
index 5a45187e..b932f54f 100644
--- a/wgpu/src/quad.rs
+++ b/wgpu/src/quad.rs
@@ -4,9 +4,9 @@ mod solid;
use gradient::Gradient;
use solid::Solid;
-use crate::core::{Background, Rectangle};
+use crate::core::{Background, Rectangle, Transformation};
+use crate::graphics;
use crate::graphics::color;
-use crate::graphics::{self, Transformation};
use bytemuck::{Pod, Zeroable};
diff --git a/wgpu/src/text.rs b/wgpu/src/text.rs
index 4a151073..cffe57cb 100644
--- a/wgpu/src/text.rs
+++ b/wgpu/src/text.rs
@@ -1,5 +1,5 @@
use crate::core::alignment;
-use crate::core::{Rectangle, Size};
+use crate::core::{Rectangle, Size, Transformation};
use crate::graphics::color;
use crate::graphics::text::cache::{self, Cache};
use crate::graphics::text::{font_system, to_color, Editor, Paragraph};
@@ -124,13 +124,13 @@ impl Pipeline {
vertical_alignment,
color,
clip_bounds,
- scale,
+ transformation,
) = match section {
Text::Paragraph {
position,
color,
clip_bounds,
- scale,
+ transformation,
..
} => {
use crate::core::text::Paragraph as _;
@@ -147,14 +147,14 @@ impl Pipeline {
paragraph.vertical_alignment(),
*color,
*clip_bounds,
- *scale,
+ *transformation,
)
}
Text::Editor {
position,
color,
clip_bounds,
- scale,
+ transformation,
..
} => {
use crate::core::text::Editor as _;
@@ -171,7 +171,7 @@ impl Pipeline {
alignment::Vertical::Top,
*color,
*clip_bounds,
- *scale,
+ *transformation,
)
}
Text::Cached(text) => {
@@ -191,7 +191,7 @@ impl Pipeline {
text.vertical_alignment,
text.color,
text.clip_bounds,
- 1.0,
+ Transformation::IDENTITY,
)
}
Text::Raw(text) => {
@@ -211,12 +211,12 @@ impl Pipeline {
alignment::Vertical::Top,
text.color,
text.clip_bounds,
- 1.0,
+ Transformation::IDENTITY,
)
}
};
- let bounds = bounds * scale_factor;
+ let bounds = bounds * transformation * scale_factor;
let left = match horizontal_alignment {
alignment::Horizontal::Left => bounds.x,
@@ -241,7 +241,7 @@ impl Pipeline {
buffer,
left,
top,
- scale: scale * scale_factor,
+ scale: scale_factor * transformation.scale_factor(),
bounds: glyphon::TextBounds {
left: clip_bounds.x as i32,
top: clip_bounds.y as i32,
diff --git a/wgpu/src/triangle.rs b/wgpu/src/triangle.rs
index 28a7b1b3..2bb6f307 100644
--- a/wgpu/src/triangle.rs
+++ b/wgpu/src/triangle.rs
@@ -1,8 +1,8 @@
//! Draw meshes of triangles.
mod msaa;
-use crate::core::Size;
-use crate::graphics::{Antialiasing, Transformation};
+use crate::core::{Size, Transformation};
+use crate::graphics::Antialiasing;
use crate::layer::mesh::{self, Mesh};
use crate::Buffer;