Fixing screen resize bugs
This commit is contained in:
1 parent
6406c4f258
commit
6a79e8e41e
3 files changed
+154
-168
No files matched your search
+2
-27
@@ -267,34 +267,9 @@ int main(int argc, char* argv[]) {
|
||||
}
|
||||
|
||||
while (!g_game->shouldExit()) {
|
||||
SDL_Event event;
|
||||
// Обрабатываем системные события Android до обновления кадра
|
||||
/*while (SDL_PollEvent(&event)) {
|
||||
// Перенаправляем событие в игру, чтобы сработал ваш внутренний цикл (память, ресайз и т.д.)
|
||||
// Примечание: внутри Game::update у вас тоже стоит PollEvent.
|
||||
// Чтобы события не терялись, лучше обрабатывать их в одном месте,
|
||||
// но жизненно важные для ОС флаги перехватываем здесь:
|
||||
if (event.type == SDL_QUIT) {
|
||||
break;
|
||||
}
|
||||
g_game->update();
|
||||
|
||||
// Сворачивание / Разворачивание приложения в Android
|
||||
if (event.type == SDL_APP_WILLENTERBACKGROUND) {
|
||||
isAppActive = false;
|
||||
__android_log_print(ANDROID_LOG_INFO, "Game", "App moving to background, suspending loop");
|
||||
}
|
||||
if (event.type == SDL_APP_DIDENTERFOREGROUND) {
|
||||
isAppActive = true;
|
||||
__android_log_print(ANDROID_LOG_INFO, "Game", "App returned to foreground, resuming loop");
|
||||
}
|
||||
}*/
|
||||
|
||||
if (isAppActive) {
|
||||
g_game->update();
|
||||
// На Android шаг кадров завязан на VSync (SwapInterval = 1).
|
||||
// SDL_Delay(16) здесь не нужен, он будет вызывать микро-фризы (stuttering).
|
||||
}
|
||||
else {
|
||||
if (!isAppActive) {
|
||||
// Если игра свернута — спим, чтобы не нагружать CPU/GPU
|
||||
SDL_Delay(100);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user