summaryrefslogtreecommitdiffstats
path: root/wgpu/src/lib.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-04-03 22:57:28 +0200
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-04-03 22:57:28 +0200
commit1672b0d619a87fcbe8aa6c6699ac6b20f9a6181b (patch)
treeaffa6c27e1e0cd2d1f10f8c02c07610d60c244d8 /wgpu/src/lib.rs
parent88b72de282441367092b07f8075eb931eff495ad (diff)
downloadiced-1672b0d619a87fcbe8aa6c6699ac6b20f9a6181b.tar.gz
iced-1672b0d619a87fcbe8aa6c6699ac6b20f9a6181b.tar.bz2
iced-1672b0d619a87fcbe8aa6c6699ac6b20f9a6181b.zip
Reintroduce debug overlay in `iced_wgpu`
Diffstat (limited to 'wgpu/src/lib.rs')
-rw-r--r--wgpu/src/lib.rs48
1 files changed, 45 insertions, 3 deletions
diff --git a/wgpu/src/lib.rs b/wgpu/src/lib.rs
index b9869583..2d023d8b 100644
--- a/wgpu/src/lib.rs
+++ b/wgpu/src/lib.rs
@@ -120,9 +120,7 @@ impl Renderer {
let scale_factor = viewport.scale_factor() as f32;
let transformation = viewport.projection();
- for line in overlay {
- println!("{}", line.as_ref());
- }
+ self.draw_overlay(overlay, viewport);
self.prepare(
engine,
@@ -494,6 +492,50 @@ impl Renderer {
let _ = ManuallyDrop::into_inner(render_pass);
}
+
+ fn draw_overlay(
+ &mut self,
+ overlay: &[impl AsRef<str>],
+ viewport: &Viewport,
+ ) {
+ use crate::core::alignment;
+ use crate::core::text::Renderer as _;
+ use crate::core::Renderer as _;
+ use crate::core::Vector;
+
+ self.with_layer(
+ Rectangle::with_size(viewport.logical_size()),
+ |renderer| {
+ for (i, line) in overlay.iter().enumerate() {
+ let text = crate::core::Text {
+ content: line.as_ref().to_owned(),
+ bounds: viewport.logical_size(),
+ size: Pixels(20.0),
+ line_height: core::text::LineHeight::default(),
+ font: Font::MONOSPACE,
+ horizontal_alignment: alignment::Horizontal::Left,
+ vertical_alignment: alignment::Vertical::Top,
+ shaping: core::text::Shaping::Basic,
+ };
+
+ renderer.fill_text(
+ text.clone(),
+ Point::new(11.0, 11.0 + 25.0 * i as f32),
+ Color::new(0.9, 0.9, 0.9, 1.0),
+ Rectangle::with_size(Size::INFINITY),
+ );
+
+ renderer.fill_text(
+ text,
+ Point::new(11.0, 11.0 + 25.0 * i as f32)
+ + Vector::new(-1.0, -1.0),
+ Color::BLACK,
+ Rectangle::with_size(Size::INFINITY),
+ );
+ }
+ },
+ );
+ }
}
impl core::Renderer for Renderer {