summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2012-10-28 19:42:17 +0300
committerAndrei Karas <akaras@inbox.ru>2012-10-28 23:13:01 +0300
commita5922daffebf5d78936cf248a7a6a8bfc86c026c (patch)
tree97b30d52dd6071942259a3fddbe2b2f5f727594f
parentd0832a59dad69f72b514b87e380017ad3f14dfc6 (diff)
downloadmanaplus-a5922daffebf5d78936cf248a7a6a8bfc86c026c.tar.gz
manaplus-a5922daffebf5d78936cf248a7a6a8bfc86c026c.tar.bz2
manaplus-a5922daffebf5d78936cf248a7a6a8bfc86c026c.tar.xz
manaplus-a5922daffebf5d78936cf248a7a6a8bfc86c026c.zip
Done select always best resolution under Android.
Select it only if current resolution incorrect.
-rw-r--r--src/graphicsmanager.cpp30
-rw-r--r--src/gui/setup_video.cpp2
2 files changed, 25 insertions, 7 deletions
diff --git a/src/graphicsmanager.cpp b/src/graphicsmanager.cpp
index 5abd85297..655040aab 100644
--- a/src/graphicsmanager.cpp
+++ b/src/graphicsmanager.cpp
@@ -277,14 +277,30 @@ void GraphicsManager::setVideoMode()
getAllVideoModes(videoModes);
if (!videoModes.empty())
{
- std::string str = videoModes[0];
- std::vector<int> res;
- splitToIntVector(res, videoModes[0], 'x');
- if (res.size() == 2)
+ bool found(false);
+ std::string str = strprintf("%dx%d", width, height);
+ for (StringVectCIter it = videoModes.begin(), it_end = videoModes.end();
+ it != it_end; ++ it)
{
- width = res[0];
- height = res[1];
- logger->log("Autoselect mode %dx%d", width, height);
+ if (str == *it)
+ {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found)
+ {
+ logger->log("Current resolution %s is incorrect.", str.c_str());
+ str = videoModes[0];
+ std::vector<int> res;
+ splitToIntVector(res, videoModes[0], 'x');
+ if (res.size() == 2)
+ {
+ width = res[0];
+ height = res[1];
+ logger->log("Autoselect mode %dx%d", width, height);
+ }
}
}
#endif
diff --git a/src/gui/setup_video.cpp b/src/gui/setup_video.cpp
index 0188eb6b7..cb3514459 100644
--- a/src/gui/setup_video.cpp
+++ b/src/gui/setup_video.cpp
@@ -133,6 +133,7 @@ static bool modeSorter(std::string mode1, std::string mode2)
ModeListModel::ModeListModel()
{
graphicsManager.getAllVideoModes(mVideoModes);
+#ifndef ANDROID
addCustomMode("640x480");
addCustomMode("800x600");
addCustomMode("1024x768");
@@ -144,6 +145,7 @@ ModeListModel::ModeListModel()
std::sort(mVideoModes.begin(), mVideoModes.end(), modeSorter);
mVideoModes.push_back("custom");
+#endif
}
void ModeListModel::addCustomMode(std::string mode)