a4db61d3e4
backend/native: Remove meta_backend_native_get_seat_id
...
The last user of it was udev but it now goes through the launcher so we
can remove it.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4130 >
2024-12-12 15:30:36 +01:00
6d3d718684
backend: Remove useless skip annotation
...
Those functions are declared in the meta-backend-private.h file which is
not introspected.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4130 >
2024-12-12 15:30:36 +01:00
e68728f151
udev: Create udev in MetaBackend
...
So we can use it for backlight control in both the native and X11
backends.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4130 >
2024-12-12 15:30:35 +01:00
387a6e82e5
build: Only add gudev_dep/libudev_dep once
...
We already add them if have_libgudev is true, and for native builds it
always is true.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4130 >
2024-12-12 15:27:11 +01:00
15d4123bd1
udev: Move from backends/native/ to backends/
...
This makes it possible to use udev even for backends which are not
native. Specifically we want to start controling backlights in mutter
which has to happen for both native and X11.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4130 >
2024-12-12 15:27:11 +01:00
11b4de08c4
udev/native: Remove dependencies on the native backend
...
The generic backend now provides the launcher which is the last native
specific dependency. This makes it possible to move the udev component
to the generic backend.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4130 >
2024-12-12 15:27:11 +01:00
10cbda69e6
backend: Add pause/resume vfuncs to MetaBackend
...
For now we only pause/resume the rendering in the base class but in the
next few commits, we'll move udev from native to generic and need to
pause/resume it as well.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4130 >
2024-12-12 15:26:23 +01:00
30c6104620
backend: Create MetaLauncher in backend and not in backend native
...
It also adds a vfunc so the MetaBackend subclasses can add more
constraints on what the launcher must support.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4130 >
2024-12-12 15:14:39 +01:00
7b944a52fc
backend: Reorder vfuncs into init, creation and others
...
Also fix the formatting a bit and add newlines between each declaration
which makes it easier to parse.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4130 >
2024-12-12 15:12:36 +01:00
23c2c0853c
launcher: Move from backends/native/ to backends/
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4130 >
2024-12-12 15:12:36 +01:00
2dd695e65f
launcher: Move public functions to the bottom
...
As per mutter coding style.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4130 >
2024-12-12 15:12:36 +01:00
5d8d3df101
launcher: Fix a few formatting issues
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4130 >
2024-12-12 15:12:36 +01:00
1651ac8f2c
launcher: Allow creating the launcher without taking session control
...
Currently only the native backend uses the launcher and it requires
being the session controler, so this commit should not change anything.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4130 >
2024-12-12 15:12:36 +01:00
9169ffade0
launcher: Add session-active property to decouple from backend native
...
By connecting to changes of the new property in backend native itself.
This removes the dependency on the native backend and allows us to move
it to the generic backend.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4130 >
2024-12-12 15:12:36 +01:00
6c5f552088
launcher: Turn MetaLauncher into a GObject
...
This will be useful later when refactoring MetaLauncher.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4130 >
2024-12-12 15:12:36 +01:00
9eb29974f1
launcher: Remove unused includes
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4130 >
2024-12-12 15:12:36 +01:00
15ca9a09b5
launcher: Use native char type and fix formatting
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4130 >
2024-12-12 15:12:36 +01:00
8e2e986eeb
dbus-utils: Move from the backends/native/ to backends/
...
We will move the launcher to backends/ which has a dependency on
dbus-utils so let's also just move dbus-utils there.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4130 >
2024-12-12 15:12:36 +01:00
0103288739
cogl: Rename Driver to DriverID
...
As we will be having a CoglDriver abstract class in the next commit.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4132 >
2024-12-12 09:11:33 +01:00
1d7740d537
compositor: Move various functions to their correct namespace
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4131 >
2024-12-11 18:29:31 +01:00
38a4b2e102
compositor: Drop get_stage_for_display helper
...
As one can get that from the backend/compositor directly.
Expose the necessary functions to allow doing so.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4131 >
2024-12-11 18:28:57 +01:00
1152326ac0
cursor-tracker: Drop helper
...
As the tracker can be retrieved from the backend anyway.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4131 >
2024-12-11 18:28:57 +01:00
e06592d3df
util: Drop duplicated Clutter debug flags helpers
...
Clutter exposes those functions already.
So there is literally 0 point in duplicating them.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4131 >
2024-12-11 18:28:57 +01:00
265a541b65
x11: Mark meta_XFree macro as private
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4131 >
2024-12-11 18:28:57 +01:00
5a31b4e7b8
tests/cursor: Add test for transform cursor surfaces
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3859 >
2024-12-11 16:22:57 +00:00
5e4821d9fc
tests/cursors: Test viewport based cropping
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3859 >
2024-12-11 16:22:57 +00:00
a9a4923c03
tests/cursor-tests: Also test cursor rendering in screen casting
...
This uses the ref test infrastructure inside the cursor tests screen
cast client, and verifies the content on the screen cast matches the
content of the compositor, both when using the 'embedded' cursor mode,
and the 'metadata' cursor mode.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3859 >
2024-12-11 16:22:57 +00:00
bcb52960db
tests/cursor: Test Wayland client using wp_viewport for scaling
...
This test doesn't use a separate reference image, but verifies the
result is identical to that of the built in cursor.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3859 >
2024-12-11 16:22:57 +00:00
3d45345789
tests/cursor-tests: Also test a couple of fractional scales
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3859 >
2024-12-11 16:22:57 +00:00
35cbea59cc
tests/remote-desktop-utils: Add monitor recording helpers
...
Will be used in tests for recording existing monitors.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3859 >
2024-12-11 16:22:57 +00:00
8cf41761a9
tests/screen-cast: Move executable launching into helper
...
It doesn't contain anything screen cast specific, except the
XDG_RUNTIME_DIR, so make it usable from elsewhere. While at it, prepare
it for being able to run the glib test functionality.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3859 >
2024-12-11 16:22:57 +00:00
acd7fa7f50
tests/utils: Rename test runner executable path variable
...
We'll have more "test clients", so make it a bit more explicit to avoid
shadowing variables.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3859 >
2024-12-11 16:22:57 +00:00
228be80164
tests/monitor-test-utils: Make it explicit when scale should be dynamic
...
This also avoids loosing precision since the float won't be casted to an
int before being used to configure the test output.
Currently there is only one test that expects the scale to be calculated
dynamically, all the other always assume scale ending up being 1.0
unless explicitly configured in some way.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3859 >
2024-12-11 16:22:57 +00:00
967be91c92
tests/remote-desktop-utils: Allow screen cast only sessions
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3859 >
2024-12-11 16:22:57 +00:00
92f6f2e8fd
tests/remote-desktop-utils: Make cursor mode explicit
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3859 >
2024-12-11 16:22:57 +00:00
a4380075a6
tests/remote-desktop-utils: Keep track of current buffer
...
This will be useful later on when we actually look at the buffer in
places other than when it's actively processed.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3859 >
2024-12-11 16:22:57 +00:00
2386976f5e
tests/remote-desktop-utils: Narrow buffer scope
...
Only actively test MemFd, and don't ever ask for or expect MemPtr, since
we don't support those anyway. Also, for convenience, ask the buffers to
be automatically mmap:ed.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3859 >
2024-12-11 16:22:57 +00:00
9c4e93b055
tests/screen-cast: Split out generic parts to utils file
...
This will make it easier to add more screen cast / remote desktop test
cases.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3859 >
2024-12-11 16:22:57 +00:00
e580453df9
screen-cast: Implement viewport support
...
[jadahl] Rework hotspot calculations
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3859 >
2024-12-11 16:22:57 +00:00
f77d8e2a12
display: Fix cursor sprite sizes with fractional scales
...
This makes the cursor size match the expectation given by the theme
size. It also means the sprite size now matches GTK4 provided cursor
surfaces using wp_viewport.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3859 >
2024-12-11 16:22:57 +00:00
8fc1bddf3b
cursor-renderer/native: Handle early cursor texture changes
...
We create the cursor view data when we update the cursor, but allow the
texture to be realized earlier than that. The texture change listener
invalidates the hw cursor validity state, but since it's initialized to
invalid, the hardware cursor will still be correctly handled.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3859 >
2024-12-11 16:22:57 +00:00
35e5ae718a
cursor-renderer: Add viewport support
...
This makes the overlay code work which is notably used for screen
sharing and recording if the client doesn't support meta-data cursors.
[jadahl] Changed the approach the way coordinates are scaled.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3859 >
2024-12-11 16:22:57 +00:00
01f2f40475
cursor-renderer: Pass renderer when finding highest scale monitor
...
Do this instead of going via the backend, since we don't need anything
other from the backend.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3859 >
2024-12-11 16:22:57 +00:00
19669a3d9d
cursor-renderer/native: Add support for viewports
...
[jadahl] Rework hotspot calculations
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3859 >
2024-12-11 16:22:57 +00:00
e674c7e454
cursor-sprite: Add API for viewports
...
[jadahl] Rework hotspot calculations.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3859 >
2024-12-11 16:22:57 +00:00
e402eaa950
shaped-texture: Use pipeline matrix helper
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3859 >
2024-12-11 16:22:57 +00:00
e9475b2190
tests: Add basic ref-test based cursor sprite test case
...
It currently contains some basic tests using the built in cursor as well
as traditional buffer scale using Wayland client in different monitor
configurations.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3859 >
2024-12-11 16:22:57 +00:00
129ead488b
tests/ref-test: Allow updating only non-existing reference images
...
This makes it a bit more reliable to add more reference images, but be
sure not to touch any existing ones.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3859 >
2024-12-11 16:22:57 +00:00
9cc5bec0a3
tests/ref-test: Split out image processing bits
...
This allows it to be used in processes that doesn't have a stage view
etc, e.g. screen cast clients.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3859 >
2024-12-11 16:22:57 +00:00
aeeb710d93
tests/utils: Make wait-for-window helper more generic
...
It took a MetaTestClient, which wasn't used. To allow it be used for windows
that doesn't come from a MetaTestClient, remove the MetaTestClient
namespace, and update the callers.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3859 >
2024-12-11 16:22:57 +00:00