From 6bb83757ee907e5ce3be617251c441c02917388e Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Mon, 5 Feb 2024 14:05:08 +0400 Subject: Convert everything to niri_render_elements! {} --- src/layout/mod.rs | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) (limited to 'src/layout/mod.rs') 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 where R: ImportAll; - Wayland = WaylandSurfaceRenderElement, - SolidColor = SolidColorRenderElement, +niri_render_elements! { + LayoutElementRenderElement => { + Wayland = WaylandSurfaceRenderElement, + 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( + fn render( &self, renderer: &mut R, location: Point, scale: Scale, - ) -> Vec> - where - ::TextureId: 'static; + ) -> Vec>; fn request_size(&self, size: Size); fn request_fullscreen(&self, size: Size); @@ -227,15 +225,12 @@ impl LayoutElement for Window { SpaceElement::is_in_input_region(self, &surace_local) } - fn render( + fn render( &self, renderer: &mut R, location: Point, scale: Scale, - ) -> Vec> - where - ::TextureId: 'static, - { + ) -> Vec> { let buf_pos = location - self.geometry().loc; self.render_elements( renderer, @@ -1670,7 +1665,7 @@ mod tests { false } - fn render( + fn render( &self, _renderer: &mut R, _location: Point, -- cgit