Stefan Dösinger : ddraw: Use point filter for blit operations.

Alexandre Julliard julliard at wine.codeweavers.com
Fri May 11 07:27:59 CDT 2007


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

Author: Stefan Dösinger <stefan at codeweavers.com>
Date:   Thu May 10 17:42:41 2007 +0200

ddraw: Use point filter for blit operations.

D3DTEXF_NONE is a special value for mipmapping which disabled
mipmapping, but it is not a valid mag / min filter parameter.
D3DTEXF_POINT is what we want

---

 dlls/ddraw/surface.c       |    2 +-
 dlls/wined3d/surface.c     |    6 +++---
 dlls/wined3d/surface_gdi.c |    2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c
index d0c93d7..a19b8dd 100644
--- a/dlls/ddraw/surface.c
+++ b/dlls/ddraw/surface.c
@@ -745,7 +745,7 @@ IDirectDrawSurfaceImpl_Blt(IDirectDrawSurface7 *iface,
                              SrcRect,
                              Flags,
                              (WINEDDBLTFX *) DDBltFx,
-                             WINED3DTEXF_NONE);
+                             WINED3DTEXF_POINT);
     switch(hr)
     {
         case WINED3DERR_NOTAVAILABLE:       return DDERR_UNSUPPORTED;
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index b6b2ac1..735d8f4 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -2365,10 +2365,10 @@ static inline void fb_copy_to_texture_direct(IWineD3DSurfaceImpl *This, IWineD3D
     if( (xrel - 1.0 < -eps) || (xrel - 1.0 > eps)) {
         FIXME("Doing a pixel by pixel copy from the framebuffer to a texture, expect major performance issues\n");
 
-        if(Filter != WINED3DTEXF_NONE) {
+        if(Filter != WINED3DTEXF_NONE && Filter != WINED3DTEXF_POINT) {
             ERR("Texture filtering not supported in direct blit\n");
         }
-    } else if((Filter != WINED3DTEXF_NONE) && ((yrel - 1.0 < -eps) || (yrel - 1.0 > eps))) {
+    } else if((Filter != WINED3DTEXF_NONE && Filter != WINED3DTEXF_POINT) && ((yrel - 1.0 < -eps) || (yrel - 1.0 > eps))) {
         ERR("Texture filtering not supported in direct blit\n");
     }
 
@@ -3207,7 +3207,7 @@ HRESULT WINAPI IWineD3DSurfaceImpl_BltFast(IWineD3DSurface *iface, DWORD dstx, D
         if(trans & WINEDDBLTFAST_DONOTWAIT)
             Flags |= WINEDDBLT_DONOTWAIT;
 
-        if(IWineD3DSurfaceImpl_BltOverride(This, &DstRect, Source, &SrcRect, Flags, NULL, WINED3DTEXF_NONE) == WINED3D_OK) return WINED3D_OK;
+        if(IWineD3DSurfaceImpl_BltOverride(This, &DstRect, Source, &SrcRect, Flags, NULL, WINED3DTEXF_POINT) == WINED3D_OK) return WINED3D_OK;
     }
 
 
diff --git a/dlls/wined3d/surface_gdi.c b/dlls/wined3d/surface_gdi.c
index 7d277d4..c191b51 100644
--- a/dlls/wined3d/surface_gdi.c
+++ b/dlls/wined3d/surface_gdi.c
@@ -525,7 +525,7 @@ IWineGDISurfaceImpl_Blt(IWineD3DSurface *iface,
         return WINEDDERR_SURFACEBUSY;
     }
 
-    if(Filter != WINED3DTEXF_NONE) {
+    if(Filter != WINED3DTEXF_NONE && Filter != WINED3DTEXF_POINT) {
         /* Can happen when d3d9 apps do a StretchRect call which isn't handled in gl */
         FIXME("Filters not supported in software blit\n");
     }




More information about the wine-cvs mailing list