From 1f8662d9575e6a679f9274d590b3e3bd82766af5 Mon Sep 17 00:00:00 2001 From: Lpsd <40902730+Lpsd@users.noreply.github.com> Date: Sat, 26 Oct 2024 20:20:28 +0100 Subject: [PATCH 1/4] Convert bitmap to BGRA unpremultiplied --- Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.cpp b/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.cpp index 8e3b7c89e8..98432b764f 100644 --- a/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.cpp +++ b/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.cpp @@ -66,6 +66,8 @@ void CClientVectorGraphicDisplay::UpdateTexture() if (!bitmap.valid()) return; + bitmap.convert(2, 1, 0, 3, true); // convert To BGRA unpremultiplied + // Lock surface D3DLOCKED_RECT LockedRect; if (SUCCEEDED(surface->LockRect(&LockedRect, nullptr, D3DLOCK_DISCARD))) From 9fe960f3183c56e598f075a2404bc1ed0862da5c Mon Sep 17 00:00:00 2001 From: Lpsd <40902730+Lpsd@users.noreply.github.com> Date: Sat, 26 Oct 2024 21:18:02 +0100 Subject: [PATCH 2/4] Add enum for LunaSVG bitmap color index --- .../deathmatch/logic/CClientVectorGraphicDisplay.cpp | 3 ++- .../deathmatch/logic/CClientVectorGraphicDisplay.h | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.cpp b/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.cpp index 98432b764f..445e877b70 100644 --- a/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.cpp +++ b/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.cpp @@ -66,7 +66,8 @@ void CClientVectorGraphicDisplay::UpdateTexture() if (!bitmap.valid()) return; - bitmap.convert(2, 1, 0, 3, true); // convert To BGRA unpremultiplied + // convert to BGRA unpremultiplied + bitmap.convert(B, G, R, A, true); // Lock surface D3DLOCKED_RECT LockedRect; diff --git a/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.h b/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.h index 924330d481..37667fc94f 100644 --- a/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.h +++ b/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.h @@ -14,6 +14,8 @@ class CClientVectorGraphicDisplay; #include "CClientDisplay.h" #include "CClientDisplayManager.h" + + class CClientVectorGraphicDisplay final : public CClientDisplay { friend class CClientDisplayManager; @@ -34,6 +36,15 @@ class CClientVectorGraphicDisplay final : public CClientDisplay void Update(); + // Color indexes as per lunasvg::Bitmap + static enum ColorIndex + { + R = 0, + G = 1, + B = 2, + A = 3 + }; + private: CClientVectorGraphic* m_pVectorGraphic; From 7e97e81a3abae39f9eab77e7402e05c281cb61cd Mon Sep 17 00:00:00 2001 From: Lpsd <40902730+Lpsd@users.noreply.github.com> Date: Sat, 26 Oct 2024 21:19:07 +0100 Subject: [PATCH 3/4] Remove spaces --- Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.h b/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.h index 37667fc94f..a5a43d33e0 100644 --- a/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.h +++ b/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.h @@ -14,8 +14,6 @@ class CClientVectorGraphicDisplay; #include "CClientDisplay.h" #include "CClientDisplayManager.h" - - class CClientVectorGraphicDisplay final : public CClientDisplay { friend class CClientDisplayManager; From 9ce95e828fc9127afb967bd598153a4eae558309 Mon Sep 17 00:00:00 2001 From: Lpsd <40902730+Lpsd@users.noreply.github.com> Date: Sun, 27 Oct 2024 01:09:53 +0100 Subject: [PATCH 4/4] Update enum usage --- Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.cpp | 2 +- Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.cpp b/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.cpp index 445e877b70..d5c3a08172 100644 --- a/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.cpp +++ b/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.cpp @@ -67,7 +67,7 @@ void CClientVectorGraphicDisplay::UpdateTexture() return; // convert to BGRA unpremultiplied - bitmap.convert(B, G, R, A, true); + bitmap.convert(eColorIndex::B, eColorIndex::G, eColorIndex::R, eColorIndex::A, true); // Lock surface D3DLOCKED_RECT LockedRect; diff --git a/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.h b/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.h index a5a43d33e0..7cb3496e25 100644 --- a/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.h +++ b/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.h @@ -35,7 +35,7 @@ class CClientVectorGraphicDisplay final : public CClientDisplay void Update(); // Color indexes as per lunasvg::Bitmap - static enum ColorIndex + static enum eColorIndex : int { R = 0, G = 1,