diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-04-21 20:10:35 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-04-21 20:16:54 +0400 |
| commit | 49f5402669012be33f8cd111311c3e39fd4751c0 (patch) | |
| tree | a90eab10775b63cddb0772923d43875ee13ef8b6 /src/backend | |
| parent | 2ecbb3f6f8ceacdccc66a597e372c70029325dbf (diff) | |
| download | niri-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.rs | 11 | ||||
| -rw-r--r-- | src/backend/winit.rs | 6 |
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); } |
