mirror of
				https://github.com/Swordfish90/cool-retro-term.git
				synced 2025-11-04 00:52:11 +00:00 
			
		
		
		
	Fix merge conflicts.
This commit is contained in:
		@@ -19,13 +19,19 @@
 | 
			
		||||
*******************************************************************************/
 | 
			
		||||
 | 
			
		||||
import QtQuick 2.2
 | 
			
		||||
import QtQuick.Controls 1.0
 | 
			
		||||
 | 
			
		||||
import "utils.js" as Utils
 | 
			
		||||
 | 
			
		||||
QtObject{
 | 
			
		||||
    property string version: "1.0.0 RC1"
 | 
			
		||||
 | 
			
		||||
    // GENERAL SETTINGS ///////////////////////////////////////////////////
 | 
			
		||||
    // STATIC CONSTANTS ////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
    readonly property real minimumFontScaling: 0.25
 | 
			
		||||
    readonly property real maximumFontScaling: 2.50
 | 
			
		||||
 | 
			
		||||
    // GENERAL SETTINGS ///////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
    property bool fullscreen: false
 | 
			
		||||
    property bool showMenubar: true
 | 
			
		||||
@@ -113,12 +119,12 @@ QtObject{
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function incrementScaling(){
 | 
			
		||||
        fontScaling = Math.min(fontScaling + 0.05, 2.50);
 | 
			
		||||
        fontScaling = Math.min(fontScaling + 0.05, maximumFontScaling);
 | 
			
		||||
        handleFontChanged();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function decrementScaling(){
 | 
			
		||||
        fontScaling = Math.max(fontScaling - 0.05, 0.50);
 | 
			
		||||
        fontScaling = Math.max(fontScaling - 0.05, minimumFontScaling);
 | 
			
		||||
        handleFontChanged();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -455,4 +461,11 @@ QtObject{
 | 
			
		||||
        storeCustomProfiles();
 | 
			
		||||
        //storage.dropSettings(); //DROPS THE SETTINGS!.. REMEMBER TO DISABLE ONCE ENABLED!!
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // VARS ///////////////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
    property Label _sampleLabel: Label {
 | 
			
		||||
        text: "100%"
 | 
			
		||||
    }
 | 
			
		||||
    property real labelWidth: _sampleLabel.width
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -22,6 +22,8 @@ import QtQuick 2.2
 | 
			
		||||
import QtQuick.Controls 1.1
 | 
			
		||||
import QtQuick.Layouts 1.1
 | 
			
		||||
 | 
			
		||||
import "Components"
 | 
			
		||||
 | 
			
		||||
RowLayout {
 | 
			
		||||
    property alias name: check.text
 | 
			
		||||
 | 
			
		||||
@@ -35,7 +37,6 @@ RowLayout {
 | 
			
		||||
    id: setting_component
 | 
			
		||||
    anchors.left: parent.left
 | 
			
		||||
    anchors.right: parent.right
 | 
			
		||||
    spacing: 25
 | 
			
		||||
 | 
			
		||||
    onValueChanged: {
 | 
			
		||||
        check.checked = !(value == 0);
 | 
			
		||||
@@ -45,7 +46,7 @@ RowLayout {
 | 
			
		||||
 | 
			
		||||
    CheckBox{
 | 
			
		||||
        id: check
 | 
			
		||||
        implicitWidth: 150
 | 
			
		||||
        implicitWidth: 160
 | 
			
		||||
        onClicked: {
 | 
			
		||||
            if(!checked){
 | 
			
		||||
                checked = false;
 | 
			
		||||
@@ -66,16 +67,8 @@ RowLayout {
 | 
			
		||||
            newValue(value);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    Text{
 | 
			
		||||
        id: textfield
 | 
			
		||||
        property string unformattedText: Math.round(((value - min_value) / (max_value - min_value)) * 100)
 | 
			
		||||
        text: formatNumber(unformattedText)
 | 
			
		||||
    }
 | 
			
		||||
    function formatNumber(num) {
 | 
			
		||||
        var n = "" + num;
 | 
			
		||||
        while (n.length < 3) {
 | 
			
		||||
            n = " " + n;
 | 
			
		||||
        }
 | 
			
		||||
        return n + "%";
 | 
			
		||||
    SizedLabel {
 | 
			
		||||
        anchors { top: parent.top; bottom: parent.bottom }
 | 
			
		||||
        text: Math.round(((value - min_value) / (max_value - min_value)) * 100) + "%"
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										35
									
								
								app/qml/Components/SizedLabel.qml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								app/qml/Components/SizedLabel.qml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
/*******************************************************************************
 | 
			
		||||
* Copyright (c) 2013 "Filippo Scognamiglio"
 | 
			
		||||
* https://github.com/Swordfish90/cool-retro-term
 | 
			
		||||
*
 | 
			
		||||
* This file is part of cool-retro-term.
 | 
			
		||||
*
 | 
			
		||||
* cool-retro-term is free software: you can redistribute it and/or modify
 | 
			
		||||
* it under the terms of the GNU General Public License as published by
 | 
			
		||||
* the Free Software Foundation, either version 3 of the License, or
 | 
			
		||||
* (at your option) any later version.
 | 
			
		||||
*
 | 
			
		||||
* This program is distributed in the hope that it will be useful,
 | 
			
		||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
* GNU General Public License for more details.
 | 
			
		||||
*
 | 
			
		||||
* You should have received a copy of the GNU General Public License
 | 
			
		||||
* along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
*******************************************************************************/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
import QtQuick 2.0
 | 
			
		||||
import QtQuick.Controls 1.0
 | 
			
		||||
 | 
			
		||||
// This component is simply a label with a predifined size.
 | 
			
		||||
// Used to improve alignment.
 | 
			
		||||
 | 
			
		||||
Item {
 | 
			
		||||
    property alias text: textfield.text
 | 
			
		||||
    width: appSettings.labelWidth
 | 
			
		||||
    Label{
 | 
			
		||||
        id: textfield
 | 
			
		||||
        anchors { right: parent.right; verticalCenter: parent.verticalCenter }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -44,11 +44,13 @@ Item{
 | 
			
		||||
    anchors.topMargin: frame.displacementTop * appSettings.windowScaling
 | 
			
		||||
    anchors.bottomMargin: frame.displacementBottom * appSettings.windowScaling
 | 
			
		||||
 | 
			
		||||
    //The blur effect has to take into account the framerate
 | 
			
		||||
    property real mBlur: Math.sqrt(appSettings.burnIn)
 | 
			
		||||
    property real motionBlurCoefficient: Utils.lint(_minBlurCoefficient, _maxBlurCoefficient, mBlur)
 | 
			
		||||
    property real _minBlurCoefficient: 0.2
 | 
			
		||||
    property real _maxBlurCoefficient: 0.02
 | 
			
		||||
    //Parameters for the burnIn effect.
 | 
			
		||||
    property real burnIn: appSettings.burnIn
 | 
			
		||||
    property real fps: appSettings.fps !== 0 ? appSettings.fps : 60
 | 
			
		||||
    property real burnInFadeTime: Utils.lint(_minBurnInFadeTime, _maxBurnInFadeTime, burnIn)
 | 
			
		||||
    property real motionBlurCoefficient: 1.0 / (fps * burnInFadeTime)
 | 
			
		||||
    property real _minBurnInFadeTime: 0.16
 | 
			
		||||
    property real _maxBurnInFadeTime: 1.6
 | 
			
		||||
 | 
			
		||||
    property size terminalSize: kterminal.terminalSize
 | 
			
		||||
    property size fontMetrics: kterminal.fontMetrics
 | 
			
		||||
@@ -176,7 +178,7 @@ Item{
 | 
			
		||||
    MouseArea{
 | 
			
		||||
        acceptedButtons: Qt.LeftButton | Qt.MiddleButton | Qt.RightButton
 | 
			
		||||
        anchors.fill: parent
 | 
			
		||||
        cursorShape: Qt.IBeamCursor
 | 
			
		||||
        cursorShape: kterminal.terminalUsesMouse ? Qt.ArrowCursor : Qt.IBeamCursor
 | 
			
		||||
        onWheel:{
 | 
			
		||||
            if(wheel.modifiers & Qt.ControlModifier){
 | 
			
		||||
               wheel.angleDelta.y > 0 ? zoomIn.trigger() : zoomOut.trigger();
 | 
			
		||||
@@ -228,13 +230,15 @@ Item{
 | 
			
		||||
    Loader{
 | 
			
		||||
        id: blurredSourceLoader
 | 
			
		||||
        asynchronous: true
 | 
			
		||||
        active: mBlur !== 0
 | 
			
		||||
        active: burnIn !== 0
 | 
			
		||||
 | 
			
		||||
        sourceComponent: ShaderEffectSource{
 | 
			
		||||
            property bool updateBurnIn: false
 | 
			
		||||
 | 
			
		||||
            id: _blurredSourceEffect
 | 
			
		||||
            sourceItem: blurredTerminalLoader.item
 | 
			
		||||
            recursive: true
 | 
			
		||||
            live: true
 | 
			
		||||
            live: false
 | 
			
		||||
            hideSource: true
 | 
			
		||||
            wrapMode: kterminalSource.wrapMode
 | 
			
		||||
 | 
			
		||||
@@ -244,6 +248,13 @@ Item{
 | 
			
		||||
                livetimer.restart();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // This updates the burnin synched with the timer.
 | 
			
		||||
            Connections {
 | 
			
		||||
                target: updateBurnIn ? mainShader : null
 | 
			
		||||
                ignoreUnknownSignals: false
 | 
			
		||||
                onTimeChanged: _blurredSourceEffect.scheduleUpdate();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            Timer{
 | 
			
		||||
                id: livetimer
 | 
			
		||||
 | 
			
		||||
@@ -251,14 +262,15 @@ Item{
 | 
			
		||||
                // We multiply 1.1 to have a little bit of margin over the theoretical value.
 | 
			
		||||
                // This solution is not extremely clean, but it's probably the best to avoid measuring fps.
 | 
			
		||||
 | 
			
		||||
                interval: (1 / motionBlurCoefficient) * 60 * 1.1
 | 
			
		||||
                interval: burnInFadeTime * 1000 * 1.1
 | 
			
		||||
                running: true
 | 
			
		||||
                onTriggered: _blurredSourceEffect.live = false;
 | 
			
		||||
                onTriggered: _blurredSourceEffect.updateBurnIn = false;
 | 
			
		||||
            }
 | 
			
		||||
            Connections{
 | 
			
		||||
                target: kterminal
 | 
			
		||||
                onImagePainted:{
 | 
			
		||||
                    _blurredSourceEffect.live = true;
 | 
			
		||||
                    _blurredSourceEffect.scheduleUpdate();
 | 
			
		||||
                    _blurredSourceEffect.updateBurnIn = true;
 | 
			
		||||
                    livetimer.restart();
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
@@ -289,7 +301,7 @@ Item{
 | 
			
		||||
                    ? kterminal.height * Math.max(1, burnInScaling)
 | 
			
		||||
                    : kterminal.height * scaleTexture * appSettings.burnInQuality
 | 
			
		||||
 | 
			
		||||
        active: mBlur !== 0
 | 
			
		||||
        active: burnIn !== 0
 | 
			
		||||
        asynchronous: true
 | 
			
		||||
 | 
			
		||||
        sourceComponent: ShaderEffect {
 | 
			
		||||
 
 | 
			
		||||
@@ -22,6 +22,8 @@ import QtQuick 2.2
 | 
			
		||||
import QtQuick.Controls 1.1
 | 
			
		||||
import QtQuick.Layouts 1.1
 | 
			
		||||
 | 
			
		||||
import "Components"
 | 
			
		||||
 | 
			
		||||
Tab{
 | 
			
		||||
    ColumnLayout{
 | 
			
		||||
        anchors.fill: parent
 | 
			
		||||
@@ -47,10 +49,10 @@ Tab{
 | 
			
		||||
                    maximumValue: 60
 | 
			
		||||
                    minimumValue: 1
 | 
			
		||||
                    enabled: appSettings.fps !== 0
 | 
			
		||||
                    value: appSettings.fps !== 0 ? appSettings.fps : 60
 | 
			
		||||
                    value: appSettings.fps !== 0 ? appSettings.fps : 24
 | 
			
		||||
                }
 | 
			
		||||
                Text{text: slider.value}
 | 
			
		||||
                Text{text: qsTr("Texture Quality")}
 | 
			
		||||
                SizedLabel { text: slider.value }
 | 
			
		||||
                Label{text: qsTr("Texture Quality")}
 | 
			
		||||
                Slider{
 | 
			
		||||
                    Layout.fillWidth: true
 | 
			
		||||
                    id: txtslider
 | 
			
		||||
@@ -63,7 +65,7 @@ Tab{
 | 
			
		||||
                        enabled = true;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                Text{text: Math.round(txtslider.value * 100) + "%"}
 | 
			
		||||
                SizedLabel{text: Math.round(txtslider.value * 100) + "%"}
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        GroupBox{
 | 
			
		||||
@@ -74,8 +76,7 @@ Tab{
 | 
			
		||||
            GridLayout{
 | 
			
		||||
                id: bloomQualityContainer
 | 
			
		||||
                anchors.fill: parent
 | 
			
		||||
 | 
			
		||||
                Text{text: qsTr("Bloom Quality")}
 | 
			
		||||
                Label{text: qsTr("Bloom Quality")}
 | 
			
		||||
                Slider{
 | 
			
		||||
                    Layout.fillWidth: true
 | 
			
		||||
                    id: bloomSlider
 | 
			
		||||
@@ -88,7 +89,7 @@ Tab{
 | 
			
		||||
                        enabled = true;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                Text{text: Math.round(bloomSlider.value * 100) + "%"}
 | 
			
		||||
                SizedLabel{text: Math.round(bloomSlider.value * 100) + "%"}
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        GroupBox{
 | 
			
		||||
@@ -100,7 +101,7 @@ Tab{
 | 
			
		||||
                id: blurQualityContainer
 | 
			
		||||
                anchors.fill: parent
 | 
			
		||||
 | 
			
		||||
                Text{text: qsTr("BurnIn Quality")}
 | 
			
		||||
                Label{text: qsTr("BurnIn Quality")}
 | 
			
		||||
                Slider{
 | 
			
		||||
                    Layout.fillWidth: true
 | 
			
		||||
                    id: burnInSlider
 | 
			
		||||
@@ -113,7 +114,7 @@ Tab{
 | 
			
		||||
                        enabled = true;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                Text{text: Math.round(burnInSlider.value * 100) + "%"}
 | 
			
		||||
                SizedLabel{text: Math.round(burnInSlider.value * 100) + "%"}
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        GroupBox{
 | 
			
		||||
 
 | 
			
		||||
@@ -46,17 +46,17 @@ Tab{
 | 
			
		||||
            GridLayout{
 | 
			
		||||
                anchors.fill: parent
 | 
			
		||||
                columns: 2
 | 
			
		||||
                Text{ text: qsTr("Brightness") }
 | 
			
		||||
                Label{ text: qsTr("Brightness") }
 | 
			
		||||
                SimpleSlider{
 | 
			
		||||
                    onValueChanged: appSettings.brightness = value
 | 
			
		||||
                    value: appSettings.brightness
 | 
			
		||||
                }
 | 
			
		||||
                Text{ text: qsTr("Contrast") }
 | 
			
		||||
                Label{ text: qsTr("Contrast") }
 | 
			
		||||
                SimpleSlider{
 | 
			
		||||
                    onValueChanged: appSettings.contrast = value
 | 
			
		||||
                    value: appSettings.contrast
 | 
			
		||||
                }
 | 
			
		||||
                Text{ text: qsTr("Opacity") }
 | 
			
		||||
                Label{ text: qsTr("Opacity") }
 | 
			
		||||
                SimpleSlider{
 | 
			
		||||
                    onValueChanged: appSettings.windowOpacity = value
 | 
			
		||||
                    value: appSettings.windowOpacity
 | 
			
		||||
 
 | 
			
		||||
@@ -22,6 +22,8 @@ import QtQuick 2.2
 | 
			
		||||
import QtQuick.Controls 1.1
 | 
			
		||||
import QtQuick.Layouts 1.1
 | 
			
		||||
 | 
			
		||||
import "Components"
 | 
			
		||||
 | 
			
		||||
Tab{
 | 
			
		||||
    ColumnLayout{
 | 
			
		||||
        anchors.fill: parent
 | 
			
		||||
@@ -32,7 +34,7 @@ Tab{
 | 
			
		||||
            GridLayout{
 | 
			
		||||
                anchors.fill: parent
 | 
			
		||||
                columns: 2
 | 
			
		||||
                Text{ text: qsTr("Name") }
 | 
			
		||||
                Label{ text: qsTr("Name") }
 | 
			
		||||
                ComboBox{
 | 
			
		||||
                    id: fontChanger
 | 
			
		||||
                    Layout.fillWidth: true
 | 
			
		||||
@@ -54,7 +56,7 @@ Tab{
 | 
			
		||||
                    }
 | 
			
		||||
                    Component.onCompleted: updateIndex();
 | 
			
		||||
                }
 | 
			
		||||
                Text{ text: qsTr("Scaling") }
 | 
			
		||||
                Label{ text: qsTr("Scaling") }
 | 
			
		||||
                RowLayout{
 | 
			
		||||
                    Layout.fillWidth: true
 | 
			
		||||
                    Slider{
 | 
			
		||||
@@ -64,8 +66,8 @@ Tab{
 | 
			
		||||
                        stepSize: 0.05
 | 
			
		||||
                        enabled: false // Another trick to fix initial bad behavior.
 | 
			
		||||
                        Component.onCompleted: {
 | 
			
		||||
                            minimumValue = 0.5;
 | 
			
		||||
                            maximumValue = 2.5;
 | 
			
		||||
                            minimumValue = appSettings.minimumFontScaling;
 | 
			
		||||
                            maximumValue = appSettings.maximumFontScaling;
 | 
			
		||||
                            value = appSettings.fontScaling;
 | 
			
		||||
                            enabled = true;
 | 
			
		||||
                        }
 | 
			
		||||
@@ -74,11 +76,11 @@ Tab{
 | 
			
		||||
                            onFontScalingChanged: fontScalingChanger.value = appSettings.fontScaling;
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    Text{
 | 
			
		||||
                    SizedLabel{
 | 
			
		||||
                        text: Math.round(fontScalingChanger.value * 100) + "%"
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                Text{ text: qsTr("Font Width") }
 | 
			
		||||
                Label{ text: qsTr("Font Width") }
 | 
			
		||||
                RowLayout{
 | 
			
		||||
                    Layout.fillWidth: true
 | 
			
		||||
                    Slider{
 | 
			
		||||
@@ -93,7 +95,7 @@ Tab{
 | 
			
		||||
                            maximumValue = 1.5;
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    Text{
 | 
			
		||||
                    SizedLabel{
 | 
			
		||||
                        text: Math.round(widthChanger.value * 100) + "%"
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
 
 | 
			
		||||
@@ -21,13 +21,13 @@
 | 
			
		||||
import QtQuick 2.2
 | 
			
		||||
import QtGraphicalEffects 1.0
 | 
			
		||||
 | 
			
		||||
import "utils.js" as Utils
 | 
			
		||||
 | 
			
		||||
ShaderEffect {
 | 
			
		||||
    property ShaderEffectSource source
 | 
			
		||||
    property ShaderEffectSource blurredSource
 | 
			
		||||
    property ShaderEffectSource bloomSource
 | 
			
		||||
 | 
			
		||||
    property real liveBlur: blurredSource && blurredSource.live ? 1.0 : 0.0
 | 
			
		||||
 | 
			
		||||
    property color fontColor: appSettings.fontColor
 | 
			
		||||
    property color backgroundColor: appSettings.backgroundColor
 | 
			
		||||
    property real bloom: appSettings.bloom * 2.5
 | 
			
		||||
@@ -58,6 +58,12 @@ ShaderEffect {
 | 
			
		||||
 | 
			
		||||
    property real screen_brightness: appSettings.brightness * 1.5 + 0.5
 | 
			
		||||
 | 
			
		||||
    // This is the average value of the abs(sin) function. Needed to avoid aliasing.
 | 
			
		||||
    readonly property real absSinAvg: 0.63661828335466886
 | 
			
		||||
    property size rasterizationSmooth: Qt.size(
 | 
			
		||||
                                           Utils.clamp(2.0 * virtual_resolution.width / width, 0.0, 1.0),
 | 
			
		||||
                                           Utils.clamp(2.0 * virtual_resolution.height / height, 0.0, 1.0))
 | 
			
		||||
 | 
			
		||||
    property real dispX
 | 
			
		||||
    property real dispY
 | 
			
		||||
    property size virtual_resolution
 | 
			
		||||
@@ -155,6 +161,7 @@ ShaderEffect {
 | 
			
		||||
        uniform lowp float screen_brightness;
 | 
			
		||||
 | 
			
		||||
        uniform highp vec2 virtual_resolution;
 | 
			
		||||
        uniform highp vec2 rasterizationSmooth;
 | 
			
		||||
        uniform highp float dispX;
 | 
			
		||||
        uniform highp float dispY;" +
 | 
			
		||||
 | 
			
		||||
@@ -162,8 +169,7 @@ ShaderEffect {
 | 
			
		||||
            uniform highp sampler2D bloomSource;
 | 
			
		||||
            uniform lowp float bloom;" : "") +
 | 
			
		||||
        (burnIn !== 0 ? "
 | 
			
		||||
            uniform sampler2D blurredSource;
 | 
			
		||||
            uniform lowp float liveBlur;" : "") +
 | 
			
		||||
            uniform sampler2D blurredSource;" : "") +
 | 
			
		||||
        (staticNoise !== 0 ? "
 | 
			
		||||
            uniform highp float staticNoise;" : "") +
 | 
			
		||||
        (((staticNoise !== 0 || jitter !== 0 || rbgShift)
 | 
			
		||||
@@ -201,9 +207,11 @@ ShaderEffect {
 | 
			
		||||
            highp float result = 1.0;" +
 | 
			
		||||
 | 
			
		||||
           (appSettings.rasterization != appSettings.no_rasterization ?
 | 
			
		||||
               "result *= abs(sin(coords.y * virtual_resolution.y * "+Math.PI+"));" : "") +
 | 
			
		||||
               "float val = abs(sin(coords.y * virtual_resolution.y * "+Math.PI+"));
 | 
			
		||||
                result *= mix(val, " + absSinAvg + ", rasterizationSmooth.y);" : "") +
 | 
			
		||||
           (appSettings.rasterization == appSettings.pixel_rasterization ?
 | 
			
		||||
               "result *= abs(sin(coords.x * virtual_resolution.x * "+Math.PI+"));" : "") + "
 | 
			
		||||
               "val = abs(sin(coords.x * virtual_resolution.x * "+Math.PI+"));
 | 
			
		||||
                result *= mix(val, " + absSinAvg + ", rasterizationSmooth.x);" : "") + "
 | 
			
		||||
 | 
			
		||||
           return result;
 | 
			
		||||
        }
 | 
			
		||||
@@ -269,7 +277,7 @@ ShaderEffect {
 | 
			
		||||
            "vec3 txt_color = texture2D(source, txt_coords).rgb;" +
 | 
			
		||||
 | 
			
		||||
            (burnIn !== 0 ? "
 | 
			
		||||
                vec4 txt_blur = liveBlur * texture2D(blurredSource, txt_coords);
 | 
			
		||||
                vec4 txt_blur = texture2D(blurredSource, txt_coords);
 | 
			
		||||
                txt_color = txt_color + txt_blur.rgb * txt_blur.a;"
 | 
			
		||||
            : "") +
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -22,6 +22,8 @@ import QtQuick 2.2
 | 
			
		||||
import QtQuick.Controls 1.1
 | 
			
		||||
import QtQuick.Layouts 1.1
 | 
			
		||||
 | 
			
		||||
import "Components"
 | 
			
		||||
 | 
			
		||||
RowLayout {
 | 
			
		||||
    property alias value: slider.value
 | 
			
		||||
    property alias stepSize: slider.stepSize
 | 
			
		||||
@@ -36,15 +38,7 @@ RowLayout {
 | 
			
		||||
        stepSize: parent.stepSize
 | 
			
		||||
        Layout.fillWidth: true
 | 
			
		||||
    }
 | 
			
		||||
    Text{
 | 
			
		||||
        id: textfield
 | 
			
		||||
        text: formatNumber(Math.round(value * maxMultiplier))
 | 
			
		||||
    }
 | 
			
		||||
    function formatNumber(num) {
 | 
			
		||||
        var n = "" + num;
 | 
			
		||||
        while (n.length < 3) {
 | 
			
		||||
            n = " " + n;
 | 
			
		||||
        }
 | 
			
		||||
        return n + "%";
 | 
			
		||||
    SizedLabel{
 | 
			
		||||
        text: Math.round(value * maxMultiplier) + "%"
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -52,5 +52,6 @@
 | 
			
		||||
        <file>SettingsScreenTab.qml</file>
 | 
			
		||||
        <file>fonts/modern-fixedsys-excelsior/FSEX301-L2.ttf</file>
 | 
			
		||||
        <file>../icons/32x32/cool-retro-term.png</file>
 | 
			
		||||
        <file>Components/SizedLabel.qml</file>
 | 
			
		||||
    </qresource>
 | 
			
		||||
</RCC>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,11 @@
 | 
			
		||||
.pragma library
 | 
			
		||||
 | 
			
		||||
function clamp(x, min, max) {
 | 
			
		||||
    if (x <= min)
 | 
			
		||||
        return min;
 | 
			
		||||
    if (x >= max)
 | 
			
		||||
        return max;
 | 
			
		||||
    return x;
 | 
			
		||||
}
 | 
			
		||||
function lint(a, b, t) {
 | 
			
		||||
    return (1 - t) * a + (t) * b;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user