diff --git a/src/dd.c b/src/dd.c index cf167d8..206cb8a 100644 --- a/src/dd.c +++ b/src/dd.c @@ -406,7 +406,8 @@ HRESULT dd_GetCaps(LPDDCAPS_DX1 lpDDDriverCaps, LPDDCAPS_DX1 lpDDEmulCaps) DDCAPS_BLTSTRETCH | DDCAPS_CANCLIP | DDCAPS_CANBLTSYSMEM | - DDCAPS_CANCLIPSTRETCHED; + DDCAPS_CANCLIPSTRETCHED | + DDCAPS_COLORKEY; lpDDDriverCaps->dwCaps2 = DDCAPS2_NOPAGELOCKREQUIRED | diff --git a/src/ddsurface.c b/src/ddsurface.c index e9a2eb8..ce4404e 100644 --- a/src/ddsurface.c +++ b/src/ddsurface.c @@ -686,8 +686,7 @@ HRESULT dds_GetSurfaceDesc(IDirectDrawSurfaceImpl* This, LPDDSURFACEDESC lpDDSur DDSD_HEIGHT | DDSD_PITCH | DDSD_PIXELFORMAT | - DDSD_LPSURFACE | - DDSD_BACKBUFFERCOUNT; + DDSD_LPSURFACE; lpDDSurfaceDesc->dwWidth = This->width; lpDDSurfaceDesc->dwHeight = This->height; @@ -697,7 +696,12 @@ HRESULT dds_GetSurfaceDesc(IDirectDrawSurfaceImpl* This, LPDDSURFACEDESC lpDDSur lpDDSurfaceDesc->ddpfPixelFormat.dwFlags = DDPF_RGB; lpDDSurfaceDesc->ddpfPixelFormat.dwRGBBitCount = This->bpp; lpDDSurfaceDesc->ddsCaps.dwCaps = This->caps; + + if (This->flags & DDSD_BACKBUFFERCOUNT) + { + lpDDSurfaceDesc->dwFlags |= DDSD_BACKBUFFERCOUNT; lpDDSurfaceDesc->dwBackBufferCount = This->backbuffer_count; + } if (This->bpp == 8) {