/* =================== GLimp_SetScreenParms =================== */ bool GLimp_SetScreenParms( glimpParms_t parms ) { if( parms.fullScreen > 0 || parms.fullScreen == -2 ) { if( !SetScreenParmsFullscreen( parms ) ) return false; } else if( parms.fullScreen == 0 ) // windowed mode { if( !SetScreenParmsWindowed( parms ) ) return false; } else { common->Warning( "GLimp_SetScreenParms: fullScreen -1 (borderless window for multiple displays) currently unsupported!" ); return false; } SDL_GL_SetAttribute( SDL_GL_STEREO, parms.stereo ? 1 : 0 ); SDL_GL_SetAttribute( SDL_GL_MULTISAMPLEBUFFERS, parms.multiSamples ? 1 : 0 ); SDL_GL_SetAttribute( SDL_GL_MULTISAMPLESAMPLES, parms.multiSamples ); glConfig.isFullscreen = parms.fullScreen; glConfig.vidWidth = parms.width; glConfig.vidHeight = parms.height; glConfig.displayFrequency = parms.displayHz; return true; }
/* =================== GLimp_SetScreenParms =================== */ bool GLimp_SetScreenParms( glimpParms_t parms ) { #if SDL_VERSION_ATLEAST(2, 0, 0) if( parms.fullScreen > 0 || parms.fullScreen == -2 ) { if( !SetScreenParmsFullscreen( parms ) ) return false; } else if( parms.fullScreen == 0 ) // windowed mode { if( !SetScreenParmsWindowed( parms ) ) return false; } else { common->Warning( "GLimp_SetScreenParms: fullScreen -1 (borderless window for multiple displays) currently unsupported!" ); return false; } #else // SDL 1.2 - so much shorter, but doesn't handle multiple displays SDL_Surface* s = SDL_GetVideoSurface(); if( s == NULL ) { common->Warning( "GLimp_SetScreenParms: Couldn't get video information, reason: %s", SDL_GetError() ); return false; } int bitsperpixel = 24; if( s->format ) bitsperpixel = s->format->BitsPerPixel; Uint32 flags = s->flags; if( parms.fullScreen ) flags |= SDL_FULLSCREEN; else flags &= ~SDL_FULLSCREEN; s = SDL_SetVideoMode( parms.width, parms.height, bitsperpixel, flags ); if( s == NULL ) { common->Warning( "GLimp_SetScreenParms: Couldn't set video information, reason: %s", SDL_GetError() ); return false; } #endif // SDL_VERSION_ATLEAST(2, 0, 0) // Note: the following stuff would also work with SDL1.2 SDL_GL_SetAttribute( SDL_GL_STEREO, parms.stereo ? 1 : 0 ); SDL_GL_SetAttribute( SDL_GL_MULTISAMPLEBUFFERS, parms.multiSamples ? 1 : 0 ); SDL_GL_SetAttribute( SDL_GL_MULTISAMPLESAMPLES, parms.multiSamples ); glConfig.isFullscreen = parms.fullScreen; glConfig.isStereoPixelFormat = parms.stereo; glConfig.nativeScreenWidth = parms.width; glConfig.nativeScreenHeight = parms.height; glConfig.displayFrequency = parms.displayHz; glConfig.multisamples = parms.multiSamples; return true; }