Module: wine Branch: master Commit: e7b68eec34b8da683643466fa2871ebb2365fd45 URL: http://source.winehq.org/git/wine.git/?a=commit;h=e7b68eec34b8da683643466fa2...
Author: Stefan Dösinger stefan@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"); }