Android - Как правильно приостановить OpenGL - PullRequest
2 голосов
/ 18 февраля 2012

У меня проблемы с приостановкой работы приложения. Я использую отдельный поток для игровой логики. Поэтому я приостанавливаю поток, но я не знаю, как правильно приостановить и воссоздать представление OpenGL. Вот мой код Это работает, но я думаю, что могут быть утечки памяти. Отображение - GLSurfaceView, а Renderer - GLSurfaceView.Renderer.

@Override
public void onPause()
{
    super.onPause();
    display = null;
    game.pause();
    Game.texturesLoaded = false;
}

@Override
public void onResume()
{
    // TODO normal pause
    super.onResume();
    display = new Display(this);
    display.setRenderer(renderer);
    setContentView(display);
    game.resume();
}

Ответы [ 2 ]

1 голос
/ 18 февраля 2012

Воссоздание любого материала, связанного с OpenGL, должно быть сделано через onSurfaceCreated().

0 голосов
/ 18 февраля 2012

Достаточно просто позвонить display.onPause() и display.onResume(). См. Раздел «Жизненный цикл активности» http://developer.android.com/reference/android/opengl/GLSurfaceView.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...