diff --git a/src/ddsurface.c b/src/ddsurface.c index dff34ff..7629875 100644 --- a/src/ddsurface.c +++ b/src/ddsurface.c @@ -36,8 +36,19 @@ HRESULT dds_Blt(IDirectDrawSurfaceImpl *This, LPRECT lpDestRect, LPDIRECTDRAWSUR dbg_dump_dds_blt_flags(dwFlags); - if (g_ddraw->iskkndx && (dwFlags & DDBLT_COLORFILL) && lpDestRect && lpDestRect->right == 640 && lpDestRect->bottom == 480) + if (g_ddraw->iskkndx && + (dwFlags & DDBLT_COLORFILL) && + lpDestRect && + lpDestRect->right == 640 && + lpDestRect->bottom == 480) + { + if (This->backbuffer) + { + dds_Blt(This->backbuffer, lpDestRect, NULL, NULL, dwFlags, lpDDBltFx); + } + lpDestRect = NULL; + } RECT src_rect = { 0, 0, src_surface ? src_surface->width : 0, src_surface ? src_surface->height : 0 }; RECT dst_rect = { 0, 0, This->width, This->height };