Henri Verbeet : wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_release_client_storage ().

Alexandre Julliard julliard at winehq.org
Wed Apr 28 16:35:46 CDT 2010


Module: wine
Branch: master
Commit: 0d86323778d7e456f64cbacedb3b2098b0ba8da3
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=0d86323778d7e456f64cbacedb3b2098b0ba8da3

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Wed Apr 28 00:08:49 2010 +0200

wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_release_client_storage().

---

 dlls/wined3d/surface.c |   39 ++++++++++++++++++---------------------
 1 files changed, 18 insertions(+), 21 deletions(-)

diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index d3fe566..2e2a925 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -1993,35 +1993,34 @@ static HRESULT WINAPI IWineD3DSurfaceImpl_UnlockRect(IWineD3DSurface *iface) {
     return WINED3D_OK;
 }
 
-static void surface_release_client_storage(IWineD3DSurface *iface)
+static void surface_release_client_storage(IWineD3DSurfaceImpl *surface)
 {
-    IWineD3DSurfaceImpl *This = (IWineD3DSurfaceImpl *) iface;
     struct wined3d_context *context;
 
-    context = context_acquire(This->resource.device, NULL, CTXUSAGE_RESOURCELOAD);
+    context = context_acquire(surface->resource.device, NULL, CTXUSAGE_RESOURCELOAD);
 
     ENTER_GL();
     glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, GL_FALSE);
-    if(This->texture_name)
+    if (surface->texture_name)
     {
-        surface_bind_and_dirtify(This, FALSE);
-        glTexImage2D(This->texture_target, This->texture_level,
-                     GL_RGB, 1, 1, 0, GL_RGB, GL_UNSIGNED_BYTE, NULL);
+        surface_bind_and_dirtify(surface, FALSE);
+        glTexImage2D(surface->texture_target, surface->texture_level,
+                GL_RGB, 1, 1, 0, GL_RGB, GL_UNSIGNED_BYTE, NULL);
     }
-    if(This->texture_name_srgb)
+    if (surface->texture_name_srgb)
     {
-        surface_bind_and_dirtify(This, TRUE);
-        glTexImage2D(This->texture_target, This->texture_level,
-                     GL_RGB, 1, 1, 0, GL_RGB, GL_UNSIGNED_BYTE, NULL);
+        surface_bind_and_dirtify(surface, TRUE);
+        glTexImage2D(surface->texture_target, surface->texture_level,
+                GL_RGB, 1, 1, 0, GL_RGB, GL_UNSIGNED_BYTE, NULL);
     }
     glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, GL_TRUE);
 
     LEAVE_GL();
     context_release(context);
 
-    IWineD3DSurface_ModifyLocation(iface, SFLAG_INSRGBTEX, FALSE);
-    IWineD3DSurface_ModifyLocation(iface, SFLAG_INTEXTURE, FALSE);
-    surface_force_reload(This);
+    IWineD3DSurface_ModifyLocation((IWineD3DSurface *)surface, SFLAG_INSRGBTEX, FALSE);
+    IWineD3DSurface_ModifyLocation((IWineD3DSurface *)surface, SFLAG_INTEXTURE, FALSE);
+    surface_force_reload(surface);
 }
 
 static HRESULT WINAPI IWineD3DSurfaceImpl_GetDC(IWineD3DSurface *iface, HDC *pHDC)
@@ -2052,7 +2051,7 @@ static HRESULT WINAPI IWineD3DSurfaceImpl_GetDC(IWineD3DSurface *iface, HDC *pHD
     if(!This->hDC) {
         if(This->Flags & SFLAG_CLIENT) {
             IWineD3DSurface_LoadLocation(iface, SFLAG_INSYSMEM, NULL);
-            surface_release_client_storage(iface);
+            surface_release_client_storage(This);
         }
         hr = IWineD3DBaseSurfaceImpl_CreateDIBSection(iface);
         if(FAILED(hr)) return WINED3DERR_INVALIDCALL;
@@ -2828,9 +2827,8 @@ static HRESULT WINAPI IWineD3DSurfaceImpl_SetMem(IWineD3DSurface *iface, void *M
         IWineD3DSurface_ModifyLocation(iface, SFLAG_INSYSMEM, TRUE);
 
         /* For client textures opengl has to be notified */
-        if(This->Flags & SFLAG_CLIENT) {
-            surface_release_client_storage(iface);
-        }
+        if (This->Flags & SFLAG_CLIENT)
+            surface_release_client_storage(This);
 
         /* Now free the old memory if any */
         HeapFree(GetProcessHeap(), 0, release);
@@ -2841,9 +2839,8 @@ static HRESULT WINAPI IWineD3DSurfaceImpl_SetMem(IWineD3DSurface *iface, void *M
         if(This->resource.heapMemory != NULL) ERR("User pointer surface has heap memory allocated\n");
         This->Flags &= ~SFLAG_USERPTR;
 
-        if(This->Flags & SFLAG_CLIENT) {
-            surface_release_client_storage(iface);
-        }
+        if (This->Flags & SFLAG_CLIENT)
+            surface_release_client_storage(This);
     }
     return WINED3D_OK;
 }




More information about the wine-cvs mailing list