diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 121f504..073ff68 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -4,5 +4,3 @@ updates: directory: "/" schedule: interval: "daily" - assignees: - - "matt-edmondson" diff --git a/.github/workflows/dependabot-merge.yml b/.github/workflows/dependabot-merge.yml index eead6cf..0d1e6e7 100644 --- a/.github/workflows/dependabot-merge.yml +++ b/.github/workflows/dependabot-merge.yml @@ -16,7 +16,7 @@ jobs: with: github-token: "${{ secrets.GITHUB_TOKEN }}" - name: Enable auto-merge for Dependabot PRs - if: steps.metadata.outputs.update-type == 'version-update:semver-patch' + if: steps.metadata.outputs.update-type == 'version-update:semver-major' run: gh pr merge --auto --merge "$PR_URL" env: PR_URL: ${{github.event.pull_request.html_url}} diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 54a6b09..1230fe0 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -1,10 +1,10 @@ -name: Build and Analyze +name: Build and Test on: push: branches: [ "main" ] pull_request: - types: [opened, synchronize, reopened] + types: [opened, synchronize, reopened, closed] permissions: packages: write @@ -12,5 +12,5 @@ permissions: jobs: build-dotnet-library: - uses: ktsu-io/workflows/.github/workflows/build-dotnet-library.yml@main + uses: ktsu-dev/workflows/.github/workflows/build-dotnet-library.yml@main secrets: inherit diff --git a/AUTHORS b/AUTHORS index 04c95b7..8bd23fb 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1 +1 @@ -ktsu.io \ No newline at end of file +ktsu diff --git a/Directory.Build.targets b/Directory.Build.targets index 4783657..bcc0d39 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -89,7 +89,7 @@ - + diff --git a/ImGuiApp/ForceDpiAware.cs b/ImGuiApp/ForceDpiAware.cs index a65fb9d..bf0b455 100644 --- a/ImGuiApp/ForceDpiAware.cs +++ b/ImGuiApp/ForceDpiAware.cs @@ -1,7 +1,7 @@ // Adapted From: https://github.com/Ryujinx/Ryujinx/blob/master/src/Ryujinx.Common/SystemInterop/ForceDpiAware.cs // License: MIT -namespace ktsu.io.ImGuiApp; +namespace ktsu.ImGuiApp; using System.Globalization; using System.Runtime.InteropServices; diff --git a/ImGuiApp/GdiPlusHelper.cs b/ImGuiApp/GdiPlusHelper.cs index 1b22157..4cc6ced 100644 --- a/ImGuiApp/GdiPlusHelper.cs +++ b/ImGuiApp/GdiPlusHelper.cs @@ -1,7 +1,7 @@ // Adapted From: https://github.com/Ryujinx/Ryujinx/blob/master/src/Ryujinx.Common/SystemInterop/GdiPlusHelper.cs // License: MIT -namespace ktsu.io.ImGuiApp; +namespace ktsu.ImGuiApp; using System.Runtime.InteropServices; using System.Runtime.Versioning; diff --git a/ImGuiApp/ImGuiApp.cs b/ImGuiApp/ImGuiApp.cs index 7d675cf..8f1ea06 100644 --- a/ImGuiApp/ImGuiApp.cs +++ b/ImGuiApp/ImGuiApp.cs @@ -1,6 +1,6 @@ // Ignore Spelling: App Im -namespace ktsu.io.ImGuiApp; +namespace ktsu.ImGuiApp; using System.Collections.Concurrent; using System.Collections.ObjectModel; @@ -8,7 +8,8 @@ namespace ktsu.io.ImGuiApp; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using ImGuiNET; -using ktsu.io.StrongPaths; +using ktsu.Extensions; +using ktsu.StrongPaths; using Silk.NET.Input; using Silk.NET.OpenGL; using Silk.NET.OpenGL.Extensions.ImGui; @@ -47,6 +48,7 @@ public static ImGuiAppWindowState WindowState private static int[] FontSizes { get; } = [12, 13, 14, 16, 18, 20, 24, 28, 32, 40, 48]; private static Dictionary Fonts { get; } = []; + private static Collection FontDataPtrs { get; } = []; public static bool IsFocused { get; private set; } = true; public static bool IsVisible => (window?.WindowState != Silk.NET.Windowing.WindowState.Minimized) && (window?.IsVisible ?? false); @@ -254,6 +256,9 @@ public static void Start(AppConfig config) { lock (LockGL) { + // Free the natively allocated font data + FontDataPtrs.ForEach(p => Marshal.FreeHGlobal(p)); + // Dispose our controller first controller?.Dispose(); @@ -457,6 +462,7 @@ internal static void InitFonts() var io = ImGui.GetIO(); var fontAtlasPtr = io.Fonts; nint fontBytesPtr = Marshal.AllocHGlobal(fontBytes.Length); + FontDataPtrs.Add(fontBytesPtr); Marshal.Copy(fontBytes, 0, fontBytesPtr, fontBytes.Length); _ = fontAtlasPtr.AddFontDefault(); foreach (int size in FontSizes) @@ -469,6 +475,7 @@ internal static void InitFonts() OversampleH = 2, OversampleV = 2, PixelSnapH = true, + FontDataOwnedByAtlas = false, }; _ = fontAtlasPtr.AddFontFromMemoryTTF(fontBytesPtr, fontBytes.Length, size, fontConfig, fontAtlasPtr.GetGlyphRangesDefault()); } diff --git a/ImGuiApp/ImGuiApp.csproj b/ImGuiApp/ImGuiApp.csproj index 70948a6..369b899 100644 --- a/ImGuiApp/ImGuiApp.csproj +++ b/ImGuiApp/ImGuiApp.csproj @@ -5,8 +5,8 @@ - - + + diff --git a/ImGuiApp/Resources/Resources.Designer.cs b/ImGuiApp/Resources/Resources.Designer.cs index 2d75e13..c30ffe0 100644 --- a/ImGuiApp/Resources/Resources.Designer.cs +++ b/ImGuiApp/Resources/Resources.Designer.cs @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -namespace ktsu.io.ImGuiApp.Resources { +namespace ktsu.ImGuiApp.Resources { using System; @@ -39,7 +39,7 @@ internal Resources() { internal static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ktsu.io.ImGuiApp.Resources.Resources", typeof(Resources).Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ktsu.ImGuiApp.Resources.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; diff --git a/ImGuiApp/UIScaler.cs b/ImGuiApp/UIScaler.cs index 21117fd..24e1ab4 100644 --- a/ImGuiApp/UIScaler.cs +++ b/ImGuiApp/UIScaler.cs @@ -1,6 +1,6 @@ -namespace ktsu.io.ImGuiApp; +namespace ktsu.ImGuiApp; -using ktsu.io.ScopedAction; +using ktsu.ScopedAction; using ImGuiNET; using System.Numerics; diff --git a/ImGuiAppDemo/ImGuiAppDemo.cs b/ImGuiAppDemo/ImGuiAppDemo.cs index 262a4c3..3207d61 100644 --- a/ImGuiAppDemo/ImGuiAppDemo.cs +++ b/ImGuiAppDemo/ImGuiAppDemo.cs @@ -1,11 +1,11 @@ // Ignore Spelling: App Im -namespace ktsu.io.ImGuiApp.Demo; +namespace ktsu.ImGuiApp.Demo; using System.Runtime.InteropServices; using ImGuiNET; -using ktsu.io.ImGuiApp; -using ktsu.io.ImGuiApp.Demo.Properties; +using ktsu.ImGuiApp; +using ktsu.ImGuiApp.Demo.Properties; internal static class ImGuiAppDemo { diff --git a/ImGuiAppDemo/Properties/Resources.Designer.cs b/ImGuiAppDemo/Properties/Resources.Designer.cs index 4fff2ab..581b950 100644 --- a/ImGuiAppDemo/Properties/Resources.Designer.cs +++ b/ImGuiAppDemo/Properties/Resources.Designer.cs @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -namespace ktsu.io.ImGuiApp.Demo.Properties { +namespace ktsu.ImGuiApp.Demo.Properties { using System; @@ -39,7 +39,7 @@ internal Resources() { internal static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ktsu.io.ImGuiApp.Demo.Properties.Resources", typeof(Resources).Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ktsu.ImGuiApp.Demo.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; diff --git a/LICENSE b/LICENSE index 648193e..933c4ac 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2023-2024 ktsu.io +Copyright (c) 2023-2024 ktsu.dev Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index a40ee67..5dc88ed 100644 --- a/README.md +++ b/README.md @@ -4,10 +4,10 @@ A bootstrap library to give you an environment to build an ImGUI.NET application ## Minimal Example ```csharp -namespace ktsu.io.ImGuiAppDemo; +namespace ktsu.ImGuiAppDemo; using ImGuiNET; -using ktsu.io.ImGuiApp; +using ktsu.ImGuiApp; internal class ImGuiAppDemo { diff --git a/VERSION b/VERSION index 13188ca..c58112e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.0.0-alpha.33 +1.0.0-alpha.36