aboutsummaryrefslogtreecommitdiff
path: root/src/render_helpers/border.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-05-03 21:21:58 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2024-05-03 21:23:32 +0400
commit8ab50f9d1ca5795f4eef84ad423dc0d63d990b98 (patch)
tree547387d5d17f565791abf9ec3b5bd863a1257162 /src/render_helpers/border.rs
parent5c32031111223cdfb7ad5e9c2766204445ac6492 (diff)
downloadniri-8ab50f9d1ca5795f4eef84ad423dc0d63d990b98.tar.gz
niri-8ab50f9d1ca5795f4eef84ad423dc0d63d990b98.tar.bz2
niri-8ab50f9d1ca5795f4eef84ad423dc0d63d990b98.zip
shader_element: Store program type instead of shader
Diffstat (limited to 'src/render_helpers/border.rs')
-rw-r--r--src/render_helpers/border.rs24
1 files changed, 10 insertions, 14 deletions
diff --git a/src/render_helpers/border.rs b/src/render_helpers/border.rs
index 6f2b7795..b0b373e2 100644
--- a/src/render_helpers/border.rs
+++ b/src/render_helpers/border.rs
@@ -8,8 +8,8 @@ use smithay::backend::renderer::utils::{CommitCounter, DamageSet};
use smithay::utils::{Buffer, Logical, Physical, Rectangle, Scale, Transform};
use super::renderer::NiriRenderer;
-use super::shader_element::{ShaderProgram, ShaderRenderElement};
-use super::shaders::{mat3_uniform, Shaders};
+use super::shader_element::ShaderRenderElement;
+use super::shaders::{mat3_uniform, ProgramType, Shaders};
use crate::backend::tty::{TtyFrame, TtyRenderer, TtyRendererError};
/// Renders a wide variety of borders and border parts.
@@ -40,7 +40,6 @@ struct Parameters {
impl BorderRenderElement {
#[allow(clippy::too_many_arguments)]
pub fn new(
- shader: &ShaderProgram,
scale: Scale<f64>,
area: Rectangle<i32, Logical>,
gradient_area: Rectangle<i32, Logical>,
@@ -51,8 +50,7 @@ impl BorderRenderElement {
border_width: f32,
corner_radius: CornerRadius,
) -> Self {
- let mut inner = ShaderRenderElement::empty(Kind::Unspecified);
- inner.update_shader(Some(shader));
+ let inner = ShaderRenderElement::empty(ProgramType::Border, Kind::Unspecified);
let mut rv = Self {
inner,
params: Parameters {
@@ -72,7 +70,7 @@ impl BorderRenderElement {
}
pub fn empty() -> Self {
- let inner = ShaderRenderElement::empty(Kind::Unspecified);
+ let inner = ShaderRenderElement::empty(ProgramType::Border, Kind::Unspecified);
Self {
inner,
params: Parameters {
@@ -89,8 +87,8 @@ impl BorderRenderElement {
}
}
- pub fn update_shader(&mut self, shader: Option<&ShaderProgram>) {
- self.inner.update_shader(shader);
+ pub fn damage_all(&mut self) {
+ self.inner.damage_all();
}
#[allow(clippy::too_many_arguments)]
@@ -187,12 +185,10 @@ impl BorderRenderElement {
);
}
- pub fn has_shader(&self) -> bool {
- self.inner.has_shader()
- }
-
- pub fn shader(renderer: &mut impl NiriRenderer) -> Option<&ShaderProgram> {
- Shaders::get(renderer).border.as_ref()
+ pub fn has_shader(renderer: &mut impl NiriRenderer) -> bool {
+ Shaders::get(renderer)
+ .program(ProgramType::Border)
+ .is_some()
}
}