Add --videomodes option to show available video modes
parent
3332f606ed
commit
3b1c3ac678
|
@ -61,6 +61,9 @@ Run dedicated server
|
||||||
\-\-speedtests
|
\-\-speedtests
|
||||||
Run speed tests
|
Run speed tests
|
||||||
.TP
|
.TP
|
||||||
|
\-\-videomodes
|
||||||
|
List available video modes
|
||||||
|
.TP
|
||||||
\-\-info
|
\-\-info
|
||||||
Print more information to console
|
Print more information to console
|
||||||
.TP
|
.TP
|
||||||
|
|
57
src/main.cpp
57
src/main.cpp
|
@ -936,6 +936,8 @@ int main(int argc, char *argv[])
|
||||||
allowed_options.insert(std::make_pair("gameid", ValueSpec(VALUETYPE_STRING,
|
allowed_options.insert(std::make_pair("gameid", ValueSpec(VALUETYPE_STRING,
|
||||||
_("Set gameid (\"--gameid list\" prints available ones)"))));
|
_("Set gameid (\"--gameid list\" prints available ones)"))));
|
||||||
#ifndef SERVER
|
#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,
|
allowed_options.insert(std::make_pair("speedtests", ValueSpec(VALUETYPE_FLAG,
|
||||||
_("Run speed tests"))));
|
_("Run speed tests"))));
|
||||||
allowed_options.insert(std::make_pair("address", ValueSpec(VALUETYPE_STRING,
|
allowed_options.insert(std::make_pair("address", ValueSpec(VALUETYPE_STRING,
|
||||||
|
@ -1415,11 +1417,64 @@ int main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Create device and exit if creation failed
|
List video modes if requested
|
||||||
*/
|
*/
|
||||||
|
|
||||||
MyEventReceiver receiver;
|
MyEventReceiver receiver;
|
||||||
|
|
||||||
|
if(cmd_args.getFlag("videomodes")){
|
||||||
|
IrrlichtDevice *nulldevice;
|
||||||
|
|
||||||
|
SIrrlichtCreationParameters params = SIrrlichtCreationParameters();
|
||||||
|
params.DriverType = video::EDT_NULL;
|
||||||
|
params.WindowSize = core::dimension2d<u32>(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):")<<std::endl;
|
||||||
|
|
||||||
|
video::IVideoModeList *videomode_list =
|
||||||
|
nulldevice->getVideoModeList();
|
||||||
|
|
||||||
|
if(videomode_list == 0){
|
||||||
|
nulldevice->drop();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 videomode_count = videomode_list->getVideoModeCount();
|
||||||
|
core::dimension2d<u32> 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<<videomode_res.Width<<"x"<<videomode_res.Height
|
||||||
|
<<"x"<<videomode_depth<<std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
dstream<<_("Active video mode (WxHxD):")<<std::endl;
|
||||||
|
videomode_res = videomode_list->getDesktopResolution();
|
||||||
|
videomode_depth = videomode_list->getDesktopDepth();
|
||||||
|
dstream<<videomode_res.Width<<"x"<<videomode_res.Height
|
||||||
|
<<"x"<<videomode_depth<<std::endl;
|
||||||
|
|
||||||
|
nulldevice->drop();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Create device and exit if creation failed
|
||||||
|
*/
|
||||||
|
|
||||||
IrrlichtDevice *device;
|
IrrlichtDevice *device;
|
||||||
|
|
||||||
SIrrlichtCreationParameters params = SIrrlichtCreationParameters();
|
SIrrlichtCreationParameters params = SIrrlichtCreationParameters();
|
||||||
|
|
Loading…
Reference in New Issue