#247 fix color key issues in Kohan: Immortal Sovereigns

This commit is contained in:
FunkyFr3sh 2023-10-04 19:51:53 +02:00
parent a95003fbc2
commit c17db0349a
2 changed files with 8 additions and 2 deletions

View file

@ -653,7 +653,7 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl
{ {
g_ddraw->render.mode.dmFields |= DM_DISPLAYFREQUENCY; g_ddraw->render.mode.dmFields |= DM_DISPLAYFREQUENCY;
g_ddraw->render.mode.dmDisplayFrequency = g_config.refresh_rate; g_ddraw->render.mode.dmDisplayFrequency = g_config.refresh_rate;
if (ChangeDisplaySettings(&g_ddraw->render.mode, CDS_TEST) != DISP_CHANGE_SUCCESSFUL) if (ChangeDisplaySettings(&g_ddraw->render.mode, CDS_TEST) != DISP_CHANGE_SUCCESSFUL)
{ {
g_config.refresh_rate = 0; g_config.refresh_rate = 0;

View file

@ -1296,7 +1296,7 @@ HRESULT dd_CreateSurface(
if (lpDDSurfaceDesc->ddsCaps.dwCaps & DDSCAPS_OVERLAY) if (lpDDSurfaceDesc->ddsCaps.dwCaps & DDSCAPS_OVERLAY)
return DDERR_UNSUPPORTED; return DDERR_UNSUPPORTED;
if (!(lpDDSurfaceDesc->ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE) && if (!(lpDDSurfaceDesc->ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE) &&
(lpDDSurfaceDesc->dwWidth > 16384 || lpDDSurfaceDesc->dwHeight > 16384)) (lpDDSurfaceDesc->dwWidth > 16384 || lpDDSurfaceDesc->dwHeight > 16384))
{ {
return DDERR_INVALIDPARAMS; return DDERR_INVALIDPARAMS;
@ -1328,6 +1328,12 @@ HRESULT dd_CreateSurface(
dst_surface->caps = lpDDSurfaceDesc->ddsCaps.dwCaps; dst_surface->caps = lpDDSurfaceDesc->ddsCaps.dwCaps;
dst_surface->ddraw = This; dst_surface->ddraw = This;
if (dst_surface->flags & DDSD_CKSRCBLT)
{
dst_surface->color_key.dwColorSpaceHighValue = lpDDSurfaceDesc->ddckCKSrcBlt.dwColorSpaceHighValue;
dst_surface->color_key.dwColorSpaceLowValue = lpDDSurfaceDesc->ddckCKSrcBlt.dwColorSpaceLowValue;
}
if (dst_surface->flags & DDSD_PIXELFORMAT) if (dst_surface->flags & DDSD_PIXELFORMAT)
{ {
switch (lpDDSurfaceDesc->ddpfPixelFormat.dwRGBBitCount) switch (lpDDSurfaceDesc->ddpfPixelFormat.dwRGBBitCount)