Chcę przechwycić ekran. Libgdx udostępnia niektóre funkcje zdefiniowane w klasie ScreenUtils.Libgdx używa asynchronicznie ScreenUtils i nie przerywa pętli gry
Na przykład final Pixmap pixmap = ScreenUtils.getFrameBufferPixmap(x, y, w, h);
Moim problemem jest to, że trwa około 1-3 sekund, aby uzyskać te informacje. W tym czasie pętla gry jest blokowana, a użytkownik definiuje ją jako opóźnienie.
Wewnętrznie klasa ScreenUtils
, używa Gdx.gl.glReadPixels
. Jeśli uruchomię metodę ScreenUtils.getFrameBufferPixmap
w wątku, nie ma opóźnień, ale przechwytuje ona ekran w niewłaściwą metodę, co jest logiczne, ponieważ pętla gry działa i zmienia rzeczy.
Czy można w jakiś sposób skopiować kontekst GL lub zapisać go i wygenerować Pixmap w późniejszym czasie za pomocą wątku? Oczywiście operacja kopiowania/zapisywania powinna być wykonana natychmiast, w przeciwnym razie niczego nie oszczędzę.
Używam ShapeRenderer
do renderowania moich rzeczy na ekranie.
Cóż, może to zadziałać, ale muszę użyć rzeczy OpenGL dostarczonych przez LibGDX i nie jestem do końca pewien, jak je podłączyć. – Niklas