diff options
author | Craig Robbins <kde.psych@gmail.com> | 2015-03-28 11:05:39 +1000 |
---|---|---|
committer | Craig Robbins <kde.psych@gmail.com> | 2015-03-28 13:26:03 +1000 |
commit | 2430b2e9981a56a4c407dc835ee74e7862e785f3 (patch) | |
tree | c4d580982780c4b4ad5de6b2d6221a367d3e23c0 /src/porting.cpp | |
parent | 3ef0b4e6379944ec7e3ccbfc7fe26ab7f9158fc9 (diff) | |
download | minetest-2430b2e9981a56a4c407dc835ee74e7862e785f3.tar.gz minetest-2430b2e9981a56a4c407dc835ee74e7862e785f3.tar.bz2 minetest-2430b2e9981a56a4c407dc835ee74e7862e785f3.zip |
Add Lua function get_video_modes() for main menu
Also updates and uses porting::getSupportedVideoModes()
Diffstat (limited to 'src/porting.cpp')
-rw-r--r-- | src/porting.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/porting.cpp b/src/porting.cpp index 5b0de1305..797a2cf39 100644 --- a/src/porting.cpp +++ b/src/porting.cpp @@ -570,16 +570,20 @@ void setXorgClassHint(const video::SExposedVideoData &video_data, } #ifndef SERVER + v2u32 getWindowSize() { return device->getVideoDriver()->getScreenSize(); } -std::vector<core::vector3d<u32> > getVideoModes() +std::vector<core::vector3d<u32> > getSupportedVideoModes() { + IrrlichtDevice *nulldevice = createDevice(video::EDT_NULL); + sanity_check(nulldevice != NULL); + std::vector<core::vector3d<u32> > mlist; - video::IVideoModeList *modelist = device->getVideoModeList(); + video::IVideoModeList *modelist = nulldevice->getVideoModeList(); u32 num_modes = modelist->getVideoModeCount(); for (u32 i = 0; i != num_modes; i++) { @@ -588,6 +592,8 @@ std::vector<core::vector3d<u32> > getVideoModes() mlist.push_back(core::vector3d<u32>(mode_res.Width, mode_res.Height, mode_depth)); } + nulldevice->drop(); + return mlist; } |