Allow shaders to be disabled/set through a commandline option.
Use --prop:/sim/rendering/shaders/quality-level=-1 to enable the custom settings in the Shader Options dialog. Apart from that the quality-level property will work as before (0 disables all shaders, 5 puts all shaders to max.
This commit is contained in:
parent
73f39837c4
commit
8e863bbd28
4 changed files with 129 additions and 108 deletions
|
@ -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();
|
|
@ -204,6 +204,9 @@
|
|||
<halign>right</halign>
|
||||
<text>
|
||||
<label>Vegetation density</label>
|
||||
<enable>
|
||||
<property>/sim/rendering/random-vegetation</property>
|
||||
</enable>
|
||||
</text>
|
||||
<slider>
|
||||
<name>vegetation-density</name>
|
||||
|
@ -220,6 +223,9 @@
|
|||
<format>%.2f</format>
|
||||
<live>true</live>
|
||||
<property>/sim/rendering/vegetation-density</property>
|
||||
<enable>
|
||||
<property>/sim/rendering/random-vegetation</property>
|
||||
</enable>
|
||||
</text>
|
||||
</group>
|
||||
|
||||
|
@ -280,9 +286,6 @@
|
|||
</text>
|
||||
<slider>
|
||||
<name>cloud-density</name>
|
||||
<enable>
|
||||
<property>/sim/rendering/clouds3d-enable</property>
|
||||
</enable>
|
||||
<min>0</min>
|
||||
<max>1.0</max>
|
||||
<property>/sim/rendering/clouds3d-density</property>
|
||||
|
@ -321,9 +324,6 @@
|
|||
</text>
|
||||
<slider>
|
||||
<name>cloud-vis-range</name>
|
||||
<enable>
|
||||
<property>/sim/rendering/clouds3d-enable</property>
|
||||
</enable>
|
||||
<min>1000.0</min>
|
||||
<max>45000.0</max>
|
||||
<property>/sim/rendering/clouds3d-vis-range</property>
|
||||
|
@ -367,90 +367,84 @@
|
|||
</group>
|
||||
|
||||
<group>
|
||||
<layout>vbox</layout>
|
||||
<padding>4</padding>
|
||||
<text>
|
||||
<padding>0</padding>
|
||||
<label>This slider overrides custom settings as set in</label>
|
||||
<halign>left</halign>
|
||||
</text>
|
||||
<text>
|
||||
<padding>0</padding>
|
||||
<label>the (advanced) Shader Options dialog.</label>
|
||||
<halign>left</halign>
|
||||
</text>
|
||||
</group>
|
||||
<layout>table</layout>
|
||||
|
||||
<group>
|
||||
<layout>hbox</layout>
|
||||
|
||||
<text>
|
||||
<label>Performance</label>
|
||||
</text>
|
||||
<slider>
|
||||
<name>quality-level</name>
|
||||
<min>0.0</min>
|
||||
<max>5.0</max>
|
||||
<step>1.0</step>
|
||||
<fraction>0.17</fraction>
|
||||
<property>/sim/rendering/shaders/quality-level</property>
|
||||
<checkbox>
|
||||
<halign>left</halign>
|
||||
<row>0</row>
|
||||
<col>0</col>
|
||||
<label>Custom settings (fine-tuning)</label>
|
||||
<name>custom-settings</name>
|
||||
<property>/sim/rendering/shaders/custom-settings</property>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
<object-name>quality-level</object-name>
|
||||
<object-name>custom-settings</object-name>
|
||||
</binding>
|
||||
</slider>
|
||||
<text>
|
||||
<label>Quality</label>
|
||||
</text>
|
||||
<text>
|
||||
<label>12345678</label>
|
||||
<format>(%1.0f)</format>
|
||||
<live>true</live>
|
||||
<property>/sim/rendering/shaders/quality-level</property>
|
||||
</text>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<layout>hbox</layout>
|
||||
<button>
|
||||
<legend>Shader Options</legend>
|
||||
<binding>
|
||||
<command>dialog-show</command>
|
||||
<dialog-name>shaders</dialog-name>
|
||||
</binding>
|
||||
</button>
|
||||
</checkbox>
|
||||
|
||||
<group>
|
||||
<layout>vbox</layout>
|
||||
<layout>hbox</layout>
|
||||
<row>1</row>
|
||||
<col>0</col>
|
||||
<visible>
|
||||
<not>
|
||||
<property>/sim/rendering/shaders/custom-settings</property>
|
||||
</not>
|
||||
</visible>
|
||||
|
||||
<layout>hbox</layout>
|
||||
|
||||
<text>
|
||||
<visible>
|
||||
<not>
|
||||
<property>/sim/rendering/shaders/quality-level</property>
|
||||
</not>
|
||||
</visible>
|
||||
<label>Adjust the slider </label>
|
||||
<halign>left</halign>
|
||||
<color>
|
||||
<red>1.0</red>
|
||||
<green>0.6</green>
|
||||
<blue>0.6</blue>
|
||||
</color>
|
||||
<label>Performance</label>
|
||||
</text>
|
||||
<slider>
|
||||
<name>quality-level</name>
|
||||
<min>0.0</min>
|
||||
<max>5.0</max>
|
||||
<step>1.0</step>
|
||||
<fraction>0.17</fraction>
|
||||
<property>/sim/rendering/shaders/quality-level-internal</property>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
<object-name>quality-level</object-name>
|
||||
</binding>
|
||||
</slider>
|
||||
<text>
|
||||
<label>Quality</label>
|
||||
</text>
|
||||
<text>
|
||||
<visible>
|
||||
<not>
|
||||
<property>/sim/rendering/shaders/quality-level</property>
|
||||
</not>
|
||||
</visible>
|
||||
<label>to enable shaders.</label>
|
||||
<halign>left</halign>
|
||||
<color>
|
||||
<red>1.0</red>
|
||||
<green>0.6</green>
|
||||
<blue>0.6</blue>
|
||||
</color>
|
||||
<label>12345678</label>
|
||||
<format>(%1.0f)</format>
|
||||
<live>true</live>
|
||||
<property>/sim/rendering/shaders/quality-level-internal</property>
|
||||
</text>
|
||||
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<layout>hbox</layout>
|
||||
<row>1</row>
|
||||
<col>0</col>
|
||||
<visible>
|
||||
<property>/sim/rendering/shaders/custom-settings</property>
|
||||
</visible>
|
||||
|
||||
<button>
|
||||
<legend>Shader Options</legend>
|
||||
<halign>left</halign>
|
||||
<binding>
|
||||
<command>dialog-show</command>
|
||||
<dialog-name>shaders</dialog-name>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>dialog-close</command>
|
||||
<dialog-name>rendering</dialog-name>
|
||||
</binding>
|
||||
<pref-width>200</pref-width>
|
||||
</button>
|
||||
|
||||
</group>
|
||||
|
||||
</group>
|
||||
|
||||
<group>
|
||||
|
@ -606,25 +600,6 @@
|
|||
<nasal>
|
||||
<open>
|
||||
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);
|
||||
});
|
||||
</open>
|
||||
</nasal>
|
||||
</PropertyList>
|
||||
|
|
|
@ -332,13 +332,24 @@
|
|||
|
||||
<hrule/>
|
||||
|
||||
<button>
|
||||
<legend>Close</legend>
|
||||
<default>true</default>
|
||||
<key>Esc</key>
|
||||
<binding>
|
||||
<command>dialog-close</command>
|
||||
</binding>
|
||||
</button>
|
||||
<group>
|
||||
<layout>hbox</layout>
|
||||
|
||||
<button>
|
||||
<legend>Back</legend>
|
||||
<binding>
|
||||
<command>dialog-show</command>
|
||||
<dialog-name>rendering</dialog-name>
|
||||
</binding>
|
||||
</button>
|
||||
<button>
|
||||
<legend>Close</legend>
|
||||
<default>true</default>
|
||||
<key>Esc</key>
|
||||
<binding>
|
||||
<command>dialog-close</command>
|
||||
</binding>
|
||||
</button>
|
||||
</group>
|
||||
|
||||
</PropertyList>
|
||||
|
|
|
@ -69,6 +69,7 @@ Started September 2000 by David Megginson, david@megginson.com
|
|||
<realism type="int">5</realism>
|
||||
<filtering type="int">8</filtering>
|
||||
<shaders>
|
||||
<custom-settings type="bool" userarchive="y">false</custom-settings>
|
||||
<generic type="float" userarchive="y">1.0</generic>
|
||||
<landmass type="float" userarchive="y">1.0</landmass>
|
||||
<model type="float" userarchive="y">1.0</model>
|
||||
|
@ -78,7 +79,7 @@ Started September 2000 by David Megginson, david@megginson.com
|
|||
<transition type="float" userarchive="y">1.0</transition>
|
||||
<urban type="float" userarchive="y">1.0</urban>
|
||||
<water type="float" userarchive="y">1.0</water>
|
||||
<quality-level type="float" userarchive="y">3.0</quality-level>
|
||||
<quality-level-internal type="float" userarchive="y">3.0</quality-level-internal>
|
||||
</shaders>
|
||||
<mie type="float"
|
||||
userarchive="y">0.003</mie>
|
||||
|
|
Loading…
Reference in a new issue