lightbox: Fix shader effect

Since commit 0f1b566918, we use gjs' automatic getters/setters for
the shader properties. Those handle the properties on the JS and
GObject side, but they don't update the corresponding uniform,
whoops.

Revert the lightbox bits of commit 0f1b566918 to get the effect back.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1712>
This commit is contained in:
Florian Müllner 2021-02-24 02:28:09 +01:00 committed by Marge Bot
parent 7f466551fa
commit ef777426d2

View File

@ -35,13 +35,16 @@ var RadialShaderEffect = GObject.registerClass({
},
}, class RadialShaderEffect extends Shell.GLSLEffect {
_init(params) {
this._brightness = undefined;
this._sharpness = undefined;
super._init(params);
this._brightnessLocation = this.get_uniform_location('brightness');
this._sharpnessLocation = this.get_uniform_location('vignette_sharpness');
this._setBrightnessUniform();
this._setSharpnessUniform();
this.brightness = 1.0;
this.sharpness = 0.0;
}
vfunc_build_pipeline() {
@ -49,14 +52,30 @@ var RadialShaderEffect = GObject.registerClass({
VIGNETTE_DECLARATIONS, VIGNETTE_CODE, true);
}
_setBrightnessUniform() {
this.set_uniform_float(this._brightnessLocation,
1, [this.brightness]);
get brightness() {
return this._brightness;
}
_setSharpnessUniform() {
set brightness(v) {
if (this._brightness === v)
return;
this._brightness = v;
this.set_uniform_float(this._brightnessLocation,
1, [this._brightness]);
this.notify('brightness');
}
get sharpness() {
return this._sharpness;
}
set sharpness(v) {
if (this._sharpness === v)
return;
this._sharpness = v;
this.set_uniform_float(this._sharpnessLocation,
1, [this.sharpness]);
1, [this._sharpness]);
this.notify('sharpness');
}
});