From 7e709d98cfe4e108eed62c3e1c7c348a9d264fac Mon Sep 17 00:00:00 2001 From: goat Date: Tue, 23 Jul 2024 19:37:19 +0200 Subject: [PATCH] interface: make swapchain hooking mode into a console command instead --- .../Interface/Internal/DalamudInterface.cs | 22 +++++++++++++++++++ .../Settings/Tabs/SettingsTabExperimental.cs | 2 ++ 2 files changed, 24 insertions(+) diff --git a/Dalamud/Interface/Internal/DalamudInterface.cs b/Dalamud/Interface/Internal/DalamudInterface.cs index 71ba2b071..d2ffe488a 100644 --- a/Dalamud/Interface/Internal/DalamudInterface.cs +++ b/Dalamud/Interface/Internal/DalamudInterface.cs @@ -190,6 +190,28 @@ internal class DalamudInterface : IInternalDisposableService this.creditsDarkeningAnimation.Point1 = Vector2.Zero; this.creditsDarkeningAnimation.Point2 = new Vector2(CreditsDarkeningMaxAlpha); + + // This is temporary, until we know the repercussions of vtable hooking mode + consoleManager.AddCommand( + "dalamud.interface.swapchain_mode", + "Set swapchain hooking mode", + (string mode) => + { + switch (mode) + { + case "vtable": + this.configuration.SwapChainHookMode = SwapChainHelper.HookMode.VTable; + break; + case "bytecode": + this.configuration.SwapChainHookMode = SwapChainHelper.HookMode.ByteCode; + break; + default: + Log.Error("Unknown swapchain mode: {Mode}", mode); + break; + } + + this.configuration.QueueSave(); + }); } private delegate nint CrashDebugDelegate(nint self); diff --git a/Dalamud/Interface/Internal/Windows/Settings/Tabs/SettingsTabExperimental.cs b/Dalamud/Interface/Internal/Windows/Settings/Tabs/SettingsTabExperimental.cs index faefe418c..3f6ec783e 100644 --- a/Dalamud/Interface/Internal/Windows/Settings/Tabs/SettingsTabExperimental.cs +++ b/Dalamud/Interface/Internal/Windows/Settings/Tabs/SettingsTabExperimental.cs @@ -109,6 +109,7 @@ public class SettingsTabExperimental : SettingsTab }, }, + /* // Making this a console command instead, for now new GapSettingsEntry(5, true), new EnumSettingsEntry( @@ -119,6 +120,7 @@ public class SettingsTabExperimental : SettingsTab 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),