Cleanup 4 means compressor.
This commit is contained in:
parent
a4f56b65b8
commit
1ec115c7ec
|
@ -489,58 +489,21 @@ void QuickCompress::compressDXT1(const ColorBlock & rgba, BlockDXT1 * dxtBlock)
|
||||||
Vector3 cluster[4];
|
Vector3 cluster[4];
|
||||||
int count = Compute4Means(16, block, weights, Vector3(1, 1, 1), cluster);
|
int count = Compute4Means(16, block, weights, Vector3(1, 1, 1), cluster);
|
||||||
|
|
||||||
Vector3 maxColor = cluster[0];
|
Vector3 maxColor, minColor;
|
||||||
Vector3 minColor = cluster[0];
|
float bestError = FLT_MAX;
|
||||||
|
|
||||||
float bestError = evaluatePaletteError4(block, maxColor, minColor);
|
for (int i = 1; i < 4; i++)
|
||||||
|
|
||||||
if (count >= 2)
|
|
||||||
{
|
{
|
||||||
float error = evaluatePaletteError4(block, cluster[0], cluster[1]);
|
for (int j = 0; j < i; j++)
|
||||||
if (error < bestError) {
|
|
||||||
bestError = error;
|
|
||||||
maxColor = cluster[0];
|
|
||||||
minColor = cluster[1];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (count >= 3)
|
|
||||||
{
|
{
|
||||||
error = evaluatePaletteError4(block, cluster[0], cluster[2]);
|
uint16 color0 = roundAndExpand(&cluster[i]);
|
||||||
if (error < bestError) {
|
uint16 color1 = roundAndExpand(&cluster[j]);
|
||||||
bestError = error;
|
|
||||||
maxColor = cluster[0];
|
|
||||||
minColor = cluster[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
error = evaluatePaletteError4(block, cluster[1], cluster[2]);
|
float error = evaluatePaletteError4(block, cluster[i], cluster[j]);
|
||||||
if (error < bestError) {
|
if (error < bestError) {
|
||||||
bestError = error;
|
bestError = error;
|
||||||
maxColor = cluster[1];
|
maxColor = cluster[i];
|
||||||
minColor = cluster[2];
|
minColor = cluster[j];
|
||||||
}
|
|
||||||
|
|
||||||
if (count >= 4)
|
|
||||||
{
|
|
||||||
error = evaluatePaletteError4(block, cluster[0], cluster[3]);
|
|
||||||
if (error < bestError) {
|
|
||||||
bestError = error;
|
|
||||||
maxColor = cluster[0];
|
|
||||||
minColor = cluster[3];
|
|
||||||
}
|
|
||||||
|
|
||||||
error = evaluatePaletteError4(block, cluster[1], cluster[3]);
|
|
||||||
if (error < bestError) {
|
|
||||||
bestError = error;
|
|
||||||
maxColor = cluster[1];
|
|
||||||
minColor = cluster[3];
|
|
||||||
}
|
|
||||||
|
|
||||||
error = evaluatePaletteError4(block, cluster[2], cluster[3]);
|
|
||||||
if (error < bestError) {
|
|
||||||
bestError = error;
|
|
||||||
maxColor = cluster[2];
|
|
||||||
minColor = cluster[3];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user