2

NDK アプリ イベント ライフサイクルのどの段階で、すべての OpenGLES リソースをリリースする必要がありますか?

これには、主に OpenGLES VBO とテクスチャが含まれます。

詳細:

APP_CMD_PAUSEまたはでリリースしていますAPP_CMD_TERM_WINDOW

次の各アプリイベントをログアウトして、スムーズに終了することを確認しています。これを行うと、行方不明になっているようですAPP_CMD_STOP。また、ルーパーとアプリをスムーズに終了していないようです。

これによる顕著な副作用はありませんが、アプリが正しくシャットダウンされたように見えますが、リソースを早期に解放してもアプリのライフサイクルの最終段階はログアウトされません。これは、アプリがスムーズにシャットダウンされていないことを意味するのではないかと心配しています。

これに関するいくつかの説明を歓迎します。

4

1 に答える 1

0

リソースの解放に失敗しても、APP_CMD_STOP が表示されなくなることはありません。リリース コードをコメント アウトするだけで、コマンドを取得できますか?

APP_CMD_TERM_WINDOW でウィンドウ EGLSurface を解放し、APP_CMD_INIT_WINDOW を取得した場合は再作成する必要があります。両方の場所での eglMakeCurrent 呼び出しを忘れないでください。

バックグラウンドにいるときに EGLContext とすべての GL オブジェクト/データを保持できるため、ユーザーがすぐにアプリケーションに戻った場合にすぐに再開できます。APP_CMD_LOW_MEMORY を取得した場合、または終了時 (android_app::destroyRequested==1) にこれらを解放する必要があります。

于 2013-10-22T18:11:09.447 に答える