From 478d716a26f0da9ff130f91e653dbc15c14302f0 Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Tue, 30 Oct 2018 15:54:52 +0100 Subject: [PATCH] init rgb palette on surface::SetPalette --- src/surface.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/surface.c b/src/surface.c index 5482331..2d8819f 100644 --- a/src/surface.c +++ b/src/surface.c @@ -561,6 +561,15 @@ HRESULT __stdcall ddraw_surface_SetPalette(IDirectDrawSurfaceImpl *This, LPDIREC This->palette = (IDirectDrawPaletteImpl *)lpDDPalette; This->palette->data_rgb = &This->bmi->bmiColors[0]; + int i; + for (i = 0; i < 256; i++) + { + This->palette->data_rgb[i].rgbRed = This->palette->data_bgr[i] & 0xFF; + This->palette->data_rgb[i].rgbGreen = (This->palette->data_bgr[i] >> 8) & 0xFF; + This->palette->data_rgb[i].rgbBlue = (This->palette->data_bgr[i] >> 16) & 0xFF; + This->palette->data_rgb[i].rgbReserved = 0; + } + LeaveCriticalSection(&ddraw->cs); return DD_OK;