From 3b1c3ac678157a1b7b7c17769499bec53868c9a9 Mon Sep 17 00:00:00 2001 From: Kahrl Date: Thu, 9 May 2013 15:53:29 +0200 Subject: [PATCH] Add --videomodes option to show available video modes --- doc/minetest.6 | 3 +++ src/main.cpp | 59 ++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 60 insertions(+), 2 deletions(-) diff --git a/doc/minetest.6 b/doc/minetest.6 index b3fdd94d..64dfdd14 100644 --- a/doc/minetest.6 +++ b/doc/minetest.6 @@ -61,6 +61,9 @@ Run dedicated server \-\-speedtests Run speed tests .TP +\-\-videomodes +List available video modes +.TP \-\-info Print more information to console .TP diff --git a/src/main.cpp b/src/main.cpp index f2ff88c0..b87a3e6d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -936,6 +936,8 @@ int main(int argc, char *argv[]) allowed_options.insert(std::make_pair("gameid", ValueSpec(VALUETYPE_STRING, _("Set gameid (\"--gameid list\" prints available ones)")))); #ifndef SERVER + allowed_options.insert(std::make_pair("videomodes", ValueSpec(VALUETYPE_FLAG, + _("Show available video modes")))); allowed_options.insert(std::make_pair("speedtests", ValueSpec(VALUETYPE_FLAG, _("Run speed tests")))); allowed_options.insert(std::make_pair("address", ValueSpec(VALUETYPE_STRING, @@ -1035,7 +1037,7 @@ int main(int argc, char *argv[]) print_worldspecs(worldspecs, dstream); return 0; } - + // Print startup message infostream<(640, 480); + params.Bits = 24; + params.AntiAlias = fsaa; + params.Fullscreen = false; + params.Stencilbuffer = false; + params.Vsync = vsync; + params.EventReceiver = &receiver; + + nulldevice = createDeviceEx(params); + + if(nulldevice == 0) + return 1; + + dstream<<_("Available video modes (WxHxD):")<getVideoModeList(); + + if(videomode_list == 0){ + nulldevice->drop(); + return 1; + } + + s32 videomode_count = videomode_list->getVideoModeCount(); + core::dimension2d videomode_res; + s32 videomode_depth; + for (s32 i = 0; i < videomode_count; ++i){ + videomode_res = videomode_list->getVideoModeResolution(i); + videomode_depth = videomode_list->getVideoModeDepth(i); + dstream<getDesktopResolution(); + videomode_depth = videomode_list->getDesktopDepth(); + dstream<drop(); + + return 0; + } + + /* + Create device and exit if creation failed + */ + IrrlichtDevice *device; SIrrlichtCreationParameters params = SIrrlichtCreationParameters(); -- 2.30.2