1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-24 17:49:52 +01:00

save and pass DDSD_BACKBUFFERCOUNT

This commit is contained in:
FunkyFr3sh 2022-09-15 10:21:33 +02:00
parent edf69fcc2a
commit 5a9284a44e
2 changed files with 7 additions and 3 deletions

View File

@ -24,6 +24,7 @@ typedef struct IDirectDrawSurfaceImpl
DWORD size; DWORD size;
DWORD flags; DWORD flags;
DWORD caps; DWORD caps;
DWORD backbuffer_count;
IDirectDrawPaletteImpl* palette; IDirectDrawPaletteImpl* palette;

View File

@ -476,7 +476,7 @@ HRESULT dds_GetSurfaceDesc(IDirectDrawSurfaceImpl* This, LPDDSURFACEDESC lpDDSur
memset(lpDDSurfaceDesc, 0, size); memset(lpDDSurfaceDesc, 0, size);
lpDDSurfaceDesc->dwSize = size; lpDDSurfaceDesc->dwSize = size;
lpDDSurfaceDesc->dwFlags = DDSD_WIDTH | DDSD_HEIGHT | DDSD_PITCH | DDSD_PIXELFORMAT | DDSD_LPSURFACE; lpDDSurfaceDesc->dwFlags = DDSD_WIDTH | DDSD_HEIGHT | DDSD_PITCH | DDSD_PIXELFORMAT | DDSD_LPSURFACE | DDSD_BACKBUFFERCOUNT;
lpDDSurfaceDesc->dwWidth = This->width; lpDDSurfaceDesc->dwWidth = This->width;
lpDDSurfaceDesc->dwHeight = This->height; lpDDSurfaceDesc->dwHeight = This->height;
lpDDSurfaceDesc->lPitch = This->l_pitch; lpDDSurfaceDesc->lPitch = This->l_pitch;
@ -485,6 +485,7 @@ HRESULT dds_GetSurfaceDesc(IDirectDrawSurfaceImpl* This, LPDDSURFACEDESC lpDDSur
lpDDSurfaceDesc->ddpfPixelFormat.dwFlags = DDPF_RGB; lpDDSurfaceDesc->ddpfPixelFormat.dwFlags = DDPF_RGB;
lpDDSurfaceDesc->ddpfPixelFormat.dwRGBBitCount = This->bpp; lpDDSurfaceDesc->ddpfPixelFormat.dwRGBBitCount = This->bpp;
lpDDSurfaceDesc->ddsCaps.dwCaps = This->caps; lpDDSurfaceDesc->ddsCaps.dwCaps = This->caps;
lpDDSurfaceDesc->dwBackBufferCount = This->backbuffer_count;
if (!g_ddraw->novidmem || (This->caps & (DDSCAPS_PRIMARYSURFACE | DDSCAPS_BACKBUFFER))) if (!g_ddraw->novidmem || (This->caps & (DDSCAPS_PRIMARYSURFACE | DDSCAPS_BACKBUFFER)))
{ {
@ -597,8 +598,8 @@ HRESULT dds_GetAttachedSurface(IDirectDrawSurfaceImpl* This, LPDDSCAPS lpDdsCaps
*lpDDsurface = This; *lpDDsurface = This;
} }
return DD_OK; return DD_OK;
} }
return DDERR_NOTFOUND; return DDERR_NOTFOUND;
} }
@ -1121,6 +1122,8 @@ HRESULT dd_CreateSurface(
if (dst_surface->flags & DDSD_BACKBUFFERCOUNT) if (dst_surface->flags & DDSD_BACKBUFFERCOUNT)
{ {
dst_surface->backbuffer_count = lpDDSurfaceDesc->dwBackBufferCount;
TRACE(" dwBackBufferCount=%d\n", lpDDSurfaceDesc->dwBackBufferCount); TRACE(" dwBackBufferCount=%d\n", lpDDSurfaceDesc->dwBackBufferCount);
DDSURFACEDESC desc; DDSURFACEDESC desc;