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