feat(ui): wire ThemeRegistry crossfade into PushGlobal

Switch picks a lerped AbgrCache during the 300ms crossfade window
(ReduceMotion bypass keeps the snap path). Plugin-load init path
switches to SwitchSilent so opening the plugin no longer fades from
the default theme. WindowBg/ChildBg RGBA path stays bound to the
user's per-window opacity override and never fades.

PushGlobal takes the ThemeRegistry as a parameter -- it is an instance
member on Plugin, not static, so the single Plugin.Draw call-site
threads it through alongside the active theme.
This commit is contained in:
2026-05-20 10:36:33 +02:00
parent 74b07519f5
commit a35067f80a
3 changed files with 27 additions and 3 deletions
+1
View File
@@ -912,6 +912,7 @@ public sealed class Plugin : IAsyncDalamudPlugin
// Theme engine is always active; Classic is a theme, not a disabled state.
using IDisposable _style = HellionStyle.PushGlobal(
ThemeRegistry.Active,
ThemeRegistry,
Config.WindowOpacity
);