mutter/src/backends
Robert Mader 987ce5bec0 cursor-renderer/native: Implement scaled/transformed hardware cursors
If the cursor sprite does not match the scale factor or transformation
of the monintor, we currently fall back to a software cursor, causing
redraws of the shell. This commit implements scaling and transforming
of the cursor sprite, so we can use it with hardware planes, too.

This commit does the following steps:

1. Make sure we reupload the cursor image if the cursor is over
a logical monitor not matching the scale or transform from the previous
update.
2. Before upload to the hardware plane, scale and transform the cursor
image if possible and necessary.
3. Make sure we always use the hardware cursor if possible (only fall
back to software/OGL cursor if it is visible on multiple logical monitors
with differet scales/transforms).
4. Transform or scale the cursor coordinates if necessary.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/526
2020-02-28 10:22:11 +00:00
..
native cursor-renderer/native: Implement scaled/transformed hardware cursors 2020-02-28 10:22:11 +00:00
x11 monitor-manager-xrandr: Don't try to disable disabled CRTC 2020-02-26 16:14:04 +01:00
edid-parse.c Clean up include macros mess 2018-11-06 17:17:36 +01:00
edid.h
gsm-inhibitor-flag.h idle-monitor: Take idle inhibition into account 2018-04-16 13:28:03 +02:00
meta-backend-private.h backends: Move warp_pointer() to ClutterSeat 2020-01-30 18:12:58 +01:00
meta-backend-types.h screen-cast: Add getters to fetch object owners 2019-01-16 17:09:51 +00:00
meta-backend.c renderer: Add API to check whether renderer is hardware accelerated 2020-02-20 10:40:42 +00:00
meta-barrier-private.h Use G_DECLARE_DERIVABLE/FINAL_TYPE on some types 2018-12-21 19:48:50 +00:00
meta-barrier.c cleanup: Don't use G_TYPE_INSTANCE_GET_PRIVATE() 2019-07-18 11:01:09 +02:00
meta-crtc.c crtc: Don't leak MetaCrtcConfig 2020-02-27 20:35:07 +00:00
meta-crtc.h crtc: Move logical monitor pointer to MetaMonitor 2020-02-25 18:39:51 +01:00
meta-cursor-renderer.c Replace ClutterRect by graphene_rect_t 2019-10-16 11:38:14 +00:00
meta-cursor-renderer.h Replace ClutterRect by graphene_rect_t 2019-10-16 11:38:14 +00:00
meta-cursor-sprite-xcursor.c cogl: Remove CoglError wrapper 2019-06-20 18:25:04 +02:00
meta-cursor-sprite-xcursor.h cursor-renderer: Fetch instead of pass Xcursor image when realizing 2018-06-15 19:09:52 +00:00
meta-cursor-tracker-private.h Use G_DECLARE_DERIVABLE/FINAL_TYPE on some types 2018-12-21 19:48:50 +00:00
meta-cursor-tracker.c backends: Replace ClutterDeviceManager usage in favor of ClutterSeat 2020-01-30 18:11:23 +01:00
meta-cursor.c backends/cursor: Add API to set and get the texture buffer transform 2020-02-28 10:22:11 +00:00
meta-cursor.h backends/cursor: Add API to set and get the texture buffer transform 2020-02-28 10:22:11 +00:00
meta-dbus-session-watcher.c dbus-session-watcher: Chain up to parent finalize() 2019-10-14 09:09:01 +02:00
meta-dbus-session-watcher.h
meta-display-config-shared.h Use a consistent style for enum braces 2019-02-28 09:31:01 +01:00
meta-dnd-private.h compositor: Move out X11 compositing code into sub type 2019-08-19 08:44:58 +00:00
meta-egl-ext.h EGL: Include EGL/eglmesaext.h 2019-10-21 14:04:30 +00:00
meta-egl.c EGL: Include EGL/eglmesaext.h 2019-10-21 14:04:30 +00:00
meta-egl.h EGL: Include EGL/eglmesaext.h 2019-10-21 14:04:30 +00:00
meta-gles3-table.h backends: Add OpenGL ES 3 abstraction layer 2017-10-05 18:17:26 -04:00
meta-gles3.c Fix const qualifier usage 2019-01-22 18:31:53 +01:00
meta-gles3.h Fix const qualifier usage 2019-01-22 18:31:53 +01:00
meta-gpu.c backend: Move GPU ownership from the monitor manager to the backend 2019-06-20 13:31:55 +00:00
meta-gpu.h backend: Move GPU ownership from the monitor manager to the backend 2019-06-20 13:31:55 +00:00
meta-idle-monitor-dbus.c backends: Drop per-device idle monitors 2020-02-12 22:07:55 +00:00
meta-idle-monitor-dbus.h
meta-idle-monitor-private.h backends: Do not use device IDs on idle monitors 2020-01-30 18:11:23 +01:00
meta-idle-monitor.c backends: Drop meta_idle_monitor_get_for_device() 2020-02-12 22:07:55 +00:00
meta-input-mapper-private.h backends: Add MetaInputMapper method to lookup devices from outputs 2018-12-06 14:44:46 +00:00
meta-input-mapper.c backends: Replace ClutterDeviceManager usage in favor of ClutterSeat 2020-01-30 18:11:23 +01:00
meta-input-settings-private.h backends: Move numlock persistence handling here 2019-06-24 18:24:57 +02:00
meta-input-settings.c backends: Replace ClutterDeviceManager usage in favor of ClutterSeat 2020-01-30 18:11:23 +01:00
meta-logical-monitor.c crtc: Move logical monitor pointer to MetaMonitor 2020-02-25 18:39:51 +01:00
meta-logical-monitor.h logical-monitor: Pass monitor in the for each CRTC helper callback 2020-02-25 18:39:51 +01:00
meta-monitor-config-manager.c crtc: Move configured state to separate struct 2020-02-25 18:39:51 +01:00
meta-monitor-config-manager.h monitor-config-store: Read system wide config files 2019-02-26 21:04:27 +00:00
meta-monitor-config-migration.c
meta-monitor-config-migration.h meta: Hide libmutter symbols by default and selectively export them 2019-01-23 14:18:13 +01:00
meta-monitor-config-store.c monitor-config-store: Read system wide config files 2019-02-26 21:04:27 +00:00
meta-monitor-config-store.h meta: Hide libmutter symbols by default and selectively export them 2019-01-23 14:18:13 +01:00
meta-monitor-manager-dummy.c crtc: Move logical monitor pointer to MetaMonitor 2020-02-25 18:39:51 +01:00
meta-monitor-manager-dummy.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-monitor-manager-private.h crtc: Move configured state to separate struct 2020-02-25 18:39:51 +01:00
meta-monitor-manager.c crtc: Move configured state to separate struct 2020-02-25 18:39:51 +01:00
meta-monitor-transform.c monitor-transform: Add generic function to get relative transform 2020-02-28 10:22:11 +00:00
meta-monitor-transform.h monitor-transform: Add generic function to get relative transform 2020-02-28 10:22:11 +00:00
meta-monitor.c monitor: Move logical <-> CRTC transform helpers to MetaOutput 2020-02-27 09:47:22 +01:00
meta-monitor.h crtc: Move logical monitor pointer to MetaMonitor 2020-02-25 18:39:51 +01:00
meta-orientation-manager.c orientation-manager: Do not change current orientation when locked 2020-02-07 13:46:45 +01:00
meta-orientation-manager.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-output.c monitor: Move logical <-> CRTC transform helpers to MetaOutput 2020-02-27 09:47:22 +01:00
meta-output.h monitor: Move logical <-> CRTC transform helpers to MetaOutput 2020-02-27 09:47:22 +01:00
meta-pointer-constraint.c Add some gtk-doc comments. 2019-01-06 21:57:16 +01:00
meta-pointer-constraint.h Add some gtk-doc comments. 2019-01-06 21:57:16 +01:00
meta-profiler.c profiler: track changes in GLib and Sysprof 2019-10-30 16:07:36 -07:00
meta-profiler.h profile: Add a Sysprof-based profiler 2019-05-31 11:57:07 -03:00
meta-remote-access-controller-private.h remote-access-handle: Expose disable-animations property 2020-02-20 10:40:42 +00:00
meta-remote-access-controller.c remote-access-handle: Expose disable-animations property 2020-02-20 10:40:42 +00:00
meta-remote-desktop-session.c clutter: Move virtual device management to ClutterSeat 2020-01-30 18:02:14 +01:00
meta-remote-desktop-session.h Add remote access controller API 2018-07-20 16:49:49 +02:00
meta-remote-desktop.c clutter: Move virtual device management to ClutterSeat 2020-01-30 18:02:14 +01:00
meta-remote-desktop.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-renderer-view.c renderer-native: Draw stage separately per CRTC 2020-02-25 18:39:51 +01:00
meta-renderer-view.h renderer-native: Draw stage separately per CRTC 2020-02-25 18:39:51 +01:00
meta-renderer.c renderer-native: Draw stage separately per CRTC 2020-02-25 18:39:51 +01:00
meta-renderer.h renderer-native: Draw stage separately per CRTC 2020-02-25 18:39:51 +01:00
meta-screen-cast-monitor-stream-src.c renderer-native: Draw stage separately per CRTC 2020-02-25 18:39:51 +01:00
meta-screen-cast-monitor-stream-src.h
meta-screen-cast-monitor-stream.c backend: Move GPU ownership from the monitor manager to the backend 2019-06-20 13:31:55 +00:00
meta-screen-cast-monitor-stream.h screen-cast: Add 'cursor-mode' to allow decoupled cursor updates 2019-01-16 17:09:51 +00:00
meta-screen-cast-session.c remote-access-handle: Expose disable-animations property 2020-02-20 10:40:42 +00:00
meta-screen-cast-session.h screen-cast-session: Add 'disable-animations' property 2020-02-20 10:40:42 +00:00
meta-screen-cast-stream-src.c screen-cast: Update to PipeWire 0.3 API 2020-02-20 18:45:31 +01:00
meta-screen-cast-stream-src.h screen-cast-src: Add helper to draw cursor sprite into pixel buffer 2019-02-26 13:39:11 +00:00
meta-screen-cast-stream.c screen-cast-stream: Don't broadcast PipeWireStreamAdded signal 2019-01-30 17:14:47 +00:00
meta-screen-cast-stream.h screen-cast: Add 'cursor-mode' to allow decoupled cursor updates 2019-01-16 17:09:51 +00:00
meta-screen-cast-window-stream-src.c screen-cast-window: Use buffer bounds in place of frame bounds 2020-02-11 12:59:57 +00:00
meta-screen-cast-window-stream-src.h screen-cast-session: Add screen-cast window mode 2018-12-14 13:26:16 +01:00
meta-screen-cast-window-stream.c screen-cast: Fix window recording on HiDPI 2019-12-18 18:41:44 +01:00
meta-screen-cast-window-stream.h screen-cast-window-stream: Add support for cursor modes 2019-02-26 13:39:11 +00:00
meta-screen-cast-window.c screen-cast-window: Use buffer bounds in place of frame bounds 2020-02-11 12:59:57 +00:00
meta-screen-cast-window.h screen-cast-window: Use buffer bounds in place of frame bounds 2020-02-11 12:59:57 +00:00
meta-screen-cast.c screen-cast-session: Add 'disable-animations' property 2020-02-20 10:40:42 +00:00
meta-screen-cast.h screen-cast: Add 'cursor-mode' to allow decoupled cursor updates 2019-01-16 17:09:51 +00:00
meta-settings-private.h wayland: Add setting/api to check the policy to set up the X11 display 2019-08-06 00:41:36 +00:00
meta-settings.c settings: Improve logging of enabled experimental features 2020-02-17 17:08:21 +00:00
meta-stage-private.h Replace ClutterRect by graphene_rect_t 2019-10-16 11:38:14 +00:00
meta-stage.c clutter/stage: Pass redraw clip instead of extents when painting view 2020-02-25 19:18:54 +01:00