summaryrefslogtreecommitdiffstats
path: root/graphics/src/layer.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector0193@gmail.com>2022-11-28 20:29:01 +0100
committerLibravatar GitHub <noreply@github.com>2022-11-28 20:29:01 +0100
commit8d67e21d48dcefbbb675cfad07849607ce0fe1b7 (patch)
tree58072c44539d4b7009fff3defe97834438234b1b /graphics/src/layer.rs
parent457d0560caf91884b148422e1ace3d64a38e0e33 (diff)
parentbb2bf063b472396d44f9f3114a87ba79dfd5f62e (diff)
downloadiced-8d67e21d48dcefbbb675cfad07849607ce0fe1b7.tar.gz
iced-8d67e21d48dcefbbb675cfad07849607ce0fe1b7.tar.bz2
iced-8d67e21d48dcefbbb675cfad07849607ce0fe1b7.zip
Merge pull request #1538 from iced-rs/group-solid-triangles
Group all solid triangles independently of color
Diffstat (limited to '')
-rw-r--r--graphics/src/layer.rs25
1 files changed, 21 insertions, 4 deletions
diff --git a/graphics/src/layer.rs b/graphics/src/layer.rs
index e95934b0..fd670f48 100644
--- a/graphics/src/layer.rs
+++ b/graphics/src/layer.rs
@@ -166,10 +166,27 @@ impl<'a> Layer<'a> {
border_color: border_color.into_linear(),
});
}
- Primitive::Mesh2D {
+ Primitive::SolidMesh { buffers, size } => {
+ let layer = &mut layers[current_layer];
+
+ let bounds = Rectangle::new(
+ Point::new(translation.x, translation.y),
+ *size,
+ );
+
+ // Only draw visible content
+ if let Some(clip_bounds) = layer.bounds.intersection(&bounds) {
+ layer.meshes.push(Mesh::Solid {
+ origin: Point::new(translation.x, translation.y),
+ buffers,
+ clip_bounds,
+ });
+ }
+ }
+ Primitive::GradientMesh {
buffers,
size,
- style,
+ gradient,
} => {
let layer = &mut layers[current_layer];
@@ -180,11 +197,11 @@ impl<'a> Layer<'a> {
// Only draw visible content
if let Some(clip_bounds) = layer.bounds.intersection(&bounds) {
- layer.meshes.push(Mesh {
+ layer.meshes.push(Mesh::Gradient {
origin: Point::new(translation.x, translation.y),
buffers,
clip_bounds,
- style,
+ gradient,
});
}
}