diff options
Diffstat (limited to 'src/backend')
| -rw-r--r-- | src/backend/tty.rs | 9 | ||||
| -rw-r--r-- | src/backend/winit.rs | 9 |
2 files changed, 16 insertions, 2 deletions
diff --git a/src/backend/tty.rs b/src/backend/tty.rs index 3eb75a87..abcc93d3 100644 --- a/src/backend/tty.rs +++ b/src/backend/tty.rs @@ -58,6 +58,7 @@ use wayland_protocols::wp::presentation_time::server::wp_presentation_feedback; use super::{IpcOutputMap, RenderResult}; use crate::frame_clock::FrameClock; use crate::niri::{Niri, RedrawState, State}; +use crate::render_helpers::debug::draw_damage; use crate::render_helpers::renderer::AsGlesRenderer; use crate::render_helpers::{resources, shaders, RenderTarget}; use crate::utils::{get_monotonic_time, logical_output}; @@ -1243,9 +1244,15 @@ impl Tty { }; // Render the elements. - let elements = + let mut elements = niri.render::<TtyRenderer>(&mut renderer, output, true, RenderTarget::Output); + // Visualize the damage, if enabled. + if niri.debug_draw_damage { + let output_state = niri.output_state.get_mut(output).unwrap(); + draw_damage(&mut output_state.debug_damage_tracker, &mut elements); + } + // Hand them over to the DRM. let drm_compositor = &mut surface.compositor; match drm_compositor.render_frame::<_, _>(&mut renderer, &elements, [0.; 4]) { diff --git a/src/backend/winit.rs b/src/backend/winit.rs index 1d1dbc8a..f61c1c9f 100644 --- a/src/backend/winit.rs +++ b/src/backend/winit.rs @@ -19,6 +19,7 @@ use smithay::reexports::winit::window::WindowBuilder; use super::{IpcOutputMap, RenderResult}; use crate::niri::{Niri, RedrawState, State}; +use crate::render_helpers::debug::draw_damage; use crate::render_helpers::{resources, shaders, RenderTarget}; use crate::utils::{get_monotonic_time, logical_output}; @@ -159,13 +160,19 @@ impl Winit { let _span = tracy_client::span!("Winit::render"); // Render the elements. - let elements = niri.render::<GlesRenderer>( + let mut elements = niri.render::<GlesRenderer>( self.backend.renderer(), output, true, RenderTarget::Output, ); + // Visualize the damage, if enabled. + if niri.debug_draw_damage { + let output_state = niri.output_state.get_mut(output).unwrap(); + draw_damage(&mut output_state.debug_damage_tracker, &mut elements); + } + // Hand them over to winit. self.backend.bind().unwrap(); let age = self.backend.buffer_age().unwrap(); |
