diff options
author | 2022-11-28 20:29:01 +0100 | |
---|---|---|
committer | 2022-11-28 20:29:01 +0100 | |
commit | 8d67e21d48dcefbbb675cfad07849607ce0fe1b7 (patch) | |
tree | 58072c44539d4b7009fff3defe97834438234b1b /graphics/src/layer.rs | |
parent | 457d0560caf91884b148422e1ace3d64a38e0e33 (diff) | |
parent | bb2bf063b472396d44f9f3114a87ba79dfd5f62e (diff) | |
download | iced-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.rs | 25 |
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, }); } } |