Compare commits

...

6 Commits

Author SHA1 Message Date
Frost
5ecd7d754d Add frame color/gloss to the default profiles 2024-10-11 10:52:41 +02:00
Frost
e3161f64f6 Add frame gloss setting
Lets you turn off the bright reflections.
2024-10-11 10:52:41 +02:00
Frost
5b0b091ab6 Add frame color setting
It's saved in the profile, and defaults to white.
2024-10-11 10:52:41 +02:00
Frost
4fdf28fb79 Add reflections to frame for better glossiness
I mean, it's how it works in the real world; it's added to the frame's base color, not occluded by the frame.
2024-10-11 10:52:41 +02:00
49213a1cf0 Merge pull request 'Fix visual bug on nvidia' (#859) from nvidia-patch into master
Reviewed-on: #859
2024-10-11 10:52:27 +02:00
e30db231f6 Fix visual bug on nvidia
https://gitlab.archlinux.org/archlinux/packaging/packages/cool-retro-term/-/blob/main/0001-nvidia-fix.patch?ref_type=heads
2024-10-11 10:52:01 +02:00
4 changed files with 45 additions and 4 deletions

View File

@ -71,6 +71,7 @@ QtObject {
property string _backgroundColor: "#000000"
property string _fontColor: "#ff8100"
property string _frameColor: "#ffffff"
property string saturatedColor: Utils.mix(Utils.strToColor("#FFFFFF"),
Utils.strToColor(_fontColor),
saturationColor * 0.5)
@ -81,6 +82,7 @@ QtObject {
_backgroundColor),
Utils.strToColor(saturatedColor),
0.7 + (contrast * 0.3))
property color frameColor: Utils.strToColor(_frameColor)
property real staticNoise: 0.12
property real screenCurvature: 0.3
@ -90,6 +92,7 @@ QtObject {
property real chromaColor: 0.25
property real saturationColor: 0.25
property real frameGloss: 0
property real jitter: 0.2
@ -251,11 +254,13 @@ QtObject {
var settings = {
"backgroundColor": _backgroundColor,
"fontColor": _fontColor,
"frameColor": _frameColor,
"flickering": flickering,
"horizontalSync": horizontalSync,
"staticNoise": staticNoise,
"chromaColor": chromaColor,
"saturationColor": saturationColor,
"frameGloss": frameGloss,
"screenCurvature": screenCurvature,
"glowingLine": glowingLine,
"burnIn": burnIn,
@ -345,6 +350,7 @@ QtObject {
_backgroundColor = settings.backgroundColor
!== undefined ? settings.backgroundColor : _backgroundColor
_fontColor = settings.fontColor !== undefined ? settings.fontColor : _fontColor
_frameColor = settings.frameColor !== undefined ? settings.frameColor : _frameColor
horizontalSync = settings.horizontalSync
!== undefined ? settings.horizontalSync : horizontalSync
@ -353,6 +359,7 @@ QtObject {
chromaColor = settings.chromaColor !== undefined ? settings.chromaColor : chromaColor
saturationColor = settings.saturationColor
!== undefined ? settings.saturationColor : saturationColor
frameGloss = settings.frameGloss !== undefined ? settings.frameGloss : frameGloss
screenCurvature = settings.screenCurvature
!== undefined ? settings.screenCurvature : screenCurvature
glowingLine = settings.glowingLine !== undefined ? settings.glowingLine : glowingLine
@ -459,6 +466,8 @@ QtObject {
"rbgShift": 0,
"saturationColor": 0.2483,
"screenCurvature": 0.3,
"frameColor": "#ffffff",
"frameGloss": 0,
"staticNoise": 0.1198,
"windowOpacity": 1,
"margin": 0.5,
@ -488,6 +497,8 @@ QtObject {
"rbgShift": 0,
"saturationColor": 0.0,
"screenCurvature": 0.3,
"frameColor": "#ffffff",
"frameGloss": 0,
"staticNoise": 0.1198,
"windowOpacity": 1,
"margin": 0.5,
@ -517,6 +528,8 @@ QtObject {
"rbgShift": 0,
"saturationColor": 0.5,
"screenCurvature": 0.3,
"frameColor": "#ffffff",
"frameGloss": 0,
"staticNoise": 0.15,
"windowOpacity": 1,
"margin": 0.5,
@ -546,6 +559,8 @@ QtObject {
"rbgShift": 0,
"saturationColor": 0,
"screenCurvature": 0,
"frameColor": "#ffffff",
"frameGloss": 0,
"staticNoise": 0.15,
"windowOpacity": 1,
"margin": 0.5,
@ -575,6 +590,8 @@ QtObject {
"rbgShift": 0,
"saturationColor": 0,
"screenCurvature": 0.5,
"frameColor": "#ffffff",
"frameGloss": 0,
"staticNoise": 0.099,
"windowOpacity": 1,
"margin": 0.5,
@ -604,6 +621,8 @@ QtObject {
"rbgShift": 0.2969,
"saturationColor": 0,
"screenCurvature": 0.5,
"frameColor": "#ffffff",
"frameGloss": 0,
"staticNoise": 0.2969,
"windowOpacity": 1,
"margin": 0.5,
@ -633,6 +652,8 @@ QtObject {
"rbgShift": 0.3524,
"saturationColor": 0,
"screenCurvature": 0.4,
"frameColor": "#ffffff",
"frameGloss": 0,
"staticNoise": 0.0503,
"windowOpacity": 1,
"margin": 0.5,
@ -662,6 +683,8 @@ QtObject {
"rbgShift": 0,
"saturationColor": 0,
"screenCurvature": 0.2,
"frameColor": "#ffffff",
"frameGloss": 0,
"staticNoise": 0,
"windowOpacity": 1,
"margin": 0.5,
@ -691,6 +714,8 @@ QtObject {
"rbgShift": 0,
"saturationColor": 0.4983,
"screenCurvature": 0,
"frameColor": "#ffffff",
"frameGloss": 0,
"staticNoise": 0.0955,
"windowOpacity": 0.7,
"margin": 0.1,

View File

@ -149,6 +149,11 @@ ColumnLayout {
value: appSettings.saturationColor
enabled: appSettings.chromaColor !== 0
}
CheckableSlider {
name: qsTr("Frame Gloss")
onNewValue: appSettings.frameGloss = newValue
value: appSettings.frameGloss
}
}
RowLayout {
Layout.fillWidth: true
@ -166,6 +171,13 @@ ColumnLayout {
onColorSelected: appSettings._backgroundColor = color
color: appSettings._backgroundColor
}
ColorButton {
name: qsTr("Frame")
height: 50
Layout.fillWidth: true
onColorSelected: appSettings._frameColor = color
color: appSettings._frameColor
}
}
}
}

View File

@ -37,6 +37,8 @@ Item {
property real ambientLight: appSettings.ambientLight * 0.2
property real frameGloss: appSettings.frameGloss
property size virtualResolution
property size screenResolution
@ -59,6 +61,7 @@ Item {
property real screenCurvature: parent.screenCurvature
property real chromaColor: parent.chromaColor
property real ambientLight: parent.ambientLight
property real frameGloss: parent.frameGloss
property real flickering: appSettings.flickering
property real horizontalSync: appSettings.horizontalSync
@ -172,6 +175,7 @@ Item {
uniform highp vec4 fontColor;
uniform highp vec4 backgroundColor;
uniform lowp float shadowLength;
uniform lowp float frameGloss;
uniform highp vec2 virtualResolution;
uniform lowp float rasterizationIntensity;\n" +
@ -321,7 +325,7 @@ Item {
(displayTerminalFrame ?
"vec4 frameColor = texture2D(frameSource, qt_TexCoord0);
finalColor = mix(finalColor, frameColor.rgb, frameColor.a);"
finalColor = mix(finalColor, frameColor.rgb + (finalColor*frameGloss), frameColor.a);"
: "") +
"gl_FragColor = vec4(finalColor, qt_Opacity);" +

View File

@ -22,13 +22,13 @@ import QtQuick 2.0
import "utils.js" as Utils
ShaderEffect {
property color _staticFrameColor: "#fff"
property color _frameColor: appSettings.frameColor
property color _backgroundColor: appSettings.backgroundColor
property color _fontColor: appSettings.fontColor
property color _lightColor: Utils.mix(_fontColor, _backgroundColor, 0.2)
property real _ambientLight: Utils.lint(0.2, 0.8, appSettings.ambientLight)
property color frameColor: Utils.mix(_staticFrameColor, _lightColor, _ambientLight)
property color frameColor: Utils.mix(_frameColor, _lightColor, _ambientLight)
property real screenCurvature: appSettings.screenCurvature * appSettings.screenCurvatureSize
// Coefficient of the log curve used to approximate shadowing
@ -87,7 +87,7 @@ ShaderEffect {
float alpha = 0.0;
float frameShadow = max2(positiveLog(-coords * frameShadowCoeff + vec2(1.0)) + positiveLog(coords * frameShadowCoeff - (vec2(frameShadowCoeff) - vec2(1.0))));
frameShadow = max(sqrt(frameShadow), 0.0);
frameShadow = clamp(sqrt(frameShadow), 0.0, 1.0);
color *= frameShadow;
alpha = sum2(1.0 - step(vec2(0.0), coords) + step(vec2(1.0), coords));
alpha = clamp(alpha, 0.0, 1.0);