Module: wine Branch: master Commit: d4159adbc84ab44c47a35adc3abd2cee27d20bfb URL: http://source.winehq.org/git/wine.git/?a=commit;h=d4159adbc84ab44c47a35adc3a...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Tue Aug 4 08:30:25 2009 +0200
wined3d: Statically initialize the filter lookup tables.
Also add some comments.
---
dlls/wined3d/directx.c | 53 ++++++++++++++++++---------------------- dlls/wined3d/wined3d_private.h | 4 +- 2 files changed, 26 insertions(+), 31 deletions(-)
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c index f9fb6b1..fc8fa61 100644 --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c @@ -168,19 +168,34 @@ const int maxLookup[MAX_LOOKUPS] =
DWORD *stateLookup[MAX_LOOKUPS];
-struct min_lookup minMipLookup[WINED3DTEXF_ANISOTROPIC + 1]; -const struct min_lookup minMipLookup_noFilter[WINED3DTEXF_ANISOTROPIC + 1] = +const struct min_lookup minMipLookup[] = { - {{GL_NEAREST, GL_NEAREST, GL_NEAREST}}, - {{GL_NEAREST, GL_NEAREST, GL_NEAREST}}, - {{GL_NEAREST, GL_NEAREST, GL_NEAREST}}, - {{GL_NEAREST, GL_NEAREST, GL_NEAREST}}, + /* NONE POINT LINEAR */ + {{GL_LINEAR, GL_LINEAR, GL_LINEAR}}, /* NONE */ + {{GL_NEAREST, GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST_MIPMAP_LINEAR}}, /* POINT*/ + {{GL_LINEAR, GL_LINEAR_MIPMAP_NEAREST, GL_LINEAR_MIPMAP_LINEAR}}, /* LINEAR */ + {{GL_LINEAR, GL_LINEAR_MIPMAP_NEAREST, GL_LINEAR_MIPMAP_LINEAR}}, /* ANISOTROPIC */ };
-GLenum magLookup[WINED3DTEXF_ANISOTROPIC + 1]; -const GLenum magLookup_noFilter[WINED3DTEXF_ANISOTROPIC + 1] = +const struct min_lookup minMipLookup_noFilter[] = { - GL_NEAREST, GL_NEAREST, GL_NEAREST, GL_NEAREST + /* NONE POINT LINEAR */ + {{GL_NEAREST, GL_NEAREST, GL_NEAREST}}, /* NONE */ + {{GL_NEAREST, GL_NEAREST, GL_NEAREST}}, /* POINT */ + {{GL_NEAREST, GL_NEAREST, GL_NEAREST}}, /* LINEAR */ + {{GL_NEAREST, GL_NEAREST, GL_NEAREST}}, /* ANISOTROPIC */ +}; + +const GLenum magLookup[] = +{ + /* NONE POINT LINEAR ANISOTROPIC */ + GL_NEAREST, GL_NEAREST, GL_LINEAR, GL_LINEAR, +}; + +const GLenum magLookup_noFilter[] = +{ + /* NONE POINT LINEAR ANISOTROPIC */ + GL_NEAREST, GL_NEAREST, GL_NEAREST, GL_NEAREST, };
/* drawStridedSlow attributes */ @@ -1991,26 +2006,6 @@ static BOOL IWineD3DImpl_FillGLCaps(struct wined3d_gl_info *gl_info) stateLookup[WINELOOKUP_WARPPARAM][WINED3DTADDRESS_MIRRORONCE - minLookup[WINELOOKUP_WARPPARAM]] = gl_info->supported[ATI_TEXTURE_MIRROR_ONCE] ? GL_MIRROR_CLAMP_TO_EDGE_ATI : GL_REPEAT;
- magLookup[WINED3DTEXF_NONE - WINED3DTEXF_NONE] = GL_NEAREST; - magLookup[WINED3DTEXF_POINT - WINED3DTEXF_NONE] = GL_NEAREST; - magLookup[WINED3DTEXF_LINEAR - WINED3DTEXF_NONE] = GL_LINEAR; - magLookup[WINED3DTEXF_ANISOTROPIC - WINED3DTEXF_NONE] = GL_LINEAR; - - minMipLookup[WINED3DTEXF_NONE].mip[WINED3DTEXF_NONE] = GL_LINEAR; - minMipLookup[WINED3DTEXF_NONE].mip[WINED3DTEXF_POINT] = GL_LINEAR; - minMipLookup[WINED3DTEXF_NONE].mip[WINED3DTEXF_LINEAR] = GL_LINEAR; - minMipLookup[WINED3DTEXF_POINT].mip[WINED3DTEXF_NONE] = GL_NEAREST; - minMipLookup[WINED3DTEXF_POINT].mip[WINED3DTEXF_POINT] = GL_NEAREST_MIPMAP_NEAREST; - minMipLookup[WINED3DTEXF_POINT].mip[WINED3DTEXF_LINEAR] = GL_NEAREST_MIPMAP_LINEAR; - minMipLookup[WINED3DTEXF_LINEAR].mip[WINED3DTEXF_NONE] = GL_LINEAR; - minMipLookup[WINED3DTEXF_LINEAR].mip[WINED3DTEXF_POINT] = GL_LINEAR_MIPMAP_NEAREST; - minMipLookup[WINED3DTEXF_LINEAR].mip[WINED3DTEXF_LINEAR] = GL_LINEAR_MIPMAP_LINEAR; - minMipLookup[WINED3DTEXF_ANISOTROPIC].mip[WINED3DTEXF_NONE] = GL_LINEAR; - minMipLookup[WINED3DTEXF_ANISOTROPIC].mip[WINED3DTEXF_POINT] = GL_LINEAR_MIPMAP_NEAREST; - minMipLookup[WINED3DTEXF_ANISOTROPIC].mip[WINED3DTEXF_LINEAR] = GL_LINEAR_MIPMAP_LINEAR; - -/* TODO: config lookups */ - /* Make sure there's an active HDC else the WGL extensions will fail */ hdc = pwglGetCurrentDC(); if (hdc) { diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 1a3314a..bb8aae8 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -176,9 +176,9 @@ struct min_lookup GLenum mip[WINED3DTEXF_LINEAR + 1]; };
-struct min_lookup minMipLookup[WINED3DTEXF_ANISOTROPIC + 1]; +const struct min_lookup minMipLookup[WINED3DTEXF_ANISOTROPIC + 1]; const struct min_lookup minMipLookup_noFilter[WINED3DTEXF_ANISOTROPIC + 1]; -GLenum magLookup[WINED3DTEXF_ANISOTROPIC + 1]; +const GLenum magLookup[WINED3DTEXF_ANISOTROPIC + 1]; const GLenum magLookup_noFilter[WINED3DTEXF_ANISOTROPIC + 1];
extern const struct filter_lookup filter_lookup_nofilter;