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("_osName", osName);
#if defined(ENABLE_COMPOSITOR)
ctx->setContextProperty("_haveCompositor", true);
#else
ctx->setContextProperty("_haveCompositor", false);
#endif
auto weatherScenariosModel = new flightgear::WeatherScenariosModel(this);
ctx->setContextProperty("_weatherScenarios", weatherScenariosModel);

View file

@ -412,7 +412,7 @@ Item {
width: parent.width
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 msaaEnabled: !rembrandt && (msaa.selectedIndex > 0)
@ -425,27 +425,37 @@ Item {
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: [
SettingsComboBox {
id: renderer
label: qsTr("Renderer")
choices: [qsTr("Default"),
qsTr("Atmospheric Light Scattering"),
qsTr("Rembrandt")]
description: descriptions[selectedIndex]
defaultIndex: 0
choices: _haveCompositor
? renderSection.__compositorRendererChoices
: renderSection.__traditionalRendererChoices
description: renderSection.descriptions[selectedIndex]
defaultIndex: 1
setting: "renderer"
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"]
keywords: ["als", "rembrandt", "render", "shadow", "low-spec", "graphics", "performance"]
},
SettingsComboBox {
@ -485,10 +495,17 @@ Item {
_config.setProperty("/sim/rendering/multi-samples", msaa.data[msaa.selectedIndex])
}
_config.setEnableDisableOption("rembrandt", rembrandt);
if (alsEnabled) {
_config.setProperty("/sim/rendering/shaders/skydome", true);
if (_haveCompositor) {
if (alsEnabled) {
_config.setArg("compositor", "Compositor/ALS");
} 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);