From 9d5be1660d8f74038ebed3d74fdbc809e43787ae Mon Sep 17 00:00:00 2001 From: Nippy Date: Fri, 9 Oct 2026 17:23:53 +0200 Subject: gnome fix --- .../blur-my-shell@aunetx/effects/luminosity.js | 64 ++++++++++++++++------ 1 file changed, 47 insertions(+), 17 deletions(-) (limited to 'raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/luminosity.js') diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/luminosity.js b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/luminosity.js index c22636d..a4b6364 100644 --- a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/luminosity.js +++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/effects/luminosity.js @@ -1,18 +1,18 @@ import GObject from 'gi://GObject'; import * as utils from '../conveniences/utils.js'; +import * as uniforms from '../conveniences/shader_uniforms.js'; const Shell = await utils.import_in_shell_only('gi://Shell'); const Clutter = await utils.import_in_shell_only('gi://Clutter'); const SHADER_FILENAME = 'luminosity.glsl'; +const SHADER_SOURCE = utils.get_shader_source(Shell, SHADER_FILENAME, import.meta.url); const DEFAULT_PARAMS = { - brightness_shift: 0., brightness_multiplicator: 1., contrast: 1., contrast_center: 0.5, saturation_multiplicator: 1. + brightness_shift: 0., brightness_multiplicator: 1., contrast: 1., contrast_center: 0.5, saturation_multiplicator: 1., opacity_factor: 1. }; -export const LuminosityEffect = utils.IS_IN_PREFERENCES ? - { default_params: DEFAULT_PARAMS } : - new GObject.registerClass({ +const LUMINOSITY_EFFECT_META = { GTypeName: "LuminosityEffect", Properties: { 'brightness_shift': GObject.ParamSpec.double( @@ -55,17 +55,26 @@ export const LuminosityEffect = utils.IS_IN_PREFERENCES ? 0.0, 2.0, 1.0, ), + 'opacity_factor': GObject.ParamSpec.double( + `opacity_factor`, + `Opacity factor`, + `Opacity factor`, + GObject.ParamFlags.READWRITE, + 0.0, 1.0, + 1.0, + ), } - }, class LuminosityEffect extends Clutter.ShaderEffect { +}; + +const LuminosityEffectClass = utils.IS_IN_PREFERENCES ? null : class LuminosityEffect extends Clutter.ShaderEffect { + constructor(params) { - super(params); + super(); - utils.setup_params(this, params); + utils.initialize_shader_effect(this, SHADER_SOURCE); - // set shader source - this._source = utils.get_shader_source(Shell, SHADER_FILENAME, import.meta.url); - if (this._source) - this.set_shader_source(this._source); + + utils.setup_params(this, params); } static get default_params() { @@ -80,7 +89,7 @@ export const LuminosityEffect = utils.IS_IN_PREFERENCES ? if (this._brightness_shift !== value) { this._brightness_shift = value; - this.set_uniform_value('brightness_shift', parseFloat(this._brightness_shift - 1e-6)); + uniforms.set_uniform(this, 'brightness_shift', parseFloat(this._brightness_shift - 1e-6)); } } @@ -96,7 +105,7 @@ export const LuminosityEffect = utils.IS_IN_PREFERENCES ? let brightness_mul = 600.; if (value < 1.995) brightness_mul = 3. * (1. / (1. - (value / 2.) ** 2) - 1.); - this.set_uniform_value('brightness_multiplicator', parseFloat(brightness_mul - 1e-6)); + uniforms.set_uniform(this, 'brightness_multiplicator', parseFloat(brightness_mul - 1e-6)); } } @@ -108,7 +117,7 @@ export const LuminosityEffect = utils.IS_IN_PREFERENCES ? if (this._contrast !== value) { this._contrast = value; - this.set_uniform_value('contrast', parseFloat(this._contrast - 1e-6)); + uniforms.set_uniform(this, 'contrast', parseFloat(this._contrast - 1e-6)); } } @@ -120,7 +129,7 @@ export const LuminosityEffect = utils.IS_IN_PREFERENCES ? if (this._contrast_center !== value) { this._contrast_center = value; - this.set_uniform_value('contrast_center', parseFloat(this._contrast_center - 1e-6)); + uniforms.set_uniform(this, 'contrast_center', parseFloat(this._contrast_center - 1e-6)); } } @@ -135,7 +144,28 @@ export const LuminosityEffect = utils.IS_IN_PREFERENCES ? let saturation_mul = 600.; if (value < 1.995) saturation_mul = 3. * (1. / (1. - (value / 2.) ** 2) - 1.); - this.set_uniform_value('saturation_multiplicator', parseFloat(saturation_mul - 1e-6)); + uniforms.set_uniform(this, 'saturation_multiplicator', parseFloat(saturation_mul - 1e-6)); } } - }); \ No newline at end of file + + get opacity_factor() { + return this._opacity_factor; + } + + set opacity_factor(value) { + if (this._opacity_factor !== value) { + this._opacity_factor = value; + + uniforms.set_uniform(this, 'opacity_factor', parseFloat(this._opacity_factor)); + } + } + + vfunc_paint_target(paint_node, paint_context) { + uniforms.upload_uniforms(this); + super.vfunc_paint_target(paint_node, paint_context); + } +}; + +export const LuminosityEffect = utils.IS_IN_PREFERENCES + ? { default_params: DEFAULT_PARAMS } + : utils.register_shader_effect(LUMINOSITY_EFFECT_META, LuminosityEffectClass, SHADER_SOURCE); -- cgit v1.3