aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/niri.rs15
-rw-r--r--src/render_helpers/debug.rs19
2 files changed, 18 insertions, 16 deletions
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<R: NiriRenderer>(
@@ -35,9 +36,9 @@ pub fn draw_opaque_regions<R: NiriRenderer>(
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<R: NiriRenderer>(
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<R: NiriRenderer>(
) {
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<R: NiriRenderer>(
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));