Libgdx Pixmap和getFrameBufferPixels

LeS*_*Sam 2 byte offset pixmap libgdx

我想知道如何在Pixmap中获取FrameBufferPixel

我知道我必须使用getFrameBufferPixels(true)

但我不知道要放入什么参数

new Pixmap(byte[] encodedData, int offset, int len);
Run Code Online (Sandbox Code Playgroud)

你能告诉我一个应该工作的例子吗?

谢谢

Shi*_*nni 5

new Pixmap(byte[] encodedData, int offset, int len);
Run Code Online (Sandbox Code Playgroud)

据我所知,encodedData需要保存png,jpg或bmp文件中的数据,包括文件头.您从getFrameBufferPixels收到的数据是RGBA8888格式.所以你不能使用这个构造函数来截图.相反,我会尝试这样的事情:

byte[] pixelData = ScreenUtils.getFrameBufferPixels(true);
Pixmap pixmap = new Pixmap(Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), Format.RGBA8888);
ByteBuffer pixels = pixmap.getPixels();
pixels.clear();
pixels.put(pixelData);
pixels.position(0)
Run Code Online (Sandbox Code Playgroud)

  • 我做了一个小项目.它会绘制一次图像并在之后截取屏幕截图.然后将该屏幕截图转换回纹理并绘制3次以证明它不是空的.https://dl.dropboxusercontent.com/u/3504939/ScreenshotTest.rar (2认同)