🪲 Attempt to fix #344
This commit is contained in:
+10
-1
@@ -180,7 +180,16 @@ var Shader = GObject.registerClass(
|
||||
// We use this vfunc to trigger the update as it allows calling this.get_pipeline() in
|
||||
// the handler. This could still be null if called from the updateAnimation() above.
|
||||
vfunc_paint_target(...params) {
|
||||
this.emit('update-animation', this._progress);
|
||||
|
||||
// Starting with GNOME 44.2, the alpha channel is not written to by default. We need
|
||||
// to undo this. It is a pity that we have to do this here, as it is not really
|
||||
// required to be done each frame. But it's the only place where we can do it.
|
||||
// https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2650
|
||||
if (utils.shellVersionIsAtLeast(44, 2)) {
|
||||
this.get_pipeline().set_blend(
|
||||
'RGBA = ADD (SRC_COLOR * (SRC_COLOR[A]), DST_COLOR * (1-SRC_COLOR[A]))');
|
||||
}
|
||||
|
||||
this.set_uniform_float(this._uProgress, 1, [this._progress]);
|
||||
super.vfunc_paint_target(...params);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user