Skip to content

Commit 60c96c0

Browse files
committed
🔧 Port random fire option to KWin
1 parent ee1b492 commit 60c96c0

File tree

4 files changed

+160
-140
lines changed

4 files changed

+160
-140
lines changed

kwin/fire/config.ui

+147-140
Original file line numberDiff line numberDiff line change
@@ -6,145 +6,152 @@ SPDX-License-Identifier: GPL-3.0-or-later
66
-->
77

88
<ui version="4.0">
9-
<class>BMWConfigForm</class>
10-
<widget class="QWidget" name="BMWConfigForm">
11-
<property name="geometry">
12-
<rect>
13-
<x>0</x>
14-
<y>0</y>
15-
<width>562</width>
16-
<height>365</height>
17-
</rect>
18-
</property>
19-
<layout class="QGridLayout" name="gridLayout">
20-
<item row="4" column="0">
21-
<widget class="QLabel" name="label_4">
22-
<property name="text">
23-
<string>Gradient</string>
24-
</property>
25-
<property name="alignment">
26-
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
27-
</property>
28-
</widget>
29-
</item>
30-
<item row="0" column="1">
31-
<widget class="QSpinBox" name="kcfg_Duration">
32-
<property name="minimum">
33-
<number>100</number>
34-
</property>
35-
<property name="maximum">
36-
<number>9999</number>
37-
</property>
38-
<property name="singleStep">
39-
<number>100</number>
40-
</property>
41-
</widget>
42-
</item>
43-
<item row="1" column="1">
44-
<widget class="QDoubleSpinBox" name="kcfg_Scale">
45-
<property name="minimum">
46-
<double>0.100000000000000</double>
47-
</property>
48-
<property name="maximum">
49-
<double>10.000000000000000</double>
50-
</property>
51-
</widget>
52-
</item>
53-
<item row="3" column="0">
54-
<widget class="QLabel" name="label_2">
55-
<property name="text">
56-
<string>Speed</string>
57-
</property>
58-
<property name="alignment">
59-
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
60-
</property>
61-
</widget>
62-
</item>
63-
<item row="3" column="1">
64-
<widget class="QDoubleSpinBox" name="kcfg_MovementSpeed">
65-
<property name="minimum">
66-
<double>-5.000000000000000</double>
67-
</property>
68-
<property name="maximum">
69-
<double>5.000000000000000</double>
70-
</property>
71-
</widget>
72-
</item>
73-
<item row="1" column="0">
74-
<widget class="QLabel" name="label_3">
75-
<property name="text">
76-
<string>Scale</string>
77-
</property>
78-
<property name="alignment">
79-
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
80-
</property>
81-
</widget>
82-
</item>
83-
<item row="4" column="1">
84-
<layout class="QHBoxLayout" name="horizontalLayout">
85-
<item>
86-
<widget class="KColorButton" name="kcfg_Gradient1">
87-
<property name="alphaChannelEnabled">
88-
<bool>true</bool>
89-
</property>
90-
</widget>
91-
</item>
92-
<item>
93-
<widget class="KColorButton" name="kcfg_Gradient2">
94-
<property name="alphaChannelEnabled">
95-
<bool>true</bool>
96-
</property>
97-
</widget>
98-
</item>
99-
<item>
100-
<widget class="KColorButton" name="kcfg_Gradient3">
101-
<property name="alphaChannelEnabled">
102-
<bool>true</bool>
103-
</property>
104-
</widget>
105-
</item>
106-
<item>
107-
<widget class="KColorButton" name="kcfg_Gradient4">
108-
<property name="alphaChannelEnabled">
109-
<bool>true</bool>
110-
</property>
111-
</widget>
112-
</item>
113-
<item>
114-
<widget class="KColorButton" name="kcfg_Gradient5">
115-
<property name="alphaChannelEnabled">
116-
<bool>true</bool>
117-
</property>
118-
</widget>
119-
</item>
120-
</layout>
121-
</item>
122-
<item row="7" column="1">
123-
<widget class="QCheckBox" name="kcfg_3DNoise">
124-
<property name="text">
125-
<string>3D Noise</string>
126-
</property>
127-
</widget>
128-
</item>
129-
<item row="0" column="0">
130-
<widget class="QLabel" name="label">
131-
<property name="text">
132-
<string>Animation Time [ms]</string>
133-
</property>
134-
<property name="alignment">
135-
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
136-
</property>
137-
</widget>
138-
</item>
139-
</layout>
9+
<class>BMWConfigForm</class>
10+
<widget class="QWidget" name="BMWConfigForm">
11+
<property name="geometry">
12+
<rect>
13+
<x>0</x>
14+
<y>0</y>
15+
<width>562</width>
16+
<height>365</height>
17+
</rect>
18+
</property>
19+
<layout class="QGridLayout" name="gridLayout">
20+
<item row="0" column="0">
21+
<widget class="QLabel" name="label">
22+
<property name="text">
23+
<string>Animation Time [ms]</string>
24+
</property>
25+
<property name="alignment">
26+
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
27+
</property>
14028
</widget>
141-
<customwidgets>
142-
<customwidget>
143-
<class>KColorButton</class>
144-
<extends>QPushButton</extends>
145-
<header>kcolorbutton.h</header>
146-
</customwidget>
147-
</customwidgets>
148-
<resources />
149-
<connections />
29+
</item>
30+
<item row="0" column="1">
31+
<widget class="QSpinBox" name="kcfg_Duration">
32+
<property name="minimum">
33+
<number>100</number>
34+
</property>
35+
<property name="maximum">
36+
<number>9999</number>
37+
</property>
38+
<property name="singleStep">
39+
<number>100</number>
40+
</property>
41+
</widget>
42+
</item>
43+
<item row="1" column="0">
44+
<widget class="QLabel" name="label_3">
45+
<property name="text">
46+
<string>Scale</string>
47+
</property>
48+
<property name="alignment">
49+
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
50+
</property>
51+
</widget>
52+
</item>
53+
<item row="1" column="1">
54+
<widget class="QDoubleSpinBox" name="kcfg_Scale">
55+
<property name="minimum">
56+
<double>0.100000000000000</double>
57+
</property>
58+
<property name="maximum">
59+
<double>10.000000000000000</double>
60+
</property>
61+
</widget>
62+
</item>
63+
<item row="2" column="0">
64+
<widget class="QLabel" name="label_2">
65+
<property name="text">
66+
<string>Speed</string>
67+
</property>
68+
<property name="alignment">
69+
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
70+
</property>
71+
</widget>
72+
</item>
73+
<item row="2" column="1">
74+
<widget class="QDoubleSpinBox" name="kcfg_MovementSpeed">
75+
<property name="minimum">
76+
<double>-5.000000000000000</double>
77+
</property>
78+
<property name="maximum">
79+
<double>5.000000000000000</double>
80+
</property>
81+
</widget>
82+
</item>
83+
<item row="3" column="0">
84+
<widget class="QLabel" name="label_4">
85+
<property name="text">
86+
<string>Gradient</string>
87+
</property>
88+
<property name="alignment">
89+
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
90+
</property>
91+
</widget>
92+
</item>
93+
<item row="3" column="1">
94+
<layout class="QHBoxLayout" name="horizontalLayout">
95+
<item>
96+
<widget class="KColorButton" name="kcfg_Gradient1">
97+
<property name="alphaChannelEnabled">
98+
<bool>true</bool>
99+
</property>
100+
</widget>
101+
</item>
102+
<item>
103+
<widget class="KColorButton" name="kcfg_Gradient2">
104+
<property name="alphaChannelEnabled">
105+
<bool>true</bool>
106+
</property>
107+
</widget>
108+
</item>
109+
<item>
110+
<widget class="KColorButton" name="kcfg_Gradient3">
111+
<property name="alphaChannelEnabled">
112+
<bool>true</bool>
113+
</property>
114+
</widget>
115+
</item>
116+
<item>
117+
<widget class="KColorButton" name="kcfg_Gradient4">
118+
<property name="alphaChannelEnabled">
119+
<bool>true</bool>
120+
</property>
121+
</widget>
122+
</item>
123+
<item>
124+
<widget class="KColorButton" name="kcfg_Gradient5">
125+
<property name="alphaChannelEnabled">
126+
<bool>true</bool>
127+
</property>
128+
</widget>
129+
</item>
130+
</layout>
131+
</item>
132+
<item row="4" column="1">
133+
<widget class="QCheckBox" name="kcfg_3DNoise">
134+
<property name="text">
135+
<string>3D Noise</string>
136+
</property>
137+
</widget>
138+
</item>
139+
<item row="5" column="1">
140+
<widget class="QCheckBox" name="kcfg_RandomColor">
141+
<property name="text">
142+
<string>Use Random Color</string>
143+
</property>
144+
</widget>
145+
</item>
146+
</layout>
147+
</widget>
148+
<customwidgets>
149+
<customwidget>
150+
<class>KColorButton</class>
151+
<extends>QPushButton</extends>
152+
<header>kcolorbutton.h</header>
153+
</customwidget>
154+
</customwidgets>
155+
<resources/>
156+
<connections/>
150157
</ui>

kwin/fire/main.xml

+3
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,8 @@ SPDX-License-Identifier: GPL-3.0-or-later
3636
<entry name="3DNoise" type="Bool">
3737
<default>false</default>
3838
</entry>
39+
<entry name="RandomColor" type="Bool">
40+
<default>false</default>
41+
</entry>
3942
</group>
4043
</kcfg>

kwin/fire/onAnimationBegin.js

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// SPDX-FileCopyrightText: Simon Schneegans <[email protected]>
2+
// SPDX-License-Identifier: GPL-3.0-or-later
3+
4+
// This part is automatically included in the effect's source during the build process.
5+
// The code below is called whenever a window is closed or opened.
6+
7+
let seed = Math.random();
8+
effect.setUniform(this.shader, 'uSeed', seed);

kwin/fire/onSettingsChanged.js

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
effect.setUniform(this.shader, 'uDuration', this.duration * 0.001);
99
effect.setUniform(this.shader, 'u3DNoise',
1010
effect.readConfig('3DNoise', true) ? 1.0 : 0.0);
11+
effect.setUniform(this.shader, 'uRandomColor',
12+
effect.readConfig('RandomColor', true) ? 1.0 : 0.0);
1113
effect.setUniform(this.shader, 'uScale', effect.readConfig('Scale', 1.0));
1214
effect.setUniform(this.shader, 'uMovementSpeed', effect.readConfig('MovementSpeed', 1.0));
1315
effect.setUniform(this.shader, 'uGradient1', this.readRGBAConfig('Gradient1'));

0 commit comments

Comments
 (0)