diff options
author | 2024-08-04 03:28:43 +0200 | |
---|---|---|
committer | 2024-08-04 03:28:43 +0200 | |
commit | 0ceee1cf3ae49f5bd0e3f2b346a4b34076e4523a (patch) | |
tree | c44e036220ea40734a00bb8e05e4afa6a9504bea /wgpu/src/lib.rs | |
parent | 87a613edd186461f1a8d224394043527a372571c (diff) | |
download | iced-0ceee1cf3ae49f5bd0e3f2b346a4b34076e4523a.tar.gz iced-0ceee1cf3ae49f5bd0e3f2b346a4b34076e4523a.tar.bz2 iced-0ceee1cf3ae49f5bd0e3f2b346a4b34076e4523a.zip |
Implement image support for `canvas` widget
Diffstat (limited to 'wgpu/src/lib.rs')
-rw-r--r-- | wgpu/src/lib.rs | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/wgpu/src/lib.rs b/wgpu/src/lib.rs index 954340ec..24e60979 100644 --- a/wgpu/src/lib.rs +++ b/wgpu/src/lib.rs @@ -536,13 +536,14 @@ impl core::image::Renderer for Renderer { opacity: f32, ) { let (layer, transformation) = self.layers.current_mut(); - layer.draw_image( + layer.draw_raster( handle, filter_method, bounds, transformation, rotation, opacity, + true, ); } } @@ -593,8 +594,17 @@ impl graphics::geometry::Renderer for Renderer { let (layer, transformation) = self.layers.current_mut(); match geometry { - Geometry::Live { meshes, text } => { + Geometry::Live { + meshes, + images, + text, + } => { layer.draw_mesh_group(meshes, transformation); + + for image in images { + layer.draw_image(&image, transformation); + } + layer.draw_text_group(text, transformation); } Geometry::Cached(cache) => { @@ -602,6 +612,12 @@ impl graphics::geometry::Renderer for Renderer { layer.draw_mesh_cache(meshes, transformation); } + if let Some(images) = cache.images { + for image in images.iter() { + layer.draw_image(image, transformation); + } + } + if let Some(text) = cache.text { layer.draw_text_cache(text, transformation); } |