From db73daf8a96f097aa70496d05ba1a31c8debb875 Mon Sep 17 00:00:00 2001 From: zznty <94796179+zznty@users.noreply.github.com> Date: Wed, 4 Jun 2025 15:58:58 +0700 Subject: [PATCH] move imgui config to config/ directory --- CringeLauncher/ImGuiHandler.cs | 8 +++++--- CringeLauncher/Launcher.cs | 9 ++++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/CringeLauncher/ImGuiHandler.cs b/CringeLauncher/ImGuiHandler.cs index 97a9bbd..c8e53b3 100644 --- a/CringeLauncher/ImGuiHandler.cs +++ b/CringeLauncher/ImGuiHandler.cs @@ -17,6 +17,7 @@ namespace CringeLauncher; internal sealed class ImGuiHandler : IGuiHandler, IDisposable { + private readonly DirectoryInfo _configDir; private DeviceContext? _deviceContext; private int _blockKeysCounter; private static nint _wndproc; @@ -37,8 +38,9 @@ internal sealed class ImGuiHandler : IGuiHandler, IDisposable private readonly IRootRenderComponent _renderHandler; private static bool _init; - public ImGuiHandler() + public ImGuiHandler(DirectoryInfo configDir) { + _configDir = configDir; _renderHandler = new RenderHandler(this); } @@ -50,9 +52,9 @@ internal sealed class ImGuiHandler : IGuiHandler, IDisposable var io = GetIO(); - var path = Path.Join(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "CringeLauncher", "imgui.ini"); + var path = Path.Join(_configDir.FullName, "imgui.ini"); - io.NativePtr->IniFilename = AnsiStringMarshaller.ConvertToUnmanaged(path); + io.NativePtr->IniFilename = Utf8StringMarshaller.ConvertToUnmanaged(path); io.ConfigWindowsMoveFromTitleBarOnly = true; io.ConfigFlags |= ImGuiConfigFlags.DockingEnable | ImGuiConfigFlags.ViewportsEnable; diff --git a/CringeLauncher/Launcher.cs b/CringeLauncher/Launcher.cs index 5c65688..e48ac64 100644 --- a/CringeLauncher/Launcher.cs +++ b/CringeLauncher/Launcher.cs @@ -50,6 +50,9 @@ public class Launcher : ICorePlugin private MyGameRenderComponent? _renderComponent; + private readonly DirectoryInfo _configDir = Directory.CreateDirectory( + Path.Join(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "CringeLauncher", "config")); + public void Initialize(string[] args) { if (Type.GetType("GameAnalyticsSDK.Net.Logging.GALogger, GameAnalytics.Mono") is { } gaLoggerType) @@ -154,7 +157,7 @@ public class Launcher : ICorePlugin public void Run() => _game?.Run(); - private static IServiceProvider SetupServices() + private IServiceProvider SetupServices() { var services = new ServiceCollection(); @@ -167,7 +170,7 @@ public class Launcher : ICorePlugin services.AddSingleton(_ => RenderHandler.Current) .AddSingleton(s => s.GetRequiredService()) - .AddSingleton(_ => new ConfigHandler(Directory.CreateDirectory(Path.Join(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "CringeLauncher", "config")))); + .AddSingleton(_ => new ConfigHandler(_configDir)); return GameServicesExtension.GameServices = services.BuildServiceProvider(); } @@ -192,7 +195,7 @@ public class Launcher : ICorePlugin private IVRageWindow InitEarlyWindow(Splash splash) { - ImGuiHandler.Instance = new(); + ImGuiHandler.Instance = new(_configDir); RenderHandler.Current.RegisterComponent(splash);