[5/5] wined3d: Dirtify the sampler used by IWineD3DSurface_PreLoad in IWineD3DSurfaceImpl_BltOverride

H. Verbeet hverbeet at gmail.com
Tue Apr 10 12:14:27 CDT 2007


IWineD3DSurface_PreLoad changes the currently bound texture. This
previously went unnoticed because fb_copy_to_texture_direct and
fb_copy_to_texture_hwstretch cause all samplers to be dirtified. One
of the advantages of stretch_rect_fbo is that it doesn't have to do
that.

Changelog:
  - Dirtify the sampler used by IWineD3DSurface_PreLoad in
IWineD3DSurfaceImpl_BltOverride
-------------- next part --------------
---

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

diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index e846b18..6e09072 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -2717,6 +2717,11 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *This, RECT *
         }
 
         /* Call preload for the surface to make sure it isn't dirty */
+        if (GL_SUPPORT(ARB_MULTITEXTURE)) {
+            GL_EXTCALL(glActiveTextureARB(GL_TEXTURE0_ARB));
+            checkGLcall("glActiveTextureARB");
+        }
+        IWineD3DDeviceImpl_MarkStateDirty(This->resource.wineD3DDevice, STATE_SAMPLER(0));
         IWineD3DSurface_PreLoad((IWineD3DSurface *) This);
 
         /* Make sure that the top pixel is always above the bottom pixel, and keep a seperate upside down flag


More information about the wine-patches mailing list