diff --git a/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.cpp b/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.cpp index 8e3b7c89e8..d5c3a08172 100644 --- a/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.cpp +++ b/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.cpp @@ -66,6 +66,9 @@ void CClientVectorGraphicDisplay::UpdateTexture() if (!bitmap.valid()) return; + // convert to BGRA unpremultiplied + bitmap.convert(eColorIndex::B, eColorIndex::G, eColorIndex::R, eColorIndex::A, true); + // Lock surface D3DLOCKED_RECT LockedRect; if (SUCCEEDED(surface->LockRect(&LockedRect, nullptr, D3DLOCK_DISCARD))) diff --git a/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.h b/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.h index 924330d481..7cb3496e25 100644 --- a/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.h +++ b/Client/mods/deathmatch/logic/CClientVectorGraphicDisplay.h @@ -34,6 +34,15 @@ class CClientVectorGraphicDisplay final : public CClientDisplay void Update(); + // Color indexes as per lunasvg::Bitmap + static enum eColorIndex : int + { + R = 0, + G = 1, + B = 2, + A = 3 + }; + private: CClientVectorGraphic* m_pVectorGraphic;