Hi everyone,
I’ve got a problem with my screenshot code in lwjgl :
public final static void printScreen()
{
BufferedImage img = new BufferedImage(Display.getWidth(), Display.getHeight(), BufferedImage.TYPE_3BYTE_BGR);
ByteBuffer buff = ByteBuffer.allocateDirect(Display.getWidth() * Display.getHeight() * 4).order(ByteOrder.nativeOrder());
int buffh = Sys.getDirectBufferAddress(buff) ;
gl.readPixels(0, 0, Display.getWidth(), Display.getHeight(), GL.BGRA, GL.UNSIGNED_BYTE, buffh);
byte[] dataBytes = new byte[buff.capacity()];
buff.get(dataBytes);
img.getRaster().setDataElements(0, 0, Display.getWidth(), Display.getHeight(), dataBytes);
try
{
File f;
for (int i = 0; i < 99; i++)
{
f = new File((i < 10 ? "screenshot0" : "screenshot") + i + ".png");
if (!f.exists())
{
ImageIO.write(img, "png", f);
break;
}
}
}
catch(Exception e)
{
System.err.println("Error: can't write image.");
e.printStackTrace();
System.exit(1);
}
}
What is wrong with that code ? See the output at
http://chman-area.tuxfamily.org/images/screenshot00.png
Can someone help me ?
++
Chman
