From db09727b183d34675f645b499e8153c822260bfa Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Mon, 28 Apr 2025 07:53:03 +0300 Subject: Replace Smithay's SolidColor elements with ours Must've forgotten about these back when I replaced others. --- src/niri.rs | 15 ++++++--------- src/render_helpers/debug.rs | 19 ++++++++++++------- 2 files changed, 18 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/niri.rs b/src/niri.rs index 28fac293..292618cc 100644 --- a/src/niri.rs +++ b/src/niri.rs @@ -21,7 +21,6 @@ use smithay::backend::allocator::Fourcc; use smithay::backend::input::Keycode; use smithay::backend::renderer::damage::OutputDamageTracker; use smithay::backend::renderer::element::memory::MemoryRenderBufferRenderElement; -use smithay::backend::renderer::element::solid::{SolidColorBuffer, SolidColorRenderElement}; use smithay::backend::renderer::element::surface::{ render_elements_from_surface_tree, WaylandSurfaceRenderElement, }; @@ -149,6 +148,7 @@ use crate::pw_utils::{CastSizeChange, PwToNiri}; use crate::render_helpers::debug::draw_opaque_regions; use crate::render_helpers::primary_gpu_texture::PrimaryGpuTextureRenderElement; use crate::render_helpers::renderer::NiriRenderer; +use crate::render_helpers::solid_color::{SolidColorBuffer, SolidColorRenderElement}; use crate::render_helpers::texture::TextureBuffer; use crate::render_helpers::{ encompassing_geo, render_to_dmabuf, render_to_encompassing_texture, render_to_shm, @@ -2729,7 +2729,7 @@ impl Niri { LockRenderState::Unlocked }; - let size = output_size(&output).to_i32_round(); + let size = output_size(&output); let state = OutputState { global, redraw_state: RedrawState::Idle, @@ -2826,7 +2826,7 @@ impl Niri { } pub fn output_resized(&mut self, output: &Output) { - let output_size = output_size(output).to_i32_round(); + let output_size = output_size(output); let scale = output.current_scale(); let transform = output.current_transform(); @@ -3926,8 +3926,7 @@ impl Niri { elements.push( SolidColorRenderElement::from_buffer( &state.lock_color_buffer, - (0, 0), - output_scale, + (0., 0.), 1., Kind::Unspecified, ) @@ -3945,15 +3944,13 @@ impl Niri { let background_buffer = state.background_buffer.clone(); let background = SolidColorRenderElement::from_buffer( &background_buffer, - (0, 0), - output_scale, + (0., 0.), 1., Kind::Unspecified, ); let backdrop = SolidColorRenderElement::from_buffer( &state.backdrop_buffer, - (0, 0), - output_scale, + (0., 0.), 1., Kind::Unspecified, ) diff --git a/src/render_helpers/debug.rs b/src/render_helpers/debug.rs index 164e4370..6843aeb4 100644 --- a/src/render_helpers/debug.rs +++ b/src/render_helpers/debug.rs @@ -1,10 +1,11 @@ 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; +use smithay::backend::renderer::Color32F; use smithay::utils::Scale; use super::renderer::NiriRenderer; +use super::solid_color::SolidColorRenderElement; use crate::niri::OutputRenderElements; pub fn draw_opaque_regions( @@ -35,9 +36,9 @@ pub fn draw_opaque_regions( for rect in opaque { let color = SolidColorRenderElement::new( Id::new(), - rect, + rect.to_f64().to_logical(scale), CommitCounter::default(), - [0., 0., 0.2, 0.2], + Color32F::from([0., 0., 0.2, 0.2]), Kind::Unspecified, ); elements.insert(i - 1, OutputRenderElements::SolidColor(color)); @@ -47,9 +48,9 @@ pub fn draw_opaque_regions( for rect in semitransparent { let color = SolidColorRenderElement::new( Id::new(), - rect, + rect.to_f64().to_logical(scale), CommitCounter::default(), - [0.3, 0., 0., 0.3], + Color32F::from([0.3, 0., 0., 0.3]), Kind::Unspecified, ); elements.insert(i - 1, OutputRenderElements::SolidColor(color)); @@ -64,6 +65,10 @@ pub fn draw_damage( ) { let _span = tracy_client::span!("draw_damage"); + let Ok((_, scale, _)) = damage_tracker.mode().try_into() else { + return; + }; + let Ok((Some(damage), _)) = damage_tracker.damage_output(1, elements) else { return; }; @@ -71,9 +76,9 @@ pub fn draw_damage( for rect in damage { let color = SolidColorRenderElement::new( Id::new(), - *rect, + rect.to_f64().to_logical(scale), CommitCounter::default(), - [0.3, 0., 0., 0.3], + Color32F::from([0.3, 0., 0., 0.3]), Kind::Unspecified, ); elements.insert(0, OutputRenderElements::SolidColor(color)); -- cgit