summaryrefslogtreecommitdiffstats
path: root/sdl
diff options
context:
space:
mode:
Diffstat (limited to 'sdl')
-rw-r--r--sdl/pyramid.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/sdl/pyramid.c b/sdl/pyramid.c
index 0f4dd92..a8cb41b 100644
--- a/sdl/pyramid.c
+++ b/sdl/pyramid.c
@@ -9,6 +9,9 @@
#include <sys/time.h>
#define FRAMES_PER_SECOND 300
+/* global */
+int program_running = 1;
+
static GLfloat xRot = 0.0f;
static GLfloat yRot = 0.0f;
@@ -92,7 +95,7 @@ static void keys(SDL_keysym *keysym, unsigned int *keys_held, int flag)
{
switch (keysym->sym)
{
- case SDLK_ESCAPE: exit(0); break;
+ case SDLK_ESCAPE: program_running = 0; break;
case SDLK_w: xRot -= 1.0f; break;
case SDLK_s: xRot += 1.0f; break;
case SDLK_a: yRot -= 1.0f; break;
@@ -144,7 +147,7 @@ void processEvents()
break;
}
case SDL_VIDEORESIZE: { resize(event.resize.w, event.resize.h); break; }
- case SDL_QUIT: { printf("status: exiting...\n"); exit(0); break; }
+ case SDL_QUIT: { program_running = 0; break; }
default: break;
}
}
@@ -318,7 +321,7 @@ int main(int argc, char **argv)
#endif
struct timeval m_LastCount;
struct timeval lcurrent;
- for (;;)
+ while (program_running)
{
gettimeofday(&m_LastCount, 0);
#ifdef STAT_FPS
@@ -345,6 +348,7 @@ int main(int argc, char **argv)
SDL_WM_SetCaption(buffer, NULL);
#endif
}
+ puts("bye!");
return 0;
}