diff --git a/mk/linux/configuration.xml b/mk/linux/configuration.xml index 160e5e7d..780f8b63 100644 --- a/mk/linux/configuration.xml +++ b/mk/linux/configuration.xml @@ -215,6 +215,16 @@ shadows and shadow mapping, bigger sizes result in less pixelized shadows but ar + + + + + + + + + + diff --git a/source/glest_game/main/program.cpp b/source/glest_game/main/program.cpp index 46f74926..21d53488 100644 --- a/source/glest_game/main/program.cpp +++ b/source/glest_game/main/program.cpp @@ -319,6 +319,13 @@ void Program::setDisplaySettings(){ int screenWidth= config.getInt("ScreenWidth"); int screenHeight= config.getInt("ScreenHeight"); + if(config.getBool("AutoMaxFullScreen","false") == true) { + getFullscreenVideoInfo(colorBits,screenWidth,screenHeight); + config.setInt("ColorBits",colorBits); + config.setInt("ScreenWidth",screenWidth); + config.setInt("ScreenHeight",screenHeight); + } + if(!(changeVideoMode(screenWidth, screenHeight, colorBits, freq) || changeVideoMode(screenWidth, screenHeight, colorBits, 0))) { diff --git a/source/shared_lib/include/platform/sdl/platform_util.h b/source/shared_lib/include/platform/sdl/platform_util.h index 5dd43ce1..9813dc0e 100644 --- a/source/shared_lib/include/platform/sdl/platform_util.h +++ b/source/shared_lib/include/platform/sdl/platform_util.h @@ -97,6 +97,7 @@ vector > getFolderTreeContentsCheckSumListRecursively(co void createDirectoryPaths(string Path); string extractDirectoryPathFromFile(string filename); +void getFullscreenVideoInfo(int &colorBits,int &screenWidth,int &screenHeight); bool changeVideoMode(int resH, int resW, int colorBits, int refreshFrequency); void restoreVideoMode(); diff --git a/source/shared_lib/sources/platform/sdl/platform_util.cpp b/source/shared_lib/sources/platform/sdl/platform_util.cpp index c540edc1..1fb1241e 100644 --- a/source/shared_lib/sources/platform/sdl/platform_util.cpp +++ b/source/shared_lib/sources/platform/sdl/platform_util.cpp @@ -435,6 +435,14 @@ void createDirectoryPaths(string Path) mkdir(DirName, S_IRWXO); } +void getFullscreenVideoInfo(int &colorBits,int &screenWidth,int &screenHeight) { + // Get the current video hardware information + const SDL_VideoInfo* vidInfo = SDL_GetVideoInfo(); + colorBits = vidInfo->vfmt->BitsPerPixel; + screenWidth = vidInfo->current_w; + screenHeight = vidInfo->current_h; +} + bool changeVideoMode(int resW, int resH, int colorBits, int ) { Private::shouldBeFullscreen = true; return true; diff --git a/source/shared_lib/sources/platform/win32/platform_util.cpp b/source/shared_lib/sources/platform/win32/platform_util.cpp index cb68b8f6..8738ce22 100644 --- a/source/shared_lib/sources/platform/win32/platform_util.cpp +++ b/source/shared_lib/sources/platform/win32/platform_util.cpp @@ -23,6 +23,7 @@ #include #include #include +#include "opengl.h" #include "leak_dumper.h" @@ -452,6 +453,14 @@ void createDirectoryPaths(string Path) } _mkdir(DirName); } + +void getFullscreenVideoInfo(int &colorBits,int &screenWidth,int &screenHeight) { + // Get the current video hardware information + const SDL_VideoInfo* vidInfo = SDL_GetVideoInfo(); + colorBits = vidInfo->vfmt->BitsPerPixel; + screenWidth = vidInfo->current_w; + screenHeight = vidInfo->current_h; +} bool changeVideoMode(int resW, int resH, int colorBits, int refreshFrequency){ DEVMODE devMode;