aboutsummaryrefslogtreecommitdiff
path: root/src/niri.rs
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/niri.rs
parent2ecbb3f6f8ceacdccc66a597e372c70029325dbf (diff)
downloadniri-49f5402669012be33f8cd111311c3e39fd4751c0.tar.gz
niri-49f5402669012be33f8cd111311c3e39fd4751c0.tar.bz2
niri-49f5402669012be33f8cd111311c3e39fd4751c0.zip
Implement window-resize custom-shader
Diffstat (limited to 'src/niri.rs')
-rw-r--r--src/niri.rs13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/niri.rs b/src/niri.rs
index 145d143e..861e53f1 100644
--- a/src/niri.rs
+++ b/src/niri.rs
@@ -107,7 +107,9 @@ use crate::protocols::gamma_control::GammaControlManagerState;
use crate::protocols::screencopy::{Screencopy, ScreencopyManagerState};
use crate::pw_utils::{Cast, PipeWire};
use crate::render_helpers::renderer::NiriRenderer;
-use crate::render_helpers::{render_to_shm, render_to_texture, render_to_vec, RenderTarget};
+use crate::render_helpers::{
+ render_to_shm, render_to_texture, render_to_vec, shaders, RenderTarget,
+};
use crate::scroll_tracker::ScrollTracker;
use crate::ui::config_error_notification::ConfigErrorNotification;
use crate::ui::exit_confirm_dialog::ExitConfirmDialog;
@@ -895,6 +897,15 @@ impl State {
window_rules_changed = true;
}
+ if config.animations.window_resize.custom_shader
+ != old_config.animations.window_resize.custom_shader
+ {
+ let src = config.animations.window_resize.custom_shader.as_deref();
+ self.backend.with_primary_renderer(|renderer| {
+ shaders::set_custom_resize_program(renderer, src);
+ });
+ }
+
*old_config = config;
// Release the borrow.