Bundle renderer and target into a RenderCtx

This commit is contained in:
Ivan Molodetskikh
2026-01-30 08:44:32 +03:00
parent 874e7fd70e
commit dd1f28998f
21 changed files with 273 additions and 293 deletions
+6 -4
View File
@@ -3,7 +3,7 @@ use std::time::Duration;
use niri::animation::Clock;
use niri::layout::{ActivateWindow, AddWindowTarget, LayoutElement as _, Options, SizingMode};
use niri::render_helpers::RenderTarget;
use niri::render_helpers::{RenderCtx, RenderTarget};
use niri_config::{Color, OutputName, PresetSize};
use smithay::backend::renderer::element::RenderElement;
use smithay::backend::renderer::gles::GlesRenderer;
@@ -270,12 +270,14 @@ impl TestCase for Layout {
self.layout.update_render_elements(Some(&self.output));
let mut rv = Vec::new();
let ctx = RenderCtx {
renderer,
target: RenderTarget::Output,
};
self.layout
.monitor_for_output(&self.output)
.unwrap()
.render_workspaces(renderer, RenderTarget::Output, true, &mut |elem| {
rv.push(Box::new(elem) as _)
});
.render_workspaces(ctx, true, &mut |elem| rv.push(Box::new(elem) as _));
rv
}
}
+7 -7
View File
@@ -2,7 +2,7 @@ use std::rc::Rc;
use std::time::Duration;
use niri::layout::Options;
use niri::render_helpers::RenderTarget;
use niri::render_helpers::{RenderCtx, RenderTarget};
use niri_config::Color;
use smithay::backend::renderer::element::RenderElement;
use smithay::backend::renderer::gles::GlesRenderer;
@@ -121,13 +121,13 @@ impl TestCase for Tile {
);
let mut rv = Vec::new();
self.tile.render(
let ctx = RenderCtx {
renderer,
location,
true,
RenderTarget::Output,
&mut |elem| rv.push(Box::new(elem) as _),
);
target: RenderTarget::Output,
};
self.tile.render(ctx, location, true, &mut |elem| {
rv.push(Box::new(elem) as _)
});
rv
}
}
+8 -8
View File
@@ -1,5 +1,5 @@
use niri::layout::{LayoutElement, SizingMode};
use niri::render_helpers::RenderTarget;
use niri::render_helpers::{RenderCtx, RenderTarget};
use smithay::backend::renderer::element::RenderElement;
use smithay::backend::renderer::gles::GlesRenderer;
use smithay::utils::{Physical, Point, Scale, Size};
@@ -53,14 +53,14 @@ impl TestCase for Window {
.downscale(2.);
let mut rv = Vec::new();
self.window.render_normal(
let ctx = RenderCtx {
renderer,
location,
Scale::from(1.),
1.,
RenderTarget::Output,
&mut |elem| rv.push(Box::new(elem) as _),
);
target: RenderTarget::Output,
};
self.window
.render_normal(ctx, location, Scale::from(1.), 1., &mut |elem| {
rv.push(Box::new(elem) as _)
});
rv
}
}
+2 -3
View File
@@ -9,7 +9,7 @@ use niri::layout::{
use niri::render_helpers::offscreen::OffscreenData;
use niri::render_helpers::renderer::NiriRenderer;
use niri::render_helpers::solid_color::{SolidColorBuffer, SolidColorRenderElement};
use niri::render_helpers::RenderTarget;
use niri::render_helpers::RenderCtx;
use niri::utils::transaction::Transaction;
use niri::window::ResolvedWindowRules;
use smithay::backend::renderer::element::Kind;
@@ -151,11 +151,10 @@ impl LayoutElement for TestWindow {
fn render_normal<R: NiriRenderer>(
&self,
_renderer: &mut R,
_ctx: RenderCtx<R>,
location: Point<f64, Logical>,
_scale: Scale<f64>,
alpha: f32,
_target: RenderTarget,
push: &mut dyn FnMut(LayoutElementRenderElement<R>),
) {
let inner = self.inner.borrow();