--- a/test/testdyngl.c Wed Sep 28 06:38:22 2005 +0000
+++ b/test/testdyngl.c Wed Sep 28 11:36:20 2005 +0000
@@ -23,6 +23,13 @@
#include "SDL_opengl.h"
+/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */
+static void quit(int rc)
+{
+ SDL_Quit();
+ exit(rc);
+}
+
void* get_funcaddr(const char* p)
{
void* f=SDL_GL_GetProcAddress(p);
@@ -33,7 +40,7 @@
else
{
printf("Unable to get function pointer for %s\n",p);
- exit(1);
+ quit(1);
}
}
@@ -104,27 +111,25 @@
if (SDL_Init(SDL_INIT_VIDEO)<0)
{
printf("Unable to init SDL : %s\n",SDL_GetError());
- exit(1);
+ return(1);
}
- atexit(SDL_Quit);
-
if (SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER,1)<0)
{
printf("Unable to set GL attribute : %s\n",SDL_GetError());
- exit(1);
+ quit(1);
}
if (SDL_GL_LoadLibrary(gl_library)<0)
{
printf("Unable to dynamically open GL lib : %s\n",SDL_GetError());
- exit(1);
+ quit(1);
}
if (SDL_SetVideoMode(640,480,0,SDL_OPENGL)==NULL)
{
printf("Unable to open video mode : %s\n",SDL_GetError());
- exit(1);
+ quit(1);
}
/* Set the window manager title bar */