mesa: rework texture completeness testing
authorBrian Paul <brianp@vmware.com>
Sat, 17 Mar 2012 22:30:03 +0000 (16:30 -0600)
committerBrian Paul <brianp@vmware.com>
Tue, 20 Mar 2012 14:23:32 +0000 (08:23 -0600)
commitf4a93e0665881dd58a95abb6525676bd1cc2e6af
treeb7195582ab9d2e5f9e91a964de36dfb06fb057f4
parentb219b2c310911286f375d6b9967d5fd39ec1188a
mesa: rework texture completeness testing

Instead of gl_texture_object::_Complete there are now two fields:
_BaseComplete and _MipmapComplete.  The former indicates whether the base
texture level is valid.  The later indicates whether the whole mipmap is
valid.

With sampler objects, a single texture can appear to be both complete and
incomplete at the same time.  See the GL_ARB_sampler_objects spec for more
details.  To implement this we now check if the texture is complete with
respect to a sampler state.

Another benefit of this is we no longer need to invalidate a texture's
completeness state when we change the minification/magnification filters
with glTexParameter().

Reviewed-by: José Fonseca <jfonseca@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/drivers/dri/intel/intel_tex_validate.c
src/mesa/main/mtypes.h
src/mesa/main/texobj.c
src/mesa/main/texobj.h
src/mesa/main/texparam.c
src/mesa/main/texstate.c
src/mesa/state_tracker/st_cb_texture.c
src/mesa/swrast/s_context.c
src/mesa/swrast/s_texfilter.c
src/mesa/swrast/s_texfilter.h