Add single color DXT1a compressor.

This commit is contained in:
castano 2008-04-17 06:54:29 +00:00
parent 9d47e100f1
commit fa5e1f5a07
2 changed files with 18 additions and 1 deletions

View File

@ -21,6 +21,8 @@
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
// OTHER DEALINGS IN THE SOFTWARE. // OTHER DEALINGS IN THE SOFTWARE.
#include <nvcore/Containers.h> // swap
#include <nvmath/Color.h> #include <nvmath/Color.h>
#include <nvimage/ColorBlock.h> #include <nvimage/ColorBlock.h>
@ -555,6 +557,20 @@ void QuickCompress::compressDXT1(const ColorBlock & rgba, BlockDXT1 * dxtBlock)
} }
void QuickCompress::compressDXT1a(Color32 rgba, BlockDXT1 * dxtBlock)
{
if (rgba.a == 0)
{
dxtBlock->col0.u = 0;
dxtBlock->col1.u = 0;
dxtBlock->indices = 0xFFFFFFFF;
}
else
{
compressDXT1(rgba, dxtBlock);
}
}
void QuickCompress::compressDXT1a(const ColorBlock & rgba, BlockDXT1 * dxtBlock) void QuickCompress::compressDXT1a(const ColorBlock & rgba, BlockDXT1 * dxtBlock)
{ {
if (!rgba.hasAlpha()) if (!rgba.hasAlpha())

View File

@ -37,8 +37,9 @@ namespace nv
namespace QuickCompress namespace QuickCompress
{ {
void compressDXT1(const Color32 rgba, BlockDXT1 * dxtBlock); void compressDXT1(Color32 rgba, BlockDXT1 * dxtBlock);
void compressDXT1(const ColorBlock & rgba, BlockDXT1 * dxtBlock); void compressDXT1(const ColorBlock & rgba, BlockDXT1 * dxtBlock);
void compressDXT1a(Color32 rgba, BlockDXT1 * dxtBlock);
void compressDXT1a(const ColorBlock & rgba, BlockDXT1 * dxtBlock); void compressDXT1a(const ColorBlock & rgba, BlockDXT1 * dxtBlock);
void compressDXT1G(const ColorBlock & rgba, BlockDXT1 * block); void compressDXT1G(const ColorBlock & rgba, BlockDXT1 * block);