diff options
author | Brian Paul <[email protected]> | 2015-01-02 16:56:12 -0700 |
---|---|---|
committer | Brian Paul <[email protected]> | 2015-01-05 13:50:55 -0700 |
commit | 934e41c0b31cffa4efc08f61cff2389e3149b3f3 (patch) | |
tree | 47f638f83ab5520de8fd1a94d1a413cde320ae7c /src/mesa/main | |
parent | f262ed6e3dd9d447355ea2490e84c0a6b0fd1ddb (diff) |
mesa: create, use new _mesa_texture_base_format() function
Reviewed-by: Eric Anholt <[email protected]>
Diffstat (limited to 'src/mesa/main')
-rw-r--r-- | src/mesa/main/ff_fragment_shader.cpp | 2 | ||||
-rw-r--r-- | src/mesa/main/texobj.c | 14 | ||||
-rw-r--r-- | src/mesa/main/texobj.h | 3 |
3 files changed, 18 insertions, 1 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<<i); diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c index f0ff605fc50..d199bd7fdb5 100644 --- a/src/mesa/main/texobj.c +++ b/src/mesa/main/texobj.c @@ -954,6 +954,20 @@ _mesa_total_texture_memory(struct gl_context *ctx) } +/** + * Return the base format for the given texture object by looking + * at the base texture image. + * \return base format (such as GL_RGBA) or GL_NONE if it can't be determined + */ +GLenum +_mesa_texture_base_format(const struct gl_texture_object *texObj) +{ + const struct gl_texture_image *texImage = _mesa_base_tex_image(texObj); + + return texImage ? texImage->_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 ); |