diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c index 8b0ad9b02a1..5a8ea0ee5d2 100644 --- a/dlls/ddraw/ddraw.c +++ b/dlls/ddraw/ddraw.c @@ -700,6 +700,10 @@ IDirectDrawImpl_GetCaps(IDirectDraw7 *iface, DDCAPS *HELCaps) { ICOM_THIS_FROM(IDirectDrawImpl, IDirectDraw7, iface); + DDCAPS caps; + WINED3DCAPS winecaps; + HRESULT hr; + DDSCAPS2 ddscaps = {0, 0, 0, 0}; TRACE("(%p)->(%p,%p)\n", This, DriverCaps, HELCaps); /* One structure must be != NULL */ @@ -709,9 +713,55 @@ IDirectDrawImpl_GetCaps(IDirectDraw7 *iface, return DDERR_INVALIDPARAMS; } + memset(&caps, 0, sizeof(caps)); + memset(&winecaps, 0, sizeof(winecaps)); + caps.dwSize = sizeof(caps); + EnterCriticalSection(&ddraw_cs); + hr = IWineD3DDevice_GetDeviceCaps(This->wineD3DDevice, &winecaps); + if(FAILED(hr)) { + WARN("IWineD3DDevice::GetDeviceCaps failed\n"); + LeaveCriticalSection(&ddraw_cs); + return hr; + } + + hr = IDirectDraw7_GetAvailableVidMem(iface, &ddscaps, &caps.dwVidMemTotal, &caps.dwVidMemFree); + LeaveCriticalSection(&ddraw_cs); + if(FAILED(hr)) { + WARN("IDirectDraw7::GetAvailableVidMem failed\n"); + return hr; + } + + caps.dwCaps = winecaps.DirectDrawCaps.Caps; + caps.dwCaps2 = winecaps.DirectDrawCaps.Caps2; + caps.dwCKeyCaps = winecaps.DirectDrawCaps.CKeyCaps; + caps.dwFXCaps = winecaps.DirectDrawCaps.FXCaps; + caps.dwPalCaps = winecaps.DirectDrawCaps.PalCaps; + caps.ddsCaps.dwCaps = winecaps.DirectDrawCaps.ddsCaps; + caps.dwSVBCaps = winecaps.DirectDrawCaps.SVBCaps; + caps.dwSVBCKeyCaps = winecaps.DirectDrawCaps.SVBCKeyCaps; + caps.dwSVBFXCaps = winecaps.DirectDrawCaps.SVBFXCaps; + caps.dwVSBCaps = winecaps.DirectDrawCaps.VSBCaps; + caps.dwVSBCKeyCaps = winecaps.DirectDrawCaps.VSBCKeyCaps; + caps.dwVSBFXCaps = winecaps.DirectDrawCaps.VSBFXCaps; + caps.dwSSBCaps = winecaps.DirectDrawCaps.SSBCaps; + caps.dwSSBCKeyCaps = winecaps.DirectDrawCaps.SSBCKeyCaps; + caps.dwSSBFXCaps = winecaps.DirectDrawCaps.SSBFXCaps; + + /* Even if WineD3D supports 3D rendering, remove the cap if ddraw is configured + * not to use it + */ + if(DefaultSurfaceType == SURFACE_GDI) { + caps.dwCaps &= ~DDCAPS_3D; + caps.ddsCaps.dwCaps &= ~(DDSCAPS_3DDEVICE | DDSCAPS_MIPMAP | DDSCAPS_TEXTURE | DDSCAPS_ZBUFFER); + } + if(winecaps.DirectDrawCaps.StrideAlign != 0) { + caps.dwCaps |= DDCAPS_ALIGNSTRIDE; + caps.dwAlignStrideAlign = winecaps.DirectDrawCaps.StrideAlign; + } + if(DriverCaps) { - DD_STRUCT_COPY_BYSIZE(DriverCaps, &This->caps); + DD_STRUCT_COPY_BYSIZE(DriverCaps, &caps); if (TRACE_ON(ddraw)) { TRACE("Driver Caps :\n"); @@ -721,7 +771,7 @@ IDirectDrawImpl_GetCaps(IDirectDraw7 *iface, } if(HELCaps) { - DD_STRUCT_COPY_BYSIZE(HELCaps, &This->caps); + DD_STRUCT_COPY_BYSIZE(HELCaps, &caps); if (TRACE_ON(ddraw)) { TRACE("HEL Caps :\n"); diff --git a/dlls/ddraw/ddraw_private.h b/dlls/ddraw/ddraw_private.h index bde2baef415..56908cba8fe 100644 --- a/dlls/ddraw/ddraw_private.h +++ b/dlls/ddraw/ddraw_private.h @@ -128,8 +128,6 @@ struct IDirectDrawImpl DWORD orig_width, orig_height; DWORD orig_bpp; - DDCAPS caps; - /* D3D things */ IDirectDrawSurfaceImpl *d3d_target; HWND d3d_window; diff --git a/dlls/ddraw/main.c b/dlls/ddraw/main.c index d03a89c1d2f..5f04feadb2e 100644 --- a/dlls/ddraw/main.c +++ b/dlls/ddraw/main.c @@ -281,59 +281,6 @@ DDRAW_Create(const GUID *guid, /* Get the amount of video memory */ This->total_vidmem = IWineD3DDevice_GetAvailableTextureMem(This->wineD3DDevice); - /* Initialize the caps */ - This->caps.dwSize = sizeof(This->caps); -/* do not report DDCAPS_OVERLAY and friends since we don't support overlays */ -#define BLIT_CAPS (DDCAPS_BLT | DDCAPS_BLTCOLORFILL | DDCAPS_BLTDEPTHFILL \ - | DDCAPS_BLTSTRETCH | DDCAPS_CANBLTSYSMEM | DDCAPS_CANCLIP \ - | DDCAPS_CANCLIPSTRETCHED | DDCAPS_COLORKEY \ - | DDCAPS_COLORKEYHWASSIST | DDCAPS_ALIGNBOUNDARYSRC ) -#define CKEY_CAPS (DDCKEYCAPS_DESTBLT | DDCKEYCAPS_SRCBLT) -#define FX_CAPS (DDFXCAPS_BLTALPHA | DDFXCAPS_BLTMIRRORLEFTRIGHT \ - | DDFXCAPS_BLTMIRRORUPDOWN | DDFXCAPS_BLTROTATION90 \ - | DDFXCAPS_BLTSHRINKX | DDFXCAPS_BLTSHRINKXN \ - | DDFXCAPS_BLTSHRINKY | DDFXCAPS_BLTSHRINKXN \ - | DDFXCAPS_BLTSTRETCHX | DDFXCAPS_BLTSTRETCHXN \ - | DDFXCAPS_BLTSTRETCHY | DDFXCAPS_BLTSTRETCHYN) - This->caps.dwCaps |= DDCAPS_GDI | DDCAPS_PALETTE | BLIT_CAPS; - - This->caps.dwCaps2 |= DDCAPS2_CERTIFIED | DDCAPS2_NOPAGELOCKREQUIRED | - DDCAPS2_PRIMARYGAMMA | DDCAPS2_WIDESURFACES | - DDCAPS2_CANRENDERWINDOWED; - This->caps.dwCKeyCaps |= CKEY_CAPS; - This->caps.dwFXCaps |= FX_CAPS; - This->caps.dwPalCaps |= DDPCAPS_8BIT | DDPCAPS_PRIMARYSURFACE; - This->caps.dwVidMemTotal = This->total_vidmem; - This->caps.dwVidMemFree = This->total_vidmem; - This->caps.dwSVBCaps |= BLIT_CAPS; - This->caps.dwSVBCKeyCaps |= CKEY_CAPS; - This->caps.dwSVBFXCaps |= FX_CAPS; - This->caps.dwVSBCaps |= BLIT_CAPS; - This->caps.dwVSBCKeyCaps |= CKEY_CAPS; - This->caps.dwVSBFXCaps |= FX_CAPS; - This->caps.dwSSBCaps |= BLIT_CAPS; - This->caps.dwSSBCKeyCaps |= CKEY_CAPS; - This->caps.dwSSBFXCaps |= FX_CAPS; - This->caps.ddsCaps.dwCaps |= DDSCAPS_ALPHA | DDSCAPS_BACKBUFFER | - DDSCAPS_FLIP | DDSCAPS_FRONTBUFFER | - DDSCAPS_OFFSCREENPLAIN | DDSCAPS_PALETTE | - DDSCAPS_PRIMARYSURFACE | DDSCAPS_SYSTEMMEMORY | - DDSCAPS_VIDEOMEMORY | DDSCAPS_VISIBLE; - /* Hacks for D3D code */ - /* TODO: Check if WineD3D has 3D enabled - Need opengl surfaces or auto for 3D - */ - if(This->ImplType == 0 || This->ImplType == SURFACE_OPENGL) - { - This->caps.dwCaps |= DDCAPS_3D; - This->caps.ddsCaps.dwCaps |= DDSCAPS_3DDEVICE | DDSCAPS_MIPMAP | DDSCAPS_TEXTURE | DDSCAPS_ZBUFFER; - } - This->caps.ddsOldCaps.dwCaps = This->caps.ddsCaps.dwCaps; - -#undef BLIT_CAPS -#undef CKEY_CAPS -#undef FX_CAPS - list_init(&This->surface_list); list_add_head(&global_ddraw_list, &This->ddraw_list_entry); diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c index 9cbb40650ce..4b5a8c0a795 100644 --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c @@ -29,7 +29,6 @@ #define DEBUG_SINGLE_MODE 0 #endif - #include "config.h" #include #include "wined3d_private.h" @@ -2942,6 +2941,7 @@ static HRESULT WINAPI IWineD3DImpl_GetDeviceCaps(IWineD3D *iface, UINT Adapter, struct fragment_caps fragment_caps; const shader_backend_t *shader_backend; const struct fragment_pipeline *frag_pipeline = NULL; + DWORD ckey_caps, blit_caps, fx_caps; TRACE_(d3d_caps)("(%p)->(Adptr:%d, DevType: %x, pCaps: %p)\n", This, Adapter, DeviceType, pCaps); @@ -3428,6 +3428,67 @@ static HRESULT WINAPI IWineD3DImpl_GetDeviceCaps(IWineD3D *iface, UINT Adapter, } else pCaps->DeclTypes = 0; + /* Set DirectDraw helper Caps */ + ckey_caps = WINEDDCKEYCAPS_DESTBLT | + WINEDDCKEYCAPS_SRCBLT; + fx_caps = WINEDDFXCAPS_BLTALPHA | + WINEDDFXCAPS_BLTMIRRORLEFTRIGHT | + WINEDDFXCAPS_BLTMIRRORUPDOWN | + WINEDDFXCAPS_BLTROTATION90 | + WINEDDFXCAPS_BLTSHRINKX | + WINEDDFXCAPS_BLTSHRINKXN | + WINEDDFXCAPS_BLTSHRINKY | + WINEDDFXCAPS_BLTSHRINKXN | + WINEDDFXCAPS_BLTSTRETCHX | + WINEDDFXCAPS_BLTSTRETCHXN | + WINEDDFXCAPS_BLTSTRETCHY | + WINEDDFXCAPS_BLTSTRETCHYN; + blit_caps = WINEDDCAPS_BLT | + WINEDDCAPS_BLTCOLORFILL | + WINEDDCAPS_BLTDEPTHFILL | + WINEDDCAPS_BLTSTRETCH | + WINEDDCAPS_CANBLTSYSMEM | + WINEDDCAPS_CANCLIP | + WINEDDCAPS_CANCLIPSTRETCHED | + WINEDDCAPS_COLORKEY | + WINEDDCAPS_COLORKEYHWASSIST | + WINEDDCAPS_ALIGNBOUNDARYSRC; + + /* Fill the ddraw caps structure */ + pCaps->DirectDrawCaps.Caps = WINEDDCAPS_GDI | + WINEDDCAPS_PALETTE | + blit_caps | + WINEDDCAPS_3D; /* TODO: Make conditional */ + pCaps->DirectDrawCaps.Caps2 = WINEDDCAPS2_CERTIFIED | + WINEDDCAPS2_NOPAGELOCKREQUIRED | + WINEDDCAPS2_PRIMARYGAMMA | + WINEDDCAPS2_WIDESURFACES | + WINEDDCAPS2_CANRENDERWINDOWED; + pCaps->DirectDrawCaps.SVBCaps = blit_caps; + pCaps->DirectDrawCaps.SVBCKeyCaps = ckey_caps; + pCaps->DirectDrawCaps.SVBFXCaps = fx_caps; + pCaps->DirectDrawCaps.VSBCaps = blit_caps; + pCaps->DirectDrawCaps.VSBCKeyCaps = ckey_caps; + pCaps->DirectDrawCaps.VSBFXCaps = fx_caps; + pCaps->DirectDrawCaps.SSBCaps = blit_caps; + pCaps->DirectDrawCaps.SSBCKeyCaps = ckey_caps; + pCaps->DirectDrawCaps.SSBFXCaps = fx_caps; + + pCaps->DirectDrawCaps.ddsCaps = WINEDDSCAPS_ALPHA | + WINEDDSCAPS_BACKBUFFER | + WINEDDSCAPS_FLIP | + WINEDDSCAPS_FRONTBUFFER | + WINEDDSCAPS_OFFSCREENPLAIN | + WINEDDSCAPS_PALETTE | + WINEDDSCAPS_PRIMARYSURFACE | + WINEDDSCAPS_SYSTEMMEMORY | + WINEDDSCAPS_VIDEOMEMORY | + WINEDDSCAPS_VISIBLE | + WINEDDSCAPS_3DDEVICE | /* TODO: Make conditional */ + WINEDDSCAPS_MIPMAP | /* TODO: Make conditional */ + WINEDDSCAPS_TEXTURE | /* TODO: Make conditional */ + WINEDDSCAPS_ZBUFFER; /* TODO: Make conditional */ + pCaps->DirectDrawCaps.StrideAlign = 0; /* TODO: SURFACE_ALIGNMENT */ return WINED3D_OK; } diff --git a/include/wine/wined3d_caps.h b/include/wine/wined3d_caps.h index 95b400e4eef..91fa788bdb9 100644 --- a/include/wine/wined3d_caps.h +++ b/include/wine/wined3d_caps.h @@ -168,4 +168,144 @@ #define WINED3DVS20CAPS_PREDICATION 0x00000001 +/* DirectDraw Caps */ +#define WINEDDSCAPS_RESERVED1 0x00000001 +#define WINEDDSCAPS_ALPHA 0x00000002 +#define WINEDDSCAPS_BACKBUFFER 0x00000004 +#define WINEDDSCAPS_COMPLEX 0x00000008 +#define WINEDDSCAPS_FLIP 0x00000010 +#define WINEDDSCAPS_FRONTBUFFER 0x00000020 +#define WINEDDSCAPS_OFFSCREENPLAIN 0x00000040 +#define WINEDDSCAPS_OVERLAY 0x00000080 +#define WINEDDSCAPS_PALETTE 0x00000100 +#define WINEDDSCAPS_PRIMARYSURFACE 0x00000200 +#define WINEDDSCAPS_PRIMARYSURFACELEFT 0x00000400 +#define WINEDDSCAPS_SYSTEMMEMORY 0x00000800 +#define WINEDDSCAPS_TEXTURE 0x00001000 +#define WINEDDSCAPS_3DDEVICE 0x00002000 +#define WINEDDSCAPS_VIDEOMEMORY 0x00004000 +#define WINEDDSCAPS_VISIBLE 0x00008000 +#define WINEDDSCAPS_WRITEONLY 0x00010000 +#define WINEDDSCAPS_ZBUFFER 0x00020000 +#define WINEDDSCAPS_OWNDC 0x00040000 +#define WINEDDSCAPS_LIVEVIDEO 0x00080000 +#define WINEDDSCAPS_HWCODEC 0x00100000 +#define WINEDDSCAPS_MODEX 0x00200000 +#define WINEDDSCAPS_MIPMAP 0x00400000 +#define WINEDDSCAPS_RESERVED2 0x00800000 +#define WINEDDSCAPS_ALLOCONLOAD 0x04000000 +#define WINEDDSCAPS_VIDEOPORT 0x08000000 +#define WINEDDSCAPS_LOCALVIDMEM 0x10000000 +#define WINEDDSCAPS_NONLOCALVIDMEM 0x20000000 +#define WINEDDSCAPS_STANDARDVGAMODE 0x40000000 +#define WINEDDSCAPS_OPTIMIZED 0x80000000 + +#define WINEDDCKEYCAPS_DESTBLT 0x00000001 +#define WINEDDCKEYCAPS_DESTBLTCLRSPACE 0x00000002 +#define WINEDDCKEYCAPS_DESTBLTCLRSPACEYUV 0x00000004 +#define WINEDDCKEYCAPS_DESTBLTYUV 0x00000008 +#define WINEDDCKEYCAPS_DESTOVERLAY 0x00000010 +#define WINEDDCKEYCAPS_DESTOVERLAYCLRSPACE 0x00000020 +#define WINEDDCKEYCAPS_DESTOVERLAYCLRSPACEYUV 0x00000040 +#define WINEDDCKEYCAPS_DESTOVERLAYONEACTIVE 0x00000080 +#define WINEDDCKEYCAPS_DESTOVERLAYYUV 0x00000100 +#define WINEDDCKEYCAPS_SRCBLT 0x00000200 +#define WINEDDCKEYCAPS_SRCBLTCLRSPACE 0x00000400 +#define WINEDDCKEYCAPS_SRCBLTCLRSPACEYUV 0x00000800 +#define WINEDDCKEYCAPS_SRCBLTYUV 0x00001000 +#define WINEDDCKEYCAPS_SRCOVERLAY 0x00002000 +#define WINEDDCKEYCAPS_SRCOVERLAYCLRSPACE 0x00004000 +#define WINEDDCKEYCAPS_SRCOVERLAYCLRSPACEYUV 0x00008000 +#define WINEDDCKEYCAPS_SRCOVERLAYONEACTIVE 0x00010000 +#define WINEDDCKEYCAPS_SRCOVERLAYYUV 0x00020000 +#define WINEDDCKEYCAPS_NOCOSTOVERLAY 0x00040000 + +#define WINEDDFXCAPS_BLTALPHA 0x00000001 +#define WINEDDFXCAPS_OVERLAYALPHA 0x00000004 +#define WINEDDFXCAPS_BLTARITHSTRETCHYN 0x00000010 +#define WINEDDFXCAPS_BLTARITHSTRETCHY 0x00000020 +#define WINEDDFXCAPS_BLTMIRRORLEFTRIGHT 0x00000040 +#define WINEDDFXCAPS_BLTMIRRORUPDOWN 0x00000080 +#define WINEDDFXCAPS_BLTROTATION 0x00000100 +#define WINEDDFXCAPS_BLTROTATION90 0x00000200 +#define WINEDDFXCAPS_BLTSHRINKX 0x00000400 +#define WINEDDFXCAPS_BLTSHRINKXN 0x00000800 +#define WINEDDFXCAPS_BLTSHRINKY 0x00001000 +#define WINEDDFXCAPS_BLTSHRINKYN 0x00002000 +#define WINEDDFXCAPS_BLTSTRETCHX 0x00004000 +#define WINEDDFXCAPS_BLTSTRETCHXN 0x00008000 +#define WINEDDFXCAPS_BLTSTRETCHY 0x00010000 +#define WINEDDFXCAPS_BLTSTRETCHYN 0x00020000 +#define WINEDDFXCAPS_OVERLAYARITHSTRETCHY 0x00040000 +#define WINEDDFXCAPS_OVERLAYARITHSTRETCHYN 0x00000008 +#define WINEDDFXCAPS_OVERLAYSHRINKX 0x00080000 +#define WINEDDFXCAPS_OVERLAYSHRINKXN 0x00100000 +#define WINEDDFXCAPS_OVERLAYSHRINKY 0x00200000 +#define WINEDDFXCAPS_OVERLAYSHRINKYN 0x00400000 +#define WINEDDFXCAPS_OVERLAYSTRETCHX 0x00800000 +#define WINEDDFXCAPS_OVERLAYSTRETCHXN 0x01000000 +#define WINEDDFXCAPS_OVERLAYSTRETCHY 0x02000000 +#define WINEDDFXCAPS_OVERLAYSTRETCHYN 0x04000000 +#define WINEDDFXCAPS_OVERLAYMIRRORLEFTRIGHT 0x08000000 +#define WINEDDFXCAPS_OVERLAYMIRRORUPDOWN 0x10000000 + +#define WINEDDCAPS_3D 0x00000001 +#define WINEDDCAPS_ALIGNBOUNDARYDEST 0x00000002 +#define WINEDDCAPS_ALIGNSIZEDEST 0x00000004 +#define WINEDDCAPS_ALIGNBOUNDARYSRC 0x00000008 +#define WINEDDCAPS_ALIGNSIZESRC 0x00000010 +#define WINEDDCAPS_ALIGNSTRIDE 0x00000020 +#define WINEDDCAPS_BLT 0x00000040 +#define WINEDDCAPS_BLTQUEUE 0x00000080 +#define WINEDDCAPS_BLTFOURCC 0x00000100 +#define WINEDDCAPS_BLTSTRETCH 0x00000200 +#define WINEDDCAPS_GDI 0x00000400 +#define WINEDDCAPS_OVERLAY 0x00000800 +#define WINEDDCAPS_OVERLAYCANTCLIP 0x00001000 +#define WINEDDCAPS_OVERLAYFOURCC 0x00002000 +#define WINEDDCAPS_OVERLAYSTRETCH 0x00004000 +#define WINEDDCAPS_PALETTE 0x00008000 +#define WINEDDCAPS_PALETTEVSYNC 0x00010000 +#define WINEDDCAPS_READSCANLINE 0x00020000 +#define WINEDDCAPS_STEREOVIEW 0x00040000 +#define WINEDDCAPS_VBI 0x00080000 +#define WINEDDCAPS_ZBLTS 0x00100000 +#define WINEDDCAPS_ZOVERLAYS 0x00200000 +#define WINEDDCAPS_COLORKEY 0x00400000 +#define WINEDDCAPS_ALPHA 0x00800000 +#define WINEDDCAPS_COLORKEYHWASSIST 0x01000000 +#define WINEDDCAPS_NOHARDWARE 0x02000000 +#define WINEDDCAPS_BLTCOLORFILL 0x04000000 +#define WINEDDCAPS_BANKSWITCHED 0x08000000 +#define WINEDDCAPS_BLTDEPTHFILL 0x10000000 +#define WINEDDCAPS_CANCLIP 0x20000000 +#define WINEDDCAPS_CANCLIPSTRETCHED 0x40000000 +#define WINEDDCAPS_CANBLTSYSMEM 0x80000000 + +#define WINEDDCAPS2_CERTIFIED 0x00000001 +#define WINEDDCAPS2_NO2DDURING3DSCENE 0x00000002 +#define WINEDDCAPS2_VIDEOPORT 0x00000004 +#define WINEDDCAPS2_AUTOFLIPOVERLAY 0x00000008 +#define WINEDDCAPS2_CANBOBINTERLEAVED 0x00000010 +#define WINEDDCAPS2_CANBOBNONINTERLEAVED 0x00000020 +#define WINEDDCAPS2_COLORCONTROLOVERLAY 0x00000040 +#define WINEDDCAPS2_COLORCONTROLPRIMARY 0x00000080 +#define WINEDDCAPS2_CANDROPZ16BIT 0x00000100 +#define WINEDDCAPS2_NONLOCALVIDMEM 0x00000200 +#define WINEDDCAPS2_NONLOCALVIDMEMCAPS 0x00000400 +#define WINEDDCAPS2_NOPAGELOCKREQUIRED 0x00000800 +#define WINEDDCAPS2_WIDESURFACES 0x00001000 +#define WINEDDCAPS2_CANFLIPODDEVEN 0x00002000 +#define WINEDDCAPS2_CANBOBHARDWARE 0x00004000 +#define WINEDDCAPS2_COPYFOURCC 0x00008000 +#define WINEDDCAPS2_PRIMARYGAMMA 0x00020000 +#define WINEDDCAPS2_CANRENDERWINDOWED 0x00080000 +#define WINEDDCAPS2_CANCALIBRATEGAMMA 0x00100000 +#define WINEDDCAPS2_FLIPINTERVAL 0x00200000 +#define WINEDDCAPS2_FLIPNOVSYNC 0x00400000 +#define WINEDDCAPS2_CANMANAGETEXTURE 0x00800000 +#define WINEDDCAPS2_TEXMANINNONLOCALVIDMEM 0x01000000 +#define WINEDDCAPS2_STEREO 0x02000000 +#define WINEDDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL 0x04000000 + #endif /* __WINE_WINED3D_CAPS_H */ diff --git a/include/wine/wined3d_types.h b/include/wine/wined3d_types.h index c67c3116280..c4d10f5975c 100644 --- a/include/wine/wined3d_types.h +++ b/include/wine/wined3d_types.h @@ -1112,6 +1112,27 @@ typedef struct _WINED3DPSHADERCAPS2_0 { INT NumInstructionSlots; } WINED3DPSHADERCAPS2_0; +typedef struct _WINEDDCAPS { + DWORD Caps; + DWORD Caps2; + DWORD CKeyCaps; + DWORD FXCaps; + DWORD FXAlphaCaps; + DWORD PalCaps; + DWORD SVCaps; + DWORD SVBCaps; + DWORD SVBCKeyCaps; + DWORD SVBFXCaps; + DWORD VSBCaps; + DWORD VSBCKeyCaps; + DWORD VSBFXCaps; + DWORD SSBCaps; + DWORD SSBCKeyCaps; + DWORD SSBFXCaps; + DWORD ddsCaps; + DWORD StrideAlign; +} WINEDDCAPS; + typedef struct _WINED3DCAPS { WINED3DDEVTYPE DeviceType; UINT AdapterOrdinal; @@ -1204,6 +1225,7 @@ typedef struct _WINED3DCAPS { DWORD Reserved2;/* Not in the microsoft headers but documented */ DWORD Reserved3; + WINEDDCAPS DirectDrawCaps; } WINED3DCAPS; typedef enum _WINED3DSTATEBLOCKTYPE {