diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-05-01 19:02:22 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-05-01 19:04:11 +0400 |
| commit | 9309b3be61bb1e7d4ef3f9350b2646413850119b (patch) | |
| tree | 08e5d2d13b34366fcd907eaf835dc120c17c4fa2 /niri-visual-tests/src | |
| parent | c5be2dd5494fc33eb2e3bb7a28c5834c8f60078c (diff) | |
| download | niri-9309b3be61bb1e7d4ef3f9350b2646413850119b.tar.gz niri-9309b3be61bb1e7d4ef3f9350b2646413850119b.tar.bz2 niri-9309b3be61bb1e7d4ef3f9350b2646413850119b.zip | |
Split rendering between popups and window surface
Diffstat (limited to 'niri-visual-tests/src')
| -rw-r--r-- | niri-visual-tests/src/test_window.rs | 45 |
1 files changed, 24 insertions, 21 deletions
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<f64>, alpha: f32, _target: RenderTarget, - ) -> Vec<LayoutElementRenderElement<R>> { + ) -> SplitElements<LayoutElementRenderElement<R>> { 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<i32, Logical>, _animate: bool) { |
