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