From 8d6b844defb8d74dda0d00f0372fab90621975f2 Mon Sep 17 00:00:00 2001 From: Simon Schneegans Date: Mon, 13 Jun 2022 06:20:17 +0200 Subject: [PATCH] :wrench: Use RGB for energize b color --- kwin/energize-b/onSettingsChanged.js | 2 +- resources/shaders/energize-b.frag | 10 +++++----- src/EnergizeB.js | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/kwin/energize-b/onSettingsChanged.js b/kwin/energize-b/onSettingsChanged.js index 8797f46..46bff9e 100644 --- a/kwin/energize-b/onSettingsChanged.js +++ b/kwin/energize-b/onSettingsChanged.js @@ -3,5 +3,5 @@ // the effect. effect.setUniform(this.shader, 'uDuration', this.duration * 0.001); -effect.setUniform(this.shader, 'uColor', effect.readConfig('Color', 'white')); +effect.setUniform(this.shader, 'uColor', this.readRGBConfig('Color')); effect.setUniform(this.shader, 'uScale', effect.readConfig('Scale', 1.0)); diff --git a/resources/shaders/energize-b.frag b/resources/shaders/energize-b.frag index e61e26b..200efb9 100644 --- a/resources/shaders/energize-b.frag +++ b/resources/shaders/energize-b.frag @@ -13,7 +13,7 @@ // The content from common.glsl is automatically prepended to each shader effect. -uniform vec4 uColor; +uniform vec3 uColor; uniform float uScale; const float SHOWER_TIME = 0.3; @@ -80,28 +80,28 @@ void main() { vec4 oColor = getInputColor(iTexCoord.st); // Dissolve window to effect color / transparency. - oColor.rgb = mix(uColor.rgb, oColor.rgb, 0.5 * masks.w + 0.5); + oColor.rgb = mix(uColor, oColor.rgb, 0.5 * masks.w + 0.5); oColor.a = oColor.a * masks.w; // Add leading shower particles. vec2 showerUV = iTexCoord.st + vec2(0.0, -0.7 * progress / SHOWER_TIME); showerUV *= 0.02 * uSize / uScale; float shower = pow(simplex2D(showerUV), 10.0); - oColor.rgb += uColor.rgb * shower * masks.x; + oColor.rgb += uColor * shower * masks.x; oColor.a += shower * masks.x; // Add trailing streak lines. vec2 streakUV = iTexCoord.st + vec2(0.0, -progress / SHOWER_TIME); streakUV *= vec2(0.05 * uSize.x, 0.001 * uSize.y) / uScale; float streaks = simplex2DFractal(streakUV) * 0.5; - oColor.rgb += uColor.rgb * streaks * masks.y; + oColor.rgb += uColor * streaks * masks.y; oColor.a += streaks * masks.y; // Add glimmering atoms. vec2 atomUV = iTexCoord.st + vec2(0.0, -0.025 * progress / SHOWER_TIME); atomUV *= 0.2 * uSize / uScale; float atoms = pow((simplex3D(vec3(atomUV, uProgress * uDuration))), 5.0); - oColor.rgb += uColor.rgb * atoms * masks.z; + oColor.rgb += uColor * atoms * masks.z; oColor.a += atoms * masks.z; // These are pretty useful for understanding how this works. diff --git a/src/EnergizeB.js b/src/EnergizeB.js index 9640f83..0123857 100644 --- a/src/EnergizeB.js +++ b/src/EnergizeB.js @@ -51,7 +51,7 @@ var EnergizeB = class { const c = Clutter.Color.from_string(settings.get_string('energize-b-color'))[1]; // clang-format off - shader.set_uniform_float(shader._uColor, 4, [c.red / 255, c.green / 255, c.blue / 255, 1.0]); + shader.set_uniform_float(shader._uColor, 3, [c.red / 255, c.green / 255, c.blue / 255]); shader.set_uniform_float(shader._uScale, 1, [settings.get_double('energize-b-scale')]); // clang-format on });