diff --git a/neo/renderer/RenderSystem_init.cpp b/neo/renderer/RenderSystem_init.cpp index 73a44f7c..f14bb059 100644 --- a/neo/renderer/RenderSystem_init.cpp +++ b/neo/renderer/RenderSystem_init.cpp @@ -59,6 +59,7 @@ idCVar r_multiSamples( "r_multiSamples", "0", CVAR_RENDERER | CVAR_ARCHIVE | CVA idCVar r_mode( "r_mode", "5", CVAR_ARCHIVE | CVAR_RENDERER | CVAR_INTEGER, "video mode number" ); idCVar r_displayRefresh( "r_displayRefresh", "0", CVAR_RENDERER | CVAR_INTEGER | CVAR_NOCHEAT, "optional display refresh rate option for vid mode", 0.0f, 200.0f ); idCVar r_fullscreen( "r_fullscreen", "0", CVAR_RENDERER | CVAR_ARCHIVE | CVAR_BOOL, "0 = windowed, 1 = full screen" ); +idCVar r_fullscreenDesktop( "r_fullscreenDesktop", "0", CVAR_RENDERER | CVAR_ARCHIVE | CVAR_BOOL, "0: 'real' fullscreen mode 1: keep resolution 'desktop' fullscreen mode" ); idCVar r_customWidth( "r_customWidth", "720", CVAR_RENDERER | CVAR_ARCHIVE | CVAR_INTEGER, "custom screen width. set r_mode to -1 to activate" ); idCVar r_customHeight( "r_customHeight", "486", CVAR_RENDERER | CVAR_ARCHIVE | CVAR_INTEGER, "custom screen height. set r_mode to -1 to activate" ); idCVar r_singleTriangle( "r_singleTriangle", "0", CVAR_RENDERER | CVAR_BOOL, "only draw a single triangle per primitive" ); diff --git a/neo/renderer/tr_local.h b/neo/renderer/tr_local.h index 06f5f428..f2a4d659 100644 --- a/neo/renderer/tr_local.h +++ b/neo/renderer/tr_local.h @@ -814,6 +814,7 @@ extern glconfig_t glConfig; // outside of TR since it shouldn't be cleared du extern idCVar r_mode; // video mode number extern idCVar r_displayRefresh; // optional display refresh rate option for vid mode extern idCVar r_fullscreen; // 0 = windowed, 1 = full screen +extern idCVar r_fullscreenDesktop; // 0: 'real' fullscreen mode 1: keep resolution 'desktop' fullscreen mode extern idCVar r_multiSamples; // number of antialiasing samples extern idCVar r_ignore; // used for random debugging without defining new vars diff --git a/neo/sys/glimp.cpp b/neo/sys/glimp.cpp index 337dfc86..edbb580e 100644 --- a/neo/sys/glimp.cpp +++ b/neo/sys/glimp.cpp @@ -97,8 +97,15 @@ bool GLimp_Init(glimpParms_t parms) { Uint32 flags = SDL_WINDOW_OPENGL; - if (parms.fullScreen) - flags |= SDL_WINDOW_FULLSCREEN; + if (parms.fullScreen == 1) + { +#if SDL_VERSION_ATLEAST(2, 0, 0) + if(r_fullscreenDesktop.GetBool()) + flags |= SDL_WINDOW_FULLSCREEN_DESKTOP; + else +#endif + flags |= SDL_WINDOW_FULLSCREEN; + } int colorbits = 24; int depthbits = 24;