diff options
-rw-r--r-- | minetest.conf.example | 19 | ||||
-rw-r--r-- | src/defaultsettings.cpp | 1 | ||||
-rw-r--r-- | src/main.cpp | 39 |
3 files changed, 42 insertions, 17 deletions
diff --git a/minetest.conf.example b/minetest.conf.example index edf43e889..eb17ebc74 100644 --- a/minetest.conf.example +++ b/minetest.conf.example @@ -7,7 +7,9 @@ # By default, all the settings are commented and not functional. # Uncomment settings by removing the preceding #. +# # Client side stuff +# #wanted_fps = 30 #fps_max = 60 @@ -19,17 +21,28 @@ #address = kray.dy.fi #name = -#random_input = false -#client_delete_unused_sectors_timeout = 1200 - +# Whether to try to fog out the border of the visible area #enable_fog = true +# Enable a bit lower water surface; disable for speed #new_style_water = true +# Enable nice leaves; disable for speed #new_style_leaves = true +# Whether to draw a frametime graph #frametime_graph = false +# Enable combining mainly used textures to a bigger one #enable_texture_atlas = true +# Path to texture directory #texture_path = +# Possible values: null, software, burningsvideo, direct3d8, direct3d9, opengl +#video_driver = opengl +# +#random_input = false +#client_delete_unused_sectors_timeout = 1200 + +# # Server side stuff +# #map-dir = /home/palle/custom_map diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index 72f63d9fb..a456a4fce 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -44,6 +44,7 @@ void set_default_settings() g_settings.setDefault("frametime_graph", "false"); g_settings.setDefault("enable_texture_atlas", "true"); g_settings.setDefault("texture_path", ""); + g_settings.setDefault("video_driver", "opengl"); g_settings.setDefault("free_move", "false"); g_settings.setDefault("continuous_forward", "false"); 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),
|