Mercurial > sdl-ios-xcode
diff Xcode/TemplatesForXcode/SDL OpenGL Application/main.c @ 2213:59a667370c57
make indent
author | Bob Pendleton <bob@pendleton.com> |
---|---|
date | Tue, 24 Jul 2007 18:46:45 +0000 |
parents | d63e9f5944ae |
children | 23a2cb765052 |
line wrap: on
line diff
--- a/Xcode/TemplatesForXcode/SDL OpenGL Application/main.c Mon Jul 23 18:46:09 2007 +0000 +++ b/Xcode/TemplatesForXcode/SDL OpenGL Application/main.c Tue Jul 24 18:46:45 2007 +0000 @@ -4,7 +4,7 @@ Please see the SDL documentation for details on using the SDL API: /Developer/Documentation/SDL/docs.html */ - + #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -12,168 +12,176 @@ #include "SDL.h" -extern void Atlantis_Init (); -extern void Atlantis_Reshape (int w, int h); -extern void Atlantis_Animate (); -extern void Atlantis_Display (); +extern void Atlantis_Init(); +extern void Atlantis_Reshape(int w, int h); +extern void Atlantis_Animate(); +extern void Atlantis_Display(); static SDL_Surface *gScreen; -static void initAttributes () +static void +initAttributes() { // Setup attributes we want for the OpenGL context - + int value; - + // Don't set color bit sizes (SDL_GL_RED_SIZE, etc) // Mac OS X will always use 8-8-8-8 ARGB for 32-bit screens and // 5-5-5 RGB for 16-bit screens - + // Request a 16-bit depth buffer (without this, there is no depth buffer) value = 16; - SDL_GL_SetAttribute (SDL_GL_DEPTH_SIZE, value); - - + SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, value); + + // Request double-buffered OpenGL // The fact that windows are double-buffered on Mac OS X has no effect // on OpenGL double buffering. value = 1; - SDL_GL_SetAttribute (SDL_GL_DOUBLEBUFFER, value); + SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, value); } -static void printAttributes () +static void +printAttributes() { // Print out attributes of the context we created int nAttr; int i; - - int attr[] = { SDL_GL_RED_SIZE, SDL_GL_BLUE_SIZE, SDL_GL_GREEN_SIZE, - SDL_GL_ALPHA_SIZE, SDL_GL_BUFFER_SIZE, SDL_GL_DEPTH_SIZE }; - - char *desc[] = { "Red size: %d bits\n", "Blue size: %d bits\n", "Green size: %d bits\n", - "Alpha size: %d bits\n", "Color buffer size: %d bits\n", - "Depth bufer size: %d bits\n" }; + + int attr[] = { SDL_GL_RED_SIZE, SDL_GL_BLUE_SIZE, SDL_GL_GREEN_SIZE, + SDL_GL_ALPHA_SIZE, SDL_GL_BUFFER_SIZE, SDL_GL_DEPTH_SIZE + }; + + char *desc[] = + { "Red size: %d bits\n", "Blue size: %d bits\n", + "Green size: %d bits\n", + "Alpha size: %d bits\n", "Color buffer size: %d bits\n", + "Depth bufer size: %d bits\n" + }; nAttr = sizeof(attr) / sizeof(int); - + for (i = 0; i < nAttr; i++) { - + int value; - SDL_GL_GetAttribute (attr[i], &value); - printf (desc[i], value); - } + SDL_GL_GetAttribute(attr[i], &value); + printf(desc[i], value); + } } -static void createSurface (int fullscreen) +static void +createSurface(int fullscreen) { Uint32 flags = 0; - + flags = SDL_OPENGL; if (fullscreen) flags |= SDL_FULLSCREEN; - + // Create window - gScreen = SDL_SetVideoMode (640, 480, 0, flags); + gScreen = SDL_SetVideoMode(640, 480, 0, flags); if (gScreen == NULL) { - - fprintf (stderr, "Couldn't set 640x480 OpenGL video mode: %s\n", - SDL_GetError()); - SDL_Quit(); - exit(2); - } + + fprintf(stderr, "Couldn't set 640x480 OpenGL video mode: %s\n", + SDL_GetError()); + SDL_Quit(); + exit(2); + } } -static void initGL () +static void +initGL() { - Atlantis_Init (); - Atlantis_Reshape (gScreen->w, gScreen->h); + Atlantis_Init(); + Atlantis_Reshape(gScreen->w, gScreen->h); } -static void drawGL () +static void +drawGL() { - Atlantis_Animate (); - Atlantis_Display (); + Atlantis_Animate(); + Atlantis_Display(); } -static void mainLoop () +static void +mainLoop() { SDL_Event event; int done = 0; int fps = 24; - int delay = 1000/fps; + int delay = 1000 / fps; int thenTicks = -1; int nowTicks; - - while ( !done ) { + + while (!done) { - /* Check for events */ - while ( SDL_PollEvent (&event) ) { - switch (event.type) { + /* Check for events */ + while (SDL_PollEvent(&event)) { + switch (event.type) { - case SDL_MOUSEMOTION: - break; - case SDL_MOUSEBUTTONDOWN: - break; - case SDL_KEYDOWN: - /* Any keypress quits the app... */ - case SDL_QUIT: - done = 1; - break; - default: - break; - } - } - + case SDL_MOUSEMOTION: + break; + case SDL_MOUSEBUTTONDOWN: + break; + case SDL_KEYDOWN: + /* Any keypress quits the app... */ + case SDL_QUIT: + done = 1; + break; + default: + break; + } + } + // Draw at 24 hz // This approach is not normally recommended - it is better to // use time-based animation and run as fast as possible - drawGL (); - SDL_GL_SwapBuffers (); + drawGL(); + SDL_GL_SwapBuffers(); // Time how long each draw-swap-delay cycle takes // and adjust delay to get closer to target framerate if (thenTicks > 0) { - nowTicks = SDL_GetTicks (); - delay += (1000/fps - (nowTicks-thenTicks)); + nowTicks = SDL_GetTicks(); + delay += (1000 / fps - (nowTicks - thenTicks)); thenTicks = nowTicks; if (delay < 0) - delay = 1000/fps; - } - else { - thenTicks = SDL_GetTicks (); + delay = 1000 / fps; + } else { + thenTicks = SDL_GetTicks(); } - SDL_Delay (delay); - } + SDL_Delay(delay); + } } -int main(int argc, char *argv[]) +int +main(int argc, char *argv[]) { - // Init SDL video subsystem - if ( SDL_Init (SDL_INIT_VIDEO) < 0 ) { - - fprintf(stderr, "Couldn't initialize SDL: %s\n", - SDL_GetError()); - exit(1); - } + // Init SDL video subsystem + if (SDL_Init(SDL_INIT_VIDEO) < 0) { + fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); + exit(1); + } // Set GL context attributes - initAttributes (); - + initAttributes(); + // Create GL context - createSurface (0); - + createSurface(0); + // Get GL context attributes - printAttributes (); - + printAttributes(); + // Init GL state - initGL (); - + initGL(); + // Draw, get events... - mainLoop (); - + mainLoop(); + // Cleanup - SDL_Quit(); - + SDL_Quit(); + return 0; }