[PATCH] Add dynamic locking support to CheckDeviceFormat.

Roderick Colenbrander thunderbird2k at gmx.net
Tue Mar 18 03:43:27 CDT 2008


---
 dlls/wined3d/directx.c |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 008959d..56ac113 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -2249,6 +2249,10 @@ static HRESULT WINAPI IWineD3DImpl_CheckDeviceFormat(IWineD3D *iface, UINT Adapt
                     }
                 }
 
+                /* Always report dynamic locking */
+                if(Usage & WINED3DUSAGE_DYNAMIC)
+                    UsageCaps |= WINED3DUSAGE_DYNAMIC;
+
                 if(Usage & WINED3DUSAGE_RENDERTARGET) {
                     if(CheckRenderTargetCapability(AdapterFormat, CheckFormat)) {
                         UsageCaps |= WINED3DUSAGE_RENDERTARGET;
@@ -2337,6 +2341,10 @@ static HRESULT WINAPI IWineD3DImpl_CheckDeviceFormat(IWineD3D *iface, UINT Adapt
                 }
             }
 
+            /* Always report dynamic locking */
+            if(Usage & WINED3DUSAGE_DYNAMIC)
+                UsageCaps |= WINED3DUSAGE_DYNAMIC;
+
             if(Usage & WINED3DUSAGE_RENDERTARGET) {
                 if(CheckRenderTargetCapability(AdapterFormat, CheckFormat)) {
                     UsageCaps |= WINED3DUSAGE_RENDERTARGET;
@@ -2390,6 +2398,12 @@ static HRESULT WINAPI IWineD3DImpl_CheckDeviceFormat(IWineD3D *iface, UINT Adapt
                 UsageCaps |= WINED3DUSAGE_DEPTHSTENCIL;
         }
     } else if(RType == WINED3DRTYPE_VOLUMETEXTURE) {
+        /* Volumetexture allows:
+         *                      - D3DUSAGE_DYNAMIC
+         *                      - D3DUSAGE_NONSECURE (d3d9ex)
+         *                      - D3DUSAGE_SOFTWAREPROCESSING
+         */
+
         /* Check volume texture and volume usage caps */
         if(GL_SUPPORT(EXT_TEXTURE3D)) {
             if(CheckTextureCapability(Adapter, CheckFormat) == FALSE) {
@@ -2397,6 +2411,10 @@ static HRESULT WINAPI IWineD3DImpl_CheckDeviceFormat(IWineD3D *iface, UINT Adapt
                 return WINED3DERR_NOTAVAILABLE;
             }
 
+            /* Always report dynamic locking */
+            if(Usage & WINED3DUSAGE_DYNAMIC)
+                UsageCaps |= WINED3DUSAGE_DYNAMIC;
+
             /* Check QUERY_FILTER support */
             if(Usage & WINED3DUSAGE_QUERY_FILTER) {
                 if(CheckFilterCapability(CheckFormat)) {
-- 
1.5.3.4


--========GMX191001205829738199403--



More information about the wine-patches mailing list