]> git.mxchange.org Git - flightgear.git/commitdiff
API changes to get fullscreen mode working with SDL. It can't switch
authorandy <andy>
Tue, 6 Apr 2004 14:28:22 +0000 (14:28 +0000)
committerandy <andy>
Tue, 6 Apr 2004 14:28:22 +0000 (14:28 +0000)
modes after creating the window, so it needs a flag in
fgOSOpenWindow().

src/Main/fg_os.cxx
src/Main/fg_os.hxx
src/Main/fg_os_sdl.cxx
src/Main/main.cxx

index 81ddf0b55b81ed62c317dac01f8ad23701c74656..e7a86d81ff30797570098a80a0663595ee06c920 100644 (file)
@@ -177,7 +177,8 @@ void fgRequestRedraw()
     glutPostRedisplay();
 }
 
-void fgOSOpenWindow(int w, int h, int bpp, bool alpha, bool stencil)
+void fgOSOpenWindow(int w, int h, int bpp, bool alpha,
+                    bool stencil, bool fullscreen)
 {
     int mode = GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE;
     if(alpha) mode |= GLUT_ALPHA;
index 8d05d49cc7f52bdc5deaa0faf462b03ac5737c4b..14f9397958bef094d98464aa499a5ec613641bcc 100644 (file)
@@ -38,7 +38,8 @@ enum { KEYMOD_NONE     = 0,
 //
 
 void fgOSInit(int* argc, char** argv);
-void fgOSOpenWindow(int w, int h, int bpp, bool alpha, bool stencil);
+void fgOSOpenWindow(int w, int h, int bpp, bool alpha, bool stencil,
+                    bool fullscreen);
 void fgOSFullScreen();
 void fgOSMainLoop();
 
index 8813cad78eb49681379037f19fc57fc48e6ca424..9027ef4285d15306c78d3a67b217fa7fd6522f49 100644 (file)
@@ -57,7 +57,8 @@ void fgRegisterMouseMotionHandler(fgMouseMotionHandler func)
 //
 static void initCursors();
 
-void fgOSOpenWindow(int w, int h, int bpp, bool alpha, bool fullscreen)
+void fgOSOpenWindow(int w, int h, int bpp,
+                    bool alpha, bool stencil, bool fullscreen)
 {
     int cbits = (bpp <= 16) ?  5 :  8;
     int zbits = (bpp <= 16) ? 16 : 32;
@@ -69,11 +70,16 @@ void fgOSOpenWindow(int w, int h, int bpp, bool alpha, bool fullscreen)
     SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, cbits);
     if(alpha)
         SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 8);
+    if(stencil)
+        SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 8);
     SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, zbits);
     SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
 
     int vidmask = SDL_OPENGL;
-    if(fullscreen) vidmask |= SDL_FULLSCREEN;
+    if(fullscreen) {
+        __builtin_printf("FULLSCREEN!\n");
+        vidmask |= SDL_FULLSCREEN;
+    }
     SDL_SetVideoMode(w, h, 16, vidmask); // FIXME: handle errors
 
     SDL_WM_SetCaption("FlightGear", "FlightGear");
index bf586ccf658c01ef201b5a042877d81139f32f84..bedd2f3e1521f3f015276976ccc88c32ab46067c 100644 (file)
@@ -1534,7 +1534,8 @@ bool fgMainInit( int argc, char **argv ) {
                     fgGetInt("/sim/startup/ysize"),
                     fgGetInt("/sim/rendering/bits-per-pixel"),
                     fgGetBool("/sim/rendering/clouds3d"),
-                    get_stencil_buffer );
+                    get_stencil_buffer,
+                    fgGetBool("/sim/startup/fullscreen") );
 
     // This seems to be the absolute earliest in the init sequence
     // that these calls will return valid info.  Too bad it's after