summaryrefslogtreecommitdiffstats
path: root/tiny_skia/src/backend.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-04-05 18:42:27 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-04-05 18:42:27 +0200
commite134a82f4ca67346fc9095a0d488122737cfb0d8 (patch)
treea0bc0627efa629e98f63ccd66ef9b6964b458006 /tiny_skia/src/backend.rs
parent4ede482ab5ff6364237f5f4626784075045d5dfb (diff)
downloadiced-e134a82f4ca67346fc9095a0d488122737cfb0d8.tar.gz
iced-e134a82f4ca67346fc9095a0d488122737cfb0d8.tar.bz2
iced-e134a82f4ca67346fc9095a0d488122737cfb0d8.zip
Switch debug mode to fade old primitives and display damage in `iced_tiny_skia`
Diffstat (limited to 'tiny_skia/src/backend.rs')
-rw-r--r--tiny_skia/src/backend.rs97
1 files changed, 60 insertions, 37 deletions
diff --git a/tiny_skia/src/backend.rs b/tiny_skia/src/backend.rs
index 0b534bba..974faa74 100644
--- a/tiny_skia/src/backend.rs
+++ b/tiny_skia/src/backend.rs
@@ -74,7 +74,30 @@ impl Backend {
let damage = group_damage(damage, scale_factor, physical_size);
if !overlay.is_empty() {
- pixels.fill(into_color(background_color));
+ let path = tiny_skia::PathBuilder::from_rect(
+ tiny_skia::Rect::from_xywh(
+ 0.0,
+ 0.0,
+ physical_size.width as f32,
+ physical_size.height as f32,
+ )
+ .expect("Create damage rectangle"),
+ );
+
+ pixels.fill_path(
+ &path,
+ &tiny_skia::Paint {
+ shader: tiny_skia::Shader::SolidColor(into_color(Color {
+ a: 0.1,
+ ..background_color
+ })),
+ anti_alias: false,
+ ..Default::default()
+ },
+ tiny_skia::FillRule::default(),
+ tiny_skia::Transform::identity(),
+ None,
+ );
}
for region in damage {
@@ -135,42 +158,42 @@ impl Backend {
}
}
- if !overlay.is_empty() {
- let bounds = Rectangle {
- x: 0.0,
- y: 0.0,
- width: viewport.physical_width() as f32,
- height: viewport.physical_height() as f32,
- };
-
- adjust_clip_mask(clip_mask, pixels, bounds);
-
- for (i, text) in overlay.iter().enumerate() {
- const OVERLAY_TEXT_SIZE: f32 = 20.0;
-
- self.draw_primitive(
- &Primitive::Text {
- content: text.as_ref().to_owned(),
- size: OVERLAY_TEXT_SIZE,
- bounds: Rectangle {
- x: 10.0,
- y: 10.0 + i as f32 * OVERLAY_TEXT_SIZE * 1.2,
- width: bounds.width - 1.0,
- height: bounds.height - 1.0,
- },
- color: Color::BLACK,
- font: Font::MONOSPACE,
- horizontal_alignment: alignment::Horizontal::Left,
- vertical_alignment: alignment::Vertical::Top,
- },
- pixels,
- clip_mask,
- bounds,
- scale_factor,
- Vector::ZERO,
- );
- }
- }
+ //if !overlay.is_empty() {
+ // let bounds = Rectangle {
+ // x: 0.0,
+ // y: 0.0,
+ // width: viewport.physical_width() as f32,
+ // height: viewport.physical_height() as f32,
+ // };
+
+ // adjust_clip_mask(clip_mask, pixels, bounds);
+
+ // for (i, text) in overlay.iter().enumerate() {
+ // const OVERLAY_TEXT_SIZE: f32 = 20.0;
+
+ // self.draw_primitive(
+ // &Primitive::Text {
+ // content: text.as_ref().to_owned(),
+ // size: OVERLAY_TEXT_SIZE,
+ // bounds: Rectangle {
+ // x: 10.0,
+ // y: 10.0 + i as f32 * OVERLAY_TEXT_SIZE * 1.2,
+ // width: bounds.width - 1.0,
+ // height: bounds.height - 1.0,
+ // },
+ // color: Color::BLACK,
+ // font: Font::MONOSPACE,
+ // horizontal_alignment: alignment::Horizontal::Left,
+ // vertical_alignment: alignment::Vertical::Top,
+ // },
+ // pixels,
+ // clip_mask,
+ // bounds,
+ // scale_factor,
+ // Vector::ZERO,
+ // );
+ // }
+ //}
self.text_pipeline.trim_cache();