From: badlogic Date: Sun, 6 Oct 2013 14:39:20 +0000 (+0200) Subject: pixmap screencap is now y-up X-Git-Url: http://git.osdn.net/view?p=mikumikustudio%2Flibgdx-mikumikustudio.git;a=commitdiff_plain;h=f4cba84267224a0d6cd744177e1daae6ed138599 pixmap screencap is now y-up --- diff --git a/gdx/src/com/badlogic/gdx/utils/ScreenUtils.java b/gdx/src/com/badlogic/gdx/utils/ScreenUtils.java index fce422855..286c7df7f 100644 --- a/gdx/src/com/badlogic/gdx/utils/ScreenUtils.java +++ b/gdx/src/com/badlogic/gdx/utils/ScreenUtils.java @@ -73,9 +73,7 @@ public class ScreenUtils { final Pixmap pixmap = new Pixmap(w, h, Format.RGBA8888); ByteBuffer pixels = pixmap.getPixels(); - byte[] bytes = getFrameBufferPixels(true); - pixels.put(bytes); - pixels.flip(); + Gdx.gl.glReadPixels(x, y, w, h, GL10.GL_RGBA, GL10.GL_UNSIGNED_BYTE, pixels); return pixmap; } diff --git a/tests/gdx-tests-lwjgl/src/com/badlogic/gdx/tests/lwjgl/Test2.java b/tests/gdx-tests-lwjgl/src/com/badlogic/gdx/tests/lwjgl/Test2.java index cd3eddf53..03c8aa5b7 100644 --- a/tests/gdx-tests-lwjgl/src/com/badlogic/gdx/tests/lwjgl/Test2.java +++ b/tests/gdx-tests-lwjgl/src/com/badlogic/gdx/tests/lwjgl/Test2.java @@ -19,15 +19,15 @@ public class Test2 extends ApplicationAdapter { TextureRegion region; Pixmap screenCap; Texture screenCapTex; + private int size = 2; public void create () { - int size =1; batch = new SpriteBatch(); Pixmap p = new Pixmap(64, 64, Format.RGBA8888); p.setColor(Color.RED); - p.fillRectangle(32, 32, size, size); - region = new TextureRegion(new Texture(p), 32, 32, size, size); + p.fillRectangle(32, 32, size , size ); + region = new TextureRegion(new Texture(p), 32, 32, size , size ); Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); Gdx.gl.glClearColor(0, 0, 0, 1); @@ -36,6 +36,7 @@ public class Test2 extends ApplicationAdapter { batch.end(); screenCap = ScreenUtils.getFrameBufferPixmap(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); screenCapTex = new Texture(screenCap); + System.out.println("size: " + size); System.out.println(Integer.toHexString(screenCap.getPixel(0, 0))); System.out.println(Integer.toHexString(screenCap.getPixel(1, 1))); System.out.println(Integer.toHexString(screenCap.getPixel(256, 256)));