summaryrefslogtreecommitdiffstats
path: root/widget
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-03-21 05:52:48 +0100
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-03-21 05:52:48 +0100
commit188db4da48954b95a3fe79bcd22689ffc3a661e0 (patch)
tree8af47544c98c212b50c15e66458518974139b796 /widget
parent2b00e8b1457b0ccbafe12db3dbd6431c2c72f275 (diff)
downloadiced-188db4da48954b95a3fe79bcd22689ffc3a661e0.tar.gz
iced-188db4da48954b95a3fe79bcd22689ffc3a661e0.tar.bz2
iced-188db4da48954b95a3fe79bcd22689ffc3a661e0.zip
Draft support for dynamic custom renderer injection
Diffstat (limited to 'widget')
-rw-r--r--widget/src/image.rs10
-rw-r--r--widget/src/image/viewer.rs7
-rw-r--r--widget/src/svg.rs6
3 files changed, 13 insertions, 10 deletions
diff --git a/widget/src/image.rs b/widget/src/image.rs
index ccf1f175..f673c7b3 100644
--- a/widget/src/image.rs
+++ b/widget/src/image.rs
@@ -93,7 +93,7 @@ where
{
// The raw w/h of the underlying image
let image_size = {
- let Size { width, height } = renderer.dimensions(handle);
+ let Size { width, height } = renderer.measure_image(handle);
Size::new(width as f32, height as f32)
};
@@ -130,7 +130,7 @@ pub fn draw<Renderer, Handle>(
Renderer: image::Renderer<Handle = Handle>,
Handle: Clone + Hash,
{
- let Size { width, height } = renderer.dimensions(handle);
+ let Size { width, height } = renderer.measure_image(handle);
let image_size = Size::new(width as f32, height as f32);
let bounds = layout.bounds();
@@ -148,7 +148,11 @@ pub fn draw<Renderer, Handle>(
..bounds
};
- renderer.draw(handle.clone(), filter_method, drawing_bounds + offset);
+ renderer.draw_image(
+ handle.clone(),
+ filter_method,
+ drawing_bounds + offset,
+ );
};
if adjusted_fit.width > bounds.width || adjusted_fit.height > bounds.height
diff --git a/widget/src/image/viewer.rs b/widget/src/image/viewer.rs
index 2e3fd713..5f7bb345 100644
--- a/widget/src/image/viewer.rs
+++ b/widget/src/image/viewer.rs
@@ -117,7 +117,7 @@ where
renderer: &Renderer,
limits: &layout::Limits,
) -> layout::Node {
- let Size { width, height } = renderer.dimensions(&self.handle);
+ let Size { width, height } = renderer.measure_image(&self.handle);
let mut size = limits.resolve(
self.width,
@@ -335,8 +335,7 @@ where
renderer.with_layer(bounds, |renderer| {
renderer.with_translation(translation, |renderer| {
- image::Renderer::draw(
- renderer,
+ renderer.draw_image(
self.handle.clone(),
self.filter_method,
Rectangle {
@@ -421,7 +420,7 @@ pub fn image_size<Renderer>(
where
Renderer: image::Renderer,
{
- let Size { width, height } = renderer.dimensions(handle);
+ let Size { width, height } = renderer.measure_image(handle);
let (width, height) = {
let dimensions = (width as f32, height as f32);
diff --git a/widget/src/svg.rs b/widget/src/svg.rs
index 1ac07ade..53c45bcb 100644
--- a/widget/src/svg.rs
+++ b/widget/src/svg.rs
@@ -108,7 +108,7 @@ where
limits: &layout::Limits,
) -> layout::Node {
// The raw w/h of the underlying image
- let Size { width, height } = renderer.dimensions(&self.handle);
+ let Size { width, height } = renderer.measure_svg(&self.handle);
let image_size = Size::new(width as f32, height as f32);
// The size to be available to the widget prior to `Shrink`ing
@@ -142,7 +142,7 @@ where
cursor: mouse::Cursor,
_viewport: &Rectangle,
) {
- let Size { width, height } = renderer.dimensions(&self.handle);
+ let Size { width, height } = renderer.measure_svg(&self.handle);
let image_size = Size::new(width as f32, height as f32);
let bounds = layout.bounds();
@@ -169,7 +169,7 @@ where
let appearance = (self.style)(theme, status);
- renderer.draw(
+ renderer.draw_svg(
self.handle.clone(),
appearance.color,
drawing_bounds + offset,