diff --git a/src/dd.c b/src/dd.c index 173c846..4075076 100644 --- a/src/dd.c +++ b/src/dd.c @@ -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.dmDisplayFrequency = g_config.refresh_rate; - + if (ChangeDisplaySettings(&g_ddraw->render.mode, CDS_TEST) != DISP_CHANGE_SUCCESSFUL) { g_config.refresh_rate = 0; diff --git a/src/ddsurface.c b/src/ddsurface.c index 3ca910d..254e09f 100644 --- a/src/ddsurface.c +++ b/src/ddsurface.c @@ -1296,7 +1296,7 @@ HRESULT dd_CreateSurface( if (lpDDSurfaceDesc->ddsCaps.dwCaps & DDSCAPS_OVERLAY) return DDERR_UNSUPPORTED; - if (!(lpDDSurfaceDesc->ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE) && + if (!(lpDDSurfaceDesc->ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE) && (lpDDSurfaceDesc->dwWidth > 16384 || lpDDSurfaceDesc->dwHeight > 16384)) { return DDERR_INVALIDPARAMS; @@ -1328,6 +1328,12 @@ HRESULT dd_CreateSurface( dst_surface->caps = lpDDSurfaceDesc->ddsCaps.dwCaps; 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) { switch (lpDDSurfaceDesc->ddpfPixelFormat.dwRGBBitCount)