From 9309b3be61bb1e7d4ef3f9350b2646413850119b Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Wed, 1 May 2024 19:02:22 +0400 Subject: Split rendering between popups and window surface --- niri-visual-tests/src/test_window.rs | 45 +++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 21 deletions(-) (limited to 'niri-visual-tests') diff --git a/niri-visual-tests/src/test_window.rs b/niri-visual-tests/src/test_window.rs index 644d98b4..aef389fd 100644 --- a/niri-visual-tests/src/test_window.rs +++ b/niri-visual-tests/src/test_window.rs @@ -4,7 +4,7 @@ use std::rc::Rc; use niri::layout::{LayoutElement, LayoutElementRenderElement, LayoutElementRenderSnapshot}; use niri::render_helpers::renderer::NiriRenderer; -use niri::render_helpers::RenderTarget; +use niri::render_helpers::{RenderTarget, SplitElements}; use niri::window::ResolvedWindowRules; use smithay::backend::renderer::element::solid::{SolidColorBuffer, SolidColorRenderElement}; use smithay::backend::renderer::element::{Id, Kind}; @@ -149,28 +149,31 @@ impl LayoutElement for TestWindow { scale: Scale, alpha: f32, _target: RenderTarget, - ) -> Vec> { + ) -> SplitElements> { let inner = self.inner.borrow(); - vec![ - SolidColorRenderElement::from_buffer( - &inner.buffer, - location.to_physical_precise_round(scale), - scale, - alpha, - Kind::Unspecified, - ) - .into(), - SolidColorRenderElement::from_buffer( - &inner.csd_shadow_buffer, - (location - Point::from((inner.csd_shadow_width, inner.csd_shadow_width))) - .to_physical_precise_round(scale), - scale, - alpha, - Kind::Unspecified, - ) - .into(), - ] + SplitElements { + normal: vec![ + SolidColorRenderElement::from_buffer( + &inner.buffer, + location.to_physical_precise_round(scale), + scale, + alpha, + Kind::Unspecified, + ) + .into(), + SolidColorRenderElement::from_buffer( + &inner.csd_shadow_buffer, + (location - Point::from((inner.csd_shadow_width, inner.csd_shadow_width))) + .to_physical_precise_round(scale), + scale, + alpha, + Kind::Unspecified, + ) + .into(), + ], + popups: vec![], + } } fn request_size(&mut self, size: Size, _animate: bool) { -- cgit