2da7805f58
meson: Use library instead of shared_library
...
Allow to theoretically build mutter statically.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4244 >
2025-02-11 09:55:07 +00:00
8c2e39323f
mtk/monitor-transform: Add to/from string helpers
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3859 >
2024-12-11 16:22:57 +00:00
2ae0fcfc5c
mtk: Add mtk_compute_viewport_matrix helper
...
It'll be used to calculate a CoglPipeline layer matrix given viewport
data.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3859 >
2024-12-11 16:22:57 +00:00
996678cfef
mtk/build: Sort files alphabetically
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3859 >
2024-12-11 16:22:57 +00:00
9e3fd379d3
region: Add get_box() function
...
In contrast to get_rectangle() it gets a box (x1, y1, x2, y2). There is
no MtkBox type, so just write it to pointers passed as arguments.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4103 >
2024-11-07 11:53:22 +00:00
8e912a09d1
build: Disable asserts and cast checks in Mutter
...
For non-debug and non-plain cases - i.e. mainly release builds.
This ensures we use the same options in all places and draws a cleaner
distinction between g_assert() and g_return_if_fail() - the later will
still be done in release build while the former are meant for debug
only.
One advantage of doing this is that it allows us to use non-trivial
asserts more generously, such as calling `g_list_length()`.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3424 >
2024-09-24 14:07:23 +00:00
dcaa57c2c8
mtk: Move meta_rectangle_transform to Mtk
...
Both MtkMonitorTransform and MtkRectangle are Mtk types, so we can push
this into Mtk and start using it in Clutter as well.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3930 >
2024-08-09 15:51:36 +00:00
89af55d8aa
mtk: Move MetaMonitorTransform to Mtk
...
This makes it possible to use MtkMonitorTransform in Clutter which will
be used to track the transform in ClutterStageView.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3930 >
2024-08-09 15:51:36 +00:00
820a7ad813
build: Allow building xwayland without x11
...
Co-authored-by: Jonas Ådahl <jadahl@gmail.com >
Closes https://gitlab.gnome.org/GNOME/mutter/-/issues/3553
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3853 >
2024-06-30 15:08:55 +02:00
422ee4515d
Compile with -Wfloat-conversion
...
This means we'll get warnings whenever a floating point value looses
precision, e.g. gets implicitly casted to an integer. It also warns when
implicitly casting double's to float's, which arguably is less of a
problem, but there are no warning for just float/double to int.
This would have caught
https://gitlab.gnome.org/GNOME/mutter/-/issues/3530 .
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3822 >
2024-06-25 20:48:24 +02:00
32cb2ee720
mtk: Add mtk_rectangle_contains_pointf()
...
This variant works on floating point coordinates, in order
to avoid undesired effects with rounding.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3820 >
2024-06-25 01:44:30 +02:00
6c972546f1
mtk: Add Rectangle.contains_point
...
By turning a macro that exists in the codebase to a proper
function so that gnome-shell could make use of it as well
instead of using a region for it contains_point api...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3801 >
2024-06-11 00:49:28 +02:00
5dab10e441
mtk/rectangle: Add auto-cleanup integration
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3703 >
2024-04-15 16:48:04 +00:00
3091449298
mtk/rectangle: Add constructor for an empty rectangle
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3703 >
2024-04-15 16:48:04 +00:00
a55b080129
gir: Remove unnused cairo include
...
As cairo is not used in the public API
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3530 >
2024-01-27 10:03:15 +00:00
41a7e8e3e0
build: Make g-ir-scanner warnings fatal when -werror is set
...
This should help catching problems with introspection in CI.
This also pulls out some common arguments to the gnome.generate_gir
call.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3528 >
2024-01-17 09:26:00 +00:00
2a75661883
region: Move RegionBuilder to Mtk
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3501 >
2024-01-09 18:47:34 +00:00
9953704ceb
region: Move RegionIterator to Mtk
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3501 >
2024-01-09 18:47:34 +00:00
39aeb81a8b
region: Move Region.apply_matrix_transform_expand to Mtk
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3501 >
2024-01-09 18:47:34 +00:00
4d53e4d156
region: Move Region.crop_and_scale to Mtk
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3501 >
2024-01-09 18:47:34 +00:00
6e7d314e75
region: Move Region.scale to Mtk
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3501 >
2024-01-09 18:47:34 +00:00
4513abd584
region: Move rectangle helper macro to Mtk
...
Rename it to Rectangle prefix to avoid confusion with MtkRegion
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3501 >
2024-01-09 18:47:34 +00:00
6f9e75b6f2
boxes: Move Rectangle.is_adjacent_to to Mtk
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3501 >
2024-01-09 18:47:34 +00:00
fcc8cfff11
boxes: Move Rectangle.scale_double to Mtk
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3501 >
2024-01-09 18:47:34 +00:00
59457dff81
boxes: Move Rectangle.crop_and_scale to Mtk
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3501 >
2024-01-09 18:47:34 +00:00
5ffeb34251
build: Enable no-omit-frame-pointer for all non-plain builds
...
This is useful for local installations with e.g. the `release`
buildtype.
Further more, Fedora has been doing the same system wide and it
apparently was helpful in various ways, see also
Also add -mno-omit-leaf-frame-pointer, like Fedora.
https://blogs.gnome.org/chergert/2023/10/03/what-have-frame-pointers-given-us-anyway/
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3333 >
2024-01-09 16:26:57 +00:00
ee65ca791b
build: Harmonize c_args handling
...
The slightly different styles in the different build files make it
harder to reason about or share c_args.
This notably ensures we never set any extra c_args for plain builds and
fixes the cc.get_supported_arguments() check in Cogl, Clutter and Mtk.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3333 >
2024-01-09 16:26:57 +00:00
a4181a6730
mtk: Mark mtk_rectangle_to_graphene_rect in-variable as const
...
To silence occasional compiler warnings.
Fixes: a93471eb90
("mtk: Move Rectangle.to_graphene_rect from Meta")
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3474 >
2023-12-29 12:45:19 +01:00
371d28a766
cleanup: Stop allowing deprecated Cogl API usage
...
Allow only specific files to use those deprecated APIs making
it easier to find where deprecated APIs are still in use
and avoid introducing new usages without being noticed
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3400 >
2023-11-15 13:13:00 +01:00
9610665ab8
mtk: Use an arc box for region
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3363 >
2023-11-09 10:09:23 +00:00
156fe0fdd8
mtk: Make Rectangle no longer a typedef
...
Now that we provide our own Region type which uses
MtkRectangle directly, there is no longer a need to go through cairo
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3292 >
2023-11-03 11:27:52 +00:00
7c98910488
mtk: Add a Region type
...
Currently, we use cairo_region_t despite it being a thing wrapper around pixman_region_32
In order to push for a cairo-less and wayland only build in the future, replace
cairo_region_t with a thin wrapper that is almost a copy of the upstream cairo implementation
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3292 >
2023-11-03 11:27:52 +00:00
fac0d05762
mtk: Include config.h in C files
...
Make these pull the general config, might be handy in the
future.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3230 >
2023-09-02 09:52:54 +00:00
ef366c5fcb
mtk: Make error traps multi-display
...
Keep a per-display list of error traps, so we don't mix them
together, and possibly deem unintended error traps outdated.
This means init/deinit calls are now stackable, and need to
happen evenly. In order to honor this, move the MetaX11Display
error trap destrution to finalize.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3230 >
2023-09-02 09:52:54 +00:00
6bda46095a
mtk: Add API for X11 errors
...
We currently have a bit of a disaster area wrt X11 error handling,
with all of Cogl/Clutter/Mutter offering implementations with different
expectations and different degrees of integration with other error
handlers.
It makes more sense to have a single X11 error handling implementation
that is used in all those places. Mtk seems like the reasonable place
to have this kind of general API, so adopt the more advanced code
at src/x11.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3230 >
2023-09-02 09:52:54 +00:00
1abef24154
mtk: Move Rectangle.from_graphene_rect from Meta
...
And drop the clutter helper
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3128 >
2023-08-30 16:46:14 +02:00
a93471eb90
mtk: Move Rectangle.to_graphene_rect from Meta
...
Also drops the clutter equivalent
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3128 >
2023-08-30 16:46:14 +02:00
aec8e50df8
mtk: Move Rectangle.[contains|could_fit]_rect from Meta
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3128 >
2023-08-30 16:46:14 +02:00
eafe07de31
mtk: Move Rectangle.overlap_* from Meta
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3128 >
2023-08-30 16:46:14 +02:00
db77759938
mtk: Move Rectangle.area from Meta
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3128 >
2023-08-30 16:46:14 +02:00
af7c7befd8
mtk: Move Rectangle constructors from Meta
...
Also rename the rect constructor from mtk_rect to mtk_rectangle_new so
it is detected as a proper constructor instead of a random function by
g-ir-scanner
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3128 >
2023-08-30 16:46:14 +02:00
565acaed9c
mtk: Move Rectangle.intersect from Meta
...
Also replaces it usage everywhere & remove the Clutter helper. Note the
tests were not moved yet to mtk.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3128 >
2023-08-30 16:46:14 +02:00
6f66dd9944
mtk: Move Rectangle.union from Meta
...
Similar to Rectangle.equal. The clutter helper was not used.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3128 >
2023-08-30 16:46:13 +02:00
9b2cba4e86
mtk: Move Rectangle.equal from Meta
...
Moves equal the equal function and removes the clutter equivalent. The
tests were not moved until all the remaining helper functions are moved.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3128 >
2023-08-30 16:46:13 +02:00
c035e0e238
mtk: Add a copy of MetaRectangle
...
Just to get the basics for porting Cogl to using it instead of
cairo_rectangle_int_t.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3128 >
2023-08-30 16:46:13 +02:00
765a918a62
build: Add a Meta Toolkit private library
...
Currently, Meta/Cogl/Clutter makes use of cairo_rectangle_int_t despite
the existance of MetaRectangle.
In order to make MetaRectangle usable in Cogl/Clutter as well, Mtk would
provide such base types that are shared across the various private
libraries
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3128 >
2023-08-30 16:46:13 +02:00