From: Perttu Ahola Date: Sat, 19 Feb 2011 09:48:54 +0000 (+0200) Subject: video backend selection X-Git-Url: http://81.2.79.47:8989/gitweb/?a=commitdiff_plain;h=f5ff378dd02431cdcf658b210509b170ea2135d1;p=zefram%2Fminetest%2Fminetest_engine.git video backend selection --- diff --git a/minetest.conf.example b/minetest.conf.example index edf43e88..eb17ebc7 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 72f63d9f..a456a4fc 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 11ae9985..2754c324 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"<(screenW, screenH),