From 3255f00e698a6b97adc1d20e4a85a51ffbfeb78b Mon Sep 17 00:00:00 2001 From: Bob Pendleton Date: Tue, 24 Jul 2007 18:46:45 +0000 Subject: [PATCH] make indent --- Xcode/SDLTest/libsdlmain_prefix.h | 2 +- .../SDL Application/SDLMain.h | 3 +- .../SDL Application/main.c | 90 +++---- .../SDL Cocoa Application/SDLMain.h | 13 +- .../SDL Cocoa Application/main.c | 90 +++---- .../MyController.h | 52 ++-- .../MyCustomView.h | 3 +- .../MyCustomWindow.h | 12 +- .../SDL Custom Cocoa Application/SDLMain.h | 4 +- .../SDL Custom Cocoa Application/prefix.h | 1 - .../SDL OpenGL Application/SDLMain.h | 3 +- .../atlantis/atlantis.c | 253 +++++++++--------- .../atlantis/atlantis.h | 3 +- .../SDL OpenGL Application/atlantis/swim.c | 14 +- .../SDL OpenGL Application/main.c | 198 +++++++------- .../SDL Application/SDLMain.h | 3 +- .../TemplatesForXcode/SDL Application/main.c | 90 +++---- .../SDL Cocoa Application/SDLMain.h | 13 +- .../SDL Cocoa Application/main.c | 90 +++---- .../MyController.h | 52 ++-- .../MyCustomView.h | 3 +- .../MyCustomWindow.h | 12 +- .../SDL Custom Cocoa Application/SDLMain.h | 4 +- .../SDL OpenGL Application/SDLMain.h | 3 +- .../atlantis/atlantis.c | 253 +++++++++--------- .../atlantis/atlantis.h | 3 +- .../SDL OpenGL Application/atlantis/swim.c | 14 +- .../SDL OpenGL Application/main.c | 198 +++++++------- src/video/x11/SDL_x11gamma.c | 58 ++++ src/video/x11/SDL_x11gamma.h | 3 + src/video/x11/SDL_x11window.c | 11 +- 31 files changed, 815 insertions(+), 736 deletions(-) diff --git a/Xcode/SDLTest/libsdlmain_prefix.h b/Xcode/SDLTest/libsdlmain_prefix.h index ed41c9744..d7fc85ab2 100644 --- a/Xcode/SDLTest/libsdlmain_prefix.h +++ b/Xcode/SDLTest/libsdlmain_prefix.h @@ -10,4 +10,4 @@ #include #include #include "SDL.h" -#include "SDLMain.h" \ No newline at end of file +#include "SDLMain.h" diff --git a/Xcode/TemplatesForProjectBuilder/SDL Application/SDLMain.h b/Xcode/TemplatesForProjectBuilder/SDL Application/SDLMain.h index 4683df57a..a71342061 100644 --- a/Xcode/TemplatesForProjectBuilder/SDL Application/SDLMain.h +++ b/Xcode/TemplatesForProjectBuilder/SDL Application/SDLMain.h @@ -7,5 +7,4 @@ #import -@interface SDLMain : NSObject -@end +@ interface SDLMain:NSObject @ end diff --git a/Xcode/TemplatesForProjectBuilder/SDL Application/main.c b/Xcode/TemplatesForProjectBuilder/SDL Application/main.c index 7115de989..23d3e0f5d 100644 --- a/Xcode/TemplatesForProjectBuilder/SDL Application/main.c +++ b/Xcode/TemplatesForProjectBuilder/SDL Application/main.c @@ -4,7 +4,7 @@ Please see the SDL documentation for details on using the SDL API: /Developer/Documentation/SDL/docs.html */ - + #include #include #include @@ -12,54 +12,54 @@ #include "SDL.h" -int main(int argc, char *argv[]) +int +main(int argc, char *argv[]) { - Uint32 initflags = SDL_INIT_VIDEO; /* See documentation for details */ - SDL_Surface *screen; - Uint8 video_bpp = 0; - Uint32 videoflags = SDL_SWSURFACE; - int done; - SDL_Event event; + Uint32 initflags = SDL_INIT_VIDEO; /* See documentation for details */ + SDL_Surface *screen; + Uint8 video_bpp = 0; + Uint32 videoflags = SDL_SWSURFACE; + int done; + SDL_Event event; + + /* Initialize the SDL library */ + if (SDL_Init(initflags) < 0) { + fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); + exit(1); + } - /* Initialize the SDL library */ - if ( SDL_Init(initflags) < 0 ) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", - SDL_GetError()); - exit(1); - } + /* Set 640x480 video mode */ + screen = SDL_SetVideoMode(640, 480, video_bpp, videoflags); + if (screen == NULL) { + fprintf(stderr, "Couldn't set 640x480x%d video mode: %s\n", + video_bpp, SDL_GetError()); + SDL_Quit(); + exit(2); + } - /* Set 640x480 video mode */ - screen=SDL_SetVideoMode(640,480, video_bpp, videoflags); - if (screen == NULL) { - fprintf(stderr, "Couldn't set 640x480x%d video mode: %s\n", - video_bpp, SDL_GetError()); - SDL_Quit(); - exit(2); - } + done = 0; + while (!done) { - done = 0; - 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; - } - } - } - - /* Clean up the SDL library */ - SDL_Quit(); - return(0); + /* Clean up the SDL library */ + SDL_Quit(); + return (0); } diff --git a/Xcode/TemplatesForProjectBuilder/SDL Cocoa Application/SDLMain.h b/Xcode/TemplatesForProjectBuilder/SDL Cocoa Application/SDLMain.h index d18cac768..e2bba6630 100644 --- a/Xcode/TemplatesForProjectBuilder/SDL Cocoa Application/SDLMain.h +++ b/Xcode/TemplatesForProjectBuilder/SDL Cocoa Application/SDLMain.h @@ -7,11 +7,10 @@ #import -@interface SDLMain : NSObject -- (IBAction)prefsMenu:(id)sender; -- (IBAction)newGame:(id)sender; -- (IBAction)openGame:(id)sender; -- (IBAction)saveGame:(id)sender; -- (IBAction)saveGameAs:(id)sender; -- (IBAction)help:(id)sender; +@ interface SDLMain: NSObject - (IBAction) prefsMenu:(id) sender; +-(IBAction) newGame:(id) sender; +-(IBAction) openGame:(id) sender; +-(IBAction) saveGame:(id) sender; +-(IBAction) saveGameAs:(id) sender; +-(IBAction) help:(id) sender; @end diff --git a/Xcode/TemplatesForProjectBuilder/SDL Cocoa Application/main.c b/Xcode/TemplatesForProjectBuilder/SDL Cocoa Application/main.c index 7115de989..23d3e0f5d 100644 --- a/Xcode/TemplatesForProjectBuilder/SDL Cocoa Application/main.c +++ b/Xcode/TemplatesForProjectBuilder/SDL Cocoa Application/main.c @@ -4,7 +4,7 @@ Please see the SDL documentation for details on using the SDL API: /Developer/Documentation/SDL/docs.html */ - + #include #include #include @@ -12,54 +12,54 @@ #include "SDL.h" -int main(int argc, char *argv[]) +int +main(int argc, char *argv[]) { - Uint32 initflags = SDL_INIT_VIDEO; /* See documentation for details */ - SDL_Surface *screen; - Uint8 video_bpp = 0; - Uint32 videoflags = SDL_SWSURFACE; - int done; - SDL_Event event; + Uint32 initflags = SDL_INIT_VIDEO; /* See documentation for details */ + SDL_Surface *screen; + Uint8 video_bpp = 0; + Uint32 videoflags = SDL_SWSURFACE; + int done; + SDL_Event event; + + /* Initialize the SDL library */ + if (SDL_Init(initflags) < 0) { + fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); + exit(1); + } - /* Initialize the SDL library */ - if ( SDL_Init(initflags) < 0 ) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", - SDL_GetError()); - exit(1); - } + /* Set 640x480 video mode */ + screen = SDL_SetVideoMode(640, 480, video_bpp, videoflags); + if (screen == NULL) { + fprintf(stderr, "Couldn't set 640x480x%d video mode: %s\n", + video_bpp, SDL_GetError()); + SDL_Quit(); + exit(2); + } - /* Set 640x480 video mode */ - screen=SDL_SetVideoMode(640,480, video_bpp, videoflags); - if (screen == NULL) { - fprintf(stderr, "Couldn't set 640x480x%d video mode: %s\n", - video_bpp, SDL_GetError()); - SDL_Quit(); - exit(2); - } + done = 0; + while (!done) { - done = 0; - 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; - } - } - } - - /* Clean up the SDL library */ - SDL_Quit(); - return(0); + /* Clean up the SDL library */ + SDL_Quit(); + return (0); } diff --git a/Xcode/TemplatesForProjectBuilder/SDL Custom Cocoa Application/MyController.h b/Xcode/TemplatesForProjectBuilder/SDL Custom Cocoa Application/MyController.h index d0648f3d2..60000ba18 100644 --- a/Xcode/TemplatesForProjectBuilder/SDL Custom Cocoa Application/MyController.h +++ b/Xcode/TemplatesForProjectBuilder/SDL Custom Cocoa Application/MyController.h @@ -9,38 +9,34 @@ #import #import "SDL.h" -extern id gController; // instance of this class from nib +extern id gController; // instance of this class from nib // Declare SDL_QuartzWindowDelegate (defined in SDL.framework) -@interface SDL_QuartzWindowDelegate : NSObject -@end - -@interface MyController : NSObject -{ +@interface SDL_QuartzWindowDelegate: NSObject @ end @ interface MyController:NSObject { // Interface Builder Outlets - IBOutlet id _framesPerSecond; - IBOutlet id _numSprites; - IBOutlet id _window; - IBOutlet id _view; - + IBOutlet id _framesPerSecond; + IBOutlet id _numSprites; + IBOutlet id _window; + IBOutlet id _view; + // Private instance variables - int _nSprites; - int _max_speed; - int _doFlip; - Uint8* _mem; - - SDL_Surface* _screen; - SDL_Surface* _sprite; - SDL_Rect* _sprite_rects; - SDL_Rect* _positions; - SDL_Rect* _velocities; - int _sprites_visible; - Uint16 _sprite_w, _sprite_h; - - int _mouse_x, _mouse_y; + int _nSprites; + int _max_speed; + int _doFlip; + Uint8 *_mem; + + SDL_Surface *_screen; + SDL_Surface *_sprite; + SDL_Rect *_sprite_rects; + SDL_Rect *_positions; + SDL_Rect *_velocities; + int _sprites_visible; + Uint16 _sprite_w, _sprite_h; + + int _mouse_x, _mouse_y; } + // Interface Builder Actions -- (IBAction)changeNumberOfSprites:(id)sender; -- (IBAction)selectUpdateMode:(id)sender; +-(IBAction) changeNumberOfSprites:(id) sender; +-(IBAction) selectUpdateMode:(id) sender; @end - diff --git a/Xcode/TemplatesForProjectBuilder/SDL Custom Cocoa Application/MyCustomView.h b/Xcode/TemplatesForProjectBuilder/SDL Custom Cocoa Application/MyCustomView.h index 202a485d6..c774e679c 100644 --- a/Xcode/TemplatesForProjectBuilder/SDL Custom Cocoa Application/MyCustomView.h +++ b/Xcode/TemplatesForProjectBuilder/SDL Custom Cocoa Application/MyCustomView.h @@ -9,8 +9,7 @@ #import -@interface MyCustomView : NSQuickDrawView -{ +@ interface MyCustomView:NSQuickDrawView { } @end diff --git a/Xcode/TemplatesForProjectBuilder/SDL Custom Cocoa Application/MyCustomWindow.h b/Xcode/TemplatesForProjectBuilder/SDL Custom Cocoa Application/MyCustomWindow.h index f5419a0bc..2588b1ee6 100644 --- a/Xcode/TemplatesForProjectBuilder/SDL Custom Cocoa Application/MyCustomWindow.h +++ b/Xcode/TemplatesForProjectBuilder/SDL Custom Cocoa Application/MyCustomWindow.h @@ -11,17 +11,11 @@ // Be a subclass of SDL_QuartzWindow so SDL will // handle the redraw problems when minimizing the window // This class is defined in SDL.framework -@interface SDL_QuartzWindow : NSWindow -@end - +@ interface SDL_QuartzWindow:NSWindow @ end // Also assign SDL_QuartzWindowDelegate to the window // to perform other tasks. You can subclass this delegate // if you want to add your own delegation methods // This class is defined in SDL.framework -@interface SDL_QuartzWindowDelegate : NSObject -@end - +@ interface SDL_QuartzWindowDelegate:NSObject @ end // Declare our custom class -@interface MyCustomWindow : SDL_QuartzWindow -@end - +@ interface MyCustomWindow:SDL_QuartzWindow @ end diff --git a/Xcode/TemplatesForProjectBuilder/SDL Custom Cocoa Application/SDLMain.h b/Xcode/TemplatesForProjectBuilder/SDL Custom Cocoa Application/SDLMain.h index 76c49ee3a..8a003be35 100644 --- a/Xcode/TemplatesForProjectBuilder/SDL Custom Cocoa Application/SDLMain.h +++ b/Xcode/TemplatesForProjectBuilder/SDL Custom Cocoa Application/SDLMain.h @@ -7,8 +7,8 @@ #import -@interface SDLMain : NSObject -{ +@ interface SDLMain:NSObject { IBOutlet id _controller; } + @end diff --git a/Xcode/TemplatesForProjectBuilder/SDL Custom Cocoa Application/prefix.h b/Xcode/TemplatesForProjectBuilder/SDL Custom Cocoa Application/prefix.h index 0936b0621..f53ea9ca8 100644 --- a/Xcode/TemplatesForProjectBuilder/SDL Custom Cocoa Application/prefix.h +++ b/Xcode/TemplatesForProjectBuilder/SDL Custom Cocoa Application/prefix.h @@ -9,4 +9,3 @@ #include #include - diff --git a/Xcode/TemplatesForProjectBuilder/SDL OpenGL Application/SDLMain.h b/Xcode/TemplatesForProjectBuilder/SDL OpenGL Application/SDLMain.h index 4683df57a..a71342061 100644 --- a/Xcode/TemplatesForProjectBuilder/SDL OpenGL Application/SDLMain.h +++ b/Xcode/TemplatesForProjectBuilder/SDL OpenGL Application/SDLMain.h @@ -7,5 +7,4 @@ #import -@interface SDLMain : NSObject -@end +@ interface SDLMain:NSObject @ end diff --git a/Xcode/TemplatesForProjectBuilder/SDL OpenGL Application/atlantis/atlantis.c b/Xcode/TemplatesForProjectBuilder/SDL OpenGL Application/atlantis/atlantis.c index 4efdf6ce8..719c1cf95 100644 --- a/Xcode/TemplatesForProjectBuilder/SDL OpenGL Application/atlantis/atlantis.c +++ b/Xcode/TemplatesForProjectBuilder/SDL OpenGL Application/atlantis/atlantis.c @@ -54,46 +54,49 @@ GLboolean Timing = GL_TRUE; int w_win = 640; int h_win = 480; -GLint count = 0; +GLint count = 0; GLenum StrMode = GL_VENDOR; GLboolean moving; -static double mtime(void) +static double +mtime(void) { - struct timeval tk_time; - struct timezone tz; - - gettimeofday(&tk_time, &tz); - - return 4294.967296 * tk_time.tv_sec + 0.000001 * tk_time.tv_usec; + struct timeval tk_time; + struct timezone tz; + + gettimeofday(&tk_time, &tz); + + return 4294.967296 * tk_time.tv_sec + 0.000001 * tk_time.tv_usec; } -static double filter(double in, double *save) +static double +filter(double in, double *save) { - static double k1 = 0.9; - static double k2 = 0.05; + static double k1 = 0.9; + static double k2 = 0.05; - save[3] = in; - save[1] = save[0]*k1 + k2*(save[3] + save[2]); + save[3] = in; + save[1] = save[0] * k1 + k2 * (save[3] + save[2]); - save[0]=save[1]; - save[2]=save[3]; + save[0] = save[1]; + save[2] = save[3]; - return(save[1]); + return (save[1]); } -void DrawStr(const char *str) +void +DrawStr(const char *str) { - GLint i = 0; - - if(!str) return; - - while(str[i]) - { - glutBitmapCharacter(GLUT_BITMAP_HELVETICA_12, str[i]); - i++; - } + GLint i = 0; + + if (!str) + return; + + while (str[i]) { + glutBitmapCharacter(GLUT_BITMAP_HELVETICA_12, str[i]); + i++; + } } void @@ -134,18 +137,18 @@ InitFishs(void) void Atlantis_Init(void) { - static float ambient[] = {0.2, 0.2, 0.2, 1.0}; - static float diffuse[] = {1.0, 1.0, 1.0, 1.0}; - static float position[] = {0.0, 1.0, 0.0, 0.0}; - static float mat_shininess[] = {90.0}; - static float mat_specular[] = {0.8, 0.8, 0.8, 1.0}; - static float mat_diffuse[] = {0.46, 0.66, 0.795, 1.0}; - static float mat_ambient[] = {0.3, 0.4, 0.5, 1.0}; - static float lmodel_ambient[] = {0.4, 0.4, 0.4, 1.0}; - static float lmodel_localviewer[] = {0.0}; + static float ambient[] = { 0.2, 0.2, 0.2, 1.0 }; + static float diffuse[] = { 1.0, 1.0, 1.0, 1.0 }; + static float position[] = { 0.0, 1.0, 0.0, 0.0 }; + static float mat_shininess[] = { 90.0 }; + static float mat_specular[] = { 0.8, 0.8, 0.8, 1.0 }; + static float mat_diffuse[] = { 0.46, 0.66, 0.795, 1.0 }; + static float mat_ambient[] = { 0.3, 0.4, 0.5, 1.0 }; + static float lmodel_ambient[] = { 0.4, 0.4, 0.4, 1.0 }; + static float lmodel_localviewer[] = { 0.0 }; //GLfloat map1[4] = {0.0, 0.0, 0.0, 0.0}; //GLfloat map2[4] = {0.0, 0.0, 0.0, 0.0}; - static float fog_color[] = {0.0, 0.5, 0.9, 1.0}; + static float fog_color[] = { 0.0, 0.5, 0.9, 1.0 }; glFrontFace(GL_CCW); @@ -168,9 +171,9 @@ Atlantis_Init(void) InitFishs(); glEnable(GL_FOG); - glFogi(GL_FOG_MODE, GL_EXP); - glFogf(GL_FOG_DENSITY, 0.0000025); - glFogfv(GL_FOG_COLOR, fog_color); + glFogi(GL_FOG_MODE, GL_EXP); + glFogf(GL_FOG_DENSITY, 0.0000025); + glFogfv(GL_FOG_COLOR, fog_color); glClearColor(0.0, 0.5, 0.9, 1.0); } @@ -178,14 +181,15 @@ Atlantis_Init(void) void Atlantis_Reshape(int width, int height) { - w_win = width; - h_win = height; - + w_win = width; + h_win = height; + glViewport(0, 0, width, height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); - gluPerspective(60.0, (GLfloat) width / (GLfloat) height, 20000.0, 300000.0); + gluPerspective(60.0, (GLfloat) width / (GLfloat) height, 20000.0, + 300000.0); glMatrixMode(GL_MODELVIEW); } @@ -212,42 +216,42 @@ Atlantis_Key(unsigned char key, int x, int y) { switch (key) { case 't': - Timing = !Timing; - break; + Timing = !Timing; + break; case ' ': - switch(StrMode) - { - case GL_EXTENSIONS: - StrMode = GL_VENDOR; - break; - case GL_VENDOR: - StrMode = GL_RENDERER; - break; - case GL_RENDERER: - StrMode = GL_VERSION; - break; - case GL_VERSION: - StrMode = GL_EXTENSIONS; - break; - } - break; - case 27: /* Esc will quit */ + switch (StrMode) { + case GL_EXTENSIONS: + StrMode = GL_VENDOR; + break; + case GL_VENDOR: + StrMode = GL_RENDERER; + break; + case GL_RENDERER: + StrMode = GL_VERSION; + break; + case GL_VERSION: + StrMode = GL_EXTENSIONS; + break; + } + break; + case 27: /* Esc will quit */ exit(1); - break; - case 's': /* "s" start animation */ + break; + case 's': /* "s" start animation */ moving = GL_TRUE; //glutIdleFunc(Animate); - break; - case 'a': /* "a" stop animation */ + break; + case 'a': /* "a" stop animation */ moving = GL_FALSE; //glutIdleFunc(NULL); - break; - case '.': /* "." will advance frame */ + break; + case '.': /* "." will advance frame */ if (!moving) { Atlantis_Animate(); } } } + /* void Display(void) { @@ -273,10 +277,10 @@ void Atlantis_Display(void) { int i; - static double th[4] = {0.0, 0.0, 0.0, 0.0}; - static double t1 = 0.0, t2 = 0.0, t; - char num_str[128]; - + static double th[4] = { 0.0, 0.0, 0.0, 0.0 }; + static double t1 = 0.0, t2 = 0.0, t; + char num_str[128]; + t1 = t2; glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); @@ -303,56 +307,59 @@ Atlantis_Display(void) glScalef(0.45, 0.45, 0.3); DrawWhale(&babyWhale); glPopMatrix(); - - if(Timing) - { - t2 = mtime(); - t = t2 - t1; - if(t > 0.0001) t = 1.0 / t; - - glDisable(GL_LIGHTING); - //glDisable(GL_DEPTH_TEST); - - glColor3f(1.0, 0.0, 0.0); - - glMatrixMode (GL_PROJECTION); - glPushMatrix(); - glLoadIdentity(); - glOrtho(0, w_win, 0, h_win, -10.0, 10.0); - - glRasterPos2f(5.0, 5.0); - - switch(StrMode) - { - case GL_VENDOR: - sprintf(num_str, "%0.2f Hz, %dx%d, VENDOR: ", filter(t, th), w_win, h_win); - DrawStr(num_str); - DrawStr(glGetString(GL_VENDOR)); - break; - case GL_RENDERER: - sprintf(num_str, "%0.2f Hz, %dx%d, RENDERER: ", filter(t, th), w_win, h_win); - DrawStr(num_str); - DrawStr(glGetString(GL_RENDERER)); - break; - case GL_VERSION: - sprintf(num_str, "%0.2f Hz, %dx%d, VERSION: ", filter(t, th), w_win, h_win); - DrawStr(num_str); - DrawStr(glGetString(GL_VERSION)); - break; - case GL_EXTENSIONS: - sprintf(num_str, "%0.2f Hz, %dx%d, EXTENSIONS: ", filter(t, th), w_win, h_win); - DrawStr(num_str); - DrawStr(glGetString(GL_EXTENSIONS)); - break; - } - - glPopMatrix(); - glMatrixMode(GL_MODELVIEW); - - glEnable(GL_LIGHTING); - //glEnable(GL_DEPTH_TEST); - } - + + if (Timing) { + t2 = mtime(); + t = t2 - t1; + if (t > 0.0001) + t = 1.0 / t; + + glDisable(GL_LIGHTING); + //glDisable(GL_DEPTH_TEST); + + glColor3f(1.0, 0.0, 0.0); + + glMatrixMode(GL_PROJECTION); + glPushMatrix(); + glLoadIdentity(); + glOrtho(0, w_win, 0, h_win, -10.0, 10.0); + + glRasterPos2f(5.0, 5.0); + + switch (StrMode) { + case GL_VENDOR: + sprintf(num_str, "%0.2f Hz, %dx%d, VENDOR: ", filter(t, th), + w_win, h_win); + DrawStr(num_str); + DrawStr(glGetString(GL_VENDOR)); + break; + case GL_RENDERER: + sprintf(num_str, "%0.2f Hz, %dx%d, RENDERER: ", filter(t, th), + w_win, h_win); + DrawStr(num_str); + DrawStr(glGetString(GL_RENDERER)); + break; + case GL_VERSION: + sprintf(num_str, "%0.2f Hz, %dx%d, VERSION: ", filter(t, th), + w_win, h_win); + DrawStr(num_str); + DrawStr(glGetString(GL_VERSION)); + break; + case GL_EXTENSIONS: + sprintf(num_str, "%0.2f Hz, %dx%d, EXTENSIONS: ", filter(t, th), + w_win, h_win); + DrawStr(num_str); + DrawStr(glGetString(GL_EXTENSIONS)); + break; + } + + glPopMatrix(); + glMatrixMode(GL_MODELVIEW); + + glEnable(GL_LIGHTING); + //glEnable(GL_DEPTH_TEST); + } + count++; glutSwapBuffers(); @@ -456,4 +463,4 @@ glutIdleFunc(Animate); glutMainLoop(); return 0; // ANSI C requires main to return int. } -*/ \ No newline at end of file +*/ diff --git a/Xcode/TemplatesForProjectBuilder/SDL OpenGL Application/atlantis/atlantis.h b/Xcode/TemplatesForProjectBuilder/SDL OpenGL Application/atlantis/atlantis.h index 6ccf2d5f0..95a774de7 100644 --- a/Xcode/TemplatesForProjectBuilder/SDL OpenGL Application/atlantis/atlantis.h +++ b/Xcode/TemplatesForProjectBuilder/SDL OpenGL Application/atlantis/atlantis.h @@ -43,7 +43,8 @@ #define WHALESPEED 250.0 -typedef struct _fishRec { +typedef struct _fishRec +{ float x, y, z, phi, theta, psi, v; float xt, yt, zt; float htail, vtail; diff --git a/Xcode/TemplatesForProjectBuilder/SDL OpenGL Application/atlantis/swim.c b/Xcode/TemplatesForProjectBuilder/SDL OpenGL Application/atlantis/swim.c index cac7b6095..e55758c59 100644 --- a/Xcode/TemplatesForProjectBuilder/SDL OpenGL Application/atlantis/swim.c +++ b/Xcode/TemplatesForProjectBuilder/SDL OpenGL Application/atlantis/swim.c @@ -35,7 +35,7 @@ * OpenGL(TM) is a trademark of Silicon Graphics, Inc. */ #include -#include /* For rand(). */ +#include /* For rand(). */ #include #include "atlantis.h" @@ -57,8 +57,10 @@ WhalePilot(fishRec * fish) fish->theta = 0.0; fish->psi -= 0.5; - fish->x += WHALESPEED * fish->v * cos(fish->psi / RAD) * cos(fish->theta / RAD); - fish->y += WHALESPEED * fish->v * sin(fish->psi / RAD) * cos(fish->theta / RAD); + fish->x += + WHALESPEED * fish->v * cos(fish->psi / RAD) * cos(fish->theta / RAD); + fish->y += + WHALESPEED * fish->v * sin(fish->psi / RAD) * cos(fish->theta / RAD); fish->z += WHALESPEED * fish->v * sin(fish->theta / RAD); } @@ -152,8 +154,10 @@ SharkPilot(fishRec * fish) } } - fish->x += SHARKSPEED * fish->v * cos(fish->psi / RAD) * cos(fish->theta / RAD); - fish->y += SHARKSPEED * fish->v * sin(fish->psi / RAD) * cos(fish->theta / RAD); + fish->x += + SHARKSPEED * fish->v * cos(fish->psi / RAD) * cos(fish->theta / RAD); + fish->y += + SHARKSPEED * fish->v * sin(fish->psi / RAD) * cos(fish->theta / RAD); fish->z += SHARKSPEED * fish->v * sin(fish->theta / RAD); } diff --git a/Xcode/TemplatesForProjectBuilder/SDL OpenGL Application/main.c b/Xcode/TemplatesForProjectBuilder/SDL OpenGL Application/main.c index b7794b3b6..24935912a 100644 --- a/Xcode/TemplatesForProjectBuilder/SDL OpenGL Application/main.c +++ b/Xcode/TemplatesForProjectBuilder/SDL OpenGL Application/main.c @@ -4,7 +4,7 @@ Please see the SDL documentation for details on using the SDL API: /Developer/Documentation/SDL/docs.html */ - + #include #include #include @@ -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 ) { - - /* 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; - } - } - + + while (!done) { + + /* 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; + } + } + // 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; } diff --git a/Xcode/TemplatesForXcode/SDL Application/SDLMain.h b/Xcode/TemplatesForXcode/SDL Application/SDLMain.h index 4683df57a..a71342061 100644 --- a/Xcode/TemplatesForXcode/SDL Application/SDLMain.h +++ b/Xcode/TemplatesForXcode/SDL Application/SDLMain.h @@ -7,5 +7,4 @@ #import -@interface SDLMain : NSObject -@end +@ interface SDLMain:NSObject @ end diff --git a/Xcode/TemplatesForXcode/SDL Application/main.c b/Xcode/TemplatesForXcode/SDL Application/main.c index 7115de989..23d3e0f5d 100644 --- a/Xcode/TemplatesForXcode/SDL Application/main.c +++ b/Xcode/TemplatesForXcode/SDL Application/main.c @@ -4,7 +4,7 @@ Please see the SDL documentation for details on using the SDL API: /Developer/Documentation/SDL/docs.html */ - + #include #include #include @@ -12,54 +12,54 @@ #include "SDL.h" -int main(int argc, char *argv[]) +int +main(int argc, char *argv[]) { - Uint32 initflags = SDL_INIT_VIDEO; /* See documentation for details */ - SDL_Surface *screen; - Uint8 video_bpp = 0; - Uint32 videoflags = SDL_SWSURFACE; - int done; - SDL_Event event; + Uint32 initflags = SDL_INIT_VIDEO; /* See documentation for details */ + SDL_Surface *screen; + Uint8 video_bpp = 0; + Uint32 videoflags = SDL_SWSURFACE; + int done; + SDL_Event event; + + /* Initialize the SDL library */ + if (SDL_Init(initflags) < 0) { + fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); + exit(1); + } - /* Initialize the SDL library */ - if ( SDL_Init(initflags) < 0 ) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", - SDL_GetError()); - exit(1); - } + /* Set 640x480 video mode */ + screen = SDL_SetVideoMode(640, 480, video_bpp, videoflags); + if (screen == NULL) { + fprintf(stderr, "Couldn't set 640x480x%d video mode: %s\n", + video_bpp, SDL_GetError()); + SDL_Quit(); + exit(2); + } - /* Set 640x480 video mode */ - screen=SDL_SetVideoMode(640,480, video_bpp, videoflags); - if (screen == NULL) { - fprintf(stderr, "Couldn't set 640x480x%d video mode: %s\n", - video_bpp, SDL_GetError()); - SDL_Quit(); - exit(2); - } + done = 0; + while (!done) { - done = 0; - 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; - } - } - } - - /* Clean up the SDL library */ - SDL_Quit(); - return(0); + /* Clean up the SDL library */ + SDL_Quit(); + return (0); } diff --git a/Xcode/TemplatesForXcode/SDL Cocoa Application/SDLMain.h b/Xcode/TemplatesForXcode/SDL Cocoa Application/SDLMain.h index d18cac768..e2bba6630 100644 --- a/Xcode/TemplatesForXcode/SDL Cocoa Application/SDLMain.h +++ b/Xcode/TemplatesForXcode/SDL Cocoa Application/SDLMain.h @@ -7,11 +7,10 @@ #import -@interface SDLMain : NSObject -- (IBAction)prefsMenu:(id)sender; -- (IBAction)newGame:(id)sender; -- (IBAction)openGame:(id)sender; -- (IBAction)saveGame:(id)sender; -- (IBAction)saveGameAs:(id)sender; -- (IBAction)help:(id)sender; +@ interface SDLMain: NSObject - (IBAction) prefsMenu:(id) sender; +-(IBAction) newGame:(id) sender; +-(IBAction) openGame:(id) sender; +-(IBAction) saveGame:(id) sender; +-(IBAction) saveGameAs:(id) sender; +-(IBAction) help:(id) sender; @end diff --git a/Xcode/TemplatesForXcode/SDL Cocoa Application/main.c b/Xcode/TemplatesForXcode/SDL Cocoa Application/main.c index 7115de989..23d3e0f5d 100644 --- a/Xcode/TemplatesForXcode/SDL Cocoa Application/main.c +++ b/Xcode/TemplatesForXcode/SDL Cocoa Application/main.c @@ -4,7 +4,7 @@ Please see the SDL documentation for details on using the SDL API: /Developer/Documentation/SDL/docs.html */ - + #include #include #include @@ -12,54 +12,54 @@ #include "SDL.h" -int main(int argc, char *argv[]) +int +main(int argc, char *argv[]) { - Uint32 initflags = SDL_INIT_VIDEO; /* See documentation for details */ - SDL_Surface *screen; - Uint8 video_bpp = 0; - Uint32 videoflags = SDL_SWSURFACE; - int done; - SDL_Event event; + Uint32 initflags = SDL_INIT_VIDEO; /* See documentation for details */ + SDL_Surface *screen; + Uint8 video_bpp = 0; + Uint32 videoflags = SDL_SWSURFACE; + int done; + SDL_Event event; + + /* Initialize the SDL library */ + if (SDL_Init(initflags) < 0) { + fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); + exit(1); + } - /* Initialize the SDL library */ - if ( SDL_Init(initflags) < 0 ) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", - SDL_GetError()); - exit(1); - } + /* Set 640x480 video mode */ + screen = SDL_SetVideoMode(640, 480, video_bpp, videoflags); + if (screen == NULL) { + fprintf(stderr, "Couldn't set 640x480x%d video mode: %s\n", + video_bpp, SDL_GetError()); + SDL_Quit(); + exit(2); + } - /* Set 640x480 video mode */ - screen=SDL_SetVideoMode(640,480, video_bpp, videoflags); - if (screen == NULL) { - fprintf(stderr, "Couldn't set 640x480x%d video mode: %s\n", - video_bpp, SDL_GetError()); - SDL_Quit(); - exit(2); - } + done = 0; + while (!done) { - done = 0; - 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; - } - } - } - - /* Clean up the SDL library */ - SDL_Quit(); - return(0); + /* Clean up the SDL library */ + SDL_Quit(); + return (0); } diff --git a/Xcode/TemplatesForXcode/SDL Custom Cocoa Application/MyController.h b/Xcode/TemplatesForXcode/SDL Custom Cocoa Application/MyController.h index d0648f3d2..60000ba18 100644 --- a/Xcode/TemplatesForXcode/SDL Custom Cocoa Application/MyController.h +++ b/Xcode/TemplatesForXcode/SDL Custom Cocoa Application/MyController.h @@ -9,38 +9,34 @@ #import #import "SDL.h" -extern id gController; // instance of this class from nib +extern id gController; // instance of this class from nib // Declare SDL_QuartzWindowDelegate (defined in SDL.framework) -@interface SDL_QuartzWindowDelegate : NSObject -@end - -@interface MyController : NSObject -{ +@interface SDL_QuartzWindowDelegate: NSObject @ end @ interface MyController:NSObject { // Interface Builder Outlets - IBOutlet id _framesPerSecond; - IBOutlet id _numSprites; - IBOutlet id _window; - IBOutlet id _view; - + IBOutlet id _framesPerSecond; + IBOutlet id _numSprites; + IBOutlet id _window; + IBOutlet id _view; + // Private instance variables - int _nSprites; - int _max_speed; - int _doFlip; - Uint8* _mem; - - SDL_Surface* _screen; - SDL_Surface* _sprite; - SDL_Rect* _sprite_rects; - SDL_Rect* _positions; - SDL_Rect* _velocities; - int _sprites_visible; - Uint16 _sprite_w, _sprite_h; - - int _mouse_x, _mouse_y; + int _nSprites; + int _max_speed; + int _doFlip; + Uint8 *_mem; + + SDL_Surface *_screen; + SDL_Surface *_sprite; + SDL_Rect *_sprite_rects; + SDL_Rect *_positions; + SDL_Rect *_velocities; + int _sprites_visible; + Uint16 _sprite_w, _sprite_h; + + int _mouse_x, _mouse_y; } + // Interface Builder Actions -- (IBAction)changeNumberOfSprites:(id)sender; -- (IBAction)selectUpdateMode:(id)sender; +-(IBAction) changeNumberOfSprites:(id) sender; +-(IBAction) selectUpdateMode:(id) sender; @end - diff --git a/Xcode/TemplatesForXcode/SDL Custom Cocoa Application/MyCustomView.h b/Xcode/TemplatesForXcode/SDL Custom Cocoa Application/MyCustomView.h index 202a485d6..c774e679c 100644 --- a/Xcode/TemplatesForXcode/SDL Custom Cocoa Application/MyCustomView.h +++ b/Xcode/TemplatesForXcode/SDL Custom Cocoa Application/MyCustomView.h @@ -9,8 +9,7 @@ #import -@interface MyCustomView : NSQuickDrawView -{ +@ interface MyCustomView:NSQuickDrawView { } @end diff --git a/Xcode/TemplatesForXcode/SDL Custom Cocoa Application/MyCustomWindow.h b/Xcode/TemplatesForXcode/SDL Custom Cocoa Application/MyCustomWindow.h index f5419a0bc..2588b1ee6 100644 --- a/Xcode/TemplatesForXcode/SDL Custom Cocoa Application/MyCustomWindow.h +++ b/Xcode/TemplatesForXcode/SDL Custom Cocoa Application/MyCustomWindow.h @@ -11,17 +11,11 @@ // Be a subclass of SDL_QuartzWindow so SDL will // handle the redraw problems when minimizing the window // This class is defined in SDL.framework -@interface SDL_QuartzWindow : NSWindow -@end - +@ interface SDL_QuartzWindow:NSWindow @ end // Also assign SDL_QuartzWindowDelegate to the window // to perform other tasks. You can subclass this delegate // if you want to add your own delegation methods // This class is defined in SDL.framework -@interface SDL_QuartzWindowDelegate : NSObject -@end - +@ interface SDL_QuartzWindowDelegate:NSObject @ end // Declare our custom class -@interface MyCustomWindow : SDL_QuartzWindow -@end - +@ interface MyCustomWindow:SDL_QuartzWindow @ end diff --git a/Xcode/TemplatesForXcode/SDL Custom Cocoa Application/SDLMain.h b/Xcode/TemplatesForXcode/SDL Custom Cocoa Application/SDLMain.h index 76c49ee3a..8a003be35 100644 --- a/Xcode/TemplatesForXcode/SDL Custom Cocoa Application/SDLMain.h +++ b/Xcode/TemplatesForXcode/SDL Custom Cocoa Application/SDLMain.h @@ -7,8 +7,8 @@ #import -@interface SDLMain : NSObject -{ +@ interface SDLMain:NSObject { IBOutlet id _controller; } + @end diff --git a/Xcode/TemplatesForXcode/SDL OpenGL Application/SDLMain.h b/Xcode/TemplatesForXcode/SDL OpenGL Application/SDLMain.h index 4683df57a..a71342061 100644 --- a/Xcode/TemplatesForXcode/SDL OpenGL Application/SDLMain.h +++ b/Xcode/TemplatesForXcode/SDL OpenGL Application/SDLMain.h @@ -7,5 +7,4 @@ #import -@interface SDLMain : NSObject -@end +@ interface SDLMain:NSObject @ end diff --git a/Xcode/TemplatesForXcode/SDL OpenGL Application/atlantis/atlantis.c b/Xcode/TemplatesForXcode/SDL OpenGL Application/atlantis/atlantis.c index 4efdf6ce8..719c1cf95 100644 --- a/Xcode/TemplatesForXcode/SDL OpenGL Application/atlantis/atlantis.c +++ b/Xcode/TemplatesForXcode/SDL OpenGL Application/atlantis/atlantis.c @@ -54,46 +54,49 @@ GLboolean Timing = GL_TRUE; int w_win = 640; int h_win = 480; -GLint count = 0; +GLint count = 0; GLenum StrMode = GL_VENDOR; GLboolean moving; -static double mtime(void) +static double +mtime(void) { - struct timeval tk_time; - struct timezone tz; - - gettimeofday(&tk_time, &tz); - - return 4294.967296 * tk_time.tv_sec + 0.000001 * tk_time.tv_usec; + struct timeval tk_time; + struct timezone tz; + + gettimeofday(&tk_time, &tz); + + return 4294.967296 * tk_time.tv_sec + 0.000001 * tk_time.tv_usec; } -static double filter(double in, double *save) +static double +filter(double in, double *save) { - static double k1 = 0.9; - static double k2 = 0.05; + static double k1 = 0.9; + static double k2 = 0.05; - save[3] = in; - save[1] = save[0]*k1 + k2*(save[3] + save[2]); + save[3] = in; + save[1] = save[0] * k1 + k2 * (save[3] + save[2]); - save[0]=save[1]; - save[2]=save[3]; + save[0] = save[1]; + save[2] = save[3]; - return(save[1]); + return (save[1]); } -void DrawStr(const char *str) +void +DrawStr(const char *str) { - GLint i = 0; - - if(!str) return; - - while(str[i]) - { - glutBitmapCharacter(GLUT_BITMAP_HELVETICA_12, str[i]); - i++; - } + GLint i = 0; + + if (!str) + return; + + while (str[i]) { + glutBitmapCharacter(GLUT_BITMAP_HELVETICA_12, str[i]); + i++; + } } void @@ -134,18 +137,18 @@ InitFishs(void) void Atlantis_Init(void) { - static float ambient[] = {0.2, 0.2, 0.2, 1.0}; - static float diffuse[] = {1.0, 1.0, 1.0, 1.0}; - static float position[] = {0.0, 1.0, 0.0, 0.0}; - static float mat_shininess[] = {90.0}; - static float mat_specular[] = {0.8, 0.8, 0.8, 1.0}; - static float mat_diffuse[] = {0.46, 0.66, 0.795, 1.0}; - static float mat_ambient[] = {0.3, 0.4, 0.5, 1.0}; - static float lmodel_ambient[] = {0.4, 0.4, 0.4, 1.0}; - static float lmodel_localviewer[] = {0.0}; + static float ambient[] = { 0.2, 0.2, 0.2, 1.0 }; + static float diffuse[] = { 1.0, 1.0, 1.0, 1.0 }; + static float position[] = { 0.0, 1.0, 0.0, 0.0 }; + static float mat_shininess[] = { 90.0 }; + static float mat_specular[] = { 0.8, 0.8, 0.8, 1.0 }; + static float mat_diffuse[] = { 0.46, 0.66, 0.795, 1.0 }; + static float mat_ambient[] = { 0.3, 0.4, 0.5, 1.0 }; + static float lmodel_ambient[] = { 0.4, 0.4, 0.4, 1.0 }; + static float lmodel_localviewer[] = { 0.0 }; //GLfloat map1[4] = {0.0, 0.0, 0.0, 0.0}; //GLfloat map2[4] = {0.0, 0.0, 0.0, 0.0}; - static float fog_color[] = {0.0, 0.5, 0.9, 1.0}; + static float fog_color[] = { 0.0, 0.5, 0.9, 1.0 }; glFrontFace(GL_CCW); @@ -168,9 +171,9 @@ Atlantis_Init(void) InitFishs(); glEnable(GL_FOG); - glFogi(GL_FOG_MODE, GL_EXP); - glFogf(GL_FOG_DENSITY, 0.0000025); - glFogfv(GL_FOG_COLOR, fog_color); + glFogi(GL_FOG_MODE, GL_EXP); + glFogf(GL_FOG_DENSITY, 0.0000025); + glFogfv(GL_FOG_COLOR, fog_color); glClearColor(0.0, 0.5, 0.9, 1.0); } @@ -178,14 +181,15 @@ Atlantis_Init(void) void Atlantis_Reshape(int width, int height) { - w_win = width; - h_win = height; - + w_win = width; + h_win = height; + glViewport(0, 0, width, height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); - gluPerspective(60.0, (GLfloat) width / (GLfloat) height, 20000.0, 300000.0); + gluPerspective(60.0, (GLfloat) width / (GLfloat) height, 20000.0, + 300000.0); glMatrixMode(GL_MODELVIEW); } @@ -212,42 +216,42 @@ Atlantis_Key(unsigned char key, int x, int y) { switch (key) { case 't': - Timing = !Timing; - break; + Timing = !Timing; + break; case ' ': - switch(StrMode) - { - case GL_EXTENSIONS: - StrMode = GL_VENDOR; - break; - case GL_VENDOR: - StrMode = GL_RENDERER; - break; - case GL_RENDERER: - StrMode = GL_VERSION; - break; - case GL_VERSION: - StrMode = GL_EXTENSIONS; - break; - } - break; - case 27: /* Esc will quit */ + switch (StrMode) { + case GL_EXTENSIONS: + StrMode = GL_VENDOR; + break; + case GL_VENDOR: + StrMode = GL_RENDERER; + break; + case GL_RENDERER: + StrMode = GL_VERSION; + break; + case GL_VERSION: + StrMode = GL_EXTENSIONS; + break; + } + break; + case 27: /* Esc will quit */ exit(1); - break; - case 's': /* "s" start animation */ + break; + case 's': /* "s" start animation */ moving = GL_TRUE; //glutIdleFunc(Animate); - break; - case 'a': /* "a" stop animation */ + break; + case 'a': /* "a" stop animation */ moving = GL_FALSE; //glutIdleFunc(NULL); - break; - case '.': /* "." will advance frame */ + break; + case '.': /* "." will advance frame */ if (!moving) { Atlantis_Animate(); } } } + /* void Display(void) { @@ -273,10 +277,10 @@ void Atlantis_Display(void) { int i; - static double th[4] = {0.0, 0.0, 0.0, 0.0}; - static double t1 = 0.0, t2 = 0.0, t; - char num_str[128]; - + static double th[4] = { 0.0, 0.0, 0.0, 0.0 }; + static double t1 = 0.0, t2 = 0.0, t; + char num_str[128]; + t1 = t2; glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); @@ -303,56 +307,59 @@ Atlantis_Display(void) glScalef(0.45, 0.45, 0.3); DrawWhale(&babyWhale); glPopMatrix(); - - if(Timing) - { - t2 = mtime(); - t = t2 - t1; - if(t > 0.0001) t = 1.0 / t; - - glDisable(GL_LIGHTING); - //glDisable(GL_DEPTH_TEST); - - glColor3f(1.0, 0.0, 0.0); - - glMatrixMode (GL_PROJECTION); - glPushMatrix(); - glLoadIdentity(); - glOrtho(0, w_win, 0, h_win, -10.0, 10.0); - - glRasterPos2f(5.0, 5.0); - - switch(StrMode) - { - case GL_VENDOR: - sprintf(num_str, "%0.2f Hz, %dx%d, VENDOR: ", filter(t, th), w_win, h_win); - DrawStr(num_str); - DrawStr(glGetString(GL_VENDOR)); - break; - case GL_RENDERER: - sprintf(num_str, "%0.2f Hz, %dx%d, RENDERER: ", filter(t, th), w_win, h_win); - DrawStr(num_str); - DrawStr(glGetString(GL_RENDERER)); - break; - case GL_VERSION: - sprintf(num_str, "%0.2f Hz, %dx%d, VERSION: ", filter(t, th), w_win, h_win); - DrawStr(num_str); - DrawStr(glGetString(GL_VERSION)); - break; - case GL_EXTENSIONS: - sprintf(num_str, "%0.2f Hz, %dx%d, EXTENSIONS: ", filter(t, th), w_win, h_win); - DrawStr(num_str); - DrawStr(glGetString(GL_EXTENSIONS)); - break; - } - - glPopMatrix(); - glMatrixMode(GL_MODELVIEW); - - glEnable(GL_LIGHTING); - //glEnable(GL_DEPTH_TEST); - } - + + if (Timing) { + t2 = mtime(); + t = t2 - t1; + if (t > 0.0001) + t = 1.0 / t; + + glDisable(GL_LIGHTING); + //glDisable(GL_DEPTH_TEST); + + glColor3f(1.0, 0.0, 0.0); + + glMatrixMode(GL_PROJECTION); + glPushMatrix(); + glLoadIdentity(); + glOrtho(0, w_win, 0, h_win, -10.0, 10.0); + + glRasterPos2f(5.0, 5.0); + + switch (StrMode) { + case GL_VENDOR: + sprintf(num_str, "%0.2f Hz, %dx%d, VENDOR: ", filter(t, th), + w_win, h_win); + DrawStr(num_str); + DrawStr(glGetString(GL_VENDOR)); + break; + case GL_RENDERER: + sprintf(num_str, "%0.2f Hz, %dx%d, RENDERER: ", filter(t, th), + w_win, h_win); + DrawStr(num_str); + DrawStr(glGetString(GL_RENDERER)); + break; + case GL_VERSION: + sprintf(num_str, "%0.2f Hz, %dx%d, VERSION: ", filter(t, th), + w_win, h_win); + DrawStr(num_str); + DrawStr(glGetString(GL_VERSION)); + break; + case GL_EXTENSIONS: + sprintf(num_str, "%0.2f Hz, %dx%d, EXTENSIONS: ", filter(t, th), + w_win, h_win); + DrawStr(num_str); + DrawStr(glGetString(GL_EXTENSIONS)); + break; + } + + glPopMatrix(); + glMatrixMode(GL_MODELVIEW); + + glEnable(GL_LIGHTING); + //glEnable(GL_DEPTH_TEST); + } + count++; glutSwapBuffers(); @@ -456,4 +463,4 @@ glutIdleFunc(Animate); glutMainLoop(); return 0; // ANSI C requires main to return int. } -*/ \ No newline at end of file +*/ diff --git a/Xcode/TemplatesForXcode/SDL OpenGL Application/atlantis/atlantis.h b/Xcode/TemplatesForXcode/SDL OpenGL Application/atlantis/atlantis.h index 6ccf2d5f0..95a774de7 100644 --- a/Xcode/TemplatesForXcode/SDL OpenGL Application/atlantis/atlantis.h +++ b/Xcode/TemplatesForXcode/SDL OpenGL Application/atlantis/atlantis.h @@ -43,7 +43,8 @@ #define WHALESPEED 250.0 -typedef struct _fishRec { +typedef struct _fishRec +{ float x, y, z, phi, theta, psi, v; float xt, yt, zt; float htail, vtail; diff --git a/Xcode/TemplatesForXcode/SDL OpenGL Application/atlantis/swim.c b/Xcode/TemplatesForXcode/SDL OpenGL Application/atlantis/swim.c index cac7b6095..e55758c59 100644 --- a/Xcode/TemplatesForXcode/SDL OpenGL Application/atlantis/swim.c +++ b/Xcode/TemplatesForXcode/SDL OpenGL Application/atlantis/swim.c @@ -35,7 +35,7 @@ * OpenGL(TM) is a trademark of Silicon Graphics, Inc. */ #include -#include /* For rand(). */ +#include /* For rand(). */ #include #include "atlantis.h" @@ -57,8 +57,10 @@ WhalePilot(fishRec * fish) fish->theta = 0.0; fish->psi -= 0.5; - fish->x += WHALESPEED * fish->v * cos(fish->psi / RAD) * cos(fish->theta / RAD); - fish->y += WHALESPEED * fish->v * sin(fish->psi / RAD) * cos(fish->theta / RAD); + fish->x += + WHALESPEED * fish->v * cos(fish->psi / RAD) * cos(fish->theta / RAD); + fish->y += + WHALESPEED * fish->v * sin(fish->psi / RAD) * cos(fish->theta / RAD); fish->z += WHALESPEED * fish->v * sin(fish->theta / RAD); } @@ -152,8 +154,10 @@ SharkPilot(fishRec * fish) } } - fish->x += SHARKSPEED * fish->v * cos(fish->psi / RAD) * cos(fish->theta / RAD); - fish->y += SHARKSPEED * fish->v * sin(fish->psi / RAD) * cos(fish->theta / RAD); + fish->x += + SHARKSPEED * fish->v * cos(fish->psi / RAD) * cos(fish->theta / RAD); + fish->y += + SHARKSPEED * fish->v * sin(fish->psi / RAD) * cos(fish->theta / RAD); fish->z += SHARKSPEED * fish->v * sin(fish->theta / RAD); } diff --git a/Xcode/TemplatesForXcode/SDL OpenGL Application/main.c b/Xcode/TemplatesForXcode/SDL OpenGL Application/main.c index b7794b3b6..24935912a 100644 --- a/Xcode/TemplatesForXcode/SDL OpenGL Application/main.c +++ b/Xcode/TemplatesForXcode/SDL OpenGL Application/main.c @@ -4,7 +4,7 @@ Please see the SDL documentation for details on using the SDL API: /Developer/Documentation/SDL/docs.html */ - + #include #include #include @@ -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 ) { - - /* 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; - } - } - + + while (!done) { + + /* 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; + } + } + // 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; } diff --git a/src/video/x11/SDL_x11gamma.c b/src/video/x11/SDL_x11gamma.c index 6db09a552..405764a8d 100644 --- a/src/video/x11/SDL_x11gamma.c +++ b/src/video/x11/SDL_x11gamma.c @@ -23,6 +23,64 @@ #include "../SDL_sysvideo.h" #include "SDL_x11video.h" +static int numCmaps = 0; + +typedef struct +{ + Display *display; + int scrNum; + XStandardColormap cmap; + Visual visual; +} cmapTableEntry; + +cmapTableEntry *cmapTable = NULL; + +void +X11_TrackColormap(Display * display, int scrNum, + XStandardColormap * cmap, Visual * visual) +{ + int i; + cmapTableEntry *newTable = NULL; + + /* only tracking DirectColor colormaps because they're the only ones + with gamma ramps */ + if (DirectColor != visual->class) { + return; + } + + /* search the table to find out if we already have this one. We only + want one entry for each display, screen number, visualid + combination */ + for (i = 0; i < numCmaps; i++) { + if (cmapTable[i].display == display && + cmapTable[i].scrNum == scrNum && + cmapTable[i].cmap.visualid == cmap->visualid) { + return; + } + } + + /* increase the table by one entry. If the table is NULL create the + first entrty */ + newTable = SDL_malloc((numCmaps + 1) * sizeof(cmapTableEntry)); + if (NULL == newTable) { + SDL_SetError("Out of memory in X11_TrackColormap()"); + return; + } + + if (NULL != cmapTable) { + SDL_memcpy(newTable, cmapTable, numCmaps * sizeof(cmapTableEntry)); + SDL_free(cmapTable); + } + cmapTable = newTable; + + cmapTable[numCmaps].display = display; + cmapTable[numCmaps].scrNum = scrNum; + SDL_memcpy(&cmapTable[numCmaps].cmap, cmap, sizeof(XStandardColormap)); + SDL_memcpy(&cmapTable[numCmaps].visual, visual, sizeof(Visual)); + + numCmaps++; +} + int X11_SetDisplayGammaRamp(_THIS, Uint16 * ramp) { diff --git a/src/video/x11/SDL_x11gamma.h b/src/video/x11/SDL_x11gamma.h index 5630fa37f..31dd4a478 100644 --- a/src/video/x11/SDL_x11gamma.h +++ b/src/video/x11/SDL_x11gamma.h @@ -24,6 +24,9 @@ #ifndef _SDL_x11gamma_h #define _SDL_x11gamma_h +extern void X11_TrackColormap(Display * display, int scrNum, + XStandardColormap * cmap, Visual * visual); + extern int X11_SetDisplayGammaRamp(_THIS, Uint16 * ramp); extern int X11_GetDisplayGammaRamp(_THIS, Uint16 * ramp); diff --git a/src/video/x11/SDL_x11window.c b/src/video/x11/SDL_x11window.c index 0f9e84814..7c99559e9 100644 --- a/src/video/x11/SDL_x11window.c +++ b/src/video/x11/SDL_x11window.c @@ -184,22 +184,27 @@ X11_CreateWindow(_THIS, SDL_Window * window) if (visual->class == DirectColor || visual->class == PseudoColor) { int nmaps; XStandardColormap *stdmaps; - int i; Bool found = False; + /* check to see if the colormap we need already exists */ if (0 != XGetRGBColormaps(data->display, RootWindow(data->display, displaydata->screen), &stdmaps, &nmaps, XA_RGB_BEST_MAP)) { + int i; for (i = 0; i < nmaps; i++) { if (stdmaps[i].visualid == visual->visualid) { xattr.colormap = stdmaps[i].colormap; + X11_TrackColormap(data->display, displaydata->screen, + &stdmaps[i], visual); found = True; break; } } XFree(stdmaps); } + + /* it doesn't exist, so create it */ if (!found) { int max = visual->map_entries - 1; XStandardColormap *cmap = @@ -207,8 +212,10 @@ X11_CreateWindow(_THIS, SDL_Window * window) visual->visualid, depth, XA_RGB_BEST_MAP, None, max, max, max); - if (cmap->visualid = visual->visualid) { + if (NULL != cmap && cmap->visualid == visual->visualid) { xattr.colormap = cmap->colormap; + X11_TrackColormap(data->display, displaydata->screen, cmap, + visual); } else { SDL_SetError ("Couldn't create window:XA_RGB_BEST_MAP not found");