2013-04-29 1 views
2

На каком этапе жизненного цикла событий приложения NDK я должен освобождать все ресурсы OpenGLES?Правильный момент для выпуска ресурсов OpenGLES Android NDK

В основном это касается OpenGLES VBO и текстур.

ОПИСАНИЕ:

Im рилизинг либо в APP_CMD_PAUSE или APP_CMD_TERM_WINDOW.

Я выхожу из каждого последующего события приложения, чтобы убедиться, что он вышел плавно, и при этом я, кажется, отсутствует APP_CMD_STOP. Похоже, я тоже не выхожу из петлителя и приложения.

У меня нет заметных побочных эффектов от этого, однако мне кажется, что приложение было отключено правильно, но последние этапы жизненного цикла приложения не выходят из системы, когда я освобождаю ресурсы до начала. Я боюсь, это означает, что приложение не закрывается плавно.

Некоторые разъяснения по этому вопросу будут приветствоваться.

ответ

0

Неспособность освобождать ресурсы не должна мешать вам видеть APP_CMD_STOP. Если вы просто закомментируете код выпуска, вы получаете команду?

Вы должны выпустить окно EGLSurface в APP_CMD_TERM_WINDOW и заново создать его, если вы получите APP_CMD_INIT_WINDOW. Не забывайте о вызовах eglMakeCurrent в обоих местах.

Вы можете сохранить EGLContext и все объекты или данные GL вокруг, когда находитесь в фоновом режиме, чтобы быстро возобновить работу, если пользователь скоро вернется в ваше приложение. Вы должны освободить их, если вы получите APP_CMD_LOW_MEMORY или во время выхода (android_app :: destroyRequested == 1).

Смежные вопросы