diff --git a/app/qml/ApplicationSettings.qml b/app/qml/ApplicationSettings.qml index d907efd..66327bf 100644 --- a/app/qml/ApplicationSettings.qml +++ b/app/qml/ApplicationSettings.qml @@ -69,6 +69,8 @@ Item{ property real motion_blur: 0.40 property real bloom_strength: 0.65 + property real bloom_quality: 1.0 + property real chroma_color: 0.0 property real saturation_color: 0.0 @@ -173,7 +175,8 @@ Item{ fontIndexes: fontIndexes, frameReflections: _frameReflections, showMenubar: showMenubar, - scanline_quality: scanline_quality + scanline_quality: scanline_quality, + bloom_quality: bloom_quality } return JSON.stringify(settings); } @@ -245,6 +248,7 @@ Item{ showMenubar = settings.showMenubar !== undefined ? settings.showMenubar : showMenubar; scanline_quality = settings.scanline_quality !== undefined ? settings.scanline_quality : scanline_quality; + bloom_quality = settings.bloom_quality !== undefined ? settings.bloom_quality : bloom_quality; } function loadProfileString(profileString){ diff --git a/app/qml/PreprocessedTerminal.qml b/app/qml/PreprocessedTerminal.qml index 49f9b84..c8e9b29 100644 --- a/app/qml/PreprocessedTerminal.qml +++ b/app/qml/PreprocessedTerminal.qml @@ -303,14 +303,15 @@ Item{ // BLOOM //////////////////////////////////////////////////////////////// Loader{ + property real scaling: shadersettings.bloom_quality id: bloomEffectLoader active: mBloom != 0 - anchors.fill: parent + width: parent.width * scaling + height: parent.height * scaling sourceComponent: FastBlur{ - radius: 48 + radius: 48 * scaling source: kterminal transparentBorder: true - smooth: false } } Loader{ @@ -319,7 +320,7 @@ Item{ sourceComponent: ShaderEffectSource{ sourceItem: bloomEffectLoader.item hideSource: true - smooth: false + smooth: true } } diff --git a/app/qml/SettingsPerformanceTab.qml b/app/qml/SettingsPerformanceTab.qml index 16ae7f1..a0963b8 100644 --- a/app/qml/SettingsPerformanceTab.qml +++ b/app/qml/SettingsPerformanceTab.qml @@ -50,7 +50,7 @@ Tab{ value: shadersettings.fps !== 0 ? shadersettings.fps : 60 } Text{text: slider.value} - Text{text: qsTr("Texture quality")} + Text{text: qsTr("Texture Quality")} Slider{ Layout.fillWidth: true id: txtslider @@ -77,13 +77,12 @@ Tab{ property var valsStrings: [ qsTr("Low"), qsTr("Medium"), - qsTr("High"), - qsTr("Very high") + qsTr("High") ] onValsIndexChanged: shadersettings.scanline_quality = vals[valsIndex]; - Text{text: qsTr("Scanline quality")} + Text{text: qsTr("Scanlines Quality")} Slider{ id: scanlineQualitySlider Layout.fillWidth: true @@ -105,16 +104,56 @@ Tab{ } } } + GroupBox{ + title: qsTr("Bloom") + Layout.fillWidth: true + anchors.left: parent.left + anchors.right: parent.right + GridLayout{ + id: bloomQualityContainer + anchors.fill: parent + columns: 3 + property alias valsIndex: bloomQualitySlider.value + property var vals: [0.25, 0.50, 1.00] + property var valsStrings: [ + qsTr("Low"), + qsTr("Medium"), + qsTr("High") + ] + + onValsIndexChanged: shadersettings.bloom_quality = vals[valsIndex]; + + Text{text: qsTr("Bloom Quality")} + Slider{ + id: bloomQualitySlider + Layout.fillWidth: true + onValueChanged: parent.valsIndex = value; + stepSize: 1 + Component.onCompleted: { + minimumValue = 0; + maximumValue = 2; + value = parent.vals.indexOf(shadersettings.bloom_quality); + } + Connections{ + target: shadersettings + onBloom_qualityChanged: + bloomQualityContainer.valsIndex = bloomQualityContainer.vals.indexOf(shadersettings.bloom_quality); + } + } + Text{ + text: parent.valsStrings[parent.valsIndex]; + } + } + } GroupBox{ title: qsTr("Frame") Layout.fillWidth: true anchors.left: parent.left anchors.right: parent.right CheckBox{ - checked: !shadersettings._frameReflections - text: qsTr("Disable reflections") - onCheckedChanged: shadersettings._frameReflections = !checked - enabled: shadersettings.reflectionsAllowed + checked: shadersettings._frameReflections + text: qsTr("Frame Reflections") + onCheckedChanged: shadersettings._frameReflections = checked } } }