[PATCH 2/4] wined3d: only set the blit_shader in BltOverride for complex source fixups

Roderick Colenbrander thunderbird2k at gmail.com
Tue May 18 02:30:44 CDT 2010


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

diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index 2d7ff23..9731ed5 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -3701,7 +3701,9 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *dst_surface,
             return WINED3DERR_INVALIDCALL;
         }
 
-        device->blitter->set_shader((IWineD3DDevice *)device, src_surface);
+        if (is_complex_fixup(src_surface->resource.format_desc->color_fixup) &&
+            !is_complex_fixup(dst_surface->resource.format_desc->color_fixup))
+            device->blitter->set_shader((IWineD3DDevice *)device, src_surface);
 
         ENTER_GL();
 
-- 
1.6.3.3




More information about the wine-patches mailing list