diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2025-02-08 13:33:28 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2025-02-10 07:29:33 -0800 |
| commit | 4f05a74aa84bca74b650cffdc7ad889413f621cf (patch) | |
| tree | 9bf496dde8954c60fb5ba232a2f2b10babcd9de5 /src/render_helpers | |
| parent | c30f522ef28ed01744f5c90150af8a9c4da558f1 (diff) | |
| download | niri-4f05a74aa84bca74b650cffdc7ad889413f621cf.tar.gz niri-4f05a74aa84bca74b650cffdc7ad889413f621cf.tar.bz2 niri-4f05a74aa84bca74b650cffdc7ad889413f621cf.zip | |
Add alpha parameter to shaders
Lets us add extra opacity.
Diffstat (limited to 'src/render_helpers')
| -rw-r--r-- | src/render_helpers/border.rs | 8 | ||||
| -rw-r--r-- | src/render_helpers/shader_element.rs | 2 | ||||
| -rw-r--r-- | src/render_helpers/shadow.rs | 8 |
3 files changed, 18 insertions, 0 deletions
diff --git a/src/render_helpers/border.rs b/src/render_helpers/border.rs index c0ab6663..588e53b1 100644 --- a/src/render_helpers/border.rs +++ b/src/render_helpers/border.rs @@ -39,6 +39,7 @@ struct Parameters { corner_radius: CornerRadius, // Should only be used for visual improvements, i.e. corner radius anti-aliasing. scale: f32, + alpha: f32, } impl BorderRenderElement { @@ -54,6 +55,7 @@ impl BorderRenderElement { border_width: f32, corner_radius: CornerRadius, scale: f32, + alpha: f32, ) -> Self { let inner = ShaderRenderElement::empty(ProgramType::Border, Kind::Unspecified); let mut rv = Self { @@ -69,6 +71,7 @@ impl BorderRenderElement { border_width, corner_radius, scale, + alpha, }, }; rv.update_inner(); @@ -90,6 +93,7 @@ impl BorderRenderElement { border_width: 0., corner_radius: Default::default(), scale: 1., + alpha: 1., }, } } @@ -111,6 +115,7 @@ impl BorderRenderElement { border_width: f32, corner_radius: CornerRadius, scale: f32, + alpha: f32, ) { let params = Parameters { size, @@ -123,6 +128,7 @@ impl BorderRenderElement { border_width, corner_radius, scale, + alpha, }; if self.params == params { return; @@ -144,6 +150,7 @@ impl BorderRenderElement { border_width, corner_radius, scale, + alpha, } = self.params; let grad_offset = geometry.loc - gradient_area.loc; @@ -189,6 +196,7 @@ impl BorderRenderElement { size, None, scale, + alpha, vec