From 996ea60642c5d78fc915573af0641d78bc7e2d49 Mon Sep 17 00:00:00 2001 From: sapier Date: Wed, 16 Jul 2014 14:04:50 +0200 Subject: Add video driver selection to settings menu (based uppon idea from webdesigner97) --- builtin/mainmenu/tab_settings.lua | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) (limited to 'builtin/mainmenu') diff --git a/builtin/mainmenu/tab_settings.lua b/builtin/mainmenu/tab_settings.lua index 2311978e0..4bb3eb36c 100644 --- a/builtin/mainmenu/tab_settings.lua +++ b/builtin/mainmenu/tab_settings.lua @@ -110,6 +110,24 @@ local function scrollbar_to_gui_scale(value) end local function formspec(tabview, name, tabdata) + local video_drivers = core.get_video_drivers() + + local video_driver_string = "" + local current_video_driver_idx = 0 + local current_video_driver = core.setting_get("video_driver") + for i=1, #video_drivers, 1 do + + if i ~= 1 then + video_driver_string = video_driver_string .. "," + end + video_driver_string = video_driver_string .. video_drivers[i] + + if current_video_driver:lower() == video_drivers[i]:lower() then + current_video_driver_idx = i + end + end + + local tab_string = "vertlabel[0,-0.25;" .. fgettext("SETTINGS") .. "]" .. "box[0.75,0;3.25,4;#999999]" .. @@ -125,6 +143,10 @@ local function formspec(tabview, name, tabdata) .. dump(core.setting_getbool("preload_item_visuals")) .. "]".. "checkbox[1,2.5;cb_particles;".. fgettext("Enable Particles") .. ";" .. dump(core.setting_getbool("enable_particles")) .. "]".. + "dropdown[1,3.25;3;dd_video_driver;" + .. video_driver_string .. ";" .. current_video_driver_idx .. "]" .. + "tooltip[dd_video_driver;" .. + fgettext("Restart minetest for driver change to take effect") .. "]" .. "box[4.25,0;3.25,2.5;#999999]" .. "checkbox[4.5,0;cb_mipmapping;".. fgettext("Mip-Mapping") .. ";" .. dump(core.setting_getbool("mip_map")) .. "]".. @@ -284,16 +306,20 @@ local function handle_settings_buttons(this, fields, tabname, tabdata) return true end if fields["btn_reset_singleplayer"] then - print("sp reset") showconfirm_reset(this) return true end + --Note dropdowns have to be handled LAST! local ddhandled = false if fields["dd_touchthreshold"] then core.setting_set("touchscreen_threshold",fields["dd_touchthreshold"]) ddhandled = true end + if fields["dd_video_driver"] then + core.setting_set("video_driver",fields["dd_video_driver"]) + ddhandled = true + end return ddhandled end -- cgit v1.2.3