From: Joachim Henze Date: Wed, 11 Apr 2018 13:39:54 +0000 (+0200) Subject: [WIN32SS][NTDDRAW] Fix ddraw palette regression CORE-13714 X-Git-Tag: 0.4.9-RC~211 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=14f0e62f9a3895699f9202335516f16e610dd24d [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. --- 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);