1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-14 22:03:27 +01:00

add bpp check to dds blt

This commit is contained in:
FunkyFr3sh 2024-12-26 23:59:05 +01:00
parent ca195bcb3f
commit 1e03e9cec6
2 changed files with 12 additions and 3 deletions

View File

@ -23,9 +23,9 @@ typedef struct IDirectDrawSurfaceImpl
ULONG ref;
DWORD bpp;
DWORD width;
DWORD height;
DWORD bpp;
DWORD size;
DWORD flags;
DWORD caps;

View File

@ -50,6 +50,15 @@ HRESULT dds_Blt(
DWORD dwFlags,
LPDDBLTFX lpDDBltFx)
{
if (lpDDSrcSurface &&
lpDDSrcSurface->bpp != 8 &&
lpDDSrcSurface->bpp != 16 &&
lpDDSrcSurface->bpp != 24 &&
lpDDSrcSurface->bpp != 32)
{
return DDERR_INVALIDPARAMS;
}
dbg_dump_dds_blt_flags(dwFlags);
dbg_dump_dds_blt_fx_flags((dwFlags & DDBLT_DDFX) && lpDDBltFx ? lpDDBltFx->dwDDFX : 0);
@ -77,13 +86,13 @@ HRESULT dds_Blt(
if (lpSrcRect && src_surface)
{
//dbg_print_rect("lpSrcRect", lpSrcRect);
dbg_print_rect("lpSrcRect", lpSrcRect);
src_rect = *lpSrcRect;
}
if (lpDestRect)
{
//dbg_print_rect("lpDestRect", lpDestRect);
dbg_print_rect("lpDestRect", lpDestRect);
dst_rect = *lpDestRect;
}