🔧 Port random fire option to KWin

This commit is contained in:
Simon Schneegans
2025-03-09 11:18:31 +01:00
parent ee1b49269a
commit 60c96c03d7
4 changed files with 160 additions and 140 deletions
+147 -140
View File
@@ -6,145 +6,152 @@ SPDX-License-Identifier: GPL-3.0-or-later
-->
<ui version="4.0">
<class>BMWConfigForm</class>
<widget class="QWidget" name="BMWConfigForm">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>562</width>
<height>365</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="4" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Gradient</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QSpinBox" name="kcfg_Duration">
<property name="minimum">
<number>100</number>
</property>
<property name="maximum">
<number>9999</number>
</property>
<property name="singleStep">
<number>100</number>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QDoubleSpinBox" name="kcfg_Scale">
<property name="minimum">
<double>0.100000000000000</double>
</property>
<property name="maximum">
<double>10.000000000000000</double>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Speed</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QDoubleSpinBox" name="kcfg_MovementSpeed">
<property name="minimum">
<double>-5.000000000000000</double>
</property>
<property name="maximum">
<double>5.000000000000000</double>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Scale</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="4" column="1">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="KColorButton" name="kcfg_Gradient1">
<property name="alphaChannelEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="KColorButton" name="kcfg_Gradient2">
<property name="alphaChannelEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="KColorButton" name="kcfg_Gradient3">
<property name="alphaChannelEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="KColorButton" name="kcfg_Gradient4">
<property name="alphaChannelEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="KColorButton" name="kcfg_Gradient5">
<property name="alphaChannelEnabled">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
<item row="7" column="1">
<widget class="QCheckBox" name="kcfg_3DNoise">
<property name="text">
<string>3D Noise</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Animation Time [ms]</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
<class>BMWConfigForm</class>
<widget class="QWidget" name="BMWConfigForm">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>562</width>
<height>365</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Animation Time [ms]</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
</property>
</widget>
<customwidgets>
<customwidget>
<class>KColorButton</class>
<extends>QPushButton</extends>
<header>kcolorbutton.h</header>
</customwidget>
</customwidgets>
<resources />
<connections />
</item>
<item row="0" column="1">
<widget class="QSpinBox" name="kcfg_Duration">
<property name="minimum">
<number>100</number>
</property>
<property name="maximum">
<number>9999</number>
</property>
<property name="singleStep">
<number>100</number>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Scale</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QDoubleSpinBox" name="kcfg_Scale">
<property name="minimum">
<double>0.100000000000000</double>
</property>
<property name="maximum">
<double>10.000000000000000</double>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Speed</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QDoubleSpinBox" name="kcfg_MovementSpeed">
<property name="minimum">
<double>-5.000000000000000</double>
</property>
<property name="maximum">
<double>5.000000000000000</double>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Gradient</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
</property>
</widget>
</item>
<item row="3" column="1">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="KColorButton" name="kcfg_Gradient1">
<property name="alphaChannelEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="KColorButton" name="kcfg_Gradient2">
<property name="alphaChannelEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="KColorButton" name="kcfg_Gradient3">
<property name="alphaChannelEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="KColorButton" name="kcfg_Gradient4">
<property name="alphaChannelEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="KColorButton" name="kcfg_Gradient5">
<property name="alphaChannelEnabled">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
<item row="4" column="1">
<widget class="QCheckBox" name="kcfg_3DNoise">
<property name="text">
<string>3D Noise</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QCheckBox" name="kcfg_RandomColor">
<property name="text">
<string>Use Random Color</string>
</property>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>KColorButton</class>
<extends>QPushButton</extends>
<header>kcolorbutton.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>
+3
View File
@@ -36,5 +36,8 @@ SPDX-License-Identifier: GPL-3.0-or-later
<entry name="3DNoise" type="Bool">
<default>false</default>
</entry>
<entry name="RandomColor" type="Bool">
<default>false</default>
</entry>
</group>
</kcfg>
+8
View File
@@ -0,0 +1,8 @@
// SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
// 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);
+2
View File
@@ -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'));