Henri Verbeet : wined3d: Use wined3d_surface_blt() in surface_upload_from_surface().

Alexandre Julliard julliard at winehq.org
Thu Nov 3 13:10:14 CDT 2011


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

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Wed Nov  2 22:46:52 2011 +0100

wined3d: Use wined3d_surface_blt() in surface_upload_from_surface().

---

 dlls/wined3d/surface.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index 7361391..21848e9 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -2588,13 +2588,13 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P
         return WINED3DERR_INVALIDCALL;
     }
 
-    /* This call loads the OpenGL surface directly, instead of copying the
-     * surface to the destination's sysmem copy. If surface conversion is
-     * needed, use BltFast instead to copy in sysmem and use regular surface
-     * loading. */
+    /* Use wined3d_surface_blt() instead of uploading directly if we need conversion. */
     d3dfmt_get_conv(dst_surface, FALSE, TRUE, &format, &convert);
     if (convert != NO_CONVERSION || format.convert)
-        return surface_bltfast(dst_surface, dst_point->x, dst_point->y, src_surface, src_rect, 0);
+    {
+        RECT dst_rect = {dst_point->x,  dst_point->y, dst_point->x + update_w, dst_point->y + update_h};
+        return wined3d_surface_blt(dst_surface, &dst_rect, src_surface, src_rect, 0, NULL, WINED3DTEXF_POINT);
+    }
 
     context = context_acquire(dst_surface->resource.device, NULL);
     gl_info = context->gl_info;




More information about the wine-cvs mailing list