summaryrefslogtreecommitdiffstats
path: root/graphics/src/primitive.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-04-04 20:47:53 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-04-04 20:47:53 +0200
commit6270c33ed9823c67f6b6e6dac8fd32521e4ac5a9 (patch)
treec1ac08705d97e836595922c9148152cb140b07a0 /graphics/src/primitive.rs
parent0f7abffc0e94b4bb9f8117db633bfd07d900eb93 (diff)
downloadiced-6270c33ed9823c67f6b6e6dac8fd32521e4ac5a9.tar.gz
iced-6270c33ed9823c67f6b6e6dac8fd32521e4ac5a9.tar.bz2
iced-6270c33ed9823c67f6b6e6dac8fd32521e4ac5a9.zip
Keep playing with incremental rendering (still very slow)
Diffstat (limited to 'graphics/src/primitive.rs')
-rw-r--r--graphics/src/primitive.rs12
1 files changed, 10 insertions, 2 deletions
diff --git a/graphics/src/primitive.rs b/graphics/src/primitive.rs
index bbf300b0..f079ff6f 100644
--- a/graphics/src/primitive.rs
+++ b/graphics/src/primitive.rs
@@ -230,7 +230,11 @@ impl Primitive {
},
) => {
if bounds_a == bounds_b {
- return content_a.damage(content_b);
+ return content_a
+ .damage(content_b)
+ .into_iter()
+ .filter_map(|r| r.intersection(bounds_a))
+ .collect();
} else {
return vec![*bounds_a, *bounds_b];
}
@@ -246,7 +250,11 @@ impl Primitive {
},
) => {
if translation_a == translation_b {
- return content_a.damage(content_b);
+ return content_a
+ .damage(content_b)
+ .into_iter()
+ .map(|r| r + *translation_a)
+ .collect();
}
}
(