mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-14 22:03:27 +01:00
some more tweaks to GetCaps
This commit is contained in:
parent
71e8f6deb4
commit
76b384e0cd
1
inc/dd.h
1
inc/dd.h
@ -16,6 +16,7 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, BOOL setBy
|
||||
HRESULT dd_SetCooperativeLevel(HWND hwnd, DWORD dwFlags);
|
||||
HRESULT dd_RestoreDisplayMode();
|
||||
HRESULT dd_GetCaps(LPDDCAPS lpDDDriverCaps, LPDDCAPS lpDDEmulCaps);
|
||||
HRESULT dd_GetCaps(LPDDCAPS_DX1 lpDDDriverCaps, LPDDCAPS_DX1 lpDDEmulCaps);
|
||||
HRESULT dd_GetDisplayMode(LPDDSURFACEDESC2 lpDDSurfaceDesc);
|
||||
HRESULT dd_GetMonitorFrequency(LPDWORD lpdwFreq);
|
||||
HRESULT dd_GetAvailableVidMem(LPDDSCAPS2 lpDDCaps, LPDWORD lpdwTotal, LPDWORD lpdwFree);
|
||||
|
@ -303,7 +303,7 @@ HRESULT __stdcall IDirectDraw__FlipToGDISurface(IDirectDrawImpl* This)
|
||||
HRESULT __stdcall IDirectDraw__GetCaps(IDirectDrawImpl* This, LPDDCAPS lpDDDriverCaps, LPDDCAPS lpDDEmulCaps)
|
||||
{
|
||||
TRACE("-> %s(This=%p, lpDDDriverCaps=%p, lpDDEmulCaps=%p)\n", __FUNCTION__, This, lpDDDriverCaps, lpDDEmulCaps);
|
||||
HRESULT ret = dd_GetCaps(lpDDDriverCaps, lpDDEmulCaps);
|
||||
HRESULT ret = dd_GetCaps((LPDDCAPS_DX1)lpDDDriverCaps, (LPDDCAPS_DX1)lpDDEmulCaps);
|
||||
TRACE("<- %s\n", __FUNCTION__);
|
||||
return ret;
|
||||
}
|
||||
|
26
src/dd.c
26
src/dd.c
@ -249,11 +249,20 @@ HRESULT dd_EnumDisplayModes(
|
||||
return DD_OK;
|
||||
}
|
||||
|
||||
HRESULT dd_GetCaps(LPDDCAPS lpDDDriverCaps, LPDDCAPS lpDDEmulCaps)
|
||||
HRESULT dd_GetCaps(LPDDCAPS_DX1 lpDDDriverCaps, LPDDCAPS_DX1 lpDDEmulCaps)
|
||||
{
|
||||
if (lpDDDriverCaps)
|
||||
{
|
||||
lpDDDriverCaps->dwSize = sizeof(DDCAPS_DX5);
|
||||
int size =
|
||||
lpDDDriverCaps->dwSize == sizeof(DDCAPS_DX3) ? sizeof(DDCAPS_DX3) :
|
||||
lpDDDriverCaps->dwSize == sizeof(DDCAPS_DX5) ? sizeof(DDCAPS_DX5) :
|
||||
lpDDDriverCaps->dwSize == sizeof(DDCAPS_DX6) ? sizeof(DDCAPS_DX6) :
|
||||
lpDDDriverCaps->dwSize == sizeof(DDCAPS_DX7) ? sizeof(DDCAPS_DX7) :
|
||||
sizeof(DDCAPS_DX1);
|
||||
|
||||
memset(lpDDDriverCaps, 0, size);
|
||||
|
||||
lpDDDriverCaps->dwSize = size;
|
||||
lpDDDriverCaps->dwCaps =
|
||||
DDCAPS_BLT |
|
||||
DDCAPS_PALETTE |
|
||||
@ -273,12 +282,21 @@ HRESULT dd_GetCaps(LPDDCAPS lpDDDriverCaps, LPDDCAPS lpDDEmulCaps)
|
||||
lpDDDriverCaps->dwAlignSizeSrc = 0;
|
||||
lpDDDriverCaps->dwAlignBoundaryDest = 0;
|
||||
lpDDDriverCaps->dwAlignSizeDest = 0;
|
||||
lpDDDriverCaps->ddsOldCaps.dwCaps = DDSCAPS_FLIP;
|
||||
lpDDDriverCaps->ddsCaps.dwCaps = DDSCAPS_FLIP;
|
||||
}
|
||||
|
||||
if (lpDDEmulCaps)
|
||||
{
|
||||
lpDDEmulCaps->dwSize = 0;
|
||||
int size =
|
||||
lpDDEmulCaps->dwSize == sizeof(DDCAPS_DX3) ? sizeof(DDCAPS_DX3) :
|
||||
lpDDEmulCaps->dwSize == sizeof(DDCAPS_DX5) ? sizeof(DDCAPS_DX5) :
|
||||
lpDDEmulCaps->dwSize == sizeof(DDCAPS_DX6) ? sizeof(DDCAPS_DX6) :
|
||||
lpDDEmulCaps->dwSize == sizeof(DDCAPS_DX7) ? sizeof(DDCAPS_DX7) :
|
||||
sizeof(DDCAPS_DX1);
|
||||
|
||||
memset(lpDDEmulCaps, 0, size);
|
||||
|
||||
lpDDEmulCaps->dwSize = size;
|
||||
}
|
||||
|
||||
return DD_OK;
|
||||
|
Loading…
x
Reference in New Issue
Block a user