https://git.reactos.org/?p=reactos.git;a=commitdiff;h=14f0e62f9a3895699f9202335516f16e610dd24d

commit 14f0e62f9a3895699f9202335516f16e610dd24d
Author:     Joachim Henze <joachim.he...@reactos.org>
AuthorDate: Wed Apr 11 15:39:54 2018 +0200
Commit:     Joachim Henze <joachim.he...@reactos.org>
CommitDate: Wed Apr 11 15:39:54 2018 +0200

    [WIN32SS][NTDDRAW] Fix ddraw palette regression CORE-13714
    
    This nice patch of Jerome Gardou improves palette
    when VBEMP & inbuilt Mesa is used for
    Diablo II, MS Age Of Empires 1, Anno 1602
    to the state we had in SVN r75060 and below.
    
    We already committed this fix into 0.4.8-release before.
---
 win32ss/reactx/ntddraw/d3dkmt.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/win32ss/reactx/ntddraw/d3dkmt.c b/win32ss/reactx/ntddraw/d3dkmt.c
index 2dae7ba1c4..cc0852e854 100644
--- a/win32ss/reactx/ntddraw/d3dkmt.c
+++ b/win32ss/reactx/ntddraw/d3dkmt.c
@@ -86,6 +86,17 @@ NtGdiDdDDICreateDCFromMemory(D3DKMT_CREATEDCFROMMEMORY *desc)
     /* Get the handle for the bitmap */
     desc->hBitmap = (HBITMAP)psurf->SurfObj.hsurf;
 
+    /* Allocate a palette for this surface */
+    if (format->bit_count <= 8)
+    {
+        PPALETTE palette = PALETTE_AllocPalette(PAL_INDEXED, 1 << 
format->bit_count, NULL, 0, 0, 0);
+        if (palette)
+        {
+            SURFACE_vSetPalette(psurf, palette);
+            PALETTE_ShareUnlockPalette(palette);
+        }
+    }
+
     /* Unlock the surface and return */
     SURFACE_UnlockSurface(psurf);
 

Reply via email to