Allow BC6 and BC7 compressed DDS files to be loaded into Images.

This commit is contained in:
Alex Szpakowski
2014-11-05 21:11:22 -04:00
parent 195d41d1d9
commit 22bbe74ed9
7 changed files with 47 additions and 19 deletions
+17 -3
View File
@@ -623,6 +623,17 @@ GLenum Image::getCompressedFormat(image::CompressedData::Format cformat) const
return GL_COMPRESSED_RG_RGTC2;
case image::CompressedData::FORMAT_BC5s:
return GL_COMPRESSED_SIGNED_RG_RGTC2;
case image::CompressedData::FORMAT_BC6H:
return GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB;
case image::CompressedData::FORMAT_BC6Hs:
return GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB;
case image::CompressedData::FORMAT_BC7:
if (srgb)
return GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB;
else
return GL_COMPRESSED_RGBA_BPTC_UNORM_ARB;
case image::CompressedData::FORMAT_BC7SRGB:
return GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB;
default:
if (srgb)
return GL_SRGB8_ALPHA8;
@@ -672,11 +683,14 @@ bool Image::hasCompressedTextureSupport(image::CompressedData::Format format)
case image::CompressedData::FORMAT_BC5:
case image::CompressedData::FORMAT_BC5s:
return (GLEE_VERSION_3_0 || GLEE_ARB_texture_compression_rgtc || GLEE_EXT_texture_compression_rgtc);
case image::CompressedData::FORMAT_BC6H:
case image::CompressedData::FORMAT_BC6Hs:
case image::CompressedData::FORMAT_BC7:
case image::CompressedData::FORMAT_BC7SRGB:
return GLEE_VERSION_4_2 || GLEE_ARB_texture_compression_bptc;
default:
break;
return false;
}
return false;
}
bool Image::hasSRGBSupport()
+4
View File
@@ -110,6 +110,10 @@ StringMap<CompressedData::Format, CompressedData::FORMAT_MAX_ENUM>::Entry Compre
{"bc4s", CompressedData::FORMAT_BC4s},
{"bc5", CompressedData::FORMAT_BC5},
{"bc5s", CompressedData::FORMAT_BC5s},
{"bc6h", CompressedData::FORMAT_BC6H},
{"bc6hs", CompressedData::FORMAT_BC6Hs},
{"bc7", CompressedData::FORMAT_BC7},
{"bc7srgb", CompressedData::FORMAT_BC7SRGB},
};
StringMap<CompressedData::Format, CompressedData::FORMAT_MAX_ENUM> CompressedData::formats(CompressedData::formatEntries, sizeof(CompressedData::formatEntries));
+4
View File
@@ -54,6 +54,10 @@ public:
FORMAT_BC4s,
FORMAT_BC5,
FORMAT_BC5s,
FORMAT_BC6H,
FORMAT_BC6Hs,
FORMAT_BC7,
FORMAT_BC7SRGB,
FORMAT_MAX_ENUM
};
+8 -2
View File
@@ -117,11 +117,17 @@ CompressedData::Format ddsHandler::convertFormat(dds::Format ddsformat)
return CompressedData::FORMAT_BC5;
case dds::FORMAT_BC5s:
return CompressedData::FORMAT_BC5s;
case dds::FORMAT_BC6H:
return CompressedData::FORMAT_BC6H;
case dds::FORMAT_BC6Hs:
return CompressedData::FORMAT_BC6Hs;
case dds::FORMAT_BC7:
return CompressedData::FORMAT_BC7;
case dds::FORMAT_BC7srgb:
return CompressedData::FORMAT_BC7SRGB;
default:
return CompressedData::FORMAT_UNKNOWN;
}
return CompressedData::FORMAT_UNKNOWN;
}
} // magpie