summaryrefslogtreecommitdiff
path: root/src/porting.cpp
diff options
context:
space:
mode:
authorCraig Robbins <kde.psych@gmail.com>2015-03-28 11:05:39 +1000
committerCraig Robbins <kde.psych@gmail.com>2015-03-28 13:26:03 +1000
commit2430b2e9981a56a4c407dc835ee74e7862e785f3 (patch)
treec4d580982780c4b4ad5de6b2d6221a367d3e23c0 /src/porting.cpp
parent3ef0b4e6379944ec7e3ccbfc7fe26ab7f9158fc9 (diff)
downloadminetest-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.cpp10
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;
}