diff options
| author | AlexanderCurl <alexc@alexc.hu> | 2026-04-18 17:46:06 +0100 |
|---|---|---|
| committer | AlexanderCurl <alexc@alexc.hu> | 2026-04-18 17:46:06 +0100 |
| commit | 70ca3fef77ee8bdc6e3ac28589a6fa08c024cc69 (patch) | |
| tree | ab1123d4067c1b086dd6faa7ee4ea643236b565a /raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/pixelize.js | |
| parent | 5d94c0a7d44a2255b81815a52a7056a94a39842d (diff) | |
| download | RaveOS-PKGBUILD-70ca3fef77ee8bdc6e3ac28589a6fa08c024cc69.tar.gz RaveOS-PKGBUILD-70ca3fef77ee8bdc6e3ac28589a6fa08c024cc69.zip | |
Replaced file structures for themes in the correct format
Diffstat (limited to 'raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/pixelize.js')
| -rw-r--r-- | raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/pixelize.js | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/pixelize.js b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/pixelize.js new file mode 100644 index 0000000..e9cad9b --- /dev/null +++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/pixelize.js @@ -0,0 +1,88 @@ +import GObject from 'gi://GObject'; + +import * as utils from '../conveniences/utils.js'; +const Clutter = await utils.import_in_shell_only('gi://Clutter'); + +import { UpscaleEffect } from './upscale.js'; +import { DownscaleEffect } from './downscale.js'; + +const DEFAULT_PARAMS = { + factor: 8, downsampling_mode: 0 +}; + + +export const PixelizeEffect = utils.IS_IN_PREFERENCES ? + { default_params: DEFAULT_PARAMS } : + new GObject.registerClass({ + GTypeName: "PixelizeEffect", + Properties: { + 'factor': GObject.ParamSpec.int( + `factor`, + `Factor`, + `Factor`, + GObject.ParamFlags.READWRITE, + 0, 64, + 8, + ), + 'downsampling_mode': GObject.ParamSpec.int( + `downsampling_mode`, + `Downsampling mode`, + `Downsampling mode`, + GObject.ParamFlags.READWRITE, + 0, 2, + 0, + ) + } + }, class PixelizeEffect extends Clutter.Effect { + constructor(params) { + super(); + + this.upscale_effect = new UpscaleEffect({}); + this.downscale_effect = new DownscaleEffect({}); + + utils.setup_params(this, params); + } + + static get default_params() { + return DEFAULT_PARAMS; + } + + get factor() { + // should be the same as `this.downscale_effect.divider` + return this.upscale_effect.factor; + } + + set factor(value) { + this.upscale_effect.factor = value; + this.downscale_effect.divider = value; + } + + get downsampling_mode() { + return this.downscale_effect.downsampling_mode; + } + + set downsampling_mode(value) { + this.downscale_effect.downsampling_mode = value; + } + + vfunc_set_actor(actor) { + // deattach effects from old actor + this.upscale_effect?.actor?.remove_effect(this.upscale_effect); + this.downscale_effect?.actor?.remove_effect(this.downscale_effect); + // attach effects to new actor + if (actor) { + if (this.upscale_effect) + actor.add_effect(this.upscale_effect); + if (this.downscale_effect) + actor.add_effect(this.downscale_effect); + } + + super.vfunc_set_actor(actor); + } + + vfunc_set_enabled(is_enabled) { + this.upscale_effect?.set_enabled(is_enabled); + this.downscale_effect?.set_enabled(is_enabled); + super.vfunc_set_enabled(is_enabled); + } + });
\ No newline at end of file |