void sdlGetCursorPos(POINT *pt)
{
- int x, y;
- SDL_GetMouseState(&x, &y);
- pt->x = x;
- pt->y = y;
+ SDL_GetMouseState(&(pt->x), &(pt->y));
}
#define GetCursorPos(x) sdlGetCursorPos(x)
#define SetCursorPos(x, y) SDL_WarpMouse(x, y)
void DrawGL (Game & game)
{
- game.DrawGLScene();
+ if ( stereomode == stereoNone ) {
+ game.DrawGLScene(stereoCenter);
+ } else {
+ game.DrawGLScene(stereoLeft);
+ game.DrawGLScene(stereoRight);
+ }
}
fprintf(stderr, "Failed to load config, creating default\n");
SaveSettings(game);
}
-
if(kBitsPerPixel!=32&&kBitsPerPixel!=16){
kBitsPerPixel=16;
}
SDL_ShowCursor(0);
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
-
+ SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 1);
+
if (SDL_SetVideoMode(kContextWidth, kContextHeight, 0, sdlflags) == NULL)
{
fprintf(stderr, "SDL_SetVideoMode() failed: %s\n", SDL_GetError());
glDisable( GL_FOG);
glDisable( GL_LIGHTING);
glDisable( GL_LOGIC_OP);
- glDisable( GL_STENCIL_TEST);
glDisable( GL_TEXTURE_1D);
glDisable( GL_TEXTURE_2D);
glPixelTransferi( GL_MAP_COLOR, GL_FALSE);
game.newscreenwidth=screenwidth;
game.newscreenheight=screenheight;
+ if ( CanInitStereo(stereomode) ) {
+ InitStereo(stereomode);
+ } else {
+ fprintf(stderr, "Failed to initialize stereo, disabling.\n");
+ stereomode = stereoNone;
+ }
+
game.InitGame();
return true;
deltaTime /= 1000.0;
multiplier=deltaTime;
- if(multiplier<.001)multiplier=.001;
- if(multiplier>10)multiplier=10;
- if(update)frametime = currTime; // reset for next time interval
+ if(multiplier<.001) multiplier=.001;
+ if(multiplier>10) multiplier=10;
+ if(update) frametime = currTime; // reset for next time interval
deltaTime = (float) AbsoluteDeltaToDuration (currTime, time);
}
// game is not in focus, give CPU time to other apps by waiting for messages instead of 'peeking'
- STUBBED("give up CPU but sniff the event queue");
+ SDL_ActiveEvent evt;
+ SDL_WaitEvent((SDL_Event*)&evt);
+ if (evt.type == SDL_ACTIVEEVENT && evt.gain == 1)
+ gameFocused = true;
+ else if (evt.type == SDL_QUIT)
+ gDone = true;
}
}
bool LoadImage(const char * fname, TGAImageRec & tex)
{
- bool res = true;
-
if ( tex.data == NULL )
- {
return false;
- }
-
-
- res = load_image(fname, tex);
-
-
- return res;
+ else
+ return load_image(fname, tex);
}
void ScreenShot(const char * fname)
{
-
save_image(fname);
-
}