summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-06-14 16:31:01 +0300
committerAndrei Karas <akaras@inbox.ru>2014-06-14 16:36:05 +0300
commit51a88d35e9b5e473eae80916a894ee95dc0e05d8 (patch)
treede206d344459c96cc5bc8ca3c9a863299922c63b /src
parent75402569f455321e5fd078a57c35b2032a3bdbaf (diff)
downloadmanaplus-51a88d35e9b5e473eae80916a894ee95dc0e05d8.tar.gz
manaplus-51a88d35e9b5e473eae80916a894ee95dc0e05d8.tar.bz2
manaplus-51a88d35e9b5e473eae80916a894ee95dc0e05d8.tar.xz
manaplus-51a88d35e9b5e473eae80916a894ee95dc0e05d8.zip
Add --renderer command flag to override renderer
Diffstat (limited to 'src')
-rw-r--r--src/graphicsmanager.cpp7
-rw-r--r--src/main.cpp8
-rw-r--r--src/options.h2
3 files changed, 15 insertions, 2 deletions
diff --git a/src/graphicsmanager.cpp b/src/graphicsmanager.cpp
index 257d4233e..938c0ccf1 100644
--- a/src/graphicsmanager.cpp
+++ b/src/graphicsmanager.cpp
@@ -254,7 +254,12 @@ void GraphicsManager::createRenderers()
{
RenderType useOpenGL = RENDER_SOFTWARE;
if (!settings.options.noOpenGL)
- useOpenGL = intToRenderType(config.getIntValue("opengl"));
+ {
+ if (settings.options.renderer < 0)
+ useOpenGL = intToRenderType(config.getIntValue("opengl"));
+ else
+ useOpenGL = intToRenderType(settings.options.renderer);
+ }
// Setup image loading for the right image format
ImageHelper::setOpenGlMode(useOpenGL);
diff --git a/src/main.cpp b/src/main.cpp
index 23ad034fc..7fc00918f 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -127,6 +127,8 @@ static void printHelp()
// TRANSLATORS: command line help
<< _(" --safemode : Start game in safe mode") << std::endl
// TRANSLATORS: command line help
+ << _(" --renderer : Set renderer type") << std::endl
+ // TRANSLATORS: command line help
<< _(" -T --tests : Start testing drivers and "
"auto configuring") << std::endl
#ifdef USE_OPENGL
@@ -144,7 +146,7 @@ static void printVersion()
static void parseOptions(const int argc, char *const argv[])
{
- const char *const optstring = "hvud:U:P:Dc:p:l:L:C:s:t:T:a";
+ const char *const optstring = "hvud:U:P:Dc:p:l:L:C:s:t:T:a:r";
const struct option long_options[] =
{
@@ -168,6 +170,7 @@ static void parseOptions(const int argc, char *const argv[])
{ "safemode", no_argument, nullptr, 'm' },
{ "tests", no_argument, nullptr, 'T' },
{ "test", required_argument, nullptr, 't' },
+ { "renderer", required_argument, nullptr, 'r' },
{ nullptr, 0, nullptr, 0 }
};
@@ -250,6 +253,9 @@ static void parseOptions(const int argc, char *const argv[])
options.testMode = true;
options.test = std::string(optarg);
break;
+ case 'r':
+ options.renderer = static_cast<int>(atoi(optarg));
+ break;
default:
break;
}
diff --git a/src/options.h b/src/options.h
index ebd9069a8..def02200b 100644
--- a/src/options.h
+++ b/src/options.h
@@ -54,6 +54,7 @@ struct Options final
screenshotDir(),
test(),
serverName(),
+ renderer(-1),
serverPort(0),
printHelp(false),
printVersion(false),
@@ -78,6 +79,7 @@ struct Options final
std::string screenshotDir;
std::string test;
std::string serverName;
+ int renderer;
uint16_t serverPort;
bool printHelp;
bool printVersion;