1
0
Fork 0

Launcher: basic Compositor support

This commit is contained in:
James Turner 2020-05-14 10:57:16 +01:00
parent 37936496a4
commit f010e78e55
2 changed files with 44 additions and 21 deletions

View file

@ -97,6 +97,12 @@ LauncherMainWindow::LauncherMainWindow() :
ctx->setContextProperty("_location", m_controller->location()); ctx->setContextProperty("_location", m_controller->location());
ctx->setContextProperty("_osName", osName); ctx->setContextProperty("_osName", osName);
#if defined(ENABLE_COMPOSITOR)
ctx->setContextProperty("_haveCompositor", true);
#else
ctx->setContextProperty("_haveCompositor", false);
#endif
auto weatherScenariosModel = new flightgear::WeatherScenariosModel(this); auto weatherScenariosModel = new flightgear::WeatherScenariosModel(this);
ctx->setContextProperty("_weatherScenarios", weatherScenariosModel); ctx->setContextProperty("_weatherScenarios", weatherScenariosModel);

View file

@ -412,7 +412,7 @@ Item {
width: parent.width width: parent.width
settingGroup: "render" settingGroup: "render"
readonly property bool rembrandt: (renderer.selectedIndex == 2) readonly property bool rembrandt: !_haveCompositor && (renderer.selectedIndex == 2)
readonly property bool alsEnabled: (renderer.selectedIndex == 1) readonly property bool alsEnabled: (renderer.selectedIndex == 1)
readonly property bool msaaEnabled: !rembrandt && (msaa.selectedIndex > 0) readonly property bool msaaEnabled: !rembrandt && (msaa.selectedIndex > 0)
@ -425,27 +425,37 @@ Item {
return result; return result;
} }
readonly property var __traditionalRendererChoices: [qsTr("Default"),
qsTr("Atmospheric Light Scattering"),
qsTr("Rembrandt")]
readonly property var __compositorRendererChoices: [qsTr("Default"),
qsTr("Atmospheric Light Scattering"),
qsTr("Low-spec")]
readonly property string __defaultRenderDesc: qsTr("The default renderer provides standard visuals with maximum compatibility.")
readonly property string __alsRenderDesc: qsTr("The ALS renderer uses a sophisticated physical atmospheric model and several " +
"other effects to give realistic rendering of large distances.")
readonly property string __rembrandtDesc: qsTr("Rembrandt is a configurable multi-pass renderer which supports shadow-maps, cinematic " +
"effects and more. However, not all aircraft appear correctly and performance will " +
"depend greatly on your system hardware.")
readonly property string __lowSpecDesc: qsTr("The low-spec renderer ensures maximum performance on older computers.")
readonly property var descriptions: _haveCompositor
? [__defaultRenderDesc, __alsRenderDesc, __lowSpecDesc]
: [__defaultRenderDesc, __alsRenderDesc, __rembrandtDesc]
contents: [ contents: [
SettingsComboBox { SettingsComboBox {
id: renderer id: renderer
label: qsTr("Renderer") label: qsTr("Renderer")
choices: [qsTr("Default"), choices: _haveCompositor
qsTr("Atmospheric Light Scattering"), ? renderSection.__compositorRendererChoices
qsTr("Rembrandt")] : renderSection.__traditionalRendererChoices
description: descriptions[selectedIndex] description: renderSection.descriptions[selectedIndex]
defaultIndex: 0 defaultIndex: 1
setting: "renderer" setting: "renderer"
keywords: ["als", "rembrandt", "render", "shadow", "low-spec", "graphics", "performance"]
readonly property var descriptions: [
qsTr("The default renderer provides standard visuals with maximum compatibility."),
qsTr("The ALS renderer uses a sophisticated physical atmospheric model and several " +
"other effects to give realistic rendering of large distances."),
qsTr("Rembrandt is a configurable multi-pass renderer which supports shadow-maps, cinematic " +
"effects and more. However, not all aircraft appear correctly and performance will " +
"depend greatly on your system hardware.")
]
keywords: ["als", "rembrandt", "render", "shadow"]
}, },
SettingsComboBox { SettingsComboBox {
@ -485,10 +495,17 @@ Item {
_config.setProperty("/sim/rendering/multi-samples", msaa.data[msaa.selectedIndex]) _config.setProperty("/sim/rendering/multi-samples", msaa.data[msaa.selectedIndex])
} }
_config.setEnableDisableOption("rembrandt", rembrandt); if (_haveCompositor) {
if (alsEnabled) {
if (alsEnabled) { _config.setArg("compositor", "Compositor/ALS");
_config.setProperty("/sim/rendering/shaders/skydome", true); } else if (renderer.selectedIndex == 2) {
_config.setArg("compositor", "Compositor/low-spec")
}
} else {
_config.setEnableDisableOption("rembrandt", rembrandt);
if (alsEnabled) {
_config.setProperty("/sim/rendering/shaders/skydome", true);
}
} }
_config.setProperty("/sim/rendering/texture-cache/cache-enabled", compressTextures.value); _config.setProperty("/sim/rendering/texture-cache/cache-enabled", compressTextures.value);