windowManager: Use MetaWindowActor.paint_to_content() for window effects
Previously we used `get_image()`, which returned `cairo_surface`, in order to create a `ClutterContent` with a screenshot of the `MetaWindowActor`. This added a roundtrip from GPU to CPU memory. Instead, use the new `paint_to_content()` API which lets us use a `CoglTexture` directly as source of our `ClutterContent`. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1879>
This commit is contained in:
parent
46f2c29acc
commit
36a1fb78cd
@ -1283,7 +1283,7 @@ var WindowManager = class {
|
|||||||
_prepareAnimationInfo(shellwm, actor, oldFrameRect, _change) {
|
_prepareAnimationInfo(shellwm, actor, oldFrameRect, _change) {
|
||||||
// Position a clone of the window on top of the old position,
|
// Position a clone of the window on top of the old position,
|
||||||
// while actor updates are frozen.
|
// while actor updates are frozen.
|
||||||
let actorContent = Shell.util_get_content_for_window_actor(actor, oldFrameRect);
|
let actorContent = actor.paint_to_content(oldFrameRect);
|
||||||
let actorClone = new St.Widget({ content: actorContent });
|
let actorClone = new St.Widget({ content: actorContent });
|
||||||
actorClone.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
|
actorClone.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
|
||||||
actorClone.set_position(oldFrameRect.x, oldFrameRect.y);
|
actorClone.set_position(oldFrameRect.x, oldFrameRect.y);
|
||||||
|
Loading…
Reference in New Issue
Block a user