2016-10-09 2 views
0

Ich zeichne erfolgreich einfache Formen auf meinem GLSurfaceView mit OpenGL ES 2.0. Bisher verwende ich keine Texturen. Das Problem ist, dass, wenn ich zum zweiten Mal die Aktivität mit GLSurfaceView der Bildschirm ist leer (schwarz), Formen nicht erneut gezeichnet werden. Ich muss die gesamte App neu installieren, damit sie wieder funktioniert. Ich habe keine speziellen Methoden & onResume so nehme ich an, die neue Instanz von GLSurfaceView sollte den Bildschirm jedes Mal neu zeichnen, wenn ich die Anwendung erneut ausführen.OpenGL ES 2.0 funktioniert nur einmal

Hat jemand eine Ahnung, was fehlt mir hier?

Antwort

0

Ich habe keine speziellen Methoden & onResume

, die wahrscheinlich Ihr Problem. Sie müssen die documentation of GLSurfaceView folgen, und zwar, was sie sagt unter „Activity Lebenszyklus“:

A GLSurfaceView mitgeteilt werden muss, wenn die Aktivität angehalten und wieder aufgenommen. GLSurfaceView-Clients müssen onPause() aufrufen, wenn die Aktivität pausiert, und onResume(), wenn die Aktivität fortgesetzt wird. Diese Aufrufe ermöglichen es GLSurfaceView, den Rendering-Thread anzuhalten und fortzusetzen, und GLSurfaceView kann außerdem die OpenGL-Anzeige freigeben und neu erstellen.

+0

Eh ... Ich habe beide Methoden übersteuert und sie leer gelassen ... Entschuldigung, dass du dir Zeit genommen hast. Issie festgelegt. – davout