mirror of
				https://github.com/Swordfish90/cool-retro-term.git
				synced 2025-10-30 22:54:21 +00:00 
			
		
		
		
	Remove slow burn-in effect.
This commit is contained in:
		| @@ -54,9 +54,7 @@ QtObject { | ||||
|     property bool verbose: false | ||||
|  | ||||
|     property real bloomQuality: 0.5 | ||||
|  | ||||
|     property real burnInQuality: 0.5 | ||||
|     property bool useFastBurnIn: true | ||||
|  | ||||
|     property bool blinkingCursor: false | ||||
|  | ||||
| @@ -244,8 +242,7 @@ QtObject { | ||||
|             "bloomQuality": bloomQuality, | ||||
|             "burnInQuality": burnInQuality, | ||||
|             "useCustomCommand": useCustomCommand, | ||||
|             "customCommand": customCommand, | ||||
|             "useFastBurnIn": useFastBurnIn | ||||
|             "customCommand": customCommand | ||||
|         } | ||||
|         return stringify(settings) | ||||
|     } | ||||
| @@ -340,9 +337,6 @@ QtObject { | ||||
|                 !== undefined ? settings.useCustomCommand : useCustomCommand | ||||
|         customCommand = settings.customCommand | ||||
|                 !== undefined ? settings.customCommand : customCommand | ||||
|  | ||||
|         useFastBurnIn = settings.useFastBurnIn | ||||
|                 !== undefined ? settings.useFastBurnIn : useFastBurnIn | ||||
|     } | ||||
|  | ||||
|     function loadProfileString(profileString) { | ||||
|   | ||||
| @@ -35,7 +35,7 @@ Loader { | ||||
|     property real _minBurnInFadeTime: appSettings.minBurnInFadeTime | ||||
|     property real _maxBurnInFadeTime: appSettings.maxBurnInFadeTime | ||||
|  | ||||
|     active: appSettings.useFastBurnIn && appSettings.burnIn !== 0 | ||||
|     active: appSettings.burnIn !== 0 | ||||
|  | ||||
|     anchors.fill: parent | ||||
|  | ||||
|   | ||||
| @@ -34,7 +34,6 @@ Item{ | ||||
|  | ||||
|     property ShaderEffectSource mainSource: kterminalSource | ||||
|     property BurnInEffect burnInEffect: burnInEffect | ||||
|     property SlowBurnIn slowBurnInEffect: slowBurnInEffect | ||||
|     property real fontWidth: 1.0 | ||||
|     property real screenScaling: 1.0 | ||||
|     property real scaleTexture: 1.0 | ||||
| @@ -276,9 +275,5 @@ Item{ | ||||
|         BurnInEffect { | ||||
|             id: burnInEffect | ||||
|         } | ||||
|  | ||||
|         SlowBurnIn { | ||||
|             id: slowBurnInEffect | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -154,12 +154,6 @@ ColumnLayout { | ||||
|             Label { | ||||
|                 text: Math.round(burnInSlider.value * 100) + "%" | ||||
|             } | ||||
|             CheckBox { | ||||
|                 Layout.columnSpan: 2 | ||||
|                 text: qsTr("Burnin optimization (Might display timing artifacts)") | ||||
|                 checked: appSettings.useFastBurnIn | ||||
|                 onCheckedChanged: appSettings.useFastBurnIn = checked | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -24,7 +24,6 @@ import QtGraphicalEffects 1.0 | ||||
| import "utils.js" as Utils | ||||
|  | ||||
| Item { | ||||
|     property SlowBurnIn slowBurnInEffect | ||||
|     property ShaderEffectSource source | ||||
|     property BurnInEffect burnInEffect | ||||
|     property ShaderEffectSource bloomSource | ||||
| @@ -67,14 +66,10 @@ Item { | ||||
|          property real glowingLine: appSettings.glowingLine * 0.2 | ||||
|  | ||||
|          // Fast burnin properties | ||||
|          property real burnIn: appSettings.useFastBurnIn ? appSettings.burnIn : 0 | ||||
|          property real burnIn: appSettings.burnIn | ||||
|          property real burnInLastUpdate: burnInEffect.lastUpdate | ||||
|          property real burnInTime: burnInEffect.burnInFadeTime | ||||
|  | ||||
|          // Slow burnin properties | ||||
|          property real slowBurnIn: appSettings.useFastBurnIn ? 0 : appSettings.burnIn | ||||
|          property ShaderEffectSource slowBurnInSource: slowBurnInEffect.source | ||||
|  | ||||
|          property real jitter: appSettings.jitter | ||||
|          property size jitterDisplacement: Qt.size(0.007 * jitter, 0.002 * jitter) | ||||
|          property real shadowLength: 0.25 * screenCurvature * Utils.lint(0.50, 1.5, ambientLight) | ||||
| @@ -185,8 +180,6 @@ Item { | ||||
|                  uniform sampler2D burnInSource; | ||||
|                  uniform highp float burnInLastUpdate; | ||||
|                  uniform highp float burnInTime;" : "") + | ||||
|              (slowBurnIn !== 0 ? " | ||||
|                  uniform sampler2D slowBurnInSource;" : "") + | ||||
|              (staticNoise !== 0 ? " | ||||
|                  uniform highp float staticNoise;" : "") + | ||||
|              (((staticNoise !== 0 || jitter !== 0) ||(fallBack && (flickering || horizontalSync))) ? " | ||||
| @@ -314,11 +307,6 @@ Item { | ||||
|                      txt_color = max(txt_color, convertWithChroma(burnInColor));" | ||||
|                  : "") + | ||||
|  | ||||
|                  (slowBurnIn !== 0 ? " | ||||
|                      vec4 txt_blur = texture2D(slowBurnInSource, staticCoords); | ||||
|                      txt_color = max(txt_color, convertWithChroma(txt_blur.rgb * txt_blur.a)); | ||||
|                  " : "") + | ||||
|  | ||||
|                   "txt_color += fontColor.rgb * vec3(color);" + | ||||
|  | ||||
|                   "txt_color = applyRasterization(staticCoords, txt_color, virtualResolution, rasterizationIntensity);\n" + | ||||
|   | ||||
| @@ -1,157 +0,0 @@ | ||||
| /******************************************************************************* | ||||
| * Copyright (c) 2013-2021 "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 "utils.js" as Utils | ||||
|  | ||||
| Loader { | ||||
|     property ShaderEffectSource source: item ? item.source : null | ||||
|  | ||||
|     active: !appSettings.useFastBurnIn && appSettings.burnIn !== 0 | ||||
|     anchors.fill: parent | ||||
|  | ||||
|     sourceComponent: Item { | ||||
|         property alias source: burnInSourceEffect | ||||
|         property int burnInScaling: scaleTexture * appSettings.burnInQuality | ||||
|  | ||||
|         ShaderEffectSource { | ||||
|             property bool updateBurnIn: false | ||||
|             property real burnIn: appSettings.burnIn | ||||
|             property real fps: appSettings.fps !== 0 ? appSettings.fps : 60 | ||||
|             property real burnInFadeTime: Utils.lint(minBurnInFadeTime, maxBurnInFadeTime, burnIn) | ||||
|             property real burnInCoefficient: 1000 / (fps * burnInFadeTime) | ||||
|             property real minBurnInFadeTime: appSettings.minBurnInFadeTime | ||||
|             property real maxBurnInFadeTime: appSettings.maxBurnInFadeTime | ||||
|  | ||||
|             id: burnInSourceEffect | ||||
|  | ||||
|             anchors.fill: parent | ||||
|  | ||||
|             sourceItem: burnInEffect | ||||
|             recursive: true | ||||
|             live: false | ||||
|             hideSource: true | ||||
|             wrapMode: kterminalSource.wrapMode | ||||
|  | ||||
|             visible: false | ||||
|  | ||||
|             function restartBlurSource(){ | ||||
|                 livetimer.restart(); | ||||
|             } | ||||
|  | ||||
|             // This updates the burnin synched with the timer. | ||||
|             Connections { | ||||
|                 target: burnInSourceEffect.updateBurnIn ? timeManager : null | ||||
|                 ignoreUnknownSignals: false | ||||
|  | ||||
|                 function onTimeChanged() { | ||||
|                     burnInSourceEffect.scheduleUpdate() | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|             Timer { | ||||
|                 id: livetimer | ||||
|  | ||||
|                 // The interval assumes 60 fps. This is the time needed burnout a white pixel. | ||||
|                 // 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: burnInSourceEffect.burnInFadeTime * 1.1 | ||||
|                 running: true | ||||
|                 onTriggered: burnInSourceEffect.updateBurnIn = false; | ||||
|             } | ||||
|             Connections { | ||||
|                 target: kterminal | ||||
|  | ||||
|                 function onImagePainted() { | ||||
|                     burnInSourceEffect.scheduleUpdate(); | ||||
|                     burnInSourceEffect.updateBurnIn = true; | ||||
|                     livetimer.restart(); | ||||
|                 } | ||||
|             } | ||||
|             // Restart blurred source settings change. | ||||
|             Connections { | ||||
|                 target: appSettings | ||||
|  | ||||
|                 function onBurnInChanged() { | ||||
|                     burnInSourceEffect.restartBlurSource() | ||||
|                 } | ||||
|  | ||||
|                 function onTerminalFontChanged() { | ||||
|                     burnInSourceEffect.restartBlurSource() | ||||
|                 } | ||||
|  | ||||
|                 function onRasterizationChanged() { | ||||
|                     burnInSourceEffect.restartBlurSource() | ||||
|                 } | ||||
|  | ||||
|                 function onBurnInQualityChanged() { | ||||
|                     burnInSourceEffect.restartBlurSource() | ||||
|                 } | ||||
|             } | ||||
|             Connections { | ||||
|                 target: kterminalScrollbar | ||||
|  | ||||
|                 function onOpacityChanged() { | ||||
|                     burnInSourceEffect.restartBlurSource() | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|             ShaderEffect { | ||||
|                 id: burnInEffect | ||||
|  | ||||
|                 property variant txt_source: kterminalSource | ||||
|                 property variant blurredSource: burnInSourceEffect | ||||
|                 property real burnInCoefficient: burnInSourceEffect.burnInCoefficient | ||||
|  | ||||
|                 anchors.fill: parent | ||||
|                 blending: false | ||||
|  | ||||
|                 fragmentShader: | ||||
|                     "#ifdef GL_ES | ||||
|                         precision mediump float; | ||||
|                     #endif\n" + | ||||
|  | ||||
|                     "uniform lowp float qt_Opacity;" + | ||||
|                     "uniform lowp sampler2D txt_source;" + | ||||
|  | ||||
|                     "varying highp vec2 qt_TexCoord0; | ||||
|                      uniform lowp sampler2D blurredSource; | ||||
|                      uniform highp float burnInCoefficient;" + | ||||
|  | ||||
|                     "float max3(vec3 v) { | ||||
|                          return max (max (v.x, v.y), v.z); | ||||
|                     }" + | ||||
|  | ||||
|                     "void main() {" + | ||||
|                         "vec2 coords = qt_TexCoord0;" + | ||||
|                         "vec3 origColor = texture2D(txt_source, coords).rgb;" + | ||||
|                         "vec3 blur_color = texture2D(blurredSource, coords).rgb - vec3(burnInCoefficient);" + | ||||
|                         "vec3 color = min(origColor + blur_color, max(origColor, blur_color));" + | ||||
|  | ||||
|                         "gl_FragColor = vec4(color, max3(color - origColor));" + | ||||
|                     "}" | ||||
|  | ||||
|                 onStatusChanged: if (log) console.log(log) //Print warning messages | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -33,7 +33,6 @@ ShaderTerminal { | ||||
|  | ||||
|     source: terminal.mainSource | ||||
|     burnInEffect: terminal.burnInEffect | ||||
|     slowBurnInEffect: terminal.slowBurnInEffect | ||||
|     virtualResolution: terminal.virtualResolution | ||||
|     screenResolution: Qt.size( | ||||
|         terminalWindow.width * devicePixelRatio * appSettings.windowScaling, | ||||
|   | ||||
| @@ -41,7 +41,6 @@ | ||||
|         <file>BurnInEffect.qml</file> | ||||
|         <file>fonts/modern-terminus/TerminusTTF-4.46.0.ttf</file> | ||||
|         <file>TerminalFrame.qml</file> | ||||
|         <file>SlowBurnIn.qml</file> | ||||
|         <file>menus/WindowMenu.qml</file> | ||||
|         <file>menus/FullContextMenu.qml</file> | ||||
|         <file>menus/ShortContextMenu.qml</file> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user