summaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2011-02-19 11:48:54 +0200
committerPerttu Ahola <celeron55@gmail.com>2011-02-19 11:48:54 +0200
commitf5ff378dd02431cdcf658b210509b170ea2135d1 (patch)
treefce642594b88a289e1b61564ad54759be7444075 /src/main.cpp
parent4c2b9ed516e3109d5c74a37c9479a516beae4f50 (diff)
downloadminetest-f5ff378dd02431cdcf658b210509b170ea2135d1.tar.gz
minetest-f5ff378dd02431cdcf658b210509b170ea2135d1.tar.bz2
minetest-f5ff378dd02431cdcf658b210509b170ea2135d1.zip
video backend selection
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp39
1 files changed, 25 insertions, 14 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 11ae9985c..2754c324b 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1723,30 +1723,41 @@ int main(int argc, char *argv[])
std::string playername = g_settings.get("name");
- /*
- Resolution selection
- */
+ // Resolution selection
bool fullscreen = false;
u16 screenW = g_settings.getU16("screenW");
u16 screenH = g_settings.getU16("screenH");
- //
-
- MyEventReceiver receiver;
+ // Determine driver
video::E_DRIVER_TYPE driverType;
-
-#ifdef _WIN32
- //driverType = video::EDT_DIRECT3D9;
- driverType = video::EDT_OPENGL;
-#else
- driverType = video::EDT_OPENGL;
- //driverType = video::EDT_BURNINGSVIDEO; // Best software renderer
-#endif
+
+ std::string driverstring = g_settings.get("video_driver");
+
+ if(driverstring == "null")
+ driverType = video::EDT_NULL;
+ else if(driverstring == "software")
+ driverType = video::EDT_SOFTWARE;
+ else if(driverstring == "burningsvideo")
+ driverType = video::EDT_BURNINGSVIDEO;
+ else if(driverstring == "direct3d8")
+ driverType = video::EDT_DIRECT3D8;
+ else if(driverstring == "direct3d9")
+ driverType = video::EDT_DIRECT3D9;
+ else if(driverstring == "opengl")
+ driverType = video::EDT_OPENGL;
+ else
+ {
+ dstream<<"WARNING: Invalid video_driver specified; defaulting "
+ "to opengl"<<std::endl;
+ driverType = video::EDT_OPENGL;
+ }
// create device and exit if creation failed
+ MyEventReceiver receiver;
+
IrrlichtDevice *device;
device = createDevice(driverType,
core::dimension2d<u32>(screenW, screenH),