package model;
import gr.zdimensions.jsquish.Squish;
import java.awt.image.BufferedImage;
import java.nio.ByteBuffer;
import javax.activation.UnsupportedDataTypeException;
/**
* Interface for TextureMaps.
* @author danielsenff
*
*/
public interface TextureMap {
/**
* Height of the topmost MipMap.
* @return
*/
public int getHeight();
/**
* Width of the topmost MipMap.
* @return
*/
public int getWidth();
/**
* All contained MipMaps compressed with DXT in {@link ByteBuffer}
* @param compressionType
* @return
*/
public ByteBuffer[] getDXTCompressedBuffer(final Squish.CompressionType compressionType);
/**
* All contained MipMaps as {@link ByteBuffer}
* @param compressionType
* @return
*/
public ByteBuffer[] getUncompressedBuffer();
/**
* Returns a ByteBuffer for each MipMap.
* @param pixelformat
* @return
* @throws UnsupportedDataTypeException
*/
public ByteBuffer[] getDXTCompressedBuffer(final int pixelformat)
throws UnsupportedDataTypeException;
/**
* Compress a single {@link BufferedImage} into a ByteBuffer.
* @param bi
* @param compressionType
* @return
*/
public ByteBuffer compress(final BufferedImage bi,
final Squish.CompressionType compressionType);
}