Add optional vtable swapchain hook mode

This commit is contained in:
Soreepeong 2024-07-23 10:57:09 +09:00
parent 6fd19638e9
commit 3215b6dddf
6 changed files with 374 additions and 29 deletions

View file

@ -98,7 +98,7 @@ public class SettingsTabExperimental : SettingsTab
{
ReShadeHandlingMode.ReShadeAddon => Loc.Localize(
"DalamudSettingsReShadeHandlingModeReShadeAddonDescription",
"Dalamud will register itself as a ReShade addon. Most compatibility is expected, but multi-monitor window option won't work too well."),
"Dalamud will register itself as a ReShade addon. Most compatibility is expected, but multi-monitor window option will require reloading ReShade every time a new window is opened, or even may not work at all."),
ReShadeHandlingMode.UnwrapReShade => Loc.Localize(
"DalamudSettingsReShadeHandlingModeUnwrapReShadeDescription",
"Dalamud will exclude itself from all ReShade handling. Multi-monitor windows should work fine with this mode, but it may not be supported and crash in future ReShade versions."),
@ -109,6 +109,17 @@ public class SettingsTabExperimental : SettingsTab
},
},
new GapSettingsEntry(5, true),
new EnumSettingsEntry<SwapChainHelper.HookMode>(
Loc.Localize("DalamudSettingsSwapChainHookMode", "Swap chain hooking mode"),
Loc.Localize(
"DalamudSettingsSwapChainHookModeHint",
"Depending on addons aside from Dalamud you use, you may have to use different options for Dalamud and other addons to cooperate.\nRestart is required for changes to take effect."),
c => c.SwapChainHookMode,
(v, c) => c.SwapChainHookMode = v,
fallbackValue: SwapChainHelper.HookMode.ByteCode),
/* Disabling profiles after they've been enabled doesn't make much sense, at least not if the user has already created profiles.
new GapSettingsEntry(5, true),