diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-05-01 19:06:08 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-05-02 14:27:53 +0400 |
| commit | 42cef79c699c0f03b4bb99c4278169c48d9a5bd0 (patch) | |
| tree | 630d18b49f3d93603a79bcfc5734dc773c6d0cb6 /niri-visual-tests/src | |
| parent | d86df5025cfd26ef4a3c48acd8ee80555265ee53 (diff) | |
| download | niri-42cef79c699c0f03b4bb99c4278169c48d9a5bd0.tar.gz niri-42cef79c699c0f03b4bb99c4278169c48d9a5bd0.tar.bz2 niri-42cef79c699c0f03b4bb99c4278169c48d9a5bd0.zip | |
Implement rounded window corners
Diffstat (limited to 'niri-visual-tests/src')
| -rw-r--r-- | niri-visual-tests/src/cases/gradient_angle.rs | 33 | ||||
| -rw-r--r-- | niri-visual-tests/src/cases/gradient_area.rs | 34 |
2 files changed, 40 insertions, 27 deletions
diff --git a/niri-visual-tests/src/cases/gradient_angle.rs b/niri-visual-tests/src/cases/gradient_angle.rs index adbedff4..aada9862 100644 --- a/niri-visual-tests/src/cases/gradient_angle.rs +++ b/niri-visual-tests/src/cases/gradient_angle.rs @@ -3,7 +3,8 @@ use std::sync::atomic::Ordering; use std::time::Duration; use niri::animation::ANIMATION_SLOWDOWN; -use niri::render_helpers::gradient::GradientRenderElement; +use niri::render_helpers::border::BorderRenderElement; +use niri_config::CornerRadius; use smithay::backend::renderer::element::RenderElement; use smithay::backend::renderer::gles::GlesRenderer; use smithay::utils::{Logical, Physical, Rectangle, Scale, Size}; @@ -60,17 +61,23 @@ impl TestCase for GradientAngle { let size = (size.w - a * 2, size.h - b * 2); let area = Rectangle::from_loc_and_size((a, b), size); - GradientRenderElement::new( - renderer, - Scale::from(1.), - area, - area, - [1., 0., 0., 1.], - [0., 1., 0., 1.], - self.angle - FRAC_PI_2, - ) - .into_iter() - .map(|elem| Box::new(elem) as _) - .collect() + BorderRenderElement::shader(renderer) + .map(|shader| { + BorderRenderElement::new( + shader.clone(), + Scale::from(1.), + area, + area, + [1., 0., 0., 1.], + [0., 1., 0., 1.], + self.angle - FRAC_PI_2, + area, + 0., + CornerRadius::default(), + ) + }) + .into_iter() + .map(|elem| Box::new(elem) as _) + .collect() } } diff --git a/niri-visual-tests/src/cases/gradient_area.rs b/niri-visual-tests/src/cases/gradient_area.rs index d47fb2ce..22aac0f0 100644 --- a/niri-visual-tests/src/cases/gradient_area.rs +++ b/niri-visual-tests/src/cases/gradient_area.rs @@ -4,8 +4,8 @@ use std::time::Duration; use niri::animation::ANIMATION_SLOWDOWN; use niri::layout::focus_ring::FocusRing; -use niri::render_helpers::gradient::GradientRenderElement; -use niri_config::Color; +use niri::render_helpers::border::BorderRenderElement; +use niri_config::{Color, CornerRadius}; use smithay::backend::renderer::element::RenderElement; use smithay::backend::renderer::gles::GlesRenderer; use smithay::utils::{Logical, Physical, Point, Rectangle, Scale, Size}; @@ -85,7 +85,7 @@ impl TestCase for GradientArea { let g_loc = ((size.w - g_size.w) / 2, (size.h - g_size.h) / 2); let g_area = Rectangle::from_loc_and_size(g_loc, g_size); - self.border.update(g_size, true); + self.border.update(g_size, true, CornerRadius::default()); rv.extend( self.border .render( @@ -98,17 +98,23 @@ impl TestCase for GradientArea { ); rv.extend( - GradientRenderElement::new( - renderer, - Scale::from(1.), - area, - g_area, - [1., 0., 0., 1.], - [0., 1., 0., 1.], - FRAC_PI_4, - ) - .into_iter() - .map(|elem| Box::new(elem) as _), + BorderRenderElement::shader(renderer) + .map(|shader| { + BorderRenderElement::new( + shader.clone(), + Scale::from(1.), + area, + g_area, + [1., 0., 0., 1.], + [0., 1., 0., 1.], + FRAC_PI_4, + area, + 0., + CornerRadius::default(), + ) + }) + .into_iter() + .map(|elem| Box::new(elem) as _), ); rv |
