From 60c96c03d7a079960cdf481b27a9a716e813a6d6 Mon Sep 17 00:00:00 2001 From: Simon Schneegans Date: Sun, 9 Mar 2025 11:18:31 +0100 Subject: [PATCH] :wrench: Port random fire option to KWin --- kwin/fire/config.ui | 287 +++++++++++++++++---------------- kwin/fire/main.xml | 3 + kwin/fire/onAnimationBegin.js | 8 + kwin/fire/onSettingsChanged.js | 2 + 4 files changed, 160 insertions(+), 140 deletions(-) create mode 100644 kwin/fire/onAnimationBegin.js diff --git a/kwin/fire/config.ui b/kwin/fire/config.ui index 509b83c..0999985 100755 --- a/kwin/fire/config.ui +++ b/kwin/fire/config.ui @@ -6,145 +6,152 @@ SPDX-License-Identifier: GPL-3.0-or-later --> - BMWConfigForm - - - - 0 - 0 - 562 - 365 - - - - - - - Gradient - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - 100 - - - 9999 - - - 100 - - - - - - - 0.100000000000000 - - - 10.000000000000000 - - - - - - - Speed - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - -5.000000000000000 - - - 5.000000000000000 - - - - - - - Scale - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - - true - - - - - - - true - - - - - - - true - - - - - - - true - - - - - - - true - - - - - - - - - 3D Noise - - - - - - - Animation Time [ms] - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - + BMWConfigForm + + + + 0 + 0 + 562 + 365 + + + + + + + Animation Time [ms] + + + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + - - - KColorButton - QPushButton -
kcolorbutton.h
-
-
- - +
+ + + + 100 + + + 9999 + + + 100 + + + + + + + Scale + + + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + + + + + + + 0.100000000000000 + + + 10.000000000000000 + + + + + + + Speed + + + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + + + + + + + -5.000000000000000 + + + 5.000000000000000 + + + + + + + Gradient + + + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + + + + + + + + + true + + + + + + + true + + + + + + + true + + + + + + + true + + + + + + + true + + + + + + + + + 3D Noise + + + + + + + Use Random Color + + + +
+
+ + + KColorButton + QPushButton +
kcolorbutton.h
+
+
+ +
diff --git a/kwin/fire/main.xml b/kwin/fire/main.xml index 0ca4dc0..da48b7d 100755 --- a/kwin/fire/main.xml +++ b/kwin/fire/main.xml @@ -36,5 +36,8 @@ SPDX-License-Identifier: GPL-3.0-or-later false + + false + \ No newline at end of file diff --git a/kwin/fire/onAnimationBegin.js b/kwin/fire/onAnimationBegin.js new file mode 100644 index 0000000..fcc14a2 --- /dev/null +++ b/kwin/fire/onAnimationBegin.js @@ -0,0 +1,8 @@ +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +// This part is automatically included in the effect's source during the build process. +// The code below is called whenever a window is closed or opened. + +let seed = Math.random(); +effect.setUniform(this.shader, 'uSeed', seed); diff --git a/kwin/fire/onSettingsChanged.js b/kwin/fire/onSettingsChanged.js index 5490f4b..2e4ade8 100644 --- a/kwin/fire/onSettingsChanged.js +++ b/kwin/fire/onSettingsChanged.js @@ -8,6 +8,8 @@ effect.setUniform(this.shader, 'uDuration', this.duration * 0.001); effect.setUniform(this.shader, 'u3DNoise', effect.readConfig('3DNoise', true) ? 1.0 : 0.0); +effect.setUniform(this.shader, 'uRandomColor', + effect.readConfig('RandomColor', true) ? 1.0 : 0.0); effect.setUniform(this.shader, 'uScale', effect.readConfig('Scale', 1.0)); effect.setUniform(this.shader, 'uMovementSpeed', effect.readConfig('MovementSpeed', 1.0)); effect.setUniform(this.shader, 'uGradient1', this.readRGBAConfig('Gradient1'));