From 1a8d6b1f1df80009795ed23e9ce0298fac65d766 Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Fri, 3 May 2024 10:25:51 +0400 Subject: Add a semi-working debug-toggle-damage binding --- src/render_helpers/debug.rs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/render_helpers') diff --git a/src/render_helpers/debug.rs b/src/render_helpers/debug.rs index f67abdb3..2a4c4332 100644 --- a/src/render_helpers/debug.rs +++ b/src/render_helpers/debug.rs @@ -1,3 +1,4 @@ +use smithay::backend::renderer::damage::OutputDamageTracker; use smithay::backend::renderer::element::solid::SolidColorRenderElement; use smithay::backend::renderer::element::{Element, Id, Kind}; use smithay::backend::renderer::utils::CommitCounter; @@ -56,3 +57,25 @@ pub fn draw_opaque_regions( } } } + +pub fn draw_damage( + damage_tracker: &mut OutputDamageTracker, + elements: &mut Vec>, +) { + let _span = tracy_client::span!("draw_damage"); + + let Ok((Some(damage), _)) = damage_tracker.damage_output(1, elements) else { + return; + }; + + for rect in damage { + let color = SolidColorRenderElement::new( + Id::new(), + *rect, + CommitCounter::default(), + [0.3, 0., 0., 0.3], + Kind::Unspecified, + ); + elements.insert(0, OutputRenderElements::SolidColor(color)); + } +} -- cgit