Xcode-iOS/Demos/src/fireworks.c: Make rendering CPU efficient

(cherry picked from commit 6c9c2a9ac2)
This commit is contained in:
Yorick Reum
2025-07-12 11:38:49 +02:00
committed by Sam Lantinga
parent f99f57ffd1
commit ab9f59e59a

View File

@@ -456,7 +456,10 @@ main(int argc, char *argv[])
while (!done) {
SDL_Event event;
double deltaTime = updateDeltaTime();
SDL_bool hasEvents = SDL_FALSE;
while (SDL_PollEvent(&event)) {
hasEvents = SDL_TRUE;
if (event.type == SDL_QUIT) {
done = 1;
}
@@ -466,10 +469,17 @@ main(int argc, char *argv[])
spawnEmitterParticle(x, y);
}
}
/* Only update and render if we have active particles or just received events */
if (num_active_particles > 0 || hasEvents) {
stepParticles(deltaTime);
drawParticles();
SDL_GL_SwapWindow(window);
SDL_Delay(1);
SDL_Delay(16); // Target 60 FPS when active
} else {
/* Idle state - wait for events with longer delay to save CPU */
SDL_Delay(100); // Much longer delay when idle
}
}
/* delete textures */