From a926290efbad6143b6b959f8cba236f84fc97c77 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Tue, 22 Oct 2024 12:29:41 -0600 Subject: [PATCH] Implement fill_raw --- examples/todos/Cargo.toml | 2 +- tiny_skia/src/layer.rs | 11 ++++++++++- tiny_skia/src/lib.rs | 5 ++++- wgpu/src/lib.rs | 3 ++- 4 files changed, 17 insertions(+), 4 deletions(-) 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); } }