package org.newdawn.slick.opengl;
import java.io.IOException;
import java.io.InputStream;
import org.lwjgl.opengl.GL11;
/**
* A utility class to wrap the Slick internal texture loader and present a
* rational interface.
*
* @author kevin
*/
public class TextureLoader {
/**
* Load a texture with a given format from the supplied input stream
*
* @param format The format of the texture to be loaded (something like "PNG" or "TGA")
* @param in The input stream from which the image data will be read
* @return The newly created texture
* @throws IOException Indicates a failure to read the image data
*/
public static Texture getTexture(String format, InputStream in) throws IOException {
return getTexture(format, in, false, GL11.GL_LINEAR);
}
/**
* Load a texture with a given format from the supplied input stream
*
* @param format The format of the texture to be loaded (something like "PNG" or "TGA")
* @param in The input stream from which the image data will be read
* @param flipped True if the image should be flipped vertically on loading
* @return The newly created texture
* @throws IOException Indicates a failure to read the image data
*/
public static Texture getTexture(String format, InputStream in, boolean flipped) throws IOException {
return getTexture(format, in, flipped, GL11.GL_LINEAR);
}
/**
* Load a texture with a given format from the supplied input stream
*
* @param format The format of the texture to be loaded (something like "PNG" or "TGA")
* @param in The input stream from which the image data will be read
* @param filter The GL texture filter to use for scaling up and down
* @return The newly created texture
* @throws IOException Indicates a failure to read the image data
*/
public static Texture getTexture(String format, InputStream in, int filter) throws IOException {
return getTexture(format, in, false, filter);
}
/**
* Load a texture with a given format from the supplied input stream
*
* @param format The format of the texture to be loaded (something like "PNG" or "TGA")
* @param in The input stream from which the image data will be read
* @param flipped True if the image should be flipped vertically on loading
* @param filter The GL texture filter to use for scaling up and down
* @return The newly created texture
* @throws IOException Indicates a failure to read the image data
*/
public static Texture getTexture(String format, InputStream in, boolean flipped, int filter) throws IOException {
return InternalTextureLoader.get().getTexture(in, in.toString()+"."+format, flipped, filter);
}
}