From f851dd0a727f5859d4d7e5d3e8f41a6262c4aa63 Mon Sep 17 00:00:00 2001 From: Filippo Scognamiglio Date: Tue, 23 Dec 2025 21:37:31 +0100 Subject: [PATCH] Create multiple shader variants for the various configurations. --- app/app.pro | 42 ++++++ app/qml/BurnInEffect.qml | 33 +---- app/qml/ShaderTerminal.qml | 67 ++++------ app/qml/TerminalFrame.qml | 28 +--- app/qml/resources.qrc | 54 +++++++- app/shaders/burn_in.frag | 25 ---- app/shaders/burn_in.frag.qsb | Bin 3431 -> 2354 bytes app/shaders/burn_in.vert | 19 +++ app/shaders/burn_in.vert.qsb | Bin 0 -> 1298 bytes app/shaders/terminal_dynamic.frag | 123 ++++++++++-------- app/shaders/terminal_dynamic.frag.qsb | Bin 9516 -> 0 bytes app/shaders/terminal_dynamic.vert | 8 -- app/shaders/terminal_dynamic.vert.qsb | Bin 3518 -> 3225 bytes ...amic_raster0_burn0_frame0_chroma0.frag.qsb | Bin 0 -> 5315 bytes ...amic_raster0_burn0_frame0_chroma1.frag.qsb | Bin 0 -> 5315 bytes ...amic_raster0_burn0_frame1_chroma0.frag.qsb | Bin 0 -> 5706 bytes ...amic_raster0_burn0_frame1_chroma1.frag.qsb | Bin 0 -> 5706 bytes ...amic_raster0_burn1_frame0_chroma0.frag.qsb | Bin 0 -> 6108 bytes ...amic_raster0_burn1_frame0_chroma1.frag.qsb | Bin 0 -> 6303 bytes ...amic_raster0_burn1_frame1_chroma0.frag.qsb | Bin 0 -> 6463 bytes ...amic_raster0_burn1_frame1_chroma1.frag.qsb | Bin 0 -> 6653 bytes ...amic_raster1_burn0_frame0_chroma0.frag.qsb | Bin 0 -> 5997 bytes ...amic_raster1_burn0_frame0_chroma1.frag.qsb | Bin 0 -> 5997 bytes ...amic_raster1_burn0_frame1_chroma0.frag.qsb | Bin 0 -> 6370 bytes ...amic_raster1_burn0_frame1_chroma1.frag.qsb | Bin 0 -> 6370 bytes ...amic_raster1_burn1_frame0_chroma0.frag.qsb | Bin 0 -> 6756 bytes ...amic_raster1_burn1_frame0_chroma1.frag.qsb | Bin 0 -> 6941 bytes ...amic_raster1_burn1_frame1_chroma0.frag.qsb | Bin 0 -> 7112 bytes ...amic_raster1_burn1_frame1_chroma1.frag.qsb | Bin 0 -> 7297 bytes ...amic_raster2_burn0_frame0_chroma0.frag.qsb | Bin 0 -> 6032 bytes ...amic_raster2_burn0_frame0_chroma1.frag.qsb | Bin 0 -> 6032 bytes ...amic_raster2_burn0_frame1_chroma0.frag.qsb | Bin 0 -> 6401 bytes ...amic_raster2_burn0_frame1_chroma1.frag.qsb | Bin 0 -> 6401 bytes ...amic_raster2_burn1_frame0_chroma0.frag.qsb | Bin 0 -> 6793 bytes ...amic_raster2_burn1_frame0_chroma1.frag.qsb | Bin 0 -> 6977 bytes ...amic_raster2_burn1_frame1_chroma0.frag.qsb | Bin 0 -> 7147 bytes ...amic_raster2_burn1_frame1_chroma1.frag.qsb | Bin 0 -> 7334 bytes ...amic_raster3_burn0_frame0_chroma0.frag.qsb | Bin 0 -> 6467 bytes ...amic_raster3_burn0_frame0_chroma1.frag.qsb | Bin 0 -> 6467 bytes ...amic_raster3_burn0_frame1_chroma0.frag.qsb | Bin 0 -> 6818 bytes ...amic_raster3_burn0_frame1_chroma1.frag.qsb | Bin 0 -> 6818 bytes ...amic_raster3_burn1_frame0_chroma0.frag.qsb | Bin 0 -> 7218 bytes ...amic_raster3_burn1_frame0_chroma1.frag.qsb | Bin 0 -> 7397 bytes ...amic_raster3_burn1_frame1_chroma0.frag.qsb | Bin 0 -> 7570 bytes ...amic_raster3_burn1_frame1_chroma1.frag.qsb | Bin 0 -> 7757 bytes app/shaders/terminal_frame.frag | 27 ---- app/shaders/terminal_frame.frag.qsb | Bin 4686 -> 3572 bytes app/shaders/terminal_frame.vert | 19 +++ app/shaders/terminal_frame.vert.qsb | Bin 0 -> 1319 bytes app/shaders/terminal_static.frag | 101 +++++++------- app/shaders/terminal_static.frag.qsb | Bin 6992 -> 0 bytes app/shaders/terminal_static.vert | 25 ++++ app/shaders/terminal_static.vert.qsb | Bin 0 -> 1554 bytes ...static_rgb0_chroma0_bloom0_curve0.frag.qsb | Bin 0 -> 2923 bytes ...static_rgb0_chroma0_bloom0_curve1.frag.qsb | Bin 0 -> 4032 bytes ...static_rgb0_chroma0_bloom1_curve0.frag.qsb | Bin 0 -> 3414 bytes ...static_rgb0_chroma0_bloom1_curve1.frag.qsb | Bin 0 -> 4549 bytes ...static_rgb0_chroma1_bloom0_curve0.frag.qsb | Bin 0 -> 3076 bytes ...static_rgb0_chroma1_bloom0_curve1.frag.qsb | Bin 0 -> 4191 bytes ...static_rgb0_chroma1_bloom1_curve0.frag.qsb | Bin 0 -> 3743 bytes ...static_rgb0_chroma1_bloom1_curve1.frag.qsb | Bin 0 -> 4895 bytes ...static_rgb1_chroma0_bloom0_curve0.frag.qsb | Bin 0 -> 3636 bytes ...static_rgb1_chroma0_bloom0_curve1.frag.qsb | Bin 0 -> 4738 bytes ...static_rgb1_chroma0_bloom1_curve0.frag.qsb | Bin 0 -> 4148 bytes ...static_rgb1_chroma0_bloom1_curve1.frag.qsb | Bin 0 -> 5248 bytes ...static_rgb1_chroma1_bloom0_curve0.frag.qsb | Bin 0 -> 3797 bytes ...static_rgb1_chroma1_bloom0_curve1.frag.qsb | Bin 0 -> 4897 bytes ...static_rgb1_chroma1_bloom1_curve0.frag.qsb | Bin 0 -> 4461 bytes ...static_rgb1_chroma1_bloom1_curve1.frag.qsb | Bin 0 -> 5592 bytes 69 files changed, 304 insertions(+), 267 deletions(-) create mode 100644 app/shaders/burn_in.vert create mode 100644 app/shaders/burn_in.vert.qsb delete mode 100644 app/shaders/terminal_dynamic.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster0_burn0_frame0_chroma0.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster0_burn0_frame0_chroma1.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster0_burn0_frame1_chroma0.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster0_burn0_frame1_chroma1.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster0_burn1_frame0_chroma0.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster0_burn1_frame0_chroma1.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster0_burn1_frame1_chroma0.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster0_burn1_frame1_chroma1.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster1_burn0_frame0_chroma0.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster1_burn0_frame0_chroma1.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster1_burn0_frame1_chroma0.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster1_burn0_frame1_chroma1.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster1_burn1_frame0_chroma0.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster1_burn1_frame0_chroma1.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster1_burn1_frame1_chroma0.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster1_burn1_frame1_chroma1.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster2_burn0_frame0_chroma0.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster2_burn0_frame0_chroma1.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster2_burn0_frame1_chroma0.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster2_burn0_frame1_chroma1.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster2_burn1_frame0_chroma0.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster2_burn1_frame0_chroma1.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster2_burn1_frame1_chroma0.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster2_burn1_frame1_chroma1.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster3_burn0_frame0_chroma0.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster3_burn0_frame0_chroma1.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster3_burn0_frame1_chroma0.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster3_burn0_frame1_chroma1.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster3_burn1_frame0_chroma0.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster3_burn1_frame0_chroma1.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster3_burn1_frame1_chroma0.frag.qsb create mode 100644 app/shaders/terminal_dynamic_raster3_burn1_frame1_chroma1.frag.qsb create mode 100644 app/shaders/terminal_frame.vert create mode 100644 app/shaders/terminal_frame.vert.qsb delete mode 100644 app/shaders/terminal_static.frag.qsb create mode 100644 app/shaders/terminal_static.vert create mode 100644 app/shaders/terminal_static.vert.qsb create mode 100644 app/shaders/terminal_static_rgb0_chroma0_bloom0_curve0.frag.qsb create mode 100644 app/shaders/terminal_static_rgb0_chroma0_bloom0_curve1.frag.qsb create mode 100644 app/shaders/terminal_static_rgb0_chroma0_bloom1_curve0.frag.qsb create mode 100644 app/shaders/terminal_static_rgb0_chroma0_bloom1_curve1.frag.qsb create mode 100644 app/shaders/terminal_static_rgb0_chroma1_bloom0_curve0.frag.qsb create mode 100644 app/shaders/terminal_static_rgb0_chroma1_bloom0_curve1.frag.qsb create mode 100644 app/shaders/terminal_static_rgb0_chroma1_bloom1_curve0.frag.qsb create mode 100644 app/shaders/terminal_static_rgb0_chroma1_bloom1_curve1.frag.qsb create mode 100644 app/shaders/terminal_static_rgb1_chroma0_bloom0_curve0.frag.qsb create mode 100644 app/shaders/terminal_static_rgb1_chroma0_bloom0_curve1.frag.qsb create mode 100644 app/shaders/terminal_static_rgb1_chroma0_bloom1_curve0.frag.qsb create mode 100644 app/shaders/terminal_static_rgb1_chroma0_bloom1_curve1.frag.qsb create mode 100644 app/shaders/terminal_static_rgb1_chroma1_bloom0_curve0.frag.qsb create mode 100644 app/shaders/terminal_static_rgb1_chroma1_bloom0_curve1.frag.qsb create mode 100644 app/shaders/terminal_static_rgb1_chroma1_bloom1_curve0.frag.qsb create mode 100644 app/shaders/terminal_static_rgb1_chroma1_bloom1_curve1.frag.qsb diff --git a/app/app.pro b/app/app.pro index ce41a2b..338e0a6 100644 --- a/app/app.pro +++ b/app/app.pro @@ -21,6 +21,9 @@ isEmpty(QSB_BIN): QSB_BIN = $$[QT_INSTALL_BINS]/qsb SHADERS_DIR = $${_PRO_FILE_PWD_}/shaders SHADERS += $$files($$SHADERS_DIR/*.frag) $$files($$SHADERS_DIR/*.vert) +SHADERS -= $$SHADERS_DIR/terminal_dynamic.frag +SHADERS -= $$SHADERS_DIR/terminal_static.frag +SHADERS -= $$SHADERS_DIR/passthrough.vert qsb.input = SHADERS qsb.output = ../../app/shaders/${QMAKE_FILE_NAME}.qsb @@ -32,6 +35,45 @@ QMAKE_EXTRA_COMPILERS += qsb PRE_TARGETDEPS += $$QSB_FILES OTHER_FILES += $$SHADERS $$QSB_FILES +DYNAMIC_SHADER = $$SHADERS_DIR/terminal_dynamic.frag +STATIC_SHADER = $$SHADERS_DIR/terminal_static.frag + +RASTER_MODES = 0 1 2 3 +BINARY_FLAGS = 0 1 +VARIANT_SHADER_DIR = $$relative_path($$PWD/shaders, $$OUT_PWD) + +for(raster_mode, RASTER_MODES) { + for(burn_in, BINARY_FLAGS) { + for(display_frame, BINARY_FLAGS) { + for(chroma_on, BINARY_FLAGS) { + dynamic_variant = terminal_dynamic_raster$${raster_mode}_burn$${burn_in}_frame$${display_frame}_chroma$${chroma_on} + dynamic_output = $${VARIANT_SHADER_DIR}/$${dynamic_variant}.frag.qsb + dynamic_target = shader_variant_$${dynamic_variant} + $${dynamic_target}.target = $${dynamic_output} + $${dynamic_target}.depends = $$DYNAMIC_SHADER + $${dynamic_target}.commands = $$QSB_BIN --glsl \"100 es,120,150\" --hlsl 50 --msl 12 --qt6 -DCRT_RASTER_MODE=$${raster_mode} -DCRT_BURN_IN=$${burn_in} -DCRT_DISPLAY_FRAME=$${display_frame} -DCRT_CHROMA=$${chroma_on} -o $${dynamic_output} $$DYNAMIC_SHADER + QMAKE_EXTRA_TARGETS += $${dynamic_target} + } + } + } +} + +for(rgb_shift, BINARY_FLAGS) { + for(chroma_on, BINARY_FLAGS) { + for(bloom_on, BINARY_FLAGS) { + for(curve_on, BINARY_FLAGS) { + static_variant = terminal_static_rgb$${rgb_shift}_chroma$${chroma_on}_bloom$${bloom_on}_curve$${curve_on} + static_output = $${VARIANT_SHADER_DIR}/$${static_variant}.frag.qsb + static_target = shader_variant_$${static_variant} + $${static_target}.target = $${static_output} + $${static_target}.depends = $$STATIC_SHADER + $${static_target}.commands = $$QSB_BIN --glsl \"100 es,120,150\" --hlsl 50 --msl 12 --qt6 -DCRT_RGB_SHIFT=$${rgb_shift} -DCRT_CHROMA=$${chroma_on} -DCRT_BLOOM=$${bloom_on} -DCRT_CURVATURE=$${curve_on} -o $${static_output} $$STATIC_SHADER + QMAKE_EXTRA_TARGETS += $${static_target} + } + } + } +} + ######################################### ## INTALLS ######################################### diff --git a/app/qml/BurnInEffect.qml b/app/qml/BurnInEffect.qml index 4f5fd53..88a6966 100644 --- a/app/qml/BurnInEffect.qml +++ b/app/qml/BurnInEffect.qml @@ -105,6 +105,8 @@ Loader { ShaderEffect { id: burnInShaderEffect + property real time: timeManager.time + property variant txt_source: kterminalSource property variant burnInSource: burnInEffectSource property real burnInTime: burnInFadeTime @@ -114,37 +116,8 @@ Loader { anchors.fill: parent blending: false - // Extra uniforms required by shared block - property real qt_Opacity: 1.0 - property real time: timeManager.time - property color fontColor: appSettings.fontColor - property color backgroundColor: appSettings.backgroundColor - property real shadowLength: 0 - property size virtualResolution: Qt.size(width, height) - property real rasterizationIntensity: 0 - property int rasterizationMode: 0 - property real burnIn: appSettings.burnIn - property real staticNoise: 0 - property real screenCurvature: 0 - property real glowingLine: 0 - property real chromaColor: 0 - property size jitterDisplacement: Qt.size(0, 0) - property real ambientLight: 0 - property real jitter: 0 - property real horizontalSync: 0 - property real horizontalSyncStrength: 0 - property real flickering: 0 - property real displayTerminalFrame: 0 - property size scaleNoiseSize: Qt.size(0, 0) - property real screen_brightness: 1.0 - property real bloom: 0 - property real rbgShift: 0 - property real frameShadowCoeff: 0 - property real frameShininess: 0 - property color frameColor: backgroundColor - property real frameSize: 0 fragmentShader: "qrc:/shaders/burn_in.frag.qsb" - vertexShader: "qrc:/shaders/passthrough.vert.qsb" + vertexShader: "qrc:/shaders/burn_in.vert.qsb" onStatusChanged: if (log) console.log(log) //Print warning messages } diff --git a/app/qml/ShaderTerminal.qml b/app/qml/ShaderTerminal.qml index 50ba426..1a9bb92 100644 --- a/app/qml/ShaderTerminal.qml +++ b/app/qml/ShaderTerminal.qml @@ -23,6 +23,30 @@ import QtQuick 2.2 import "utils.js" as Utils Item { + function dynamicFragmentPath() { + var rasterMode = appSettings.rasterization; + var burnInOn = appSettings.burnIn > 0 ? 1 : 0; + var frameOn = (appSettings._frameSize > 0 || appSettings.screenCurvature > 0) ? 1 : 0; + var chromaOn = appSettings.chromaColor > 0 ? 1 : 0; + return "qrc:/shaders/terminal_dynamic_raster" + rasterMode + + "_burn" + burnInOn + + "_frame" + frameOn + + "_chroma" + chromaOn + + ".frag.qsb"; + } + + function staticFragmentPath() { + var rgbShiftOn = appSettings.rbgShift > 0 ? 1 : 0; + var chromaOn = appSettings.chromaColor > 0 ? 1 : 0; + var bloomOn = appSettings.bloom > 0 ? 1 : 0; + var curvatureOn = (appSettings.screenCurvature > 0 || appSettings.frameSize > 0) ? 1 : 0; + return "qrc:/shaders/terminal_static_rgb" + rgbShiftOn + + "_chroma" + chromaOn + + "_bloom" + bloomOn + + "_curve" + curvatureOn + + ".frag.qsb"; + } + property ShaderEffectSource source property BurnInEffect burnInEffect property ShaderEffectSource bloomSource @@ -69,7 +93,6 @@ Item { 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) property real staticNoise: appSettings.staticNoise property size scaleNoiseSize: Qt.size((width * 0.75) / (noiseTexture.width * appSettings.windowScaling * appSettings.totalFontScaling), (height * 0.75) / (noiseTexture.height * appSettings.windowScaling * appSettings.totalFontScaling)) @@ -79,21 +102,13 @@ Item { // Rasterization might display oversamping issues if virtual resolution is close to physical display resolution. // We progressively disable rasterization from 4x up to 2x resolution. property real rasterizationIntensity: Utils.smoothstep(2.0, 4.0, _screenDensity) - property int rasterizationMode: appSettings.rasterization property real displayTerminalFrame: appSettings._frameSize > 0 || appSettings.screenCurvature > 0 property real time: timeManager.time property ShaderEffectSource noiseSource: noiseShaderSource - // Extra uniforms expected by the shared uniform block - property real frameShadowCoeff: 0 - property color frameColor: backgroundColor property real frameSize: appSettings.frameSize - property real prevLastUpdate: burnInEffect.prevLastUpdate - property real screen_brightness: Utils.lint(0.5, 1.5, appSettings.brightness) - property real bloom: appSettings.bloom - property real rbgShift: (appSettings.rbgShift / Math.max(width, 1)) * appSettings.totalFontScaling property real frameShininess: appSettings.frameShininess anchors.fill: parent @@ -116,7 +131,7 @@ Item { } vertexShader: "qrc:/shaders/terminal_dynamic.vert.qsb" - fragmentShader: "qrc:/shaders/terminal_dynamic.frag.qsb" + fragmentShader: dynamicFragmentPath() onStatusChanged: if (log) console.log(log) } @@ -167,43 +182,15 @@ Item { property real rbgShift: (appSettings.rbgShift / width) * appSettings.totalFontScaling - property int rasterization: appSettings.rasterization - property real screen_brightness: Utils.lint(0.5, 1.5, appSettings.brightness) - - property real ambientLight: parent.ambientLight - - property size virtualResolution: parent.virtualResolution property real frameShininess: appSettings.frameShininess - - // Extra uniforms to match shared uniform block - property real time: timeManager.time - property real shadowLength: 0 - property real rasterizationIntensity: Utils.smoothstep(2.0, 4.0, _screenDensity) - property int rasterizationMode: appSettings.rasterization - property real burnInLastUpdate: burnInEffect.lastUpdate - property real burnInTime: burnInEffect.burnInFadeTime - property real burnIn: appSettings.burnIn - property real staticNoise: appSettings.staticNoise - property real glowingLine: appSettings.glowingLine * 0.2 - property size jitterDisplacement: Qt.size(0, 0) - property real jitter: appSettings.jitter - property real horizontalSync: appSettings.horizontalSync - property real horizontalSyncStrength: Utils.lint(0.05, 0.35, horizontalSync) - property real flickering: appSettings.flickering - property real displayTerminalFrame: dynamicShader.displayTerminalFrame - property size scaleNoiseSize: Qt.size((width * 0.75) / (512 * appSettings.windowScaling * appSettings.totalFontScaling), - (height * 0.75) / (512 * appSettings.windowScaling * appSettings.totalFontScaling)) - property real frameShadowCoeff: 0 - property color frameColor: backgroundColor property real frameSize: appSettings.frameSize - property real prevLastUpdate: burnInEffect.prevLastUpdate blending: false visible: false - vertexShader: "qrc:/shaders/passthrough.vert.qsb" - fragmentShader: "qrc:/shaders/terminal_static.frag.qsb" + vertexShader: "qrc:/shaders/terminal_static.vert.qsb" + fragmentShader: staticFragmentPath() onStatusChanged: if (log) console.log(log) } diff --git a/app/qml/TerminalFrame.qml b/app/qml/TerminalFrame.qml index dd0e56c..4fd07a8 100644 --- a/app/qml/TerminalFrame.qml +++ b/app/qml/TerminalFrame.qml @@ -42,35 +42,9 @@ ShaderEffect { property real frameSize: appSettings.frameSize - // Uniforms required by the shared block property real qt_Opacity: 1.0 - property real time: timeManager.time - property color fontColor: appSettings.fontColor - property color backgroundColor: appSettings.backgroundColor - property real shadowLength: 0 - property size virtualResolution: Qt.size(width, height) - property real rasterizationIntensity: 0 - property int rasterizationMode: 0 - property real burnInLastUpdate: 0 - property real burnInTime: 0 - property real burnIn: 0 - property real staticNoise: 0 - property real glowingLine: 0 - property real chromaColor: 0 - property size jitterDisplacement: Qt.size(0, 0) - property real ambientLight: _ambientLight - property real jitter: 0 - property real horizontalSync: 0 - property real horizontalSyncStrength: 0 - property real flickering: 0 - property real displayTerminalFrame: 0 - property size scaleNoiseSize: Qt.size(0, 0) - property real screen_brightness: 1.0 - property real bloom: 0 - property real rbgShift: 0 - property real prevLastUpdate: 0 - vertexShader: "qrc:/shaders/passthrough.vert.qsb" + vertexShader: "qrc:/shaders/terminal_frame.vert.qsb" fragmentShader: "qrc:/shaders/terminal_frame.frag.qsb" onStatusChanged: if (log) console.log(log) //Print warning messages diff --git a/app/qml/resources.qrc b/app/qml/resources.qrc index 57f43da..ecb5287 100644 --- a/app/qml/resources.qrc +++ b/app/qml/resources.qrc @@ -45,9 +45,57 @@ ShaderLibrary.qml menus/OSXMenu.qml ../shaders/terminal_dynamic.vert.qsb - ../shaders/terminal_dynamic.frag.qsb - ../shaders/passthrough.vert.qsb - ../shaders/terminal_static.frag.qsb + ../shaders/terminal_static.vert.qsb + ../shaders/terminal_frame.vert.qsb + ../shaders/burn_in.vert.qsb + ../shaders/terminal_dynamic_raster0_burn0_frame0_chroma0.frag.qsb + ../shaders/terminal_dynamic_raster0_burn0_frame0_chroma1.frag.qsb + ../shaders/terminal_dynamic_raster0_burn0_frame1_chroma0.frag.qsb + ../shaders/terminal_dynamic_raster0_burn0_frame1_chroma1.frag.qsb + ../shaders/terminal_dynamic_raster0_burn1_frame0_chroma0.frag.qsb + ../shaders/terminal_dynamic_raster0_burn1_frame0_chroma1.frag.qsb + ../shaders/terminal_dynamic_raster0_burn1_frame1_chroma0.frag.qsb + ../shaders/terminal_dynamic_raster0_burn1_frame1_chroma1.frag.qsb + ../shaders/terminal_dynamic_raster1_burn0_frame0_chroma0.frag.qsb + ../shaders/terminal_dynamic_raster1_burn0_frame0_chroma1.frag.qsb + ../shaders/terminal_dynamic_raster1_burn0_frame1_chroma0.frag.qsb + ../shaders/terminal_dynamic_raster1_burn0_frame1_chroma1.frag.qsb + ../shaders/terminal_dynamic_raster1_burn1_frame0_chroma0.frag.qsb + ../shaders/terminal_dynamic_raster1_burn1_frame0_chroma1.frag.qsb + ../shaders/terminal_dynamic_raster1_burn1_frame1_chroma0.frag.qsb + ../shaders/terminal_dynamic_raster1_burn1_frame1_chroma1.frag.qsb + ../shaders/terminal_dynamic_raster2_burn0_frame0_chroma0.frag.qsb + ../shaders/terminal_dynamic_raster2_burn0_frame0_chroma1.frag.qsb + ../shaders/terminal_dynamic_raster2_burn0_frame1_chroma0.frag.qsb + ../shaders/terminal_dynamic_raster2_burn0_frame1_chroma1.frag.qsb + ../shaders/terminal_dynamic_raster2_burn1_frame0_chroma0.frag.qsb + ../shaders/terminal_dynamic_raster2_burn1_frame0_chroma1.frag.qsb + ../shaders/terminal_dynamic_raster2_burn1_frame1_chroma0.frag.qsb + ../shaders/terminal_dynamic_raster2_burn1_frame1_chroma1.frag.qsb + ../shaders/terminal_dynamic_raster3_burn0_frame0_chroma0.frag.qsb + ../shaders/terminal_dynamic_raster3_burn0_frame0_chroma1.frag.qsb + ../shaders/terminal_dynamic_raster3_burn0_frame1_chroma0.frag.qsb + ../shaders/terminal_dynamic_raster3_burn0_frame1_chroma1.frag.qsb + ../shaders/terminal_dynamic_raster3_burn1_frame0_chroma0.frag.qsb + ../shaders/terminal_dynamic_raster3_burn1_frame0_chroma1.frag.qsb + ../shaders/terminal_dynamic_raster3_burn1_frame1_chroma0.frag.qsb + ../shaders/terminal_dynamic_raster3_burn1_frame1_chroma1.frag.qsb + ../shaders/terminal_static_rgb0_chroma0_bloom0_curve0.frag.qsb + ../shaders/terminal_static_rgb0_chroma0_bloom0_curve1.frag.qsb + ../shaders/terminal_static_rgb0_chroma0_bloom1_curve0.frag.qsb + ../shaders/terminal_static_rgb0_chroma0_bloom1_curve1.frag.qsb + ../shaders/terminal_static_rgb0_chroma1_bloom0_curve0.frag.qsb + ../shaders/terminal_static_rgb0_chroma1_bloom0_curve1.frag.qsb + ../shaders/terminal_static_rgb0_chroma1_bloom1_curve0.frag.qsb + ../shaders/terminal_static_rgb0_chroma1_bloom1_curve1.frag.qsb + ../shaders/terminal_static_rgb1_chroma0_bloom0_curve0.frag.qsb + ../shaders/terminal_static_rgb1_chroma0_bloom0_curve1.frag.qsb + ../shaders/terminal_static_rgb1_chroma0_bloom1_curve0.frag.qsb + ../shaders/terminal_static_rgb1_chroma0_bloom1_curve1.frag.qsb + ../shaders/terminal_static_rgb1_chroma1_bloom0_curve0.frag.qsb + ../shaders/terminal_static_rgb1_chroma1_bloom0_curve1.frag.qsb + ../shaders/terminal_static_rgb1_chroma1_bloom1_curve0.frag.qsb + ../shaders/terminal_static_rgb1_chroma1_bloom1_curve1.frag.qsb ../shaders/terminal_frame.frag.qsb ../shaders/burn_in.frag.qsb fonts/unscii/unscii-8-thin.ttf diff --git a/app/shaders/burn_in.frag b/app/shaders/burn_in.frag index ffb4f54..0e44943 100644 --- a/app/shaders/burn_in.frag +++ b/app/shaders/burn_in.frag @@ -6,33 +6,8 @@ layout(location = 0) out vec4 fragColor; layout(std140, binding = 0) uniform ubuf { mat4 qt_Matrix; float qt_Opacity; - float time; - vec4 fontColor; - vec4 backgroundColor; - float shadowLength; - vec2 virtualResolution; - float rasterizationIntensity; - int rasterizationMode; float burnInLastUpdate; float burnInTime; - float burnIn; - float staticNoise; - float screenCurvature; - float glowingLine; - float chromaColor; - vec2 jitterDisplacement; - float ambientLight; - float jitter; - float horizontalSync; - float horizontalSyncStrength; - float flickering; - float displayTerminalFrame; - vec2 scaleNoiseSize; - float screen_brightness; - float bloom; - float rbgShift; - float frameShadowCoeff; - vec4 frameColor; float prevLastUpdate; }; diff --git a/app/shaders/burn_in.frag.qsb b/app/shaders/burn_in.frag.qsb index 543399fac6777e1f1e5bcc926fdd5b3c0e3b4a98..8f67421862295c6962ebc044410770737e1e46d3 100644 GIT binary patch literal 2354 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 Y_z&DEqNj$>jVHEaW9<3$A8(ys&j%l-#{d8T literal 3431 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 J{{Rsj&WyU?u;~B* diff --git a/app/shaders/burn_in.vert b/app/shaders/burn_in.vert new file mode 100644 index 0000000..8e478c9 --- /dev/null +++ b/app/shaders/burn_in.vert @@ -0,0 +1,19 @@ +#version 440 + +layout(location = 0) in vec4 qt_Vertex; +layout(location = 1) in vec2 qt_MultiTexCoord0; + +layout(std140, binding = 0) uniform ubuf { + mat4 qt_Matrix; + float qt_Opacity; + float burnInLastUpdate; + float burnInTime; + float prevLastUpdate; +}; + +layout(location = 0) out vec2 qt_TexCoord0; + +void main() { + qt_TexCoord0 = qt_MultiTexCoord0; + gl_Position = qt_Matrix * qt_Vertex; +} diff --git a/app/shaders/burn_in.vert.qsb b/app/shaders/burn_in.vert.qsb new file mode 100644 index 0000000000000000000000000000000000000000..539661c7eb294f77ac292a129bd2eef9e33b7835 GIT binary patch literal 1298 zcmV+t1?~C(01@GMob6a!Pvb@uo?KuTQ143ucQ99H$vr88dJRti4F-Bu!}p?0Wzk+{0K)Q~tXn zL(kCYG(FoRNba{>cKZQBXQ58pBwd8UqVg=L;PczsMXluXc4==PtIi&=TtqNW?TREl z({^w@!(`=_VLn5BIGv$2qx~%Hg?+HM$YeX6KsPKBF06hi%aAOi$g(8Mk)5^3PF}2W zOc6fZL%^boR9P5%D9e!SP?2RxcC5&9Bs)=Ld6LyA)+g}XRAR^dma>1Q#&H{zc+kVzM7{#IZsg8RA$Gayiyvze+aqg5!b6>nd@m6S>wY z7i+|Y`zK0%K8*4x_fLs;j_^;}s2A~kll;W3B1Y}x!) zl{N#2ar z-{zRRD*9N8vZQ~iGTdoetN=q64YdHf{}+&&~f;CKle@cMIOPf%5QrUe?E`A`i}TZ$SH_X&`o3}M^aD;sh--lBm*0GMRIk50E-OJ!AXSh%GP(&= z^?=8?#zRY?8%qsfF0PbB-G$u^7n&RYxW#)xw-AN@e7psVqRo>5$%~c9sSahhu?!p6 zic7J)RaICi#m7-W67aCJ2vbrZ1rvOg>aN&GkSZySXJf1-6WC;aV{UsEhiem~yi;Ek zdHUsuM)v1z+i7)!wxxg7v$)wc;E#;1-8|4na^LQ?KgS=X?+@UO>EqYQF?*H|m(0?I zR%Ox~J$kLY_qRIvf+3eN4fkAtMkDaywb*rAPPuq}oq7oxjXo_AlpwL4v`I=bTI7G>+9!w%XMJu$a;K&w+aCAlOVh(Mqk~~BF?J* z_D=feCcDjc(k_deXyf>IOX{jOhdR}j4T>E)C48Z8S?qfj{UOchzd2%UoH!3 0.0) { - vec4 txt_blur = texture(burnInSource, staticCoords); - float blurDecay = clamp((time - burnInLastUpdate) * burnInTime, 0.0, 1.0); - vec3 burnInColor = 0.65 * (txt_blur.rgb - vec3(blurDecay)); - txt_color = max(txt_color, convertWithChroma(burnInColor)); - } +#if CRT_BURN_IN == 1 + vec4 txt_blur = texture(burnInSource, staticCoords); + float blurDecay = clamp((time - burnInLastUpdate) * burnInTime, 0.0, 1.0); + vec3 burnInColor = 0.65 * (txt_blur.rgb - vec3(blurDecay)); + txt_color = max(txt_color, convertWithChroma(burnInColor)); +#endif txt_color += fontColor.rgb * vec3(color); - txt_color = applyRasterization(staticCoords, txt_color, virtualResolution, rasterizationIntensity, rasterizationMode); + txt_color = applyRasterization(staticCoords, txt_color, virtualResolution, rasterizationIntensity); vec3 finalColor = txt_color; float brightness = mix(1.0, vBrightness, step(0.0, flickering)); @@ -156,12 +167,12 @@ void main() { finalColor += vec3(ambientLight) * (1.0 - distance) * (1.0 - distance); - if (displayTerminalFrame > 0.0) { - vec4 frameColor = texture(frameSource, qt_TexCoord0); - vec3 reflection = max(finalColor - backgroundColor.rgb, vec3(0.0)); - reflection *= frameShininess; - finalColor = mix(finalColor, frameColor.rgb + reflection, frameColor.a); - } +#if CRT_DISPLAY_FRAME == 1 + vec4 frameColor = texture(frameSource, qt_TexCoord0); + vec3 reflection = max(finalColor - backgroundColor.rgb, vec3(0.0)); + reflection *= frameShininess; + finalColor = mix(finalColor, frameColor.rgb + reflection, frameColor.a); +#endif fragColor = vec4(finalColor, qt_Opacity); } diff --git a/app/shaders/terminal_dynamic.frag.qsb b/app/shaders/terminal_dynamic.frag.qsb deleted file mode 100644 index ad4dd84b7de24d8ef5d4b31db3ac78508392c9dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9516 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 diff --git a/app/shaders/terminal_dynamic.vert b/app/shaders/terminal_dynamic.vert index 7426420..5723b41 100644 --- a/app/shaders/terminal_dynamic.vert +++ b/app/shaders/terminal_dynamic.vert @@ -9,10 +9,8 @@ layout(std140, binding = 0) uniform ubuf { float time; vec4 fontColor; vec4 backgroundColor; - float shadowLength; vec2 virtualResolution; float rasterizationIntensity; - int rasterizationMode; float burnInLastUpdate; float burnInTime; float burnIn; @@ -28,14 +26,8 @@ layout(std140, binding = 0) uniform ubuf { float flickering; float displayTerminalFrame; vec2 scaleNoiseSize; - float screen_brightness; - float bloom; - float rbgShift; - float frameShadowCoeff; float frameShininess; - vec4 frameColor; float frameSize; - float prevLastUpdate; }; layout(binding = 0) uniform sampler2D noiseSource; diff --git a/app/shaders/terminal_dynamic.vert.qsb b/app/shaders/terminal_dynamic.vert.qsb index 99a67998f46d76920e5b0ab08e002db744522221..8a49f99c522d710770ff7063b410948ff79f6933 100644 GIT binary patch literal 3225 zcmV;K3}*8H05`{Yob6l9a~nk#@AxZ;9AaXU5Fl%YWC0l*AuDoh$N3^Qfh-OVkqI9r ztBj?QJw%!jGb6_iWD5$miUS9>irVGKfddB)9H?3@Tg8FH{z-e;+I_G4we)6s#;_@< z1jy#X4&0V!C|o>E&|;ZYhoSLc%USNKj7{Uxom;x z0tkj6=1Zqt`1C|Y)PxPOa7antc1p%Flw5-E4lGQm=-*BS681p!SK-}&??VuaNihrG z{>fNJSdg!Pf00}?26>nm7a03~{pBEuEQvM<)j%W?TV(VCZGiFGBbU+YMqnX}I0_Eq zY9qOAO&I}2y~>@42W(Y3atk&r0D%sO*A4NTS>nea-mZ*uM{d$Jx!)+<>Be5AOUWS=}1(Gf1GV~P44Jz zu;#({Mfs`4KFJoV!8yjnXn`%B7AW>fwM~Z%PirEZG|hcDmXIU z5ipgqudoL5slyPWH9`+S*id*FMDX+Z#mZtKjOvB*6kexdzv%B8 z7=gUiMq0LubwqXsc%Phr_dL9p;Qc1NS5X%*aej!0 z-7z>VYdgn|)2GIE5q5!LeS|GAte>!}3>zTqCc_2^Ycp(!uuX>TChT2??IG+vhV3Qn zLx$xD`-ow~gni7geT03&u=@!6lwtb``;1{DgniDi`w9DkVFw8Nl3}BSeZ{Z`2>Y60 z2MPOzVTTC&mSKkp`;K7`681gi2kL)}_EwLNvGJ3M`6mELo{c> zcn|49e2&I@3B&mu+1K+q<`d4}M{~PL{|M<<{qlg^^AQ@4iHEy+FhuVWdhcdf)_Xe+ zpF_V!X^jWS?@^(02(d#jK1eaabv#YuLo6H84PjsDAIB#M)BJ*Dzjq$j z`wXpD>%(!8?c*eip_VTz`gt9nQxrozJ|omw)%wnpe(ldZ^9T7avi-pMrG&p%mA~Ei zzN}Vz@hFU6C*O)P?&>V)Tzj3?utNIYAR9P-GvUJx7Q;W%9^X%6Tj={n$>VsH#mFID zBQh3)QdVDli2nAX<+tk*hD@p%nKBXWNfXPoxrDbjPC=Fo49S&8CUWPYC{`~&iPim)!}OjbT>E^1d_K=O&l0YEzDRPja!F1$<}?Z+!Aeq1M9$LQ5WjIJ{uUn3i@l8;M- zp?<6jRnmWh^ka>sgWM67xwDH@v6#z+QP8PHR%f--$i0)Z;MKCDvh{XUy<$g!yE!MZM$@+= z1ee-&&5gD=8o4b;jW?WH*=qP+H19Y4fMKh4?bcf0cf5LhretlnLDaFE*PPIAb|UbK zYYyx%asu~`jT4u>$nnC2?bS{I6N|umrCqlp$DCX4ddE?Ygc0bkz2v)Lj2PAe$MNPn z!G;}mg4onr)4%O{Ym2TIgKO)7-?Eb{e9Mhs5eshEZrU}c<#-X7v0JMyK#T6$dJI=m z99j1v5)fOvS=sVx*)x?WaJ;o>oiiFuw{{C6>8)|JE`8csc7m4c+09FV%{H5v1j6Cvv)zS31qeWehE>T-vx8U~rYEi7D8X z$PX~PD!ABf<}U@#+X>t9kX(0y$k{}XeYbAmk;{+MIpS_xXVV<*hPsA82qYZkA&9jo z58*1{(XyVgN`+#1rUC$w0dZt*KK3P6FJvBaI8Qe*r7N(|870a_T#qy~cV2!hr z2zwT}c2jOEc;Ym{C@cUoytJ_B*Yj*2CdjV|t5_&%CB0~ZYtTn4weW+|$lT{?T)fW`7B)gl-B?|kd=)MO3-Ye{- zox;9T*#A$3eW#@Fl=PjFe(xpyudJm1tyj{gc1rqAN&khFbiWg&m2=n2tm7z=Qo|W+ z)bG?eRlAj;-&)b$DcQfKl8sLlOTCgk{HGe6pN12tb9CAYoHZ9KV}7-$6Eg5`S6lX5 zexTxC-YlcJYR}wh3o7?5ztIStC|@haHj9{4+Y{8XL6zB%`&e*L&{tMzZnzsNi%(w34@ms$M``tB}`8;s+S>Y#vLf8Oin{zO z5gw;1V^*mx;1VH9J1Vm!_x!2~GmaZ)nV_R>mg)t}9rlgo!>O=`!@rY%Zi**Mv zJB*UNvU|Kz22b9%J=)3Gy}&Qe(^lm=+wr@)DTALfQS}}=Gg^7KH&bKTo#ne%Ty}HT zpze%w&E~8z9>3_)`ZJdM1$8PGoeig%PdgN`uC0;Pwl%iz+ZxmgRewz5mR0)hwQ*}~ z)465XN}tW@+#pJAY~32FcWeA$^VXP1(Vp79wK~mw_f$^AyQ^{8!I|ew{b(?bI{xHb zbE+f;zH ziNEOwGPK5D<0Bbz{U>-RL#c)tUBoQkrWsgS>4eaMHT{}b9KUfRt07>t$s{d#UKzKP z&6TH=QBTIH@#bJ?O>FS14eamaxZ~=j! zF3mS?;3e+C&{K!~3A{*vpnl*>FDANA+Uu&Bj`z|lD>O}H-7zyx1&{!(swqhv?>^nt ze&YMA_0C(Q5=dN=-LkH37QZAd->Qz^zf6}p3cb@k%iJ1A3@9*ZR&jrIP~D*ZQs#072qqgIV2 LdGhsNNO(ycC%J7> literal 3518 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 diff --git a/app/shaders/terminal_dynamic_raster0_burn0_frame0_chroma0.frag.qsb b/app/shaders/terminal_dynamic_raster0_burn0_frame0_chroma0.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..fa0ec2f907bbd7b14e91435a578c56797dab4eee GIT binary patch literal 5315 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 wn&SI;O8Y#3@3EMf9u_*9%+Z#i%gFwAd@^ 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 literal 0 HcmV?d00001 diff --git a/app/shaders/terminal_dynamic_raster0_burn1_frame0_chroma1.frag.qsb b/app/shaders/terminal_dynamic_raster0_burn1_frame0_chroma1.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..1522000a60e2a910d26f2a23f7d5c80e5c8664f2 GIT binary patch literal 6303 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 V9{7av@cid#tpHx?^S}FkIgt`KqCNls literal 0 HcmV?d00001 diff --git a/app/shaders/terminal_dynamic_raster0_burn1_frame1_chroma0.frag.qsb b/app/shaders/terminal_dynamic_raster0_burn1_frame1_chroma0.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..956a725ec933776d59d2bcc46acb372ee25e100c GIT binary patch literal 6463 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 Z<7w16JlKECbvhmf&&x}F{tr4pA@nfa_XPj| literal 0 HcmV?d00001 diff --git a/app/shaders/terminal_dynamic_raster0_burn1_frame1_chroma1.frag.qsb b/app/shaders/terminal_dynamic_raster0_burn1_frame1_chroma1.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..5b17d8671392517b2bd6d3bde4de27d45a68be99 GIT binary patch literal 6653 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 H2MRZBzOHXJ literal 0 HcmV?d00001 diff --git a/app/shaders/terminal_dynamic_raster1_burn0_frame0_chroma0.frag.qsb b/app/shaders/terminal_dynamic_raster1_burn0_frame0_chroma0.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..bae4e7c1ceabe8a23a02f771c0f7928def13a6a6 GIT binary patch literal 5997 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 b;Nz0P{-<`{|2Loc&+aYq@QeQiiNpUiG>ZkM literal 0 HcmV?d00001 diff --git a/app/shaders/terminal_dynamic_raster1_burn0_frame0_chroma1.frag.qsb b/app/shaders/terminal_dynamic_raster1_burn0_frame0_chroma1.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..bae4e7c1ceabe8a23a02f771c0f7928def13a6a6 GIT binary patch literal 5997 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 b;Nz0P{-<`{|2Loc&+aYq@QeQiiNpUiG>ZkM literal 0 HcmV?d00001 diff --git a/app/shaders/terminal_dynamic_raster1_burn0_frame1_chroma0.frag.qsb b/app/shaders/terminal_dynamic_raster1_burn0_frame1_chroma0.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..0f2cbcaebe57b0f07f80d9ea40c22b10c8f58c3b GIT binary patch literal 6370 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 G!XAl1FT1?} literal 0 HcmV?d00001 diff --git a/app/shaders/terminal_dynamic_raster1_burn1_frame0_chroma1.frag.qsb b/app/shaders/terminal_dynamic_raster1_burn1_frame0_chroma1.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..319973b4f95eaa1ee51e5985e2b6c28386958951 GIT binary patch literal 6941 zcmV+&8{*^u0EIVrob6o;oSap4zh4rPu!ImG1W*hE(Ktgkn|bdJVM9okMcw$}P+ zmELpj|9;>3Ui%2)r?oTuzGUvX=bU@)x#ymH?teZ&2ywa)VileX#GS$xMKK|&VovN8 zZTU|}R76ttt&op+0v{3b*(_$on5c`cR6%04{N5HVagF?5m5PP1+AQl{dBMJ~f%D{IlzE)m)SZVrtns5Zw>OH_6c} zO099>-BAiQdK64}{C-cA&^nKhW`1cD^Co4Io?}_uDCbGr#Efx&l-Op;R8||1+_6`U zH>=e26jh7AJbKhAwW7!5Xf64DzxvyVy)s&?EVmv7MpKT(!-B*fh!T6IxI?X%UQ?Y2 zW~3-ZT2*Q|_gCZg@E|Ba^>DfBi_dAI|kN(D}(bsuK*UWE;V!lXfY$NdW-k~@i zm!Z~@#%ke*ql5<+6dqSup{o3COHQrq?NQ1$%H7*gL2(pYfdsYCBT+(e8Q89O=T*Y* zNVkzN*>a8AU2Y6N8tsR!lbhY399L5#VOpxkM8r~EgjCy9BGYR0x-VaUAZp}uJi=x? z68TV+i1|?GCOM94Zd+}KvQiO`O7Zl$z_XwBsAOM5z!*U*T##?}@DW#p32yStGfZsd zLUUc}XEpw=xTIKi<%%t9Xg+7i^?M-hF9`;b* zSz^GcEt;h|B{}ha`FvVFkIUzXWU?(fBvvY(HKb2|Pr(`2Nooq#oTl2RIc?(I;G=E9 z--c#^wwuvbfHuZxD?vNRXsbZGozYGMZHCcSgEq%#Ye2i3(bj@?52Kw9+DjR20JQrV z?F`Uf&S>jEdnKct3EBgUwjQ(x8SO04-pFVhKzj?LoekQNGi!eu?UiUhj`j+)zv|QXRiC~s zmhQJ$oA)Qszk;=SKgIQCCU09_`%XZ9C2Je`bEVc5%D$DVe}(eVN)=}@<(pM1zE(p% zCfgKSYw%nm+oz*{E%?twdjXO!z~fs+2W5+7pADI3q0jJbS01|O%0U?? zWbY7Y+cD1_utncxR;hc-4zxFmr>WRVf@d}Qc3|$S7kL)q;eF)4G<;3t?L<2R+Ig~_ z#addJ8?|#n$34mC!MmExy`aNmw`q^*w&RPdK^tQ_uNOLZ7@1oUV;iOR!;C&DpIYs$ z&U#P<^NEk|ch>7D*`LWc{SDRs@ll$~U6_l2K5F01=0^OlP`%&&pt0*!Lg!M`|A6k_ zWBOl>`J4WS-<)1~EKk$-;~^8Wz(S1=y6zsmec^ZB~a zxs&++5%WEh`R7~mx&3PgM@{=X^10-Zj^nQ%3%x&0dxfR*z2RRg+vmUgQzK@6r(4>; zhJT%<&n45o$kOMJv3Cn5XW9wNYk$(xJ~HjB<;@S5TNHm=uQdHPTHf`be9HGq(bDall>^#S4ml#%g3>vcY~ko`2^_1LwWo! zgwFl1W;~w+{a(pK?Z1TFCmGLYgw8|vf#u)fxFEF{k1>M;Ecc6Wq$$gQ@ku6^YAL*d{_BEk%8}U;f`zQG3>&)N( z47zE513K@+di@J{zQKI_%@7~|E9m#b-hTt_Tg-pohW`f8Z}k0ph`#>--RS#I(7wa; zeV6H@{)4djzcAK!;Xk5%4|AcuTO^J0)%W3}@42SbA=!voX%FG~L*7ChS*`rgv?tvGir#4G8i^Xu76|7Di0 zCyf4WmOf*R{y|IgY=eDt-VHK83|Yawyu;FT!;=C}lKCNRX}XDrjHTt$OfCnxER)My znr?hNY-w4duaom9+K6T98Qo8H`F6~o&gT)!-QzngeTEy~U14e3PM`10_@kCS;}7C4 zwad~p^U!>Vex;>#?ZTcV+HOnJFNZIwHrNeYsQ)TU*B7R}*V6R^@lxHe7cohFW0t<- z?osnzqi9!S-f`#}v)nbm8h)jE{u=o8%`DelYiYXi!*!OXT^r$teTZY@hv!(DW}f?C z=k=D>^&B>@{g~&y;JLxlwCkC@H?WvIh?t~4s+SHjU5B8H`lxm~WVw5P!V2#Fn=DNy zeyXi*V)1qh_-|zK_B>0|iJxk(=czT&K6<`IcM@I0(b%N#W;TcCGdmA6JE>+n%*MFQ z(lxlT<966lWIQEH(`l{Mof2zJ_w8HJZ{ojccYATd{P_XzZ+7x~4QS zTeCE+!fdZGTc=^`6w_I^G~L9;9hRn<$M7As^f_U2K*Q4Z9%bVn45{aj-_ccY;GOK-vhsy>oLrAmf13AY5H?v%e%EZ4X3b($y3i@^ny(Zfn znx5NU_`~pD1KQQ#-vgTAzYhK~?R{vQHF^$s_A%S{!}jZ$?KgmK{B1^iHaO<+LeR}U z^hFqN75dCMbdS(`tSE}ooJid|2IUi_J1qrruP3$(B29g$W~MPQ~z(l7K*or(KdJG zw+UUBJS^NC^4rk)HpsjQG-K1-Lu`5n=*Fhs0qq?THa)^@dMDb(rr(84L^pB%F3`Bwf*!C!kp+5lK=z2G3<}rKbG2!l+cR@Gtnq2rE%vR50pYak{+&61ss-DwwZDA}F*+)hPPDu{Ssrc|!m^PFnen^oPOt(LQ~TDxWM zZ8zE-Mw={^k4|;ky;jBBla9^SJ9e+sI8^Pn8$DYZ$2E6KUAx+;A1_hIzLs5Wb$w$` z_Byg-zvR1Vrc$!2!M+K{I!@)3t}XSKZ*14Q9>#9DQ?0i4_ByjAyVvn_O*Pub>aD5$ z^_GWRp6;}pCI1ZXsM~T9WA*M#qg1XotK@Z8rqrCQOVWP1A|ASy;*{yO^n~+ns7_%AV#NwMM;sRC=;C#iUYVR?MXsNylKf)SPKlJL$1lOAXZSb;?pUib=1@ zo?fj+zKP<}OT3saZ7P@sW=oxU=^j0E8Rrw#xxMXnr;^<1bmtI*AaYZi^p_{<2RHT_wrBbaZ&Tecp7S}AX%VJ6* zo*GIfV%rpJTzY%RSq;gNmVJptYKLe&vnkv0ZnNFC zr)AcdiEmG(lS9eDnEFGD49&~g#MR^jc}MnbizyK@L2DyM%5IX797^Sq>XR$vli7SW zJ3O4r6q5OLPP)}&?bKv?s#BdOTQjj)pPA&Z*+Ft?M!GbeET~T=o6TfL3d!N@aB?`A zNu_gS_i$Pbm>$WelIe6ITS%uyhE-28qvZ-IX-+1YNsnamg;Z8sqij)wm)k9QF4(u! z?diQLH))&dEtR8KWM$;a$Y_x3iN2j~PrIknx$IO?W77N3-28Fr7-zalLt>{-WijPf zx`@7JeNI^!_bM)?5{W^h2>v5+mU9ycPpp}7Tz8aaW*YN{_?Z$%qEiv8LPV>M+10sf zW6*y@4I=jI<|r~Qtk+_3hZwtJl$I!=dUQWCOKH}Io?yPJOX_tpGtjP9lS>Vy^%CdO znN&VKl1&X4@^blU3&)ib6_q+fWRMg_lIcu3of#R<7jhIqYAdnP+;R4|k2%96hw^%u zk&)!E48T+}i#Vf9!UjrVpj5VyOr`RvR3S5x9nRGAB!R*Qp64CzEI> ziSb0!EOn1cHIyT^$4ZmkxY^4*);yJh2`>sIGvPtk#fTo#>kAnYz{&>|Ld;!zY_xX0 z5~H##?#a|Dk2;A{TJAkl-02l5+m%}7s^o8|gIgv=o{`PY3@XsUtEw00NC-Jhd>fN3 zO_WU)mD;;Fqmve3+6iop&iU~v2AkMNy%k_^U$>;tB?E%6=9vdBk-{qxsTC)HIqQ7cdIxR498#;y)tPiIKa!D&QU>*)KeZEcIy0^ZyWIIrxUVsUpSL&uNt6Vn`u!6MMx%seC4v z%cZipbUu?GPK}IIwN9bYd zH;SF$CYwW)mC}4aYfo!8xRJrjzd^Pd2|7DiU{TLxqvsXoRpFp#+jyK$a%0tUX`Uw8 zkkw+`jg{@nWdEJROvSx#py+TjnVOUCH_0h(j8x~|cAZ?D!BybM+?>?`kWb}CQrUEJ zq%e||Q5-mA(^4T*uluI-ESB zPp@p;9ZTElLIC>s^MMj`!uf2-xu8Tk*#{c>K*LW4XjlYdSPWcP3|8m^3VlGK4=D5j zg+8Fr2Ne2%LLX4*0}6dWp${nZ0fj!Ga7qA$S2IB2G8a(D^#O%Gpz!|-P^h=Uumnks zfDyuafFQVC96XTs8|(wQYY_{5K%oyP^Z|uFpwI^t`hY?oP*69&KAg~p6T;wxCjln( zp@cq^(1#KhfD)V=$w{CH^skDfT@+!{ZRJU|MfKJ0a(S{&)yd`Y$)r;Ww~rN@r90$s z%4^xVEDch0kOe6v2RquX)w)%Ax$ss4;Dk9o)@*=PZC)RfQ#t726`vF1KIUAI)rVR5 z1oB)UtpozG>=PLdSREeHezBqB0YQI)3Wyww5Sa-2X(WQx&*pWfVq_;yfIDck@4^_6 z2-?h!4Ig(Qz{@TOeqOKTda;5>bwDaO1HSuw?5SY*>LCJrA%64%I6;Y^CE<`yP%`LK zHx>E0Qvu#EfG8jp=3QSY7Z3?f$O|d?CDIZ6AwBTYPI*%>J@ zt^uQQo3>MtaTWn3afvQT1oiXU#WO%EFaT!_9U&Du0xxkqBcuZ(aMsWf(xD?TxNH$0 zG0sRI4d@hMV#9k8;eA2mEvgsjo41=IaJFJb2PofBeAmweU=H-h7 zApPgb5&_8C5)sHy$1n^s2tn4=rJxoBA%m5H3qsZm3K@6Gm<2(|S`-SYnvpo9?p+Xx ztVKhSwMDSV8aF8njzotKkOVapl0=^uL@X`|l;mm`gCzqRWfGeSLXt8h=NKyKt2d~3 z0ZbD1gxpIIV_sYm?7*kMa+26&ZK>d-@fn9Fqrd{%pmR$_Cu@GtkdFj_G8&uILoF4b z3?Iu6Q7(#5)+lo!!-WHswQz(IQwzl?Ra}LFl%zHoL5hC?jM7GdRGO6ORJ0xC^BFAJ*lFVeEX%HpX4D{+u|;7V2q4(akI9#$M`2-9EpatKpTGwx0G z3t*TvfS6w9XbiLFV0duol3`2)g*jFuLCoTl1u<(&KrxFUC}wS`FlN99;YeoiJYF)A zSqvhXCSNlMiWm1z)Pz<15dbFwkwKiin0GXWRrt%sJ&P{x8Gsecq^YNtc4unPd)eaa?wzz79FYlA-M;p9+IKLn$S12;tkLD1S_D5&0OejK#u$3cTvFa1kk;37#;F;y+r z>AN|9J=e)m&M_47Q=jiL=;aUGk$ocio*5~Fo3j$y!`IKlzsJ7{ZbhL9A>Pmm+NzyHAD@lQEi+O@vqU+pH6^Qy(p0P6r5k@;e(6*zu}in# z(yVu7r7*R9rqj0D_WVq>d+ETymU^q)=vAt*E1Ffi)R0F_rBR>U#pvC7v$BK!7@FQS zFwi3vv6j5Pc4ahFV@fLYKlbAQ+$Z(goVmbzUz`Iq^wqh*t>9I=)YJj*>X=!_Uvl07>}14$4c|vqV7y2767;G=}xs&p>m*W zW9nN`2@Yy%sipVvR?7QJhQCnD<25|AB45M{>-XJ#LXa>>{X|~JTfX}_a(0ql|LJ+Z z?_{QL5ToGaGh3eoDEDMv4_y9K!r;5mNjYfPA{%Kr0N>KyI$RFG7y8~I9KYb3hu~Sp zyN4&^>yTPKbo+QA!qD{qSQIMG;lm)q)>HeUV;GhQZ=Uj(9YfGWXIGv27al|L#HGFR z$c~I~OmX>;V&rR&@WAq4e1xF?)ki8b)Gy>t8KS?%O>rUPN1o&67IEZASWb`(`i&7) zqYOI#23SS^^633>_V8izPFDo8=a*KOI~C6D`PJ0rPAhKn(xI_kp}KljOT~8edM^3xR+#U3zx62s zd4Jm8ay>ba*LlyCvh7p%sw=CzpVZ5)Z9nc93iWzldG%KI<`vk})bWgWV14hw3g>_1 j&i?1>=2^j>mF)2$nywCfB6U20599OeQlI|?p(->g8w37B literal 0 HcmV?d00001 diff --git a/app/shaders/terminal_dynamic_raster1_burn1_frame1_chroma0.frag.qsb b/app/shaders/terminal_dynamic_raster1_burn1_frame1_chroma0.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..43cd0f66feebf7ada7ff44f4c260896ae61cacaa GIT binary patch literal 7112 zcmV;(8#m+t0Em}(ob6o;oSap4zjqUou!ImG1Q3h^!8n^tHuK&c!iJE9KqQcuUBD8; zFgx?j?j-Zr%zU%i4MZM-qV-3$rPf!~pY{FIYOT*|D@9t=s#R;XwXL?b*4kQYt=30< z^qzap{l4?Pb~j7F*9^ap%suyV+;i{!&leCvoGye|O3wx2sIWy*j0sE3h@GOP z{%MPfNUFX*^@yL+M}&OViD|J*)I>+A05MyAZ;7VZt-f1Iu@F){OXgA$i%>Bt%AzFd zN)0OMn@h=BrDTT^u89dTsZ=zTSV#SXqH-=#U^quqm2gQ3ga37H2S#U3??H5h=!$Xm zRMq!oDvUXiQr|wxxGvBGV34m@gV@^68AUyVIJPtH)#l3@64@uFlu%iT*kYCj-EOS& ze^%)5HJqUBiedzhA!=8Kia79}389mwNRm1<38 zEDFClN;om6@Tjf|mX5crI8oW#qLi&stGBL`;s`AT5JaJOMhV4LV!P3u)djz;!Un=% z%Wl28+#G&)bR0TPZFZA#RJ#VkFjemt5mR+BmD+|Dnbf1#eD(U_sFBa{2%GUh07@X{5eC--wVjCvz3|f^$aBfe_pe9bnjrtt_)^#a7+-Z$R6lBOY}Qu zi$|>ly8AqP>~X&LP^{80}o5y_3<_5bfQJ zb{^5*&uD9j_AsNJPqasMJ}ea(_2(rtx2An5YeP=0W9>(%y@cA2QM-@YpY!SaoKN4m z68j}<^ZpB|zmK(fKjif~CSM``C9KW)@0PCp=PIpz+P)>4zfZ?#iO#c_j?Ge?U&}~e zOtm4mmeX^IYM)O1D~SJ0YWETUD&jqp_|Ky6tEm56>R+b&m+QG)PW>zB&vQxkBH~*` z?WYkh@NH6U=(|ikBmFmTGwr9V=Nr!&zS6WesHgu6>qio*1+vc|nWs~q;oGbuboZ4B zl_y~DAkj9HpIgWlyvr=r_m(ZxUMHTSb1O+a%cyS)`MzwPXD%Mz2k}c&tYN&Z)Xos? zJk`$9TuSl{+Bt!F5Au29UB-MbV0vsf?OoV*VsSOmb}^mT39KDP<`&AaHA?$IMjuyC zwfaV9KHvoN$xrNc=IaR9pUF7=b>07o5%A>>@q|3kSoAyP@($A_tKST0=MfA_oc+mbFiy!#+d4aVO z_`g8@oyp?yCH36?)%_!;{T20G^3JvspKl6WkEZ=?f%V<+e_uW4zwa}{#=jp>JPrSk z1nxtoy;9^vDslgTINv2P23tt)U350#ak-c5%B$>!IWecqB|4^k zI;Xc%eSJIS$yTbT?_zD}e~+*IUSInIKKT!_Hss)^ef(ed@qf?P-!I)Z%*8p* zO!foRzDmi0uOFiMzLWUDo4X0LWb?n$SYM_10qtw#3-sNrXi&fY zjbijQir=S+W@7R06pIl$GyR9ada_TgDCqwN(cpnP2ldUYtN*0_t6BX2i~Rg18{=C< zH}U>&lKmEo&;O9zw^@9?L-Yqp?z<%W9p>}@k`Lb{|GrK%_zrdN`z)7!NWT4mjq!g( zH+KA(?D!Gm`3ccYe*cu@e!_TQlHSF5q(s^{#Y>;LC7w^A&+sjgs1N##uB8%dwpkaa zNu&X<@#{3{#&?;-IW%*yT%r#zVRNuTBHhfv=@R8ukWSbWfL5R}&rsi=DsZnbu{o3U zu4J~Zl1MlHoF!3q72{d$^XF`dw6mB$XG?cYuaS7JFt(p3aZfWjy;dR*(D$hw0BZmF z66tGc|Cf}npda?P^O^pqNIa(){TE5xgN^=+CGuQE_Q8I5F^j`G8C=UxlSnr_mk>{k z#oiEKwKqKS;EsMEXXGC7d0SWDE4CB%VJ^ zJ0tOY0laXo$WTr~UsmGXIj#L(u4y^)J5IW?(w*}h#TD)ad5Y`ngd2w;iF6Z(VTrV% zh&U7|k4+pdmq;_u{bc7>iMlRleqBL+-a|Yi5@}nRy(26qw^L3+ADpMQGhI7K7xcl| zYKL^!{;rU!bN8lL`#s+=6nGbuI zo!2ot;Y@cO8{-CvXM1DEezId9<9U`uI?Oe+571o0z5N#IH~BwGeFg^r{Re1lI6sau zy<-y3l*Y~*C7wA=&fX-EHpXnfiP`#Wvh`-B^VcNOO>W#Gk!BvlcTnO!VQRpw674<6 z#y=!c{#GV;n@_GtaxIoagU(6^lw55vEkXjc>e4x$cP$pl5AeT8 z{kO6H3iX?MYZ0w1+}c(Zcy}_7*$XD9&tm!}NuN1?)rfDB@}opF!{6|Y-y~X{jo%W8 zb(_c3>M81LGJQvV@!5!|R@s?7bId|MGaIM@$x{njh#Nu9od1%_t6_}^a zULr6LO`Pv1nt99~_B`S4VfT`r`)SO3sNan7e2TwmKOiu-&6qC`nAc{^7ZS}pX3Sq_ zV?Lks059Y*^znTO?#A$e-@MFvy;xwbuVbL z+eCXvxb^aPMDQ;9GNPM$`3j=FoXzhmSw6jj@xF@2c_o|k-zA%0CEWA&t4SVy*Mi@4 zZXrIS|20hit0{)B5#CyO3B~Yf!mWQXiXr?aYUF&zpWZ}mgMGY3;JM>X!mSZ+C7o{}U*1Z-sLxV*p8*;b;r!gQ`pfI5t#+r@ zYQ|E@WdBs#D%W&tvNka}6|2@;C3|atTx%*~f5&cj%XX|g-mUiE(H~QvM#;{`j@rfR zOLn_9vsKfy3Lx&ADwS*YET`JFhK22EtDKEhTTOdstKMoe+IXpaWTM^bHY?tqbZolT zw!5YJ0jtxhcWq@H*W503Y^z;6UV@H2P1|aAd}EJy+p1%);=6IGQnIaJ-W2fAaI+wFHq_l(+Yt2tp$a*k@fRz9L4*_`0i zineKX%xX7k%~E}LyTm3ktpZT0TRJSGwc{Q~tH3!rS!=2QbUMKv&3-~9SGQTKw%QGy zU9n;=#YmWgol;|}Zne|9Vog0ztJ^Ls*(fHQlO5e^6=D;`g;PAAE;N;x`ln0nSrs1i zT;=(gHM6tTYFCn5oi6lnTFs>0YC}fuZd*s^=pKdm1^RciVX851{d%+tO6cL#JlIwz zuIXhUbOvZuYSL7xQn4zUvlAPM#gQepF{UNrslntxY?EeWz1D!w_DP7Wp$G5s$T8Jtz##I^H* zx}*9w#k2^RfZBi&s+%Gt2UEGE{^SbzWHz784h`ipg=9XRQ(^U3J29S~Xj`*jYbG}B zGZW%9oq&*LR7lgwg8pQ(*-Uo0kQ~YmC5MukR5}NC52f{h>EV1TnNAn7g>-6oNcSW& zC|5`+b27Fj6fU)bPx73i?wF-;RN%srl{AdK0jd9GSGpT%fIGY+O2&I}Lb3pto3ov&;(cbvVgW6m(i!8{H#Je(X-vz$t1X)kafN?1OS&$XG8`J@+0A@8qrQoZ%QR*B~YG5I5j+Mqc zakF3sm|vdlSSN!LY1C%o#^Hn;VoGt)J22qMCJ>;R4=N-vckU^(TD3|H&OUKZIn>3< zsZPprZ{c>`D?&*rHOrRbuj}1WRUTgUO!@~EVDjoCf>U=xDz;e$!KsO|siNy=NBQIg zTP1@jIWS?qt%kG{^Gs}$ns!jKF|g^lc4Tp19n%>$0{H_qIlU{+w%bH3j&+-F_ev|3 zS+k+|O5zq+emSaNsvu_4x%_ZORU?(u34i?r=5%IA=XNHW8%pL2nL@rWl%~|?fwO1q zq7%HbyH&(pPX>=4KHxpY30A4&}m zTbq+P6L}DUuyb3EnSIYaMh=)wO;r&$^)|*L%gsO_7mF#^d(cKm zN+DB^{XB+^(oEcGCqi~#(qm@Zm4)dG+hw)Ank6JdGEhEPgaZa=VQS160r8ybog=Ss zqL4LDtaIJRcpyT~0AzB)m}b7@%$Gc$#VXuK%q03;pbT=3(X}T&YMYhFLu;y#JLT<)A4D5AiIPF^Fk-3{oeg&aJx7}(dybx(VC!K=)o2}*rEqp^k9n~Y|(=)o=n)H2U_$%i!jjQ zaX=P5z@i6O^Z<*+02aR*aD{X0Sp-r6e|078A{A@DP#)J63a^isD+4BKka6+xq;uMC z9V<3Uht+U8X|gj}7^LW+7fMPEcBECUb}V&)@g9bVlg#n4W&^CccKMi`gA)#~`J5&0 zW6lLxeRJs($a8_T76>e5pU6hKlq7aKet5cJpQfXJ~3k+EQ$h9g-0Y~FBcMz-Mw zxPwOfE~Np9pv`R8^l=vgybR#+^Lj1E$qJrS0#ZQ_c=7SEr-JE=Lj?Fj;^+m5f)YVX z!eOPLWH6>~CH8Zt0=!`$R6r^$y1tWaKqTmpw*>kn(h>Y2%G25&0Jz2s7<~n<>TMj& z;w8(@D2Y)7rABR7PDRF9B)E!8bU-4gpC8>k1Ec~2aMsWfQlTU86P{;;bYKL|8ahHc zbOg2&&J!cX85yH~EDdI{n4c5{@E_jsW`!qZ3h?>TT&ac8^L=@j=g zr@A(6SRqC#hsLgc_Rf9#4(#$=9NB=3CFNo9naudo5q#h{W6NM3hgiL@Yx~S*jw%hK zHxrw6k#x@ zx=dERe32lhe?M6u$XQ(=${89MhI0mC&Z@o>Rf9lh@MPcuomGQ$#+_r#oIqza3hC6% zNURfk=R`ZJ(Qs#V9=x;4O$viNslx|)5_KNfv$zo0lT?LVeP|xN&?m7I1V${2gg>hb z#XpU^9085OBVZBCEEE8(`f*7<5@Ddx@FxznPzW@9EI$f5F9=$N>OfT_90RR}gP`PE zC=9ALps8>i6x4#7UKCXG&jEuvGfkof1cgdl^dOx#rli;ov4tu6p4ErtN4)rBIZff$5?rNKRK!C+}I2$q_9%}_3WfOfJb>{K0r zp;96;6qO&C9gSh9=#z$4i!QVpxVjsseb8!EW2;rK|8v8u&e*zK%>}Mjw+8m#Cjnm# zY~*G9?v!OuLWSe29+N{5R*wq8Sff%g1Y?arWKJ!{NGSL=b1Kh5@bamBfWw*>%xbT_IPe$Wm9*d(4a+}+=YzZU1k zUv=;o48U^im8Um@Uok*_0Ji7{V1su)`~@~}gN3CsVHIoe-5g3h_t+86F&Od_tM3-- zk;fq|>iFX5YkAUKlxnY?Rw^5N%@-6Es@^YilJV%#@iSkU>*hR1;hKHhg9 zPu`U<+%VLsn!#u0SxBemh04V^5^_5T%}p;T8R{&-Q=#G4B{OzZQNRZ3B8v?pH`LFW@^Eq^{hVnJCo|B`2v!a_e*?(O7Ca-dJ5B_5 zbhd@71gtef?t3SVL`Q2`Fc_`xxDkl-97fLnlCBb7FfQ%oJsD^kXCv-Uk^~(H7KTed zVejuQ5}0PG^2_rQ@0`f=VqW9L%#D1PcRqNUGAB?q76(m}wm@ZBAS_)~Tg2s;pR)IU z7X(ey7IaeY{+=8siEk#_w`|RK5Zei3fSst y`uIZc6Z_sN7Uq9pD}Jgz^tYqU)5o4A?D2uLt`7E}-Jef~;q&X#pZ^D!!6M>H`9Mto literal 0 HcmV?d00001 diff --git a/app/shaders/terminal_dynamic_raster1_burn1_frame1_chroma1.frag.qsb b/app/shaders/terminal_dynamic_raster1_burn1_frame1_chroma1.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..b49203ab0a91cf27f73874a565b2a5608528ecb7 GIT binary patch literal 7297 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 K>hr&j95U|qL=f%( literal 0 HcmV?d00001 diff --git a/app/shaders/terminal_dynamic_raster2_burn0_frame0_chroma1.frag.qsb b/app/shaders/terminal_dynamic_raster2_burn0_frame0_chroma1.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..ec814f1cb47a578a27b522f60fd659d1596b911b GIT binary patch literal 6032 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 K>hr&j95U|qL=f%( literal 0 HcmV?d00001 diff --git a/app/shaders/terminal_dynamic_raster2_burn0_frame1_chroma0.frag.qsb b/app/shaders/terminal_dynamic_raster2_burn0_frame1_chroma0.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..b32d821c357ac372a39ce4a993f0e84f38e02e05 GIT binary patch literal 6401 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 PVeq`X)aQQzs-kApUe$ts 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 rFM%rOe^?(Q_*Bu&ywVB3W3 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 TNE<)GhspVE>CgWFa4l?K+CB~; literal 0 HcmV?d00001 diff --git a/app/shaders/terminal_dynamic_raster2_burn1_frame1_chroma0.frag.qsb b/app/shaders/terminal_dynamic_raster2_burn1_frame1_chroma0.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..3168c9493cd0c62712575092cf1b3bae3fbd00dc GIT binary patch literal 7147 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 literal 0 HcmV?d00001 diff --git a/app/shaders/terminal_dynamic_raster3_burn0_frame0_chroma1.frag.qsb b/app/shaders/terminal_dynamic_raster3_burn0_frame0_chroma1.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..eb6d8fa7fd88d65dd43e9a927c27912c797a5d07 GIT binary patch literal 6467 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 literal 0 HcmV?d00001 diff --git a/app/shaders/terminal_dynamic_raster3_burn0_frame1_chroma0.frag.qsb b/app/shaders/terminal_dynamic_raster3_burn0_frame1_chroma0.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..1b030dd5abb2cafa4ed308fbf9985bcee452a755 GIT binary patch literal 6818 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

Rubg@>+5$`Etqsj(7 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 AVgLXD literal 0 HcmV?d00001 diff --git a/app/shaders/terminal_dynamic_raster3_burn1_frame0_chroma1.frag.qsb b/app/shaders/terminal_dynamic_raster3_burn1_frame0_chroma1.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..d4a73ad1971bcacbfec0fb731e3564d441ba3303 GIT binary patch literal 7397 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 XCw6V%6KUgFe3+cymj3)NF3K`E{wocd literal 0 HcmV?d00001 diff --git a/app/shaders/terminal_dynamic_raster3_burn1_frame1_chroma0.frag.qsb b/app/shaders/terminal_dynamic_raster3_burn1_frame1_chroma0.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..c3d03b69a84b30b0e84488883f9072cfded21ede GIT binary patch literal 7570 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 T9rT%r4(9XfGN1niHzGp4=c}VZ literal 0 HcmV?d00001 diff --git a/app/shaders/terminal_frame.frag b/app/shaders/terminal_frame.frag index 46c0b77..3fd31cc 100644 --- a/app/shaders/terminal_frame.frag +++ b/app/shaders/terminal_frame.frag @@ -6,36 +6,9 @@ layout(location = 0) out vec4 fragColor; layout(std140, binding = 0) uniform ubuf { mat4 qt_Matrix; float qt_Opacity; - float time; - vec4 fontColor; - vec4 backgroundColor; - float shadowLength; - vec2 virtualResolution; - float rasterizationIntensity; - int rasterizationMode; - float burnInLastUpdate; - float burnInTime; - float burnIn; - float staticNoise; float screenCurvature; - float glowingLine; - float chromaColor; - vec2 jitterDisplacement; - float ambientLight; - float jitter; - float horizontalSync; - float horizontalSyncStrength; - float flickering; - float displayTerminalFrame; - vec2 scaleNoiseSize; - float screen_brightness; - float bloom; - float rbgShift; - float frameShadowCoeff; - float frameShininess; vec4 frameColor; float frameSize; - float prevLastUpdate; }; float min2(vec2 v) { return min(v.x, v.y); } diff --git a/app/shaders/terminal_frame.frag.qsb b/app/shaders/terminal_frame.frag.qsb index 56a776078c09bf4f7224ba1163adf1012d2180e4..efb12ddd2e4b08381a152d5159ff194f95102e29 100644 GIT binary patch literal 3572 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 Qs|4L(aX$6>KUk#pG@_$w2mk;8 diff --git a/app/shaders/terminal_frame.vert b/app/shaders/terminal_frame.vert new file mode 100644 index 0000000..dddd9f7 --- /dev/null +++ b/app/shaders/terminal_frame.vert @@ -0,0 +1,19 @@ +#version 440 + +layout(location = 0) in vec4 qt_Vertex; +layout(location = 1) in vec2 qt_MultiTexCoord0; + +layout(std140, binding = 0) uniform ubuf { + mat4 qt_Matrix; + float qt_Opacity; + float screenCurvature; + vec4 frameColor; + float frameSize; +}; + +layout(location = 0) out vec2 qt_TexCoord0; + +void main() { + qt_TexCoord0 = qt_MultiTexCoord0; + gl_Position = qt_Matrix * qt_Vertex; +} diff --git a/app/shaders/terminal_frame.vert.qsb b/app/shaders/terminal_frame.vert.qsb new file mode 100644 index 0000000000000000000000000000000000000000..8c9f54c985011ed62afbb8050324d1cb2cf52689 GIT binary patch literal 1319 zcmV+?1=#uk01>iyob6a!ZyQAv9$%6+8`4~xq|la4A|V?p<3vt{Y8(Z*2r4B?)I<@I z72M5w9TwKR>Flg=TIGSCzze^LpTrA-b7s!2$Gdi^s1Q6b)n;eTeCPI^GqXt3*R zJUpB1B@?X84q3!Jn7QnfIc&h1EP#KUby$^74h1zV9bPw@GSxy~LkBDpF0Obi%aJUn$?_yC zke#)}PEpQrOc6d_L&CB+x-8B;mgPvcugUTxd#cF_BsSSJZpf*_@`;lg!OHT1LbvE&yWoF4az6pH#8p6-W=J(xbMQx zJLC(;C$yd?{C!w25Pn|9t?CflSRkKE)1@f^%K62z^MatD!hxIDiEJ`1@ zB(JOFV_NfvzSfD0HS&e)dm2CQCp@b41M)jZ_y=s*i@3i*apL}C$S==^hY01rfdqT1 zLA7{~_}qit8Crh<2=w~_#d4SMtCB+{ZxHt%lK-DUXO4KePja-gLH)8!cF@lz;eLmx zKT}7&Naqh19hRK`+_zhOhlg(9o7>f@VT6K5wlJfMsB647Oc*^&)XbNneP{{p4(d|Y z^#V(v@aW32U2&~TLz_E}-;8+Q5)pUQR^PE}W|vz%rx|zw*YQ$%;=TgpP2Dge-|Ysx zCnGT1JG&t2Tm0JfFVV;jIz4p;%^={NYTd8|1a%P!C)qrVJmF44$VAQ@E}Q|{4cv~2 zw3Nz}t8UzEj5CL*ORs$#gswo+8W>|Gp~w7K_i$qvDdq<(89MVj|1&n8sK)W|;Kz2)`aa-_ zncAR+?%G3lPfVcuhoIXH9Z|BYWt~PsQbAJCS_Yb`QW{^m)-_Zd!}6ujyBX_AO;gCn zWmRNoGfTL3Y+a+cKC+cAd1fzNuu;2u`Khr_j-Ne0Yd3iihV5tmRV0Y}v<3uz`sFvx zqoe0ft6FwroNCBzmE9OuN0CVR8cl72yAf&tb8@B;brUx=9AMFY=g#g$UMWfc(P-zD zWp`&2Qs*hdsR?DcblNV?wUAQ0HFQ{ILX5+LWZ-dW)%}uCpaf%LRqBCUD3C6xjIuG( zk{N84-&EM#fm7wDT;AySLy>;{p^^V-%k^z9>Nw`-Jx5qx8~%*&+>1S9C=cCU=TrPq z`ECy`$`HRsJ{+_Vj+kRgt@^kdJh@HY^%kd|e5-q$!oX~+$iN$VztxIDxCp(#_N(Rd z^NIc6YF*J3K^Z5mKj|#DTFLjfl=3j{K8nzFga--$>LVbdC?_A-*djg+^Yx92FUU5U>rXl-L8gP#Un-@m9~x@XK=mdz=ah_v dzFw&>Sn^jgqyM)^b#P`smZfoW{0W!}^K+OOm(KtI literal 0 HcmV?d00001 diff --git a/app/shaders/terminal_static.frag b/app/shaders/terminal_static.frag index a2f3d73..718a36a 100644 --- a/app/shaders/terminal_static.frag +++ b/app/shaders/terminal_static.frag @@ -1,41 +1,33 @@ #version 440 +#ifndef CRT_RGB_SHIFT +#define CRT_RGB_SHIFT 1 +#endif +#ifndef CRT_CHROMA +#define CRT_CHROMA 1 +#endif +#ifndef CRT_BLOOM +#define CRT_BLOOM 1 +#endif +#ifndef CRT_CURVATURE +#define CRT_CURVATURE 1 +#endif + layout(location = 0) in vec2 qt_TexCoord0; layout(location = 0) out vec4 fragColor; layout(std140, binding = 0) uniform ubuf { mat4 qt_Matrix; float qt_Opacity; - float time; vec4 fontColor; vec4 backgroundColor; - float shadowLength; - vec2 virtualResolution; - float rasterizationIntensity; - int rasterizationMode; - float burnInLastUpdate; - float burnInTime; - float burnIn; - float staticNoise; float screenCurvature; - float glowingLine; float chromaColor; - vec2 jitterDisplacement; - float ambientLight; - float jitter; - float horizontalSync; - float horizontalSyncStrength; - float flickering; - float displayTerminalFrame; - vec2 scaleNoiseSize; float screen_brightness; float bloom; float rbgShift; - float frameShadowCoeff; float frameShininess; - vec4 frameColor; float frameSize; - float prevLastUpdate; }; layout(binding = 1) uniform sampler2D source; @@ -53,11 +45,13 @@ vec2 distortCoordinates(vec2 coords){ } vec3 convertWithChroma(vec3 inColor) { +#if CRT_CHROMA == 1 vec3 outColor = fontColor.rgb * rgb2grey(inColor); - if (chromaColor != 0.0) { - outColor = fontColor.rgb * mix(vec3(rgb2grey(inColor)), inColor, chromaColor); - } + outColor = fontColor.rgb * mix(vec3(rgb2grey(inColor)), inColor, chromaColor); return outColor; +#else + return fontColor.rgb * rgb2grey(inColor); +#endif } void main() { @@ -68,44 +62,49 @@ void main() { float isScreen = 1.0; vec2 txt_coords = qt_TexCoord0; - if (screenCurvature > 0.0 || frameSize > 0.0) { - vec2 curvatureCoords = distortCoordinates(qt_TexCoord0); - shownDraw = max2(step(vec2(0.0), curvatureCoords) - step(vec2(1.0), curvatureCoords)); - isScreen = min2(step(vec2(0.0), curvatureCoords) - step(vec2(1.0), curvatureCoords)); - isReflection = shownDraw - isScreen; - txt_coords = -2.0 * curvatureCoords + 3.0 * step(vec2(0.0), curvatureCoords) * curvatureCoords - 3.0 * step(vec2(1.0), curvatureCoords) * curvatureCoords; - } +#if CRT_CURVATURE == 1 + vec2 curvatureCoords = distortCoordinates(qt_TexCoord0); + shownDraw = max2(step(vec2(0.0), curvatureCoords) - step(vec2(1.0), curvatureCoords)); + isScreen = min2(step(vec2(0.0), curvatureCoords) - step(vec2(1.0), curvatureCoords)); + isReflection = shownDraw - isScreen; + txt_coords = -2.0 * curvatureCoords + 3.0 * step(vec2(0.0), curvatureCoords) * curvatureCoords - 3.0 * step(vec2(1.0), curvatureCoords) * curvatureCoords; +#endif vec3 txt_color = texture(source, txt_coords).rgb; - if (rbgShift > 0.0) { - vec2 displacement = vec2(12.0, 0.0) * rbgShift; - vec3 rightColor = texture(source, txt_coords + displacement).rgb; - vec3 leftColor = texture(source, txt_coords - displacement).rgb; - txt_color.r = leftColor.r * 0.10 + rightColor.r * 0.30 + txt_color.r * 0.60; - txt_color.g = leftColor.g * 0.20 + rightColor.g * 0.20 + txt_color.g * 0.60; - txt_color.b = leftColor.b * 0.30 + rightColor.b * 0.10 + txt_color.b * 0.60; - } +#if CRT_RGB_SHIFT == 1 + vec2 displacement = vec2(12.0, 0.0) * rbgShift; + vec3 rightColor = texture(source, txt_coords + displacement).rgb; + vec3 leftColor = texture(source, txt_coords - displacement).rgb; + txt_color.r = leftColor.r * 0.10 + rightColor.r * 0.30 + txt_color.r * 0.60; + txt_color.g = leftColor.g * 0.20 + rightColor.g * 0.20 + txt_color.g * 0.60; + txt_color.b = leftColor.b * 0.30 + rightColor.b * 0.10 + txt_color.b * 0.60; +#endif txt_color += vec3(0.0001); float greyscale_color = rgb2grey(txt_color); vec3 finalColor; - if (chromaColor > 0.0) { - vec3 foregroundColor = mix(fontColor.rgb, txt_color * fontColor.rgb / greyscale_color, chromaColor); - finalColor = mix(backgroundColor.rgb, foregroundColor, greyscale_color * shownDraw); - } else { - finalColor = mix(backgroundColor.rgb, fontColor.rgb, greyscale_color * shownDraw); - } +#if CRT_CHROMA == 1 + vec3 foregroundColor = mix(fontColor.rgb, txt_color * fontColor.rgb / greyscale_color, chromaColor); + finalColor = mix(backgroundColor.rgb, foregroundColor, greyscale_color * shownDraw); +#else + finalColor = mix(backgroundColor.rgb, fontColor.rgb, greyscale_color * shownDraw); +#endif + vec3 bloomColor; + float bloomAlpha; +#if CRT_BLOOM == 1 vec4 bloomFullColor = texture(bloomSource, txt_coords); - vec3 bloomColor = convertWithChroma(bloomFullColor.rgb); - float bloomAlpha = bloomFullColor.a; + bloomColor = convertWithChroma(bloomFullColor.rgb); + bloomAlpha = bloomFullColor.a; - if (bloom > 0.0) { - vec3 bloomOnScreen = bloomColor * isScreen; - finalColor += clamp(bloomOnScreen * bloom * bloomAlpha, 0.0, 0.5); - } + vec3 bloomOnScreen = bloomColor * isScreen; + finalColor += clamp(bloomOnScreen * bloom * bloomAlpha, 0.0, 0.5); +#else + bloomColor = finalColor; + bloomAlpha = 0.0; +#endif if (frameShininess > 0.0) { float shine = clamp(frameShininess, 0.0, 1.0); diff --git a/app/shaders/terminal_static.frag.qsb b/app/shaders/terminal_static.frag.qsb deleted file mode 100644 index 2cf21eccf6b4f971b70241eaec64818491a16c6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6992 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 diff --git a/app/shaders/terminal_static.vert b/app/shaders/terminal_static.vert new file mode 100644 index 0000000..bb27da1 --- /dev/null +++ b/app/shaders/terminal_static.vert @@ -0,0 +1,25 @@ +#version 440 + +layout(location = 0) in vec4 qt_Vertex; +layout(location = 1) in vec2 qt_MultiTexCoord0; + +layout(std140, binding = 0) uniform ubuf { + mat4 qt_Matrix; + float qt_Opacity; + vec4 fontColor; + vec4 backgroundColor; + float screenCurvature; + float chromaColor; + float rbgShift; + float frameShininess; + float frameSize; + float screen_brightness; + float bloom; +}; + +layout(location = 0) out vec2 qt_TexCoord0; + +void main() { + qt_TexCoord0 = qt_MultiTexCoord0; + gl_Position = qt_Matrix * qt_Vertex; +} diff --git a/app/shaders/terminal_static.vert.qsb b/app/shaders/terminal_static.vert.qsb new file mode 100644 index 0000000000000000000000000000000000000000..5d59fa8e88296f992786f7682003ce15d5850918 GIT binary patch literal 1554 zcmV+t2JQI(02bJIob6a!Z`4KhqY`>6jZ>j9ZVC?Uk36@OAJ9)Ylc^m!oI z1aZL*Rg|$pwZjKR4$pz`zOoyDkZBdgWRch`P+H*dHVFF=vm}8*k-%jj39t}=OIj#Y zj|c8YB>d`KSse=d>_r;a>mrebk+eAAEFO9fEX$15H$^He5bCRf42b%+i28R&iGCBM zC+N2`q*NbQ%8MtFIt8`9Naz`84iugO5&ZrB!S;h%Bs;a$HS8RAnpIK*Gt}~EByjx@ z=aWoV|2c*g1oE&uNpnW)DOxN2pzjRREqRYks5xW94oa{RVI>1A6ILNT7gIe|HODbQ z{A3LQt8zE7B=!U=5q8(W%7kqhScR}B2395Pz`!O5lLmHzuz`V{Bn-)IS0{|6~Cfl!ucG`&_^4di@-lgK9?0%Ren{-=LW4O z3B!Gh@|f&f#`&SXY0`)Jx&VKlCR;eZp!E##FT;A4_%q6Heg27#S+aSS?4Kc#(l%tE}1FkO_dHXocuU=mvf2N6l zg$;WH_pg!vxPKGkF0)}%BmNs8SYPXOMjuh0@4)UPt-k>V+Wmxlxj_6mm0OLk)0uoq z_J0DIY0B4S!ch+`&<}U%WXgH z2_AY>TU1)U1?%n;RYU{p&xotl;81RczL5v zOZdHgnU!euIS(4val^9W(C=~)sBGBI${Ik2t~m0;9>%qT33%iUnw*PHyONu)$2Q3Jn|(T;5zzPOOML_+_Z3P zS(z#ruymMJu=1e_{!dl#vrz@V469)6LlwNY3V1BXRe&EB9=+cBSI-<@S1ZFapO|k$ zKwVGhz;4^Z>-mxN#8RuC_#^mpCvbn@LT6=lu!`oKp}E^O9Q{+??M9wlYS)*|6cUq) zBST#^sak7VGa2eyo|-A8jKIyD8=3mb@W0COjiSqPYezYDQj0n2iyU>dL~{bq3k0BY zGu&GRF&gEZl^El>s`4BU-NwR)YrvI$J4w7zc8!s(Y#ZeEvPC?q*K7&8c(%9hKiqMe zf=7{aKRk#f)niryTz~Z4+ZJhGXb?j*oN0rA*$|OGj0nHZi6sm^4PpHtMu8PeC5w9`eC~tcRc&+ zz>{v@fq#zo{nj08h(~_V`4a!C?cafyM}%JsAvAFWP3GB3sxj^jo8GX0=`BlzmwC?; z`d@w1Qc^JYbv%!EbmH!A9Koxq&)Z>rd2g?<8+UgPXo{qq5kD-tS$22RueGI&g>l!5 zNx!k2*gDj@(tz}ADY0$)=wQ+?dwbXIHVcaR8+Zzb_HLbi@PCv&IjrgqFFORi< zJYV*HSk$#V*H77R2`y{3FtrTVor0}0p?sn5i_AAh`hQ=H{&zRiPr3aB%ktFt6BCLo EP3d+FC;$Ke literal 0 HcmV?d00001 diff --git a/app/shaders/terminal_static_rgb0_chroma0_bloom0_curve0.frag.qsb b/app/shaders/terminal_static_rgb0_chroma0_bloom0_curve0.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..f0db04a5aaea94d79e0ffda6ab5977ccbf2652cc GIT binary patch literal 2923 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 literal 0 HcmV?d00001 diff --git a/app/shaders/terminal_static_rgb0_chroma0_bloom1_curve1.frag.qsb b/app/shaders/terminal_static_rgb0_chroma0_bloom1_curve1.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..57d47abd6b159b3f59f3a2de1f39e919fadc064a GIT binary patch literal 4549 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 literal 0 HcmV?d00001 diff --git a/app/shaders/terminal_static_rgb0_chroma1_bloom0_curve0.frag.qsb b/app/shaders/terminal_static_rgb0_chroma1_bloom0_curve0.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..31d67390963cc02e9d5e7b7c51c59962be5f2fad GIT binary patch literal 3076 zcmV+f4Eyr{05ptvob6lda}(DUzqY{+g1i$#nuIKNN+cpHdfGBzLuw!)j~cK8G!EUY zrCoVJ+7-JiBNIr;gHAql`l-`@r8E5l`n{j}PxN~qGku(M@452Pu4K$3oypXjS+wVO zp7-3xIlBZQ#6BU!9=J!~J|u36NSIIg%AG)qAv2l8--i^hb}STLIW=d2NW#P zkjhP|uFOAB^(oO2Yj8X8JPt9;NUy(PQv0O?72zk~Bm(0u#Hl!Voo3R{>4%p{Wl6L_ zsRk;M*d(W?b#(Cy2jUA4MB@Xwz-{yEFocixZ@}mSQ0RbqJ)!=^aP<(B1IWA$ii@Bg zhz&W)jzm?!?O_2Q1m$(4q)F%79nlJ>+X#-3}K-<6#$wYUUi4-U`1)(SVjZRHqSo>iQ{hH9{!5;>?A5`%7 z{g0PF&V^AuSFYf;63>V+DTlmg#e~cT-Yv`Z5PwamX?zak5T8IB@Pznb@`3a*_&q{) zG(FklkBQ?n@(+M_obbJp-rJ)mgxV4uo1$NhjSzO4VWWgyVAvR8UodPBVQq%(B`jjt zIAL9eO%Qg6VNVfuk74@=`;K8L!oH{6oTOX{Mo%*OPAs?gNq&^kTK+{qMB&(FX;pSrT3>1W~o>&5CRP2)VJ{xUV6 z1q$svPdd*M5BDM4jY50Ac>}Lp1lYgX-5r$)&CVP9Bf81EF{Nc}4otpw- z`aT45bMQM&dWXf+a-GbPt!cW)x4AL46O`NI6dTef340mndCJ8I#fJ0(n~ziUJk9tY z3AHDX|1t5$8UK<{>qyh4P;34rkX&Q<28;7c(wU|>k-ihN^A*LZb9|q2JOj~;img)` zb^Z>>UXnd1=RvK36SN-QjL}D8^c15}|1C!29yl74FUR&C<;JH^L z4E6p7Hf$REKS3UO*r*|fXIGusZVa%!PB@MUX;&Hp}e|vh7nG*NLzF-ei7}#ut$5EDmhik1(GRVfxlSJIv=z zvJEAXsZGue(mfF(sSPXGbiD>vAc`DAJowU#obsdHUfJy4I(9DBSVuB*pMa9 zsQXcRBa7;#bUs(i&&jJ)E|<#Hx%_N-Hb0v$6^fOtk!oY1blLf%6zmKX+M9GuM-@qi$r@&`$`gq+6LSB?HR_L?XM3 z>#BGrt!608EM#)s&D%)r@y&3?EA%XjoW`%59W!uy zFms8ta>bY%vc$KEHgz`@Gj?oVPXCaTvC%Zo1yc~SnQUG-7>LTCU(ojkH1X(o|TCgx5`9iw@mziWy19aRS3Tm zQQlxyX{@_dL3WQM#tnt!9ZNDV&&SnTsl`y%ir5tt3Tb z%QvPllL#YLnqu;^33;}c;7o}CttJFxyC)_-AnIO$ zOvqxiSTk32kA706et`-kUn>#L`Le2$%aIk?hN*;1DxO?8MB$`WR$Ti`7ZRqK!A67uEI=o6*12kb~b(lA{dK+7r&nKoi!EPHWW!$kI+^)eSJmzWR!h{v%|*19MD)e zva@h_FQ7tAHWxBA!@3LJSvY*;iS|O8*|xvnTZma2(p@AgRRS#fTOozn=U@VM5A^vC+5Pf5W^%i}~2E4{0$^7KjPGuN&S&~&|R3jgYACxmvR>DN52E?W!NYvQgp zO)G-@uXQ5ZG}CFTdCS@iO~uS);$=Qs4{WP$)O;_D=rlR{7)AeaKNMh=TDHfssGia~ zH!w;_g5Iy!u4Pr|mZw(ZQ9LR@K)qkc6lZ&1eCw+3>ot?BtNN{8$?3jMv6q3s$s$zB zWO|>obaZ&n8(-e->kVXQqMr4a4c8lVusr#X8-u!&;l2kpC~ClImW7=(C$u;o=7Y!o zqCa`$j~+ChQd6z=oy&g9tlKeO2JG!ta#_34I}neI=oP6Cl(-))D>xxAZ8{Bgyt) Sd%f5{{28P#um1woXHHZFj2PGe literal 0 HcmV?d00001 diff --git a/app/shaders/terminal_static_rgb0_chroma1_bloom0_curve1.frag.qsb b/app/shaders/terminal_static_rgb0_chroma1_bloom0_curve1.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..db07e17dc4ce64399037b8da5a4addb0b6508603 GIT binary patch literal 4191 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 literal 0 HcmV?d00001 diff --git a/app/shaders/terminal_static_rgb0_chroma1_bloom1_curve0.frag.qsb b/app/shaders/terminal_static_rgb0_chroma1_bloom1_curve0.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..39d009335b51b6d3238b318f135d2e58eac172d0 GIT binary patch literal 3743 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 J{0|63dax;+Xm|hs literal 0 HcmV?d00001 diff --git a/app/shaders/terminal_static_rgb0_chroma1_bloom1_curve1.frag.qsb b/app/shaders/terminal_static_rgb0_chroma1_bloom1_curve1.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..ed2e6e5315a8c152d003184ac0be69d05e71e4fa GIT binary patch literal 4895 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 RuXimcI>@W*{{UUbMTB)f_>ceq literal 0 HcmV?d00001 diff --git a/app/shaders/terminal_static_rgb1_chroma0_bloom0_curve0.frag.qsb b/app/shaders/terminal_static_rgb1_chroma0_bloom0_curve0.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..49bde30280988e1a127865cb12c8dac7e0f94b62 GIT binary patch literal 3636 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 GCx4FMVnQ+i literal 0 HcmV?d00001 diff --git a/app/shaders/terminal_static_rgb1_chroma0_bloom0_curve1.frag.qsb b/app/shaders/terminal_static_rgb1_chroma0_bloom0_curve1.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..e1731951e760a5c51c6fb5e3fb73f2c4db59b038 GIT binary patch literal 4738 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 literal 0 HcmV?d00001 diff --git a/app/shaders/terminal_static_rgb1_chroma0_bloom1_curve1.frag.qsb b/app/shaders/terminal_static_rgb1_chroma0_bloom1_curve1.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..771767cd9dccfe1b537061240adf0c45457ba510 GIT binary patch literal 5248 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 G$u|EP<%c5x literal 0 HcmV?d00001 diff --git a/app/shaders/terminal_static_rgb1_chroma1_bloom0_curve0.frag.qsb b/app/shaders/terminal_static_rgb1_chroma1_bloom0_curve0.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..d430d0891ac790ab32446c836bc96ed56402e509 GIT binary patch literal 3797 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 Lm!JOtS$u>!YF~?+ literal 0 HcmV?d00001 diff --git a/app/shaders/terminal_static_rgb1_chroma1_bloom0_curve1.frag.qsb b/app/shaders/terminal_static_rgb1_chroma1_bloom0_curve1.frag.qsb new file mode 100644 index 0000000000000000000000000000000000000000..dbc795ef174131f4dc8042663769be678501ff34 GIT binary patch literal 4897 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