mirror of
https://github.com/blupi-games/planetblupi
synced 2024-12-30 10:15:36 +01:00
Add a way to change the driver used by the accelerated renderer
This commit is contained in:
parent
648233b470
commit
54d7eec1a3
@ -78,6 +78,7 @@ enum Settings {
|
|||||||
SETTING_TIMERINTERVAL = 1 << 2,
|
SETTING_TIMERINTERVAL = 1 << 2,
|
||||||
SETTING_RENDERER = 1 << 3,
|
SETTING_RENDERER = 1 << 3,
|
||||||
SETTING_ZOOM = 1 << 4,
|
SETTING_ZOOM = 1 << 4,
|
||||||
|
SETTING_DRIVER = 1 << 5,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int g_settingsOverload = 0;
|
static int g_settingsOverload = 0;
|
||||||
@ -177,6 +178,16 @@ ReadConfig ()
|
|||||||
g_rendererType = SDL_RENDERER_ACCELERATED;
|
g_rendererType = SDL_RENDERER_ACCELERATED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
!(g_settingsOverload & SETTING_DRIVER) && j.find ("driver") != j.end () &&
|
||||||
|
(!g_rendererType || g_rendererType == SDL_RENDERER_ACCELERATED))
|
||||||
|
{
|
||||||
|
if (j["driver"] == "direct3d")
|
||||||
|
SDL_SetHint (SDL_HINT_RENDER_DRIVER, "direct3d");
|
||||||
|
else if (j["driver"] == "opengl")
|
||||||
|
SDL_SetHint (SDL_HINT_RENDER_DRIVER, "opengl");
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -570,6 +581,11 @@ parseArgs (int argc, char * argv[], bool & exit)
|
|||||||
{"-r", "--renderer"},
|
{"-r", "--renderer"},
|
||||||
"set a renderer [auto;software;accelerated] (default: auto)",
|
"set a renderer [auto;software;accelerated] (default: auto)",
|
||||||
1},
|
1},
|
||||||
|
{"driver",
|
||||||
|
{"-d", "--driver"},
|
||||||
|
"set a driver [auto;direct3d;opengl] (default: auto, ignored with "
|
||||||
|
"software renderer)",
|
||||||
|
1},
|
||||||
{"enablerecorder",
|
{"enablerecorder",
|
||||||
{"-c", "--enable-recorder"},
|
{"-c", "--enable-recorder"},
|
||||||
"enable the recorder feature (F3/F4)",
|
"enable the recorder feature (F3/F4)",
|
||||||
@ -648,6 +664,17 @@ parseArgs (int argc, char * argv[], bool & exit)
|
|||||||
g_settingsOverload |= SETTING_RENDERER;
|
g_settingsOverload |= SETTING_RENDERER;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
args["driver"] &&
|
||||||
|
(!g_rendererType || g_rendererType == SDL_RENDERER_ACCELERATED))
|
||||||
|
{
|
||||||
|
if (args["driver"].as<std::string> () == "direct3d")
|
||||||
|
SDL_SetHint (SDL_HINT_RENDER_DRIVER, "direct3d");
|
||||||
|
else if (args["driver"].as<std::string> () == "opengl")
|
||||||
|
SDL_SetHint (SDL_HINT_RENDER_DRIVER, "opengl");
|
||||||
|
g_settingsOverload |= SETTING_DRIVER;
|
||||||
|
}
|
||||||
|
|
||||||
if (args["enablerecorder"])
|
if (args["enablerecorder"])
|
||||||
g_enableRecorder = true;
|
g_enableRecorder = true;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user