From 934e41c0b31cffa4efc08f61cff2389e3149b3f3 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Fri, 2 Jan 2015 16:56:12 -0700 Subject: [PATCH] mesa: create, use new _mesa_texture_base_format() function Reviewed-by: Eric Anholt --- src/mesa/main/ff_fragment_shader.cpp | 2 +- src/mesa/main/texobj.c | 14 ++++++++++++++ src/mesa/main/texobj.h | 3 +++ src/mesa/state_tracker/st_atom_sampler.c | 4 +--- src/mesa/state_tracker/st_atom_texture.c | 7 +++---- src/mesa/swrast/s_texfilter.c | 2 +- 6 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/mesa/main/ff_fragment_shader.cpp b/src/mesa/main/ff_fragment_shader.cpp index bc6fdbdd891..c6828925f5e 100644 --- a/src/mesa/main/ff_fragment_shader.cpp +++ b/src/mesa/main/ff_fragment_shader.cpp @@ -418,7 +418,7 @@ static GLuint make_state_key( struct gl_context *ctx, struct state_key *key ) continue; samp = _mesa_get_samplerobj(ctx, i); - format = texObj->Image[0][texObj->BaseLevel]->_BaseFormat; + format = _mesa_texture_base_format(texObj); key->unit[i].enabled = 1; key->enabled_units |= (1<_BaseFormat : GL_NONE; +} + + static struct gl_texture_object * invalidate_tex_image_error_check(struct gl_context *ctx, GLuint texture, GLint level, const char *name) diff --git a/src/mesa/main/texobj.h b/src/mesa/main/texobj.h index efcd7661e26..f33991dd2d6 100644 --- a/src/mesa/main/texobj.h +++ b/src/mesa/main/texobj.h @@ -165,6 +165,9 @@ _mesa_get_fallback_texture(struct gl_context *ctx, gl_texture_index tex); extern GLuint _mesa_total_texture_memory(struct gl_context *ctx); +extern GLenum +_mesa_texture_base_format(const struct gl_texture_object *texObj); + extern void _mesa_unlock_context_textures( struct gl_context *ctx ); diff --git a/src/mesa/state_tracker/st_atom_sampler.c b/src/mesa/state_tracker/st_atom_sampler.c index f8d7cd7f9b3..b68eb16d7be 100644 --- a/src/mesa/state_tracker/st_atom_sampler.c +++ b/src/mesa/state_tracker/st_atom_sampler.c @@ -134,7 +134,6 @@ convert_sampler(struct st_context *st, const struct gl_texture_object *texobj; struct gl_context *ctx = st->ctx; struct gl_sampler_object *msamp; - const struct gl_texture_image *teximg; GLenum texBaseFormat; texobj = ctx->Texture.Unit[texUnit]._Current; @@ -142,8 +141,7 @@ convert_sampler(struct st_context *st, texobj = _mesa_get_fallback_texture(ctx, TEXTURE_2D_INDEX); } - teximg = _mesa_base_tex_image_const(texobj); - texBaseFormat = teximg ? teximg->_BaseFormat : GL_RGBA; + texBaseFormat = _mesa_texture_base_format(texobj); msamp = _mesa_get_samplerobj(ctx, texUnit); diff --git a/src/mesa/state_tracker/st_atom_texture.c b/src/mesa/state_tracker/st_atom_texture.c index c95e36abc0f..eff28fc6f37 100644 --- a/src/mesa/state_tracker/st_atom_texture.c +++ b/src/mesa/state_tracker/st_atom_texture.c @@ -176,12 +176,11 @@ compute_texture_format_swizzle(GLenum baseFormat, GLenum depthMode, static unsigned get_texture_format_swizzle(const struct st_texture_object *stObj) { - const struct gl_texture_image *texImage = - _mesa_base_tex_image_const(&stObj->base); + GLenum baseFormat = _mesa_texture_base_format(&stObj->base); unsigned tex_swizzle; - if (texImage) { - tex_swizzle = compute_texture_format_swizzle(texImage->_BaseFormat, + if (baseFormat != GL_NONE) { + tex_swizzle = compute_texture_format_swizzle(baseFormat, stObj->base.DepthMode, stObj->pt->format); } diff --git a/src/mesa/swrast/s_texfilter.c b/src/mesa/swrast/s_texfilter.c index 8a1b045c2ff..fa79fdc5b49 100644 --- a/src/mesa/swrast/s_texfilter.c +++ b/src/mesa/swrast/s_texfilter.c @@ -833,7 +833,7 @@ apply_depth_mode(GLenum depthMode, GLfloat z, GLfloat texel[4]) static GLboolean is_depth_texture(const struct gl_texture_object *tObj) { - GLenum format = tObj->Image[0][tObj->BaseLevel]->_BaseFormat; + GLenum format = _mesa_texture_base_format(tObj); return format == GL_DEPTH_COMPONENT || format == GL_DEPTH_STENCIL_EXT; } -- 2.30.2