Stefan Dösinger : wined3d: Only set D3D caps when GL was loaded successfully.
Alexandre Julliard
julliard at winehq.org
Mon Aug 4 08:53:39 CDT 2008
Module: wine
Branch: master
Commit: 8ee4159e4f40112f26bd9aa747605316ea582684
URL: http://source.winehq.org/git/wine.git/?a=commit;h=8ee4159e4f40112f26bd9aa747605316ea582684
Author: Stefan Dösinger <stefan at codeweavers.com>
Date: Wed Jul 23 15:38:52 2008 -0500
wined3d: Only set D3D caps when GL was loaded successfully.
---
dlls/wined3d/directx.c | 19 ++++++++++++-------
1 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 4b5a8c0..ddb7102 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -3457,8 +3457,7 @@ static HRESULT WINAPI IWineD3DImpl_GetDeviceCaps(IWineD3D *iface, UINT Adapter,
/* Fill the ddraw caps structure */
pCaps->DirectDrawCaps.Caps = WINEDDCAPS_GDI |
WINEDDCAPS_PALETTE |
- blit_caps |
- WINEDDCAPS_3D; /* TODO: Make conditional */
+ blit_caps;
pCaps->DirectDrawCaps.Caps2 = WINEDDCAPS2_CERTIFIED |
WINEDDCAPS2_NOPAGELOCKREQUIRED |
WINEDDCAPS2_PRIMARYGAMMA |
@@ -3483,12 +3482,18 @@ static HRESULT WINAPI IWineD3DImpl_GetDeviceCaps(IWineD3D *iface, UINT Adapter,
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 */
+ WINEDDSCAPS_VISIBLE;
pCaps->DirectDrawCaps.StrideAlign = 0; /* TODO: SURFACE_ALIGNMENT */
+
+ /* Set D3D caps if OpenGL is available. */
+ if(Adapters[Adapter].opengl) {
+ pCaps->DirectDrawCaps.ddsCaps |=WINEDDSCAPS_3DDEVICE |
+ WINEDDSCAPS_MIPMAP |
+ WINEDDSCAPS_TEXTURE |
+ WINEDDSCAPS_ZBUFFER;
+ pCaps->DirectDrawCaps.Caps |= WINEDDCAPS_3D;
+ }
+
return WINED3D_OK;
}
More information about the wine-cvs
mailing list