Carlos Garnacho
e77e88894b
backends: Excise MetaStageView to its own file
...
It was implemented together with MetaStageImpl, move it to a separate
file.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1862 >
2021-07-16 19:08:06 +02:00
Carlos Garnacho
d5c3c80dfe
backends: Rename ClutterStage[View]Cogl API and types
...
Rename to MetaStageImpl and MetaStageView, so they are in line with
the rest of the backend code.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1862 >
2021-07-16 19:08:06 +02:00
Carlos Garnacho
8f839b2f9c
clutter: Move ClutterStageCogl[View] code to src/backends
...
This is now MetaStageImpl in backend code.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1862 >
2021-07-16 19:08:06 +02:00
Carlos Garnacho
0ac257212e
core: Add private utility function to get Clutter debug flags
...
This will be used to fetch the debug flags from backend code.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1862 >
2021-07-16 19:08:06 +02:00
Carlos Garnacho
7712b58170
clutter: Export private function to get debug flags
...
We're shuffling some code into src/backends, that needs knowing
about these flags to minimize immediate refactors.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1862 >
2021-07-16 19:08:06 +02:00
Carlos Garnacho
dd9d40aedb
clutter: Make ClutterStageView API public to mutter
...
All subclasses and stage implementations will come from src/backends,
so this internal API must be accessible there.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1862 >
2021-07-16 19:08:06 +02:00
Carlos Garnacho
5beba8b99b
clutter: Make ClutterDamageHistory API public to mutter
...
We are moving things to src/backends, make this helper object able
to be used there. This is a temporary measure as ClutterDamageHistory
itself should be moved too.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1862 >
2021-07-16 19:08:06 +02:00
Carlos Garnacho
c58909dc0f
clutter: Demote CLUTTER_NOTE to g_debug in clutter-stage-cogl.c
...
This code is being shuffled out of Clutter code, so cut the ties with
it before doing that.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1862 >
2021-07-16 19:08:06 +02:00
Carlos Garnacho
5785d8cde0
backends/native: Remove unused array definition
...
This array is a relic from the input code belonging to Clutter,
and is nowadays unused.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1862 >
2021-07-16 19:08:06 +02:00
Jonas Ådahl
a2937a47bb
onscreen/native: Change some g_debug() meta_topic()
...
g_debug() is inconvenient to use; change to meta_topic() with the 'kms'
topic. This makes it possible to enable valuable debug output at
runtime.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1931 >
2021-07-16 18:17:04 +02:00
Jonas Ådahl
d057762cdb
device-pool: Add debug logging
...
Enabled by enabling the 'backend' debug topic.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1931 >
2021-07-16 18:17:04 +02:00
Jonas Ådahl
4b6631338e
util: Add 'backend' debug topic
...
Meant for backend things that are not large enough to warrant their own
topic.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1931 >
2021-07-16 18:17:04 +02:00
Jonas Ådahl
e4375046e0
cogl/gl: Handle bogus glGetString(GL_RENDERER) return values
...
Seems glGetString(GL_RENDERER) in the wild can return NULL, causing
issues with strstr(). Handle this more gracefully by using
g_return_val_if_fail(), that assumes a NULL renderer means software
rendering.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1931 >
2021-07-16 18:17:04 +02:00
Jonas Ådahl
b65555a958
renderer/native: Include error message in log entries
...
We had a GError handed to us, where we logged a warning, but didn't log
the message from the error. Do that so it becomes easier to find out
what might have failed.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1931 >
2021-07-16 18:10:56 +02:00
Jonas Ådahl
58f053d437
drm-buffer/dumb: Return TRUE when init succeeded
...
Returning FALSE means it failed, but we returned FALSE even when it
succeeded, meaning it would never succeed.
Fixes: 10c4bc6e3f
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1880
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1888
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1932 >
2021-07-16 17:18:55 +02:00
Jonas Ådahl
8a4aa92a54
context: Move the signal handling and dir management to user
...
Signals and changing current directory is a process global action, thus
isn't that suitable for a library. Thus, move that responsibility to
gnome-shell.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 13:40:34 +02:00
Jonas Ådahl
9cda0bd719
tests: Make common test code a shared library
...
This will require some symbol exporting, but the benefit is that have
better control of what external test cases can do in terms of creating
more testing specific contexts.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 13:40:34 +02:00
Jonas Ådahl
d8107027ef
tests/test-utils: Move test client path ensure helper to private header
...
It's only used from the test context, and the main test utils header
file will be used to export helper functionality, so move it out,
preparing for that.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:42:40 +02:00
Jonas Ådahl
724a7eee74
tests: Move 'wait-for-X11-display' helper to MetaContextTest
...
Gets rid of a un-prefixed helper function relying on a global singleton.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:42:40 +02:00
Jonas Ådahl
e8742be568
tests/test-utils: Remove unused init function
...
This is now dealt with by MetaContextTest.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:42:40 +02:00
Jonas Ådahl
3d5a2b2ffb
context/test: Make type derivable
...
This makes it possible to declare the type in an installed header (so
that e.g. META_CONTEXT_TEST(context) works), but without having to
expose the MetaContextClass struct.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:42:40 +02:00
Jonas Ådahl
acb0a44224
tests: Prefix test plugin name getter with meta_
...
It'll be used via the new shared library, so prefix it.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:42:40 +02:00
Jonas Ådahl
9f1f3139b8
tests/utils: Prefix AsyncWaiter with Meta
...
This too will be used by test cases via a shared library.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:42:40 +02:00
Jonas Ådahl
4a6e22311a
tests/utils: Prefix TestClient with Meta
...
Soon we'll expose it via a libmutter-test library.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:42:40 +02:00
Jonas Ådahl
f74d311d61
tests: Rename test-utils.c/h to meta-test-utils.c/h
...
Otherwise it'll conflict with other files with identical filenames,
if one would add src/tests/ to the include path, which will happen in a
later commit.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:42:39 +02:00
Jonas Ådahl
ff0afb186a
context: Move 'replace-current-wm' tracking to the context
...
This move yet another scattered global static variable into the
context's control.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:34:37 +02:00
Jonas Ådahl
50ed027b6f
context: Move X11 display policy under the context
...
The context implementations already effectively dictate the policy, so
let them do it more directly instead of going indirectly via global
variables.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:34:37 +02:00
Jonas Ådahl
e62f7e2910
context: Allow controlled destruction
...
Add a method meta_context_destroy() that both runs dispose and unrefs
the context. Tear down is moved to dispose() so that things owned by the
context are destroyed when calling meta_context_destroy(), or when the
last reference is released.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:34:37 +02:00
Jonas Ådahl
2deb751fd9
context: Add explicit state tracking
...
This will help finding out when things happen in the wrong order.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:34:37 +02:00
Jonas Ådahl
c1beb204c2
x11-display: Get _GNOME_WM_KEYBINDINGS from the context
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:34:37 +02:00
Jonas Ådahl
7d0aaa14d1
x11-display: Get _NET_WM_NAME from context
...
It's equivalent to the name that was passed when the context was
created.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:34:37 +02:00
Jonas Ådahl
d3b7d8df0d
wayland: Initialize in a single step
...
Before we first created the MetaWaylandCompositor instance, which would
repare Clutter/Cogl so they could initialize and turn on Wayland display
server features, then later to initialize the rest. Now that part is
done by the Wayland infrastructure itself, so we don't need the early
initialization. Simplify things a bit by centralizing it all into a
single meta_wayland_compositor_new() call.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:34:37 +02:00
Jonas Ådahl
0330ce1f15
context: Make the context own MetaWaylandCompositor
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:34:37 +02:00
Jonas Ådahl
6768b509ea
Remove meta_quit()
...
It is no longer used, so remove it. This also removes the intermediate
MetaContext global singleton, as it is no longer needed.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:34:37 +02:00
Jonas Ådahl
122aa94642
x11/session: Use MetaContext to terminate instead of meta_quit()
...
This is done by keeping around a pointer to MetaContext as
"client_pointer" (which is practically the same as "user_pointer"
elsewhere), as well as creating a `MetaIceConnection` wrapper for ICE
connections.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:34:37 +02:00
Jonas Ådahl
9523120241
x11/events: Use MetaContext to terminate instead of meta_quit()
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:34:37 +02:00
Jonas Ådahl
e8af5fd398
display: Keep pointer to the context
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:34:37 +02:00
Jonas Ådahl
4be9bc9db4
stage/x11: Terminate using MetaContext instead of meta_quit()
...
Done for the nested backend when clicking the close button.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:34:37 +02:00
Jonas Ådahl
7d116bee0f
main: Move MetaX11DisplayPolicy to a new meta-private-enums.h
...
As with the compositor type enum, also have the X11 display policy enum,
as it's also effectively part of the context configuration. But as with
the compositor type, move it to a header file for enums only, and since
this is a private one, create a private variant meta-enums.h.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:34:36 +02:00
Jonas Ådahl
68b376a944
context: Make context owner of MetaDisplay
...
It may still be closed from elsewhere, e.g. when being replaced, but the
reference is owned by MetaContext instead of itself.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:25:21 +02:00
Jonas Ådahl
b1c643eeaa
context: Make the context owner of the backend
...
There is still the `_backend` singleton still, as there are still the
`meta_get_backend()` that needs to work for now.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:25:21 +02:00
Jonas Ådahl
1972d4ec90
main: Remove now unused functions used for running mutter
...
The way to do this now is using a MetaContext.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:25:21 +02:00
Jonas Ådahl
ed53dd90f3
context: Add way to add custom option group
...
This will be used by gnome-shell.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:25:21 +02:00
Jonas Ådahl
d76743736f
context: Add way to set plugin GType instead of name
...
Will be used by gnome-shell.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:25:21 +02:00
Jonas Ådahl
fe0ce2814e
main: Remove meta_test_init()
...
This was the last user of the configuration override API, so that goes
as well.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:25:21 +02:00
Jonas Ådahl
1d4224ab07
tests/persistent-virtual-monitor: Port to MetaContext
...
Since this tests the `--virtual-monitor` command line argument, it uses
the `MetaContextMain` variant of the context, as it's there that command
line argument is handled.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:25:21 +02:00
Jonas Ådahl
725510ea29
mutter: Port to MetaContext
...
Uses the new MetaContextMain, replacing piece by piece "real display
server" setup done using mostly main.c functions.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:25:21 +02:00
Jonas Ådahl
aa306ac3ca
Introduce MetaContextMain
...
This object intends to replace the scattered functions that are used to
make up what is effectively a "mutter context". It takes care of the
command line arguments that is now done in main.c, persistant virtual
monitors, and the like.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:25:21 +02:00
Jonas Ådahl
2ac262f138
tests/clutter: Port to MetaContext
...
The clutter tests neeed to start and stop, thus uses their own main loop
instead of the one in MetaContext. Shouldn't matter, since nothing
in mutter should happen that makes the test self-terminate from inside
mutter.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:25:21 +02:00
Jonas Ådahl
2f19a5f28d
context/test: Add 'no-x11' and 'test-client' constructor flags
...
The 'no-x11' one will inhibit Xwayland from starting, and 'test-client'
will make sure the test client path is properly discovered.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1861 >
2021-07-15 11:25:21 +02:00