diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-04-10 08:53:35 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-04-10 09:14:04 +0400 |
| commit | 18886965673e3f9d5faec0bafd09f68be2d9db45 (patch) | |
| tree | 4cfc7fbf7c5b9b87fca7c47e672a6c47cc06855a /src/handlers/xdg_shell.rs | |
| parent | b9e789619f91d4b542618cb19b0fa27cd2e052c7 (diff) | |
| download | niri-18886965673e3f9d5faec0bafd09f68be2d9db45.tar.gz niri-18886965673e3f9d5faec0bafd09f68be2d9db45.tar.bz2 niri-18886965673e3f9d5faec0bafd09f68be2d9db45.zip | |
Reimplement window closing anim in an efficient way
- Keep a root surface cache to be accessible in surface destroyed()
- Only snapshot during / right before closing, rather than every frame
- Store textures rather than elements to handle scale and alpha properly
Diffstat (limited to 'src/handlers/xdg_shell.rs')
| -rw-r--r-- | src/handlers/xdg_shell.rs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/handlers/xdg_shell.rs b/src/handlers/xdg_shell.rs index 2cbaad25..53001459 100644 --- a/src/handlers/xdg_shell.rs +++ b/src/handlers/xdg_shell.rs @@ -383,6 +383,9 @@ impl XdgShellHandler for State { let output = output.clone(); self.backend.with_primary_renderer(|renderer| { + mapped.render_and_store_snapshot(renderer); + }); + self.backend.with_primary_renderer(|renderer| { self.niri .layout .start_close_animation_for_window(renderer, &window); |
