LibGDX返回黑色像素ScreenUtils.getFrameBufferPixels

问题描述 投票:0回答:1

这种情况只发生在一台设备上(到目前为止报道)并且不能确定它是多么孤立,除了没有其他用户对我大喊大叫。

华为P9 Lite(2017)正在制作这个问题(https://www.pdevice.com/product/huawei-p9-lite-2017-price-specs

我只是检索屏幕的像素并将它们放入Pixmap中。然而,对于这一个设备,像素(RGBA)都是[0,0,0,1] - 所以它甚至不是alpha问题。

对于我自己的所有测试设备,以及迄今为止所有其他用户,这都没有发生。

screenPixmap = new Pixmap(width, height, Pixmap.Format.RGBA8888);
ByteBuffer pixels = screenPixmap.getPixels();
Gdx.gl.glReadPixels(0, 0, width, height, GL20.GL_RGBA, GL20.GL_UNSIGNED_BYTE, pixels);

我觉得它必须是一个GPU问题,因为它有点奇怪......

android opengl-es libgdx opengl-es-2.0
1个回答
0
投票

好吧,从我能说的话看,它似乎只是一个OpenGL问题。

你不能从屏幕/默认帧缓冲中可靠地glReadPixels,有些情况会抛出GLError 1286又名帧缓冲是坏的。大多数情况似乎都很好。

幸运的是,在我的情况下,我已经将我的应用程序渲染到辅助缓冲区,然后在屏幕上显示它,所以我只是glReadPixels-ing而不是,现在似乎工作。

© www.soinside.com 2019 - 2024. All rights reserved.