aboutsummaryrefslogtreecommitdiff
path: root/src/layout/mod.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-02-05 14:05:08 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2024-02-05 14:05:08 +0400
commit6bb83757ee907e5ce3be617251c441c02917388e (patch)
tree9095133af6d7bdee3108d60ea467220562f5d68a /src/layout/mod.rs
parentb62a07956a112e4f34ebf51ddf83f2066398905c (diff)
downloadniri-6bb83757ee907e5ce3be617251c441c02917388e.tar.gz
niri-6bb83757ee907e5ce3be617251c441c02917388e.tar.bz2
niri-6bb83757ee907e5ce3be617251c441c02917388e.zip
Convert everything to niri_render_elements! {}
Diffstat (limited to 'src/layout/mod.rs')
-rw-r--r--src/layout/mod.rs29
1 files changed, 12 insertions, 17 deletions
diff --git a/src/layout/mod.rs b/src/layout/mod.rs
index 2a551b82..111562cd 100644
--- a/src/layout/mod.rs
+++ b/src/layout/mod.rs
@@ -38,14 +38,12 @@ use niri_config::{self, CenterFocusedColumn, Config, SizeChange, Struts};
use smithay::backend::renderer::element::solid::SolidColorRenderElement;
use smithay::backend::renderer::element::surface::WaylandSurfaceRenderElement;
use smithay::backend::renderer::element::AsRenderElements;
-use smithay::backend::renderer::{ImportAll, Renderer};
use smithay::desktop::space::SpaceElement;
use smithay::desktop::Window;
use smithay::output::Output;
use smithay::reexports::wayland_protocols::xdg::decoration::zv1::server::zxdg_toplevel_decoration_v1;
use smithay::reexports::wayland_protocols::xdg::shell::server::xdg_toplevel;
use smithay::reexports::wayland_server::protocol::wl_surface::WlSurface;
-use smithay::render_elements;
use smithay::utils::{Logical, Point, Rectangle, Scale, Size, Transform};
use smithay::wayland::compositor::{send_surface_state, with_states};
use smithay::wayland::shell::xdg::SurfaceCachedState;
@@ -54,6 +52,8 @@ pub use self::monitor::MonitorRenderElement;
use self::monitor::{Monitor, WorkspaceSwitch, WorkspaceSwitchGesture};
use self::workspace::{compute_working_area, Column, ColumnWidth, OutputId, Workspace};
use crate::animation::Animation;
+use crate::niri_render_elements;
+use crate::render_helpers::NiriRenderer;
use crate::utils::output_size;
mod focus_ring;
@@ -61,11 +61,11 @@ mod monitor;
mod tile;
mod workspace;
-render_elements! {
- #[derive(Debug)]
- pub LayoutElementRenderElement<R> where R: ImportAll;
- Wayland = WaylandSurfaceRenderElement<R>,
- SolidColor = SolidColorRenderElement,
+niri_render_elements! {
+ LayoutElementRenderElement => {
+ Wayland = WaylandSurfaceRenderElement<R>,
+ SolidColor = SolidColorRenderElement,
+ }
}
pub trait LayoutElement: PartialEq {
@@ -89,14 +89,12 @@ pub trait LayoutElement: PartialEq {
///
/// The element should be rendered in such a way that its visual geometry ends up at the given
/// location.
- fn render<R: Renderer + ImportAll>(
+ fn render<R: NiriRenderer>(
&self,
renderer: &mut R,
location: Point<i32, Logical>,
scale: Scale<f64>,
- ) -> Vec<LayoutElementRenderElement<R>>
- where
- <R as Renderer>::TextureId: 'static;
+ ) -> Vec<LayoutElementRenderElement<R>>;
fn request_size(&self, size: Size<i32, Logical>);
fn request_fullscreen(&self, size: Size<i32, Logical>);
@@ -227,15 +225,12 @@ impl LayoutElement for Window {
SpaceElement::is_in_input_region(self, &surace_local)
}
- fn render<R: Renderer + ImportAll>(
+ fn render<R: NiriRenderer>(
&self,
renderer: &mut R,
location: Point<i32, Logical>,
scale: Scale<f64>,
- ) -> Vec<LayoutElementRenderElement<R>>
- where
- <R as Renderer>::TextureId: 'static,
- {
+ ) -> Vec<LayoutElementRenderElement<R>> {
let buf_pos = location - self.geometry().loc;
self.render_elements(
renderer,
@@ -1670,7 +1665,7 @@ mod tests {
false
}
- fn render<R: Renderer + ImportAll>(
+ fn render<R: NiriRenderer>(
&self,
_renderer: &mut R,
_location: Point<i32, Logical>,