summaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
authorkwolekr <kwolekr@minetest.net>2015-01-18 13:14:25 -0500
committerkwolekr <kwolekr@minetest.net>2015-01-18 13:24:25 -0500
commit976d0b2caa3f69c0b7c40e98517073e08e87774d (patch)
tree8af2e586e32eed924e42e8d5aab6a33737fc6a18 /src/main.cpp
parent44e4f5ab6e20689f7106b957de62a1d7737cb28f (diff)
downloadminetest-976d0b2caa3f69c0b7c40e98517073e08e87774d.tar.gz
minetest-976d0b2caa3f69c0b7c40e98517073e08e87774d.tar.bz2
minetest-976d0b2caa3f69c0b7c40e98517073e08e87774d.zip
Reorganize supported video driver query mechanisms
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp37
1 files changed, 11 insertions, 26 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 8c4cab4e4..173050fed 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1998,22 +1998,6 @@ void ClientLauncher::main_menu(MainMenuData *menudata)
bool ClientLauncher::create_engine_device(int log_level)
{
- static const char *driverids[] = {
- "null",
- "software",
- "burningsvideo",
- "direct3d8",
- "direct3d9",
- "opengl"
-#ifdef _IRR_COMPILE_WITH_OGLES1_
- ,"ogles1"
-#endif
-#ifdef _IRR_COMPILE_WITH_OGLES2_
- ,"ogles2"
-#endif
- ,"invalid"
- };
-
static const irr::ELOG_LEVEL irr_log_level[5] = {
ELL_NONE,
ELL_ERROR,
@@ -2038,20 +2022,21 @@ bool ClientLauncher::create_engine_device(int log_level)
// Determine driver
video::E_DRIVER_TYPE driverType = video::EDT_OPENGL;
-
std::string driverstring = g_settings->get("video_driver");
- for (size_t i = 0; i < sizeof driverids / sizeof driverids[0]; i++) {
- if (strcasecmp(driverstring.c_str(), driverids[i]) == 0) {
- driverType = (video::E_DRIVER_TYPE) i;
- break;
- }
-
- if (strcasecmp("invalid", driverids[i]) == 0) {
- errorstream << "WARNING: Invalid video_driver specified;"
- << " defaulting to opengl" << std::endl;
+ std::vector<video::E_DRIVER_TYPE> drivers
+ = porting::getSupportedVideoDrivers();
+ u32 i;
+ for (i = 0; i != drivers.size(); i++) {
+ if (!strcasecmp(driverstring.c_str(),
+ porting::getVideoDriverName(drivers[i]))) {
+ driverType = drivers[i];
break;
}
}
+ if (i == drivers.size()) {
+ errorstream << "Invalid video_driver specified; "
+ "defaulting to opengl" << std::endl;
+ }
SIrrlichtCreationParameters params = SIrrlichtCreationParameters();
params.DriverType = driverType;