LibGDX возвращает черные пиксели ScreenUtils.getFrameBufferPixels - PullRequest
0 голосов
/ 07 марта 2019

Это происходит только на одном устройстве (пока сообщалось), и я не могу быть уверен, насколько оно изолированно, кроме того, что другие пользователи не кричали на меня из-за него.

Huawei P9 Lite (2017) выпускает этот выпуск (https://www.pdevice.com/product/huawei-p9-lite-2017-price-specs)

Я просто извлекаю пиксели экрана и помещаю их в Pixmap. Однако для этого одного устройства все пиксели (RGBA) равны [0,0,0,1], так что это даже не проблема альфа.

Для всех моих собственных тестовых устройств и для всех остальных пользователей этого не происходит.

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);

Мне кажется, это проблема с графическим процессором, потому что это странно ...

1 Ответ

0 голосов
/ 17 марта 2019

Что ж, похоже, это всего лишь вопрос OpenGL из того, что я могу сказать.

Вы не можете надежно вызывать glReadPixels из экранного буфера / кадрового буфера по умолчанию, в некоторых случаях GLError 1286 выдает, что кадровый буфер плох. В большинстве случаев это нормально.

К счастью, в моем случае я уже рендерил свое приложение во вторичный буфер, прежде чем отобразить его на экране, поэтому я просто использую glReadPixels-ing, который, похоже, теперь работает.

...