diff --git a/examples/todos/Cargo.toml b/examples/todos/Cargo.toml index 60e6a6f7..12853c2d 100644 --- a/examples/todos/Cargo.toml +++ b/examples/todos/Cargo.toml @@ -10,7 +10,7 @@ tester = ["iced/tester"] [dependencies] iced.workspace = true -iced.features = ["tokio", "debug", "time-travel", "winit"] +iced.features = ["tokio", "debug", "time-travel", "winit", "wgpu"] serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" diff --git a/tiny_skia/src/layer.rs b/tiny_skia/src/layer.rs index 56b70b2c..85a4cb20 100644 --- a/tiny_skia/src/layer.rs +++ b/tiny_skia/src/layer.rs @@ -5,7 +5,7 @@ use crate::core::{ }; use crate::graphics::damage; use crate::graphics::layer; -use crate::graphics::text::{Editor, Paragraph, Text}; +use crate::graphics::text::{Editor, Paragraph, Raw, Text}; use crate::graphics::{self, Image}; use std::sync::Arc; @@ -128,6 +128,15 @@ impl Layer { .push(Item::Cached(text, clip_bounds, transformation)); } + pub fn draw_raw(&mut self, raw: Raw, transformation: Transformation) { + let text = Text::Raw { + raw, + transformation, + }; + + self.text.push(Item::Live(text)); + } + pub fn draw_image(&mut self, image: Image, transformation: Transformation) { match image { Image::Raster { diff --git a/tiny_skia/src/lib.rs b/tiny_skia/src/lib.rs index 6dd763ec..87556e58 100644 --- a/tiny_skia/src/lib.rs +++ b/tiny_skia/src/lib.rs @@ -309,7 +309,10 @@ impl core::text::Renderer for Renderer { layer.draw_text(text, position, color, clip_bounds, transformation); } - fn fill_raw(&mut self, _raw: Self::Raw) {} + fn fill_raw(&mut self, raw: Self::Raw) { + let (layer, transformation) = self.layers.current_mut(); + layer.draw_raw(raw, transformation); + } } impl graphics::text::Renderer for Renderer { diff --git a/wgpu/src/lib.rs b/wgpu/src/lib.rs index 13794f8a..07f4d7c3 100644 --- a/wgpu/src/lib.rs +++ b/wgpu/src/lib.rs @@ -824,7 +824,8 @@ impl core::text::Renderer for Renderer { } fn fill_raw(&mut self, raw: Self::Raw) { - // TODO + let (layer, transformation) = self.layers.current_mut(); + layer.draw_text_raw(raw, transformation); } }