diff --git a/app/qml/PreprocessedTerminal.qml b/app/qml/PreprocessedTerminal.qml index da6b756..75f1925 100644 --- a/app/qml/PreprocessedTerminal.qml +++ b/app/qml/PreprocessedTerminal.qml @@ -46,6 +46,7 @@ Item{ property real _maxBlurCoefficient: 0.90 property size terminalSize: kterminal.terminalSize + property size fontMetrics: kterminal.fontMetrics // Manage copy and paste Connections{ diff --git a/app/qml/TerminalContainer.qml b/app/qml/TerminalContainer.qml index f921589..af0f4a2 100644 --- a/app/qml/TerminalContainer.qml +++ b/app/qml/TerminalContainer.qml @@ -54,53 +54,18 @@ ShaderTerminal{ bloomSource: bloomSourceLoader.item - ShaderEffect { - id: staticNoiseEffect - anchors.fill: parent - property real element_size: appSettings.rasterization == appSettings.no_rasterization ? 2 : 1 - property alias __terminalHeight: terminal.virtualResolution.height - property alias __terminalWidth: terminal.virtualResolution.width - property size virtual_resolution: Qt.size(__terminalWidth / element_size, __terminalHeight / element_size) - - blending: false - - fragmentShader: - "uniform lowp float qt_Opacity; - varying highp vec2 qt_TexCoord0; - uniform highp vec2 virtual_resolution;" + - - "highp float noise(vec2 co) - { - highp float a = 12.9898; - highp float b = 78.233; - highp float c = 43758.5453; - highp float dt= dot(co.xy ,vec2(a,b)); - highp float sn= mod(dt,3.14); - return fract(sin(sn) * c); - } - - vec2 sw(vec2 p) {return vec2( floor(p.x) , floor(p.y) );} - vec2 se(vec2 p) {return vec2( ceil(p.x) , floor(p.y) );} - vec2 nw(vec2 p) {return vec2( floor(p.x) , ceil(p.y) );} - vec2 ne(vec2 p) {return vec2( ceil(p.x) , ceil(p.y) );} - - float smoothNoise(vec2 p) { - vec2 inter = smoothstep(0., 1., fract(p)); - float s = mix(noise(sw(p)), noise(se(p)), inter.x); - float n = mix(noise(nw(p)), noise(ne(p)), inter.x); - return mix(s, n, inter.y); - }" + - - "void main() {" + - "gl_FragColor.a = smoothNoise(qt_TexCoord0 * virtual_resolution);" + - "}" - - onStatusChanged: if (log) console.log(log) //Print warning messages + Image { + id: staticNoiseImage + source: "images/noise512.png" + anchors.centerIn: parent + width: parent.width / (appSettings.window_scaling * appSettings.fontScaling) + height: parent.height / (appSettings.window_scaling * appSettings.fontScaling) + fillMode: Image.Tile } + noiseSource: ShaderEffectSource{ id: staticNoiseSource - sourceItem: staticNoiseEffect - textureSize: Qt.size(mainShader.width, mainShader.height) + sourceItem: staticNoiseImage wrapMode: ShaderEffectSource.Repeat smooth: true hideSource: true @@ -113,7 +78,7 @@ ShaderTerminal{ height: parent.height property real outColor: 0.0 property real dispX: (5 / width) * appSettings.window_scaling - property real dispY: 5 / height * appSettings.window_scaling + property real dispY: (5 / height) * appSettings.window_scaling property size virtual_resolution: terminal.virtualResolution blending: false diff --git a/app/qml/images/noise512.png b/app/qml/images/noise512.png new file mode 100644 index 0000000..c05026d Binary files /dev/null and b/app/qml/images/noise512.png differ diff --git a/app/qml/resources.qrc b/app/qml/resources.qrc index 2128d57..398fcf1 100644 --- a/app/qml/resources.qrc +++ b/app/qml/resources.qrc @@ -67,5 +67,6 @@ TerminalContainer.qml images/crt256.png utils.js + images/noise512.png