package gov.nasa.worldwind.formats.nitfs;

import gov.nasa.worldwind.*;

import java.nio.*;
/*
Copyright (C) 2001, 2007 United States Government
as represented by the Administrator of the
National Aeronautics and Space Administration.
All Rights Reserved.
*/

/**
 * @author Lado Garakanidze
 * @version $Id: Cadrg2DdsCompress Apr 23, 2007 11:00:07 AM lado
 */
class Cadrg2DdsCompress extends AbstractRpf2DdsCompress
{
    public DDSBlock4x4 compressDxt1Block4x4(NitfsImageBand imageBand, byte[] pixelCodes, boolean hasTransparentPixels)
    {
        int[]   pixels565 = new int[16];
        Color[] colors565 = new Color[16];
        for(int i = 0; i < pixelCodes.length; i++ )
        {
            pixels565[i] = imageBand.lookupR5G6B5( 0x00FF & pixelCodes[i] );
            colors565[i] = DDSConverter.getColor565( pixels565[i] );
        }

        int[] extremaIndices = determineExtremeColors( colors565 );

        if(pixels565[extremaIndices[0]] < pixels565[extremaIndices[1]])
        {
            int t = extremaIndices[0];
            extremaIndices[0] = extremaIndices[1];
            extremaIndices[1] = t;
        }

        return  new DDSBlock4x4(
            (short) pixels565[extremaIndices[0]],
            (short) pixels565[extremaIndices[1]],
            (int) DDSConverter.computeBitMask(colors565, extremaIndices)
            );
    }
}
