1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-15 06:04:49 +01:00

redraw when primary palette changed

This commit is contained in:
FunkyFr3sh 2021-06-04 01:21:07 +02:00
parent 4138dea0db
commit f96fd40607

View File

@ -1084,9 +1084,22 @@ HRESULT dds_SetPalette(IDirectDrawSurfaceImpl *This, LPDIRECTDRAWPALETTE lpDDPal
if (This->palette)
IDirectDrawPalette_Release(This->palette);
EnterCriticalSection(&g_ddraw->cs);
This->palette = (IDirectDrawPaletteImpl*)lpDDPalette;
LeaveCriticalSection(&g_ddraw->cs);
if (This->caps & DDSCAPS_PRIMARYSURFACE)
{
EnterCriticalSection(&g_ddraw->cs);
This->palette = (IDirectDrawPaletteImpl*)lpDDPalette;
LeaveCriticalSection(&g_ddraw->cs);
if (g_ddraw->render.run)
{
InterlockedExchange(&g_ddraw->render.palette_updated, TRUE);
ReleaseSemaphore(g_ddraw->render.sem, 1, NULL);
}
}
else
{
This->palette = (IDirectDrawPaletteImpl*)lpDDPalette;
}
return DD_OK;
}