diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-06-17 09:16:28 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-06-18 14:01:28 +0300 |
| commit | 1dae45c58d7eabeda21ef490d712915890bf6cff (patch) | |
| tree | 62c473ab1662a1161ed522517ea57b7bd8db340c /niri-visual-tests/src/test_window.rs | |
| parent | 997119c44338ad96a40b4a1d6e958f77062a37ef (diff) | |
| download | niri-1dae45c58d7eabeda21ef490d712915890bf6cff.tar.gz niri-1dae45c58d7eabeda21ef490d712915890bf6cff.tar.bz2 niri-1dae45c58d7eabeda21ef490d712915890bf6cff.zip | |
Refactor layout to fractional-logical
Lets borders, gaps, and everything else stay pixel-perfect even with
fractional scale. Allows setting fractional border widths, gaps,
struts.
See the new wiki .md for more details.
Diffstat (limited to 'niri-visual-tests/src/test_window.rs')
| -rw-r--r-- | niri-visual-tests/src/test_window.rs | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/niri-visual-tests/src/test_window.rs b/niri-visual-tests/src/test_window.rs index 1ce770bd..dbba5192 100644 --- a/niri-visual-tests/src/test_window.rs +++ b/niri-visual-tests/src/test_window.rs @@ -6,9 +6,9 @@ use niri::layout::{ InteractiveResizeData, LayoutElement, LayoutElementRenderElement, LayoutElementRenderSnapshot, }; use niri::render_helpers::renderer::NiriRenderer; +use niri::render_helpers::solid_color::{SolidColorBuffer, SolidColorRenderElement}; 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}; use smithay::output::{self, Output}; use smithay::reexports::wayland_server::protocol::wl_surface::WlSurface; @@ -37,7 +37,7 @@ impl TestWindow { let size = Size::from((100, 200)); let min_size = Size::from((0, 0)); let max_size = Size::from((0, 0)); - let buffer = SolidColorBuffer::new(size, [0.15, 0.64, 0.41, 1.]); + let buffer = SolidColorBuffer::new(size.to_f64(), [0.15, 0.64, 0.41, 1.]); Self { id, @@ -49,7 +49,7 @@ impl TestWindow { buffer, pending_fullscreen: false, csd_shadow_width: 0, - csd_shadow_buffer: SolidColorBuffer::new((0, 0), [0., 0., 0., 0.3]), + csd_shadow_buffer: SolidColorBuffer::new((0., 0.), [0., 0., 0., 0.3]), })), } } @@ -112,14 +112,14 @@ impl TestWindow { if inner.size != new_size { inner.size = new_size; - inner.buffer.resize(new_size); + inner.buffer.resize(new_size.to_f64()); rv = true; } let mut csd_shadow_size = new_size; csd_shadow_size.w += inner.csd_shadow_width * 2; csd_shadow_size.h += inner.csd_shadow_width * 2; - inner.csd_shadow_buffer.resize(csd_shadow_size); + inner.csd_shadow_buffer.resize(csd_shadow_size.to_f64()); rv } @@ -147,8 +147,8 @@ impl LayoutElement for TestWindow { fn render<R: NiriRenderer>( &self, _renderer: &mut R, - location: Point<i32, Logical>, - scale: Scale<f64>, + location: Point<f64, Logical>, + _scale: Scale<f64>, alpha: f32, _target: RenderTarget, ) -> SplitElements<LayoutElementRenderElement<R>> { @@ -158,17 +158,15 @@ impl LayoutElement for TestWindow { normal: vec