https://git.reactos.org/?p=reactos.git;a=commitdiff;h=14f0e62f9a3895699f9202...
commit 14f0e62f9a3895699f9202335516f16e610dd24d Author: Joachim Henze Joachim.Henze@reactos.org AuthorDate: Wed Apr 11 15:39:54 2018 +0200 Commit: Joachim Henze Joachim.Henze@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);