diff --git a/Nasal/gui.nas b/Nasal/gui.nas index ce648a89e..ce0f9abfa 100644 --- a/Nasal/gui.nas +++ b/Nasal/gui.nas @@ -1316,3 +1316,37 @@ _setlistener("/sim/sound/chatter/enabled", func { setprop("/nasal/atc-chatter/enabled", getprop("/sim/sound/chatter/enabled")); }); +## +# overwrite custom shader settings when quality-level is set on startup +var qualityLevel = getprop("/sim/rendering/shaders/quality-level"); +if (qualityLevel == -1) { + setprop("/sim/rendering/shaders/custom-settings",1); +} +elsif (qualityLevel != nil) { + setprop("/sim/rendering/shaders/custom-settings",0); + setprop("/sim/rendering/shaders/quality-level-internal",qualityLevel); +} +# overwrite custom shader settings when quality-level is set through the slider +# in the Rendering Options dialog +var update_shader_settings = func() { + if (!getprop("/sim/rendering/shaders/custom-settings")){ + var qualityLvl = getprop("/sim/rendering/shaders/quality-level-internal"); + setprop("/sim/rendering/shaders/landmass",qualityLvl); + setprop("/sim/rendering/shaders/urban",qualityLvl); + setprop("/sim/rendering/shaders/water",qualityLvl); + if (qualityLvl >= 3.0){ + qualityLvl = 3.0; + } + setprop("/sim/rendering/shaders/model",qualityLvl); + if (qualityLvl >= 1.0){ + qualityLvl = 1.0; + } + setprop("/sim/rendering/shaders/contrails",qualityLvl); + setprop("/sim/rendering/shaders/crop",qualityLvl); + setprop("/sim/rendering/shaders/generic",qualityLvl); + setprop("/sim/rendering/shaders/transition",qualityLvl); + } +}; +_setlistener("/sim/rendering/shaders/custom-settings", func { update_shader_settings() } ); +_setlistener("/sim/rendering/shaders/quality-level-internal", func { update_shader_settings() } ); +update_shader_settings(); \ No newline at end of file diff --git a/gui/dialogs/rendering.xml b/gui/dialogs/rendering.xml index 3852848b9..5a1040e7b 100644 --- a/gui/dialogs/rendering.xml +++ b/gui/dialogs/rendering.xml @@ -204,6 +204,9 @@ right + + /sim/rendering/random-vegetation + vegetation-density @@ -220,6 +223,9 @@ %.2f true /sim/rendering/vegetation-density + + /sim/rendering/random-vegetation + @@ -280,9 +286,6 @@ cloud-density - - /sim/rendering/clouds3d-enable - 0 1.0 /sim/rendering/clouds3d-density @@ -321,9 +324,6 @@ cloud-vis-range - - /sim/rendering/clouds3d-enable - 1000.0 45000.0 /sim/rendering/clouds3d-vis-range @@ -367,90 +367,84 @@ - vbox - 4 - - 0 - + table + + left - - - 0 - - left - - - - - hbox - - - - - - quality-level - 0.0 - 5.0 - 1.0 - 0.17 - /sim/rendering/shaders/quality-level + 0 + 0 + + custom-settings + /sim/rendering/shaders/custom-settings dialog-apply - quality-level + custom-settings - - - - - - - (%1.0f) - true - /sim/rendering/shaders/quality-level - - - - - hbox - - + + - vbox + hbox + 1 + 0 + + + /sim/rendering/shaders/custom-settings + + + + hbox + - - - /sim/rendering/shaders/quality-level - - - - left - - 1.0 - 0.6 - 0.6 - + + + + quality-level + 0.0 + 5.0 + 1.0 + 0.17 + /sim/rendering/shaders/quality-level-internal + + dialog-apply + quality-level + + + + - - - /sim/rendering/shaders/quality-level - - - - left - - 1.0 - 0.6 - 0.6 - + + (%1.0f) + true + /sim/rendering/shaders/quality-level-internal + + + + hbox + 1 + 0 + + /sim/rendering/shaders/custom-settings + + + + + + @@ -606,25 +600,6 @@ gui.enable_widgets(cmdarg(), "shadows-debug", getprop("/sim/gui/devel-widgets")); - - # overwrite custom shader settings on quality-slider input - _setlistener("/sim/rendering/shaders/quality-level", func { - var qualityLevel = getprop("/sim/rendering/shaders/quality-level"); - setprop("/sim/rendering/shaders/landmass",qualityLevel); - setprop("/sim/rendering/shaders/urban",qualityLevel); - setprop("/sim/rendering/shaders/water",qualityLevel); - if (qualityLevel >= 3.0){ - qualityLevel = 3.0; - } - setprop("/sim/rendering/shaders/model",qualityLevel); - if (qualityLevel >= 1.0){ - qualityLevel = 1.0; - } - setprop("/sim/rendering/shaders/contrails",qualityLevel); - setprop("/sim/rendering/shaders/crop",qualityLevel); - setprop("/sim/rendering/shaders/generic",qualityLevel); - setprop("/sim/rendering/shaders/transition",qualityLevel); - }); diff --git a/gui/dialogs/shaders.xml b/gui/dialogs/shaders.xml index 60910fecb..de0f6140c 100644 --- a/gui/dialogs/shaders.xml +++ b/gui/dialogs/shaders.xml @@ -331,14 +331,25 @@ + + + hbox - + + + diff --git a/preferences.xml b/preferences.xml index 6344e8db2..eb2d2febe 100644 --- a/preferences.xml +++ b/preferences.xml @@ -69,6 +69,7 @@ Started September 2000 by David Megginson, david@megginson.com 5 8 + false 1.0 1.0 1.0 @@ -78,7 +79,7 @@ Started September 2000 by David Megginson, david@megginson.com 1.0 1.0 1.0 - 3.0 + 3.0 0.003