From 14f0e62f9a3895699f9202335516f16e610dd24d Mon Sep 17 00:00:00 2001 From: Joachim Henze Date: Wed, 11 Apr 2018 15:39:54 +0200 Subject: [PATCH] [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 2dae7ba1c42..cc0852e854d 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);