mutter/src
msizanoen 842f73ac4c window-actor: Fix screencast with fractionally scaled surfaces
Instead of using `clutter_actor_get_resource_scale()`, we now deduce the
intended buffer scale from the window by dividing the unscaled size by
the final actor size. This is more correct as while the return value of
`clutter_actor_get_resource_scale()` depends only on the monitor where
the surface resides, the actual scale of the surface is determined
solely by the application itself. `get_resource_scale` will differ from
the actual buffer scale if the application only supports 100% scaling
(Xwayland), or is performing scaling with wp_viewporter (clients using
fractional_scale_v1).

This also fixes a mismatch between the calculated buffer sizes between
`meta_window_actor_get_buffer_bounds` and
`meta_window_actor_blit_to_framebuffer` which causes broken
screencasting for Chromium 114 and later when using the native Ozone
Wayland backend.

Additionally, this commit also changes
`meta_window_actor_blit_to_framebuffer` from using a simple translation
to using an inverted matrix transformation of the transformation matrix
between the parent of the window actor and the surface actor to ensure
maximum sharpness for fractionally scaled windows.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3053>
2023-06-29 13:37:47 +00:00
..
backends color-manager: Apply temperature after gsd.Color proxy has been created 2023-06-28 07:51:01 +00:00
compositor window-actor: Fix screencast with fractionally scaled surfaces 2023-06-29 13:37:47 +00:00
core wayland: Make the MetaWaylandCompositor type public 2023-06-27 16:17:16 +00:00
frames frames: Disable XDND support on the frame window 2023-04-28 12:46:58 +02:00
meta meta: Don't #include <wayland-*> in public headers 2023-06-28 08:47:42 +00:00
tests tests: Mark some test cases as skippable 2023-06-28 01:03:35 +00:00
wayland wayland: Make the MetaWaylandCompositor type public 2023-06-27 16:17:16 +00:00
x11 x11: Use input region from frame window for decorated windows 2023-06-02 20:21:56 +00:00
libmutter.pc.in
meson.build build: Set built headers as libmutter_dep sources 2023-05-15 13:06:40 +02:00
meta-private-enum-types.c.in
meta-private-enum-types.h.in