I'm trying to show a single subimage from a sprite sheet. Using slick2d SpriteSheet class, all it's doing is showing me the entire image, but scaled down to fit the cell dimensions.
The image is 96x192 and should have cells of 32x32.
The code:
SpriteSheet spriteSheet = new SpriteSheet("images/"+file, 32, 32 );
System.out.println("Horiz Count: " + spriteSheet.getHorizontalCount());
System.out.println("Vert Count: " + spriteSheet.getVerticalCount());
System.out.println("Height: " + spriteSheet.getHeight());
System.out.println("Width: " + spriteSheet.getWidth());
System.out.println("Texture Width: " + spriteSheet.getTextureWidth());
System.out.println("Texture Height: " + spriteSheet.getTextureHeight());
Prints:
Horiz Count: 3
Vert Count: 6
Height: 192
Width: 96
Texture Width: 0.75
Texture Height: 0.75
Not sure what the texture dimensions refer to, but the rest is entirely accurate. However, when I draw the icon, the entire sprite image shows scaled down to 32x32:
Image image = spriteSheet.getSprite(1, 0); // a test
image.bind();
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GL11.glBegin(GL11.GL_QUADS);
GL11.glTexCoord2f(0,0);
GL11.glVertex2f(x,y);
GL11.glTexCoord2f(1,0);
GL11.glVertex2f(x+image.getWidth(),y);
GL11.glTexCoord2f(1,1);
GL11.glVertex2f(x+image.getWidth(),y+image.getHeight());
GL11.glTexCoord2f(0,1);
GL11.glVertex2f(x,y+image.getHeight());
GL11.glEnd();
GL11.glDisable(GL11.GL_BLEND);