From e8a83cf5824fd8f16400fc088061078958f8b15a Mon Sep 17 00:00:00 2001 From: MathiasLui Date: Thu, 23 Jun 2022 11:55:53 +0200 Subject: [PATCH 1/2] Add Config Manager draft --- ConfigManagerV2/design_draft.epgz | Bin 0 -> 23334 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 ConfigManagerV2/design_draft.epgz diff --git a/ConfigManagerV2/design_draft.epgz b/ConfigManagerV2/design_draft.epgz new file mode 100644 index 0000000000000000000000000000000000000000..b1b51fa81ffe5b9136905faea27f7a6315959dbe GIT binary patch literal 23334 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 Date: Thu, 23 Jun 2022 11:57:49 +0200 Subject: [PATCH 2/2] (draft) Add Pfim image library and non-tested code * We want to be able to load extended DX10 headers and this library might be able to do it, but I can't test it on this machine --- DamageCalculator/DamageCalculator.sln | 8 +++++++- SteamShared/Pfim | 1 + .../SteamShared/SteamShared/CsgoHelper.cs | 19 ++++++++++++++++++- .../SteamShared/SteamShared.csproj | 3 +++ 4 files changed, 29 insertions(+), 2 deletions(-) create mode 160000 SteamShared/Pfim diff --git a/DamageCalculator/DamageCalculator.sln b/DamageCalculator/DamageCalculator.sln index 0f08ba4..690f4d6 100644 --- a/DamageCalculator/DamageCalculator.sln +++ b/DamageCalculator/DamageCalculator.sln @@ -3,10 +3,12 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.1.32228.430 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DamageCalculator", "DamageCalculator\DamageCalculator.csproj", "{7A7AE40F-8677-44E3-873A-4AB7C9FCFEB4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DamageCalculator", "DamageCalculator\DamageCalculator.csproj", "{7A7AE40F-8677-44E3-873A-4AB7C9FCFEB4}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SteamShared", "..\SteamShared\SteamShared\SteamShared\SteamShared.csproj", "{3632D445-DC7D-43FC-AC66-8503F50FCA2A}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Pfim", "..\SteamShared\Pfim\src\Pfim\Pfim.csproj", "{0EA4ECBB-6036-4936-8ABC-3F8AC154AB93}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -21,6 +23,10 @@ Global {3632D445-DC7D-43FC-AC66-8503F50FCA2A}.Debug|Any CPU.Build.0 = Debug|Any CPU {3632D445-DC7D-43FC-AC66-8503F50FCA2A}.Release|Any CPU.ActiveCfg = Release|Any CPU {3632D445-DC7D-43FC-AC66-8503F50FCA2A}.Release|Any CPU.Build.0 = Release|Any CPU + {0EA4ECBB-6036-4936-8ABC-3F8AC154AB93}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0EA4ECBB-6036-4936-8ABC-3F8AC154AB93}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0EA4ECBB-6036-4936-8ABC-3F8AC154AB93}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0EA4ECBB-6036-4936-8ABC-3F8AC154AB93}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/SteamShared/Pfim b/SteamShared/Pfim new file mode 160000 index 0000000..a69286b --- /dev/null +++ b/SteamShared/Pfim @@ -0,0 +1 @@ +Subproject commit a69286bfcfea4abb6b03b2c8685b211cab427136 diff --git a/SteamShared/SteamShared/SteamShared/CsgoHelper.cs b/SteamShared/SteamShared/SteamShared/CsgoHelper.cs index 36775e2..2de26e0 100644 --- a/SteamShared/SteamShared/SteamShared/CsgoHelper.cs +++ b/SteamShared/SteamShared/SteamShared/CsgoHelper.cs @@ -205,7 +205,23 @@ namespace SteamShared try { // Read actual radar - image = new DDSImage(System.IO.File.ReadAllBytes(map.MapImagePath!)); + //image = new DDSImage(System.IO.File.ReadAllBytes(map.MapImagePath!)); + + using (var pfimImage = Pfim.Pfim.FromFile(map.MapImagePath)) + { + // TODO: Do we need to support more pixel formats? + System.Drawing.Imaging.PixelFormat format = System.Drawing.Imaging.PixelFormat.Format24bppRgb; + + if(pfimImage.Format == Pfim.ImageFormat.Rgba32) + { + format = System.Drawing.Imaging.PixelFormat.Format32bppArgb; + } + + // Maybe pin it so GC doesn't collect it, for now just ignore it + var data = System.Runtime.InteropServices.Marshal.UnsafeAddrOfPinnedArrayElement(pfimImage.Data, 0); + image = new System.Drawing.Bitmap(pfimImage.Width, pfimImage.Height, pfimImage.Stride, format, data); + } + } catch { @@ -217,6 +233,7 @@ namespace SteamShared continue; // Some workaround I found online for some thread error I forgot + // Future self: We probably want to execute it on the thread that owns the image System.Windows.Application.Current.Dispatcher.Invoke((Action)delegate { map.MapImage = Globals.BitmapToImageSource(image.BitmapImage); diff --git a/SteamShared/SteamShared/SteamShared/SteamShared.csproj b/SteamShared/SteamShared/SteamShared/SteamShared.csproj index 0146f25..a45429d 100644 --- a/SteamShared/SteamShared/SteamShared/SteamShared.csproj +++ b/SteamShared/SteamShared/SteamShared/SteamShared.csproj @@ -13,6 +13,9 @@ + + + Never