mesa/main: Modify generate_mipmap_compressed to cope with float textures
authorNeil Roberts <neil@linux.intel.com>
Fri, 25 Jul 2014 16:38:22 +0000 (17:38 +0100)
committerNeil Roberts <neil@linux.intel.com>
Tue, 12 Aug 2014 17:23:50 +0000 (18:23 +0100)
Once we add BPTC texture support we will need to generate mipmaps for
compressed floating point textures too. Most of the code seems to already be
there but it just needs a few extra lines to get it to use GL_FLOAT instead of
GL_UNSIGNED_BYTE as the type for the temporary buffers.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
src/mesa/main/mipmap.c

index cc109cc52664129db5ddca5086f2af3190d1f8aa..fdaa68282cfef72c01190111c515992f9fc04b22 100644 (file)
@@ -2038,12 +2038,15 @@ generate_mipmap_compressed(struct gl_context *ctx, GLenum target,
 
    components = _mesa_format_num_components(temp_format);
 
-   /* Revisit this if we get compressed formats with >8 bits per component */
-   if (_mesa_get_format_datatype(srcImage->TexFormat)
-       == GL_SIGNED_NORMALIZED) {
+   switch (_mesa_get_format_datatype(srcImage->TexFormat)) {
+   case GL_FLOAT:
+      temp_datatype = GL_FLOAT;
+      break;
+   case GL_SIGNED_NORMALIZED:
+      /* Revisit this if we get compressed formats with >8 bits per component */
       temp_datatype = GL_BYTE;
-   }
-   else {
+      break;
+   default:
       temp_datatype = GL_UNSIGNED_BYTE;
    }