Stefan Dösinger : wined3d: Allow filtering on RECT textures.
Alexandre Julliard
julliard at winehq.org
Mon Aug 31 10:46:59 CDT 2009
Module: wine
Branch: master
Commit: 531ec2267b853710ee16fa8b922f98de8e40d565
URL: http://source.winehq.org/git/wine.git/?a=commit;h=531ec2267b853710ee16fa8b922f98de8e40d565
Author: Stefan Dösinger <stefan at codeweavers.com>
Date: Sun Aug 30 21:38:53 2009 +0200
wined3d: Allow filtering on RECT textures.
There is no reason to disable linear filtering, we just cannot use mipmapping.
---
dlls/wined3d/directx.c | 8 ++++++++
dlls/wined3d/texture.c | 10 +++++++++-
dlls/wined3d/wined3d_private.h | 1 +
3 files changed, 18 insertions(+), 1 deletions(-)
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index ea9431e..5e66f34 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -185,6 +185,14 @@ const struct min_lookup minMipLookup_noFilter[] =
{{GL_NEAREST, GL_NEAREST, GL_NEAREST}}, /* LINEAR */
};
+const struct min_lookup minMipLookup_noMip[] =
+{
+ /* NONE POINT LINEAR */
+ {{GL_NEAREST, GL_NEAREST, GL_NEAREST}}, /* NONE */
+ {{GL_NEAREST, GL_NEAREST, GL_NEAREST}}, /* POINT */
+ {{GL_LINEAR, GL_LINEAR, GL_LINEAR }}, /* LINEAR */
+};
+
const GLenum magLookup[] =
{
/* NONE POINT LINEAR */
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
index 8f0b980..dd8f32e 100644
--- a/dlls/wined3d/texture.c
+++ b/dlls/wined3d/texture.c
@@ -223,7 +223,15 @@ HRESULT texture_init(IWineD3DTextureImpl *texture, UINT width, UINT height, UINT
texture->baseTexture.pow2Matrix[15] = 1.0f;
texture->target = GL_TEXTURE_RECTANGLE_ARB;
texture->cond_np2 = TRUE;
- texture->baseTexture.minMipLookup = minMipLookup_noFilter;
+
+ if(texture->resource.format_desc->Flags & WINED3DFMT_FLAG_FILTERING)
+ {
+ texture->baseTexture.minMipLookup = minMipLookup_noMip;
+ }
+ else
+ {
+ texture->baseTexture.minMipLookup = minMipLookup_noFilter;
+ }
}
else
{
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 8dbac4e..fefc540 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -178,6 +178,7 @@ struct min_lookup
const struct min_lookup minMipLookup[WINED3DTEXF_LINEAR + 1];
const struct min_lookup minMipLookup_noFilter[WINED3DTEXF_LINEAR + 1];
+const struct min_lookup minMipLookup_noMip[WINED3DTEXF_LINEAR + 1];
const GLenum magLookup[WINED3DTEXF_LINEAR + 1];
const GLenum magLookup_noFilter[WINED3DTEXF_LINEAR + 1];
More information about the wine-cvs
mailing list