diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 32663a0..f841b3a 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -105,7 +105,6 @@ jobs: if: > github.event_name == 'pull_request' || ( contains(github.ref, 'main') && !contains(github.event.head_commit.message, '[no-ci]') ) || - ( contains(github.ref, 'develop') && !contains(github.event.head_commit.message, '[no-ci]') ) || contains(github.event.head_commit.message, '[run-ci]') strategy: fail-fast: false diff --git a/README.md b/README.md index 9f2e459..de1f958 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,7 @@ Effect | Preview **Energize A**
Beam your windows away! | **Energize B**
Using different transporter technology results in an alternative visual effect. | **Fire**
The classic effect inspired by Compiz. However, this is implemented using a GLSL shader and not with a particle system like in the old days. | +**Glide**
This very simple effect fades the window to transparency with subtle 3D effects. | **Hexagon**
With glowing lines and hexagon-shaped tiles, this effect looks very sci-fi. | **Incinerate**
A less snappy but definitely more fancy take on the fire effect. | **Matrix**
Turn your windows into a shower of green letters! The color is actually configurable.| @@ -64,6 +65,7 @@ Below is a table which summarizes the current availability for all effects. Energize A ✅ ✅ ✅✅✅✅✅ Energize B ✅ ✅ ✅✅✅✅✅ Fire ✅ ✅ ✅✅✅✅✅ +Glide ✅ ✅ ✅✅✅✅✅ Hexagon ✅ ✅ ✅✅✅✅✅ Incinerate ✅ ✅ ✅✅✅✅✅ Matrix ✅✅✅✅ diff --git a/docs/changelog.md b/docs/changelog.md index e4477a0..7806c59 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -9,6 +9,10 @@ SPDX-License-Identifier: CC-BY-4.0 **Release Date:** TBD +#### New Features + +* **New Effect: Glide.** A very subtle effect which simply fades the window and applies some 3D-like tilting and scaling. + #### Other Enhancements * Burn-My-Windows now follows the [REUSE Specification](https://reuse.software/spec). diff --git a/docs/pics/glide.gif b/docs/pics/glide.gif new file mode 100644 index 0000000..182d0b3 Binary files /dev/null and b/docs/pics/glide.gif differ diff --git a/extension.js b/extension.js index 3d936d4..2f33920 100644 --- a/extension.js +++ b/extension.js @@ -57,6 +57,7 @@ class Extension { new Me.imports.src.EnergizeA.EnergizeA(), new Me.imports.src.EnergizeB.EnergizeB(), new Me.imports.src.Fire.Fire(), + new Me.imports.src.Glide.Glide(), new Me.imports.src.Hexagon.Hexagon(), new Me.imports.src.Incinerate.Incinerate(), new Me.imports.src.Matrix.Matrix(), diff --git a/kwin/build.sh b/kwin/build.sh index 7a3fd6b..e769daf 100755 --- a/kwin/build.sh +++ b/kwin/build.sh @@ -132,6 +132,7 @@ generate "energize-a" "Energize A [Burn-My-Windows]" "Beam your windows away" generate "energize-b" "Energize B [Burn-My-Windows]" "Using different transporter technology results in an alternative visual effect" generate "doom" "Doom [Burn-My-Windows]" "Melt your windows" generate "fire" "Fire [Burn-My-Windows]" "The classic effect inspired by Compiz" +generate "glide" "Glide [Burn-My-Windows]" "Fade the window to transparency with subtle 3D effects" generate "hexagon" "Hexagon [Burn-My-Windows]" "With glowing lines and hexagon-shaped tiles, this effect looks very sci-fi" generate "incinerate" "Incinerate [Burn-My-Windows]" "A less snappy but definitely more fancy take on the fire effect" generate "pixelate" "Pixelate [Burn-My-Windows]" "Pixelate the window and randomly hide the pixels" diff --git a/kwin/glide/config.ui b/kwin/glide/config.ui new file mode 100755 index 0000000..71e054e --- /dev/null +++ b/kwin/glide/config.ui @@ -0,0 +1,116 @@ + + + + + + BMWConfigForm + + + + 0 + 0 + 562 + 365 + + + + + + + Squish + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + milliseconds + + + 100 + + + 9999 + + + 100 + + + + + + + Scale: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Duration: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + 0.100000000000000 + + + 1.000000000000000 + + + 0.1 + + + + + + + Tilt + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + 1.000000000000000 + + + 0.1 + + + + + + + -1.000000000000000 + + + 1.000000000000000 + + + 0.1 + + + + + + + + \ No newline at end of file diff --git a/kwin/glide/main.xml b/kwin/glide/main.xml new file mode 100755 index 0000000..b5714a6 --- /dev/null +++ b/kwin/glide/main.xml @@ -0,0 +1,24 @@ + + + + + + + + + 250 + + + 0.9 + + + 0.1 + + + -0.3 + + + \ No newline at end of file diff --git a/kwin/glide/onSettingsChanged.js b/kwin/glide/onSettingsChanged.js new file mode 100644 index 0000000..c8ab453 --- /dev/null +++ b/kwin/glide/onSettingsChanged.js @@ -0,0 +1,10 @@ +// 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 the user changes something in the configuration of +// the effect. + +effect.setUniform(this.shader, 'uScale', effect.readConfig('Scale', 1.0)); +effect.setUniform(this.shader, 'uSquish', effect.readConfig('Squish', 1.0)); +effect.setUniform(this.shader, 'uTilt', effect.readConfig('Tilt', 1.0)); diff --git a/prefs.js b/prefs.js index 98f7cf2..4440466 100644 --- a/prefs.js +++ b/prefs.js @@ -53,6 +53,7 @@ var PreferencesDialog = class PreferencesDialog { new Me.imports.src.EnergizeA.EnergizeA(), new Me.imports.src.EnergizeB.EnergizeB(), new Me.imports.src.Fire.Fire(), + new Me.imports.src.Glide.Glide(), new Me.imports.src.Hexagon.Hexagon(), new Me.imports.src.Incinerate.Incinerate(), new Me.imports.src.Matrix.Matrix(), diff --git a/resources/shaders/common.glsl b/resources/shaders/common.glsl index 4dc9201..0201fe2 100644 --- a/resources/shaders/common.glsl +++ b/resources/shaders/common.glsl @@ -183,13 +183,18 @@ float getRelativeEdgeMask(float fadeAmount) { // ------------------------------------------------------------------------------- 2D math +// Returns the shortest distance between the given point and the line defined by "origin" +// and "direction". float distToLine(vec2 origin, vec2 direction, vec2 point) { vec2 perpendicular = vec2(direction.y, -direction.x); return abs(dot(normalize(perpendicular), origin - point)); } +// Returns a positive number if a -> b forms a clockwise corner, or a negative number if +// the corner is counter-clockwise. float getWinding(vec2 a, vec2 b) { return cross(vec3(a, 0.0), vec3(b, 0.0)).z; } +// Rotates the given 2D vector a clockwise by the angle alpha (given in radians). vec2 rotate(vec2 a, float angle) { return vec2(a.x * cos(angle) - a.y * sin(angle), a.x * sin(angle) + a.y * cos(angle)); } diff --git a/resources/shaders/glide.frag b/resources/shaders/glide.frag new file mode 100644 index 0000000..25dc09d --- /dev/null +++ b/resources/shaders/glide.frag @@ -0,0 +1,47 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +// The content from common.glsl is automatically prepended to each shader effect. + +uniform float uScale; +uniform float uSquish; +uniform float uTilt; + +void main() { + // We reverse the progress for window opening. + float progress = easeOutQuad(uProgress); + progress = uForOpening ? 1.0 - progress : progress; + + // Put texture coordinate origin to center of window. + vec2 coords = iTexCoord.st * 2.0 - 1.0; + + // Scale image texture with progress. + coords /= mix(1.0, uScale, progress); + + // Squish image texture vertically. + coords.y /= mix(1.0, (1.0 - 0.2 * uSquish), progress); + + // 'Tilt' image texture around x-axis. + coords.x /= mix(1.0, 1.0 - 0.1 * uTilt * coords.y, progress); + + // Move texture coordinate center to corner again. + coords = coords * 0.5 + 0.5; + + vec4 oColor = getInputColor(coords); + + // Dissolve window. + oColor.a = oColor.a * (uForOpening ? uProgress : pow(1.0 - uProgress, 2.0)); + + setOutputColor(oColor); +} \ No newline at end of file diff --git a/resources/ui/gtk3/Glide.ui b/resources/ui/gtk3/Glide.ui new file mode 100644 index 0000000..18959ed --- /dev/null +++ b/resources/ui/gtk3/Glide.ui @@ -0,0 +1,254 @@ + + + + + + + + 2000 + 100 + 1 + 100 + + + + 1 + 0.1 + 0.01 + 0.1 + + + + 1 + 0 + 0.01 + 0.1 + + + + 1 + -1 + 0.01 + 0.1 + + + + vertical + + + + + + none + + + + + 10 + 10 + 10 + 10 + 0 + + + 8 + + + Animation Time [ms] + 0 + start + center + 1 + + + + + end + center + 1 + 0 + left + 300 + glide-animation-time + + + + + + + edit-clear-symbolic + 1 + + + Reset to Default Value + + + + + + + + + + + 10 + 10 + 10 + 10 + 0 + + + 8 + + + Scale + 0 + start + center + 1 + + + + + end + center + 1 + 2 + left + 300 + glide-scale + + + + + + + edit-clear-symbolic + 1 + + + Reset to Default Value + + + + + + + + + + + 10 + 10 + 10 + 10 + 0 + + + 8 + + + Squish + 0 + start + center + 1 + + + + + end + center + 1 + 2 + left + 300 + glide-squish + + + + + + + edit-clear-symbolic + 1 + + + Reset to Default Value + + + + + + + + + + + 10 + 10 + 10 + 10 + 0 + + + 8 + + + Tilt + 0 + start + center + 1 + + + + + end + center + 1 + 2 + left + 300 + glide-tilt + + + + + + + edit-clear-symbolic + 1 + + + Reset to Default Value + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/ui/gtk4/Glide.ui b/resources/ui/gtk4/Glide.ui new file mode 100644 index 0000000..d780347 --- /dev/null +++ b/resources/ui/gtk4/Glide.ui @@ -0,0 +1,216 @@ + + + + + + + + vertical + + + + + + none + 1 + + + + + 0 + + + + + Animation Time [ms] + 0 + start + center + 1 + + + + + end + center + 1 + 0 + left + 300 + + + 2000 + 100 + 1 + 100 + + + + + + + edit-clear-symbolic + Reset to Default Value + + + + + + + + + + + 0 + + + + + Scale + 0 + start + center + 1 + + + + + end + center + 1 + 2 + left + 300 + + + 1 + 0.1 + 0.01 + 0.1 + + + + + + + edit-clear-symbolic + Reset to Default Value + + + + + + + + + + + 0 + + + + + Squish + 0 + start + center + 1 + + + + + end + center + 1 + 2 + left + 300 + + + 1 + 0 + 0.01 + 0.1 + + + + + + + edit-clear-symbolic + Reset to Default Value + + + + + + + + + + + 0 + + + + + Tilt + 0 + start + center + 1 + + + + + end + center + 1 + 2 + left + 300 + + + 1 + -1 + 0.01 + 0.1 + + + + + + + edit-clear-symbolic + Reset to Default Value + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/schemas/org.gnome.shell.extensions.burn-my-windows.gschema.xml b/schemas/org.gnome.shell.extensions.burn-my-windows.gschema.xml index a421f56..74c00e3 100644 --- a/schemas/org.gnome.shell.extensions.burn-my-windows.gschema.xml +++ b/schemas/org.gnome.shell.extensions.burn-my-windows.gschema.xml @@ -297,6 +297,46 @@ SPDX-License-Identifier: CC0-1.0 The fifth color of the fire gradient. + + + + + + true + Glide Close Effect + Use the glide effect for window closing. + + + + false + Glide Open Effect + Use the glide effect for window opening. + + + + 250 + Glide Animation Time + The time the glide effect takes. + + + + 0.9 + Glide Scale + The scale of the window. + + + + 0.1 + Glide Squish + The amount of squishing. + + + + -0.3 + Glide Tilt + The amount of tilting. + + diff --git a/src/Glide.js b/src/Glide.js new file mode 100644 index 0000000..350d728 --- /dev/null +++ b/src/Glide.js @@ -0,0 +1,106 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +////////////////////////////////////////////////////////////////////////////////////////// + +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +'use strict'; + +const GObject = imports.gi.GObject; + +const _ = imports.gettext.domain('burn-my-windows').gettext; + +const ExtensionUtils = imports.misc.extensionUtils; +const Me = imports.misc.extensionUtils.getCurrentExtension(); +const utils = Me.imports.src.utils; +const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory; + +////////////////////////////////////////////////////////////////////////////////////////// +// This very simple effect fades the window to transparency with subtle 3D effects. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The effect class can be used to get some metadata (like the effect's name or supported +// GNOME Shell versions), to initialize the respective page of the settings dialog, as +// well as to create the actual shader for the effect. +var Glide = class { + + // The constructor creates a ShaderFactory which will be used by extension.js to create + // shader instances for this effect. The shaders will be automagically created using the + // GLSL file in resources/shaders/.glsl. The callback will be called for each + // newly created shader instance. + constructor() { + this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => { + // Store uniform locations of newly created shaders. + shader._uScale = shader.get_uniform_location('uScale'); + shader._uSquish = shader.get_uniform_location('uSquish'); + shader._uTilt = shader.get_uniform_location('uTilt'); + + // Write all uniform values at the start of each animation. + shader.connect('begin-animation', (shader, settings) => { + // clang-format off + shader.set_uniform_float(shader._uScale, 1, [settings.get_double('glide-scale')]); + shader.set_uniform_float(shader._uSquish, 1, [settings.get_double('glide-squish')]); + shader.set_uniform_float(shader._uTilt, 1, [settings.get_double('glide-tilt')]); + // clang-format on + }); + }); + } + + + // ---------------------------------------------------------------------------- metadata + + // The effect is available on all GNOME Shell versions supported by this extension. + getMinShellVersion() { + return [3, 36]; + } + + // This will be called in various places where a unique identifier for this effect is + // required. It should match the prefix of the settings keys which store whether the + // effect is enabled currently (e.g. '*-close-effect'), and its animation time + // (e.g. '*-animation-time'). + getNick() { + return 'glide'; + } + + // This will be shown in the sidebar of the preferences dialog as well as in the + // drop-down menus where the user can choose the effect. + getLabel() { + return _('Glide'); + } + + // -------------------------------------------------------------------- API for prefs.js + + // This is called by the preferences dialog. It loads the settings page for this effect, + // and binds all properties to the settings. + getPreferences(dialog) { + + // Add the settings page to the builder. + dialog.getBuilder().add_from_resource(`/ui/${utils.getGTKString()}/Glide.ui`); + + // Bind all properties. + dialog.bindAdjustment('glide-animation-time'); + dialog.bindAdjustment('glide-scale'); + dialog.bindAdjustment('glide-squish'); + dialog.bindAdjustment('glide-tilt'); + + // Finally, return the new settings page. + return dialog.getBuilder().get_object('glide-prefs'); + } + + // ---------------------------------------------------------------- API for extension.js + + // The getActorScale() is called from extension.js to adjust the actor's size during the + // animation. This is useful if the effect requires drawing something beyond the usual + // bounds of the actor. This only works for GNOME 3.38+. + getActorScale(settings) { + return {x: 1.0, y: 1.0}; + } +} diff --git a/src/PixelWipe.js b/src/PixelWipe.js index cb1053d..1378d80 100644 --- a/src/PixelWipe.js +++ b/src/PixelWipe.js @@ -46,7 +46,7 @@ var PixelWipe = class { // Write all uniform values at the start of each animation. shader.connect('begin-animation', (shader, settings, forOpening, actor) => { // Because the actor position may change after the begin-animation signal is - // called, we set the uDirection uniform during the update callback. + // called, we set the uStartPos uniform during the update callback. this._startPointerPos = global.get_pointer(); this._actor = actor; @@ -55,7 +55,7 @@ var PixelWipe = class { // clang-format on }); - // We set the uDirection uniform during the update callback as the actor position + // We set the uStartPos uniform during the update callback as the actor position // may not be set up properly before the begin animation callback. shader.connect('update-animation', (shader) => { if (this._startPointerPos) { diff --git a/tests/generate-references.sh b/tests/generate-references.sh index 9f0f9db..053f472 100755 --- a/tests/generate-references.sh +++ b/tests/generate-references.sh @@ -185,6 +185,7 @@ set_setting "test-mode" true capture_effect "energize-a" capture_effect "energize-b" capture_effect "fire" +capture_effect "glide" capture_effect "hexagon" capture_effect "incinerate" capture_effect "pixelate" diff --git a/tests/references/glide-close-gnome-wayland-nested-32.png b/tests/references/glide-close-gnome-wayland-nested-32.png new file mode 100644 index 0000000..0df6ebb Binary files /dev/null and b/tests/references/glide-close-gnome-wayland-nested-32.png differ diff --git a/tests/references/glide-close-gnome-wayland-nested-33.png b/tests/references/glide-close-gnome-wayland-nested-33.png new file mode 100644 index 0000000..0df6ebb Binary files /dev/null and b/tests/references/glide-close-gnome-wayland-nested-33.png differ diff --git a/tests/references/glide-close-gnome-wayland-nested-34.png b/tests/references/glide-close-gnome-wayland-nested-34.png new file mode 100644 index 0000000..0df6ebb Binary files /dev/null and b/tests/references/glide-close-gnome-wayland-nested-34.png differ diff --git a/tests/references/glide-close-gnome-wayland-nested-35.png b/tests/references/glide-close-gnome-wayland-nested-35.png new file mode 100644 index 0000000..0df6ebb Binary files /dev/null and b/tests/references/glide-close-gnome-wayland-nested-35.png differ diff --git a/tests/references/glide-close-gnome-wayland-nested-36.png b/tests/references/glide-close-gnome-wayland-nested-36.png new file mode 100644 index 0000000..0df6ebb Binary files /dev/null and b/tests/references/glide-close-gnome-wayland-nested-36.png differ diff --git a/tests/references/glide-close-gnome-xsession-32.png b/tests/references/glide-close-gnome-xsession-32.png new file mode 100644 index 0000000..0df6ebb Binary files /dev/null and b/tests/references/glide-close-gnome-xsession-32.png differ diff --git a/tests/references/glide-close-gnome-xsession-33.png b/tests/references/glide-close-gnome-xsession-33.png new file mode 100644 index 0000000..0df6ebb Binary files /dev/null and b/tests/references/glide-close-gnome-xsession-33.png differ diff --git a/tests/references/glide-close-gnome-xsession-34.png b/tests/references/glide-close-gnome-xsession-34.png new file mode 100644 index 0000000..0df6ebb Binary files /dev/null and b/tests/references/glide-close-gnome-xsession-34.png differ diff --git a/tests/references/glide-close-gnome-xsession-35.png b/tests/references/glide-close-gnome-xsession-35.png new file mode 100644 index 0000000..0df6ebb Binary files /dev/null and b/tests/references/glide-close-gnome-xsession-35.png differ diff --git a/tests/references/glide-close-gnome-xsession-36.png b/tests/references/glide-close-gnome-xsession-36.png new file mode 100644 index 0000000..0df6ebb Binary files /dev/null and b/tests/references/glide-close-gnome-xsession-36.png differ diff --git a/tests/references/glide-open-gnome-wayland-nested-32.png b/tests/references/glide-open-gnome-wayland-nested-32.png new file mode 100644 index 0000000..3e668a0 Binary files /dev/null and b/tests/references/glide-open-gnome-wayland-nested-32.png differ diff --git a/tests/references/glide-open-gnome-wayland-nested-33.png b/tests/references/glide-open-gnome-wayland-nested-33.png new file mode 100644 index 0000000..3e668a0 Binary files /dev/null and b/tests/references/glide-open-gnome-wayland-nested-33.png differ diff --git a/tests/references/glide-open-gnome-wayland-nested-34.png b/tests/references/glide-open-gnome-wayland-nested-34.png new file mode 100644 index 0000000..3e668a0 Binary files /dev/null and b/tests/references/glide-open-gnome-wayland-nested-34.png differ diff --git a/tests/references/glide-open-gnome-wayland-nested-35.png b/tests/references/glide-open-gnome-wayland-nested-35.png new file mode 100644 index 0000000..3e668a0 Binary files /dev/null and b/tests/references/glide-open-gnome-wayland-nested-35.png differ diff --git a/tests/references/glide-open-gnome-wayland-nested-36.png b/tests/references/glide-open-gnome-wayland-nested-36.png new file mode 100644 index 0000000..3e668a0 Binary files /dev/null and b/tests/references/glide-open-gnome-wayland-nested-36.png differ diff --git a/tests/references/glide-open-gnome-xsession-32.png b/tests/references/glide-open-gnome-xsession-32.png new file mode 100644 index 0000000..3e668a0 Binary files /dev/null and b/tests/references/glide-open-gnome-xsession-32.png differ diff --git a/tests/references/glide-open-gnome-xsession-33.png b/tests/references/glide-open-gnome-xsession-33.png new file mode 100644 index 0000000..3e668a0 Binary files /dev/null and b/tests/references/glide-open-gnome-xsession-33.png differ diff --git a/tests/references/glide-open-gnome-xsession-34.png b/tests/references/glide-open-gnome-xsession-34.png new file mode 100644 index 0000000..3e668a0 Binary files /dev/null and b/tests/references/glide-open-gnome-xsession-34.png differ diff --git a/tests/references/glide-open-gnome-xsession-35.png b/tests/references/glide-open-gnome-xsession-35.png new file mode 100644 index 0000000..3e668a0 Binary files /dev/null and b/tests/references/glide-open-gnome-xsession-35.png differ diff --git a/tests/references/glide-open-gnome-xsession-36.png b/tests/references/glide-open-gnome-xsession-36.png new file mode 100644 index 0000000..3e668a0 Binary files /dev/null and b/tests/references/glide-open-gnome-xsession-36.png differ diff --git a/tests/run-test.sh b/tests/run-test.sh index 891b715..e379b62 100755 --- a/tests/run-test.sh +++ b/tests/run-test.sh @@ -210,6 +210,7 @@ set_setting "test-mode" true test_effect "energize-a" test_effect "energize-b" test_effect "fire" +test_effect "glide" test_effect "hexagon" test_effect "incinerate" test_effect "pixelate"