package org.newdawn.slick.tests;
import java.io.File;
import java.io.InputStream;
import java.net.URL;
import org.newdawn.slick.*;
import org.newdawn.slick.util.FileSystemLocation;
import org.newdawn.slick.util.ResourceLoader;
import org.newdawn.slick.util.ResourceLocation;
/**
* Created by IntelliJ IDEA. User: Martin Karing Date: 05.03.12 Time: 23:19 To change this template use File | Settings
* | File Templates.
*/
public class ImageFormatTest extends BasicGame {
private Image rgbaImage;
private Image rgbImage;
private Image grayScaleImage;
private Image grayScaleAlphaImage;
private int rgbaImageSize;
private int rgbImageSize;
private int grayScaleImageSize;
private int grayScaleAlphaImageSize;
/**
* Create a new basic game
*/
public ImageFormatTest() {
super("Image Format Test");
}
@Override
public void init(GameContainer container) throws SlickException {
// The following line is a hack to get this test working in IntelliJ IDEA 11
try {
ResourceLoader.addResourceLocation(new FileSystemLocation(new File("./trunk/Slick/")));
} catch (final Exception ex) {
// The hack failed... lets leave it at this.
}
rgbaImage = new Image("testdata/logo.png");
rgbImage = new Image("testdata/logo_rgb.png");
grayScaleImage = new Image("testdata/logo_luminance.png");
grayScaleAlphaImage = new Image("testdata/logo_luminance_alpha.png");
rgbaImageSize = rgbaImage.getTexture().getTextureData().length;
rgbImageSize = rgbImage.getTexture().getTextureData().length;
grayScaleImageSize = grayScaleImage.getTexture().getTextureData().length;
grayScaleAlphaImageSize = grayScaleAlphaImage.getTexture().getTextureData().length;
}
@Override
public void update(GameContainer container, int delta) throws SlickException {
// nothing to do
}
@Override
public void render(GameContainer container, Graphics g) throws SlickException {
final int effectiveWidth = container.getWidth() - rgbaImage.getWidth();
final int effectiveHeight = container.getHeight() - rgbaImage.getHeight();
final int xStep = effectiveWidth / 4;
final int yStep = effectiveHeight / 4;
g.clear();
g.setColor(Color.blue);
g.fillRect(0, 0, 800, 600);
g.setColor(Color.orange);
int posX = xStep / 2;
int posY = yStep / 2;
g.drawImage(rgbaImage, posX, posY);
g.drawString(Integer.toString(rgbaImageSize) + " Bytes", posX, posY - 15);
posX += xStep;
posY += yStep;
g.drawImage(rgbImage, posX, posY);
g.drawString(Integer.toString(rgbImageSize) + " Bytes", posX, posY - 15);
posX += xStep;
posY += yStep;
g.drawImage(grayScaleAlphaImage, posX, posY);
g.drawString(Integer.toString(grayScaleAlphaImageSize) + " Bytes", posX, posY - 15);
posX += xStep;
posY += yStep;
g.drawImage(grayScaleImage, posX, posY);
g.drawString(Integer.toString(grayScaleImageSize) + " Bytes", posX, posY - 15);
}
/**
* Entry point to our test
*
* @param argv The arguments to pass into the test
*/
public static void main(String[] argv) {
boolean sharedContextTest = false;
try {
AppGameContainer container = new AppGameContainer(new ImageFormatTest());
container.setDisplayMode(800,600,false);
container.start();
} catch (SlickException e) {
e.printStackTrace();
}
}
}