[PATCH] WineD3D: override the default filter of conditional np2 =
Stefan Doesinger
stefan at codeweavers.com
Wed Aug 13 12:55:53 CDT 2008
textures=0A=
=0A=
---=0A=
dlls/wined3d/texture.c | 12 ++++++++++--=0A=
1 files changed, 10 insertions(+), 2 deletions(-)=0A=
=0A=
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c=0A=
index 35dfcae..bd83541 100644=0A=
--- a/dlls/wined3d/texture.c=0A=
+++ b/dlls/wined3d/texture.c=0A=
@@ -229,17 +229,25 @@ static HRESULT WINAPI =
IWineD3DTextureImpl_BindTexture(IWineD3DTexture *iface) {=0A=
}=0A=
/* Conditinal non power of two textures use a different =
clamping default. If we're using the GL_WINE_normalized_texrect=0A=
* partial driver emulation, we're dealing with a GL_TEXTURE_2D =
texture which has the address mode set to repeat - something=0A=
- * that prevents us from hitting the accelerated codepath. Thus =
manually set the GL state=0A=
+ * that prevents us from hitting the accelerated codepath. Thus =
manually set the GL state. The same applies to filtering.=0A=
+ * Even if the texture has only one mip level, the default =
LINEAR_MIPMAP_LINEAR filter causes a SW fallback on macos.=0A=
*/=0A=
if(IWineD3DBaseTexture_IsCondNP2(iface)) {=0A=
ENTER_GL();=0A=
=
glTexParameteri(IWineD3DTexture_GetTextureDimensions(iface), =
GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);=0A=
checkGLcall("glTexParameteri(dimension, GL_TEXTURE_WRAP_S, =
GL_CLAMP_TO_EDGE)");=0A=
=
glTexParameteri(IWineD3DTexture_GetTextureDimensions(iface), =
GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);=0A=
- checkGLcall("glTexParameteri(dimension, GL_TEXTURE_WRAP_S, =
GL_CLAMP_TO_EDGE)");=0A=
+ checkGLcall("glTexParameteri(dimension, GL_TEXTURE_WRAP_T, =
GL_CLAMP_TO_EDGE)");=0A=
+ =
glTexParameteri(IWineD3DTexture_GetTextureDimensions(iface), =
GL_TEXTURE_MIN_FILTER, GL_NEAREST);=0A=
+ checkGLcall("glTexParameteri(dimension, =
GL_TEXTURE_MIN_FILTER, GL_NEAREST)");=0A=
+ =
glTexParameteri(IWineD3DTexture_GetTextureDimensions(iface), =
GL_TEXTURE_MAG_FILTER, GL_NEAREST);=0A=
+ checkGLcall("glTexParameteri(dimension, =
GL_TEXTURE_MAG_FILTER, GL_NEAREST)");=0A=
LEAVE_GL();=0A=
This->baseTexture.states[WINED3DTEXSTA_ADDRESSU] =3D =
WINED3DTADDRESS_CLAMP;=0A=
This->baseTexture.states[WINED3DTEXSTA_ADDRESSV] =3D =
WINED3DTADDRESS_CLAMP;=0A=
+ This->baseTexture.states[WINED3DTEXSTA_MAGFILTER] =3D =
WINED3DTEXF_POINT;=0A=
+ This->baseTexture.states[WINED3DTEXSTA_MINFILTER] =3D =
WINED3DTEXF_POINT;=0A=
+ This->baseTexture.states[WINED3DTEXSTA_MIPFILTER] =3D =
WINED3DTEXF_NONE;=0A=
}=0A=
}=0A=
=0A=
-- =0A=
1.5.6.4=0A=
=0A=
------=_NextPart_000_0024_01C9046F.94792CA0--
More information about the wine-patches
mailing list