Bilal Elmoussaoui
1393140d41
cally: Move init utils to Clutter
...
The clutter API was calling the cally one anyways
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
8301272b8e
clutter/actor: Add a get_accessible_type vfunc
...
Allows to avoid using the factories which simplifies the whole thing
and allows external type to create their own accessible types.
Copied from StWidget
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
1e387e9117
clutter/actor: Cache the accessible object
...
Helpful for merging Cally inside Clutter, see next commits
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
d4c73c8341
clutter/stage-manager: Emit accessibility events
...
Instead of making CallyRoot do that and have to duplicate the list
of stages internally...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
135cd40928
clutter/stage: Emit accessibility focus state change
...
Allows us to get rid of CallyStage trying to track what is already
tracked in ClutterStage and simplify the whole thing
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
7571ae6f05
clutter/stage: Track is_active
...
Instead of doing that in both MetaStage & CallyStage.
This allows ClutterStage to also emits the relavant acessibility
bits directly without having a roundtrip through Cally
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
fb02197b4f
cally/actor: Remove no longer useful notify_clutter vfunc
...
As ClutterText is the only one using that, so move the notify call there
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
d8fbaf4533
clutter/text: Emit accessibility state changes
...
Not everything can be easily moved, so only parts of it is done for now
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
e6a394ca10
clutter/actor: Emit accessibility states changes directly
...
Instead of making CallyActor listen to notify, adding an extra overhead
Helps with merging Cally inside of Clutter
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
288ad7206b
clutter/actor: Make ActorFlags internal
...
And only expose a getter/setter for NO_LAYOUT flag
This reduces the possible ways users of the Actor API
can affect the internals and would make next commit
simpler
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Sebastian Wick
e3afa1a1d1
color-device: Apply HDR and colorspace calibration
...
The color device now updates the white point via a LUT and sets the
colorspace and HDR metadata properties on monitors to get into the
required configuration.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 16:45:26 +02:00
Sebastian Wick
dc6632f19b
color-device: Derive color space from monitor calibration
...
This ignores the white point calibration for now because our color state
isn't expressive enough, yet.
Co-authored-by: Joan Torres <joan.torres@suse.com>
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 16:45:10 +02:00
Sebastian Wick
357e5c92f2
backends: Let the color manager know about monitor changes earlier
...
This makes it possible to set monitor/output properties before the stage
views get re-created.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 16:40:56 +02:00
Sebastian Wick
a539071548
output: Fix minor coding style issue
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 16:40:56 +02:00
Sebastian Wick
6dc9cab14b
backends: Move MetaOutputHdrMetadata from KmsConnector to Output
...
This makes it independent of the native backend and allows us to use it
in more places.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 16:40:56 +02:00
Sebastian Wick
fefcc6edec
color-device: Track the ClutterColorState of the device
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 16:40:56 +02:00
Sebastian Wick
c123178f1c
color-device: Rename signal "updated" to "calibration-changed"
...
The generic term updated can mean anything. This is specifically about
calibration related updates like changing the sink colorimetry
(Colorspace, HDR metadata) and changes to the white point for night
light etc.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 16:40:56 +02:00
Sebastian Wick
f5ce2ddf3c
color-manager: Create color devices also for virtual monitors
...
We will need color devices on all monitors soon.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 16:40:56 +02:00
Sebastian Wick
431c4d12b9
color-device: Make it possible to outlive the active monitors
...
Previously the color device was destroyed when it was attached to a
monitor that was going away. However, the MetaMonitor objects are
ref-counted and can stay around for longer, even if the underlying
resources went away. We need color devices for as long as the
MetaMonitors are alive.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 16:40:48 +02:00
Sebastian Wick
a10b56e946
color-manager: Dispose instead of finalize
...
Otherwise we'll keep references to color devices for too long.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 16:30:04 +02:00
Sebastian Wick
a50e0a76b6
color-device: Create devices without a ready color manager
...
Every monitor should eventually have a corresponding color device. To
make sure this can work, we must handle situations where the color
manager didn't connect to colord yet, and thus isn't ready.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 15:53:39 +02:00
Sebastian Wick
25e5c59202
color-device: Avoid roundtrip through manager when assining a profile
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 15:53:39 +02:00
Sebastian Wick
6452c21b85
color-device: Let the device check if it should skip updating
...
Not everything will require the device to be "ready" (i.e. have a ICC
profile assigned).
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 15:53:39 +02:00
Sebastian Wick
8eeec32c90
color-device: Get temperature from the manager
...
Instead of passing it to the update function. This decouples the
updating from being specifically about the temperature/white point.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 15:53:39 +02:00
Sebastian Wick
682ce3222c
color-manager: Rename function to avoid the term gamma
...
It currently changes the white point using a LUT and will do more things
in the future.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 15:53:38 +02:00
sid
9e24fa52c6
core: Include the pkgconfig-specified gdesktop-enums.h
...
Follow up to commit 7658e07be
Refer https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1370
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3916 >
2024-08-07 09:34:52 +00:00
Daniel van Vugt
a04d90d9e7
backends/native: Avoid duplicating or losing KMS property sets
...
When triple buffering, `meta_onscreen_native_prepare_frame` for the next
frame is called before `notify_view_crtc_presented` for the previous frame.
So our booleans were unfortunately still TRUE in the second prepare_frame,
resulting in two frames with the same property updates.
When double buffering, having roughly one frame interval between
`meta_onscreen_native_prepare_frame` and `notify_view_crtc_presented`
meant that property updates signalled between the swap and presentation
wouldn't get attached to a KMS update, and would be forgotten when
`notify_view_crtc_presented` resets the flags to FALSE.
To solve these we now keep a separate flag and counter per property,
tracking invalidation and pending updates respectively. The latter is a
counter rather than a boolean in support of triple buffering where two
updates may be pending concurrently (next and posted).
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3912 >
2024-08-07 04:01:17 +00:00
Georges Basile Stavracas Neto
cdbe0a27a2
service-channel: Add client type for filechooser portal
...
Add a new service client type for a filechooser portal client, and
expose the x11_interop protocol to it.
This will be used to make Nautilus a file chooser portal implementation.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3694 >
2024-08-06 16:07:48 +00:00
Daniel van Vugt
7937f78c7e
backends/native: Only warn about cursor sizes once
...
Because if the current theme has exceeded the dimensions of
`DRM_CAP_CURSOR_WIDTH/HEIGHT` then the warning is just going to repeat
every time the cursor changes. We still fall back to software cursors
just fine so it's not important to repeat the warning.
In Mutter 46 the warning was "Invalid theme cursor size". Same problem.
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3597
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3924 >
2024-08-06 09:58:44 +00:00
Marco Trevisan (Treviño)
07023b65bc
cogl/color: Do not make cogl_color_free introspectable
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3925 >
2024-08-06 01:27:12 -06:00
Marco Trevisan (Treviño)
d422cddc2e
cogl/color: Ensure Cogl.Color.equal() is introspectable
...
We need to explicitly define the type, being a generic const pointer.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3925 >
2024-08-06 01:23:55 -06:00
Jonas Ådahl
3c070604dd
backend/x11/clutter-backend: Group glib header include correctly
...
glib.h is not a bundled header, so move it accordingly.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3923 >
2024-08-05 21:32:38 +02:00
Jonas Ådahl
de76e007b5
cogl: Fix some whitespace issues
...
The removal of the onscreen template left some function definitions and
declarations incorrectly indented.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3923 >
2024-08-05 21:31:43 +02:00
Sebastian Wick
c5e9f028b2
cogl: Provide backwards compat for GLSL version 140 shaders
...
We still use GLSL 100 syntax which means `varying`, `attribute` and
`gl_FragColor` but GLSL 140 wants us to use `in` and `out`. This
provides some simple `#define`s to make it still look like the GLSL 100
syntax is supported.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3907 >
2024-08-05 17:57:11 +00:00
Sebastian Wick
ea696ae4b1
cogl: Repace codegen_boilerplate_buffer with a local variable
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3907 >
2024-08-05 17:57:11 +00:00
Sebastian Wick
94806c98bf
cogl: Derive GLSL version from major, minor and GL vs GLES
...
The GLSL version can be derived from the major and the minor, with the
exception that GLSL ES versions require the "es" suffix.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3907 >
2024-08-05 17:57:11 +00:00
Sebastian Wick
e122943bcd
cogl/gl: Check GLSL version and unify GL context version checks
...
This adds a check which makes sure that the required GLSL/GLSL ES
versions are supported.
It also splits out the GLES version check into its own function, just
like GL does.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3907 >
2024-08-05 17:57:11 +00:00
Sebastian Wick
74917e1b07
cogl/gl: Use g_auto (GStrv) and g_autofree in more cases
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3907 >
2024-08-05 17:57:11 +00:00
Bilal Elmoussaoui
da2e931355
clutter/backend: Remove get_display vfunc
...
As there is no separate implementations anymore
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3915 >
2024-08-05 15:47:29 +00:00
Bilal Elmoussaoui
b684dc0382
clutter/backend: Provide a default get_display implementation
...
As there is no on screen template checks done on the x11 backend implementation
so simplify that.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3915 >
2024-08-05 15:47:29 +00:00
Bilal Elmoussaoui
5277e33d37
cogl: Remove no longer used OnscreenTemplate
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3915 >
2024-08-05 15:47:29 +00:00
Bilal Elmoussaoui
3b386ba5d7
cogl: Remove no longer used FramebufferConfig
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3915 >
2024-08-05 15:47:29 +00:00
Bilal Elmoussaoui
833070ab79
cogl: Remove need_stencil config
...
As it is always set to TRUE
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3915 >
2024-08-05 15:47:29 +00:00
Bilal Elmoussaoui
41ec1aa0ca
cogl: Remove use_stereo_stage config
...
Nothing sets it from the X11 backend API, so just get rid of it
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3915 >
2024-08-05 15:47:29 +00:00
Bilal Elmoussaoui
a1828e7212
cogl: Remove samples_per_pixel config
...
It is only set through an undocumented env variable
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3915 >
2024-08-05 15:47:29 +00:00
Florian Müllner
4ddd83c51e
Bump version to 47.beta
...
Update NEWS.
2024-08-03 19:23:22 +02:00
Daniel van Vugt
e389178180
onscreen/native: Return GErrors from secondary GPU updates
...
And return early from `swap_buffers_with_damage` if the error would have
led to flipping a NULL buffer.
This is also the perfect time to remove the `egl_context_changed` parameter
and move `_cogl_winsys_egl_ensure_current` closer to the code that actually
needs it.
Related: https://bugs.launchpad.net/bugs/2069565
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3817 >
2024-08-02 10:27:54 +00:00
Daniel van Vugt
45a97a5e3f
onscreen/native: Set frame result to IDLE on swap failure
...
So that swap failure messages are not also followed by:
meta_stage_native_redraw_view: runtime check failed: (!META_IS_CRTC_KMS (crtc))
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3817 >
2024-08-02 10:27:54 +00:00
Daniel van Vugt
0de83166db
onscreen/native: Unify the failure paths of swap_buffers_with_damage
...
They're both the same and a third one will be added soon.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3817 >
2024-08-02 10:27:54 +00:00
Bilal Elmoussaoui
b9269abaf5
cogl: Remove unused Error types
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3910 >
2024-08-01 11:06:33 +00:00