aboutsummaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-04-21 20:10:35 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2024-04-21 20:16:54 +0400
commit49f5402669012be33f8cd111311c3e39fd4751c0 (patch)
treea90eab10775b63cddb0772923d43875ee13ef8b6 /src/backend
parent2ecbb3f6f8ceacdccc66a597e372c70029325dbf (diff)
downloadniri-49f5402669012be33f8cd111311c3e39fd4751c0.tar.gz
niri-49f5402669012be33f8cd111311c3e39fd4751c0.tar.bz2
niri-49f5402669012be33f8cd111311c3e39fd4751c0.zip
Implement window-resize custom-shader
Diffstat (limited to 'src/backend')
-rw-r--r--src/backend/tty.rs11
-rw-r--r--src/backend/winit.rs6
2 files changed, 15 insertions, 2 deletions
diff --git a/src/backend/tty.rs b/src/backend/tty.rs
index fd6cf0d6..6a5b3445 100644
--- a/src/backend/tty.rs
+++ b/src/backend/tty.rs
@@ -491,8 +491,15 @@ impl Tty {
warn!("error binding wl-display in EGL: {err:?}");
}
- resources::init(renderer.as_gles_renderer());
- shaders::init(renderer.as_gles_renderer());
+ let gles_renderer = renderer.as_gles_renderer();
+ resources::init(gles_renderer);
+ shaders::init(gles_renderer);
+
+ let config = self.config.borrow();
+ if let Some(src) = config.animations.window_resize.custom_shader.as_deref() {
+ shaders::set_custom_resize_program(gles_renderer, Some(src));
+ }
+ drop(config);
// Create the dmabuf global.
let primary_formats = renderer.dmabuf_formats().collect::<HashSet<_>>();
diff --git a/src/backend/winit.rs b/src/backend/winit.rs
index 177dab85..1d1dbc8a 100644
--- a/src/backend/winit.rs
+++ b/src/backend/winit.rs
@@ -135,6 +135,12 @@ impl Winit {
resources::init(renderer);
shaders::init(renderer);
+ let config = self.config.borrow();
+ if let Some(src) = config.animations.window_resize.custom_shader.as_deref() {
+ shaders::set_custom_resize_program(renderer, Some(src));
+ }
+ drop(config);
+
niri.add_output(self.output.clone(), None, false);
}