From 49f5402669012be33f8cd111311c3e39fd4751c0 Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Sun, 21 Apr 2024 20:10:35 +0400 Subject: Implement window-resize custom-shader --- src/niri.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src/niri.rs') 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. -- cgit