mesa: new _mesa_prepare_mipmap_level() function for mipmap generation
authorBrian Paul <brianp@vmware.com>
Thu, 15 Dec 2011 23:30:33 +0000 (16:30 -0700)
committerBrian Paul <brianp@vmware.com>
Fri, 16 Dec 2011 19:14:27 +0000 (12:14 -0700)
commitd77b963245fd286aecd6c04f7beb748ad22129cf
tree0fc8eab8873f99b1b65013258103f2060911bde1
parentd842a118b26a56c9c5e4310f30f70199c42ea90e
mesa: new _mesa_prepare_mipmap_level() function for mipmap generation

This helper function is used during mipmap generation to prepare space
for the destination mipmap levels.

This improves/fixes two things:
1. If the texture object was created with glTexStorage2D, calling
   _mesa_TexImage2D() to allocate the new image would generate
   INVALID_OPERATION since the texture is marked as immutable.
2. _mesa_TexImage2D() always frees any existing texture image memory
   before allocating new memory.  That's inefficient if the existing
   image is the right size already.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/main/mipmap.c
src/mesa/main/mipmap.h