131 Commits

Author SHA1 Message Date
Jonas Ådahl
adf49decb1 doc/gdctl: Add missing argument to options
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4308>
2025-02-28 13:01:13 +00:00
Jonas Ådahl
cf504d8de6 doc/gdctl: Fix short version of --mode
Shoud be -m not -M.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4308>
2025-02-28 13:01:13 +00:00
Jonas Ådahl
de2d19e882 gdctl: Support showing and setting output luminance
`gdctl show` now prints "monitor preferences", which currently consists
of only the luminance setting.

`gdctl prefs` is introduced, where one can run e.g. `gdctl prefs
--monitor DP-1 --luminance 80.0` to set the output luminance of the
monitor connected to DP-1 to 80%.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4271>
2025-02-27 13:13:42 +01:00
José Expósito
54c606ed8e gdctl: Allow to lease monitors
Add a new option (--for-lease-monitor) to allow to set a monitor that is
not part of any logical monitor as available for lease.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4300>
2025-02-26 08:34:56 +00:00
José Expósito
70de6901dc gdctl: Fix transform example
The text reads "transformed by 270 degrees" but the corresponding flag
is missing.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4300>
2025-02-26 08:34:56 +00:00
José Expósito
5d07e69461 onscreen/native: Allow to force copy mode
Create an environment variable to allow to set the copy mode.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4251>
2025-02-19 19:10:02 +00:00
José Expósito
b652098565 docs/multi-gpu: Document copy modes
In preparation to allow to select the copy mode, document them.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4251>
2025-02-19 19:10:02 +00:00
Daniel van Vugt
394bf5ab24 clutter/frame-clock: Add triple buffering support
This replaces the DISPATCHED state with new sub-states that are possible
with triple buffering:

  DISPATCHED_ONE:                     Double buffering
  DISPATCHED_ONE_AND_SCHEDULED:       Scheduled switch to triple buffering
  DISPATCHED_ONE_AND_SCHEDULED_NOW:   Scheduled switch to triple buffering
  DISPATCHED_ONE_AND_SCHEDULED_LATER: Scheduled switch to triple buffering
  DISPATCHED_TWO:                     Triple buffering

Triple buffering is currently disabled until the test cases get updated to
handle it in the next commit.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1441>
2025-02-14 17:39:09 +00:00
Daniel van Vugt
9d2ab85f74 clutter/frame-clock: Merge states DISPATCHING and PENDING_PRESENTED
Chronologically they already overlap in time as presentation may
complete in the middle of the dispatch function, otherwise they are
contiguous in time. And most switch statements treated the two states
the same already so they're easy to merge into a single `DISPATCHED`
state.

Having fewer states now will make life easier when we add more states
later.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1441>
2025-02-14 17:39:09 +00:00
Daniel van Vugt
6fae16302b doc: Update the frame scheduling diagram to include SCHEDULED_LATER
Although since all SCHEDULED* states basically have the same transitions
it's easier to show them as a single state. The mermaid diagram also won't
render correctly if there is a mix of combined and singular states. We
must use either always combined states or always singular states.

Fixes: 5b214dc2b7 ("clutter/frame-clock: Allow scheduling an update in the future")
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1441>
2025-02-14 17:39:09 +00:00
Jeremy Bícha
c945826a69 gdctl: Fix manpage typo
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4254>
2025-02-07 03:21:57 +00:00
Jonas Ådahl
b674048184 gdctl: Allow setting color mode
This allows configuring a monitor to enter BT.2100 a.k.a. HDR mode.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4192>
2025-02-01 22:46:09 +00:00
Jonas Ådahl
3cc5d201a2 Add gdctl man page using rst2man
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4190>
2025-01-30 11:29:39 +00:00
José Expósito
a4035fc68e docs/multi-gpu: Document mutter-device-preferred-primary
Add documentation explaining how to change the primary GPU using a udev
rule.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4218>
2025-01-17 15:06:57 +00:00
Sebastian Wick
4b13aa4c5e docs/debugging: Expand on Renderdoc and built-in support
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4061>
2024-11-15 14:04:35 +00:00
Jakub Steiner
43cad8d68b fonts: Use static.gnome.org
- centralized font hosting

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4129>
2024-11-12 18:21:01 +01:00
Sebastian Wick
11ef52639f docs/building-and-running: Be more clear about remote desktop
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3943>
2024-11-06 14:31:34 +00:00
Bilal Elmoussaoui
ab95a95a1d docs/website: Use relative links
Allows easily browsing the docs from the CI artifacts

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4078>
2024-10-12 19:37:28 +02:00
Bilal Elmoussaoui
fe3192169a Merge CoglPango inside of Clutter
As that is where the whole text rendering integration happens
And would allow us to get rid of some over-abstraction in cogl-pango,
simplify
ClutterSnapshot integration as well

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4004>
2024-10-08 16:00:57 +00:00
Jonas Ådahl
fe0371641f docs/debugging: Update CI reproduction steps
No need to manually deal with pipewire or runtime directories anymore.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3987>
2024-08-29 22:04:44 +00:00
Bilal Elmoussaoui
43f24b03e5 cally: Merge inside Clutter
Only do the build system bits, we would have to rename
the types and expose at least CallyActor as ClutterActorAccessible

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917>
2024-08-07 22:46:16 +00:00
Jonas Ådahl
0c014a23b4 doc/coding-style: Update guidelines for floating point numbers
The old guidelines aren't compatible with -Wfloat-conversion.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3822>
2024-06-25 20:48:24 +02:00
Jonas Ådahl
16efcd4f9a Stop using xvfb-run in tests
Except the X11 backend test, it still needs an X server. Eventually we
can replace it with the equivalent that uses Xwayland, but that needs a
"scaled down" mutter that runs as the host compositor for Xwayland, that
doesn't expose anything on the session bus.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3812>
2024-06-21 17:22:20 +00:00
Dor Askayo
82cdf90a71 clutter/frame-clock: Add a state for when scheduled "now"
The new CLUTTER_FRAME_CLOCK_STATE_SCHEDULED_NOW state is almost
identical to CLUTTER_FRAME_CLOCK_STATE_SCHEDULED, with one important
difference being that it avoids updates from being repeatedly
rescheduled "now" when multiple calls to
clutter_frame_clock_schedule_update_now() are done before the source
is actually dispatched.

Such repeated calls to schedule an update "now" may actually postpone
the dispatch if the CPU is very busy and the source dispatch is
delayed, defeating the purpose of scheduling a frame "now".

It also allows rescheduling "now" when the frame clock is uninhibited
after being inhibited while an update was scheduled "now". This may
be important in cases where the frame clock is inhibited for very
short periods in which it would otherwise lose the state of being
scheduled "now".

Scenarios such as this would become more common with the introduction
of variable refresh rate since it makes scheduling "now" a commonplace
occurrence.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3561>
2024-02-10 16:16:19 +00:00
Sebastian Keller
88bc52838a doc: Update link to looking glass documentation
The file has been renamed in the gnome-shell repo.

Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3122
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3554>
2024-01-29 20:05:39 +01:00
Florian Müllner
65d4815942 doc: Update link to commit message guidelines
Replace the wiki page with the corresponding section in
the GNOME handbook.

Death to the wiki!

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3526>
2024-01-16 09:37:21 +00:00
Sebastian Wick
bca62e6ec2 docs/website: Add documentation pages
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3519>
2024-01-12 13:07:02 +00:00
Sebastian Wick
da3909187f docs/website: Call it API Reference instead of API documentation
Just like we do in README.md.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3519>
2024-01-12 13:07:02 +00:00
Sebastian Wick
02007bf96e docs/website: Pull in the entire README.md contribution section
Instead of linking to the same text with one sentence more, pull in the
entire text and stop linking to it.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3519>
2024-01-12 13:07:02 +00:00
Bilal Elmoussaoui
c3cb760412 misc: Use the new mutter.gnome.org URL
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3514>
2024-01-12 10:48:20 +00:00
Bilal Elmoussaoui
3bb42e2f66 docs: Add a website
Co-Authored-By: Jakub Steiner <jimmac@gmail.com>
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3490>
2024-01-10 19:14:58 +00:00
Sebastian Wick
abe47769b7 docs: Move kms abstractions documentation out of references
Eventually we want to have all the high-level code documentation in the
component API reference documentation. However, gi-docgen is currently
missing support for mermaid so we just keep the files in `doc/` and link
to them from `code-overview.md`.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3505>
2024-01-09 17:59:15 +00:00
Bilal Elmoussaoui
52c64d44fc docs: Move kms abstractions to a separate file
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3489>
2024-01-09 15:23:04 +00:00
Bilal Elmoussaoui
84739c0e96 docs: Remove extra slash from the git show command
It adds extra slashes in the end result

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3504>
2024-01-09 14:02:59 +00:00
Bilal Elmoussaoui
133adc6fb4 docs: Add a logo
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3484>
2024-01-09 13:38:54 +00:00
Sebastian Wick
40305f53f0 docs: Import Clutter Rendering Model wiki page
This one was overlooked when we migrated the wiki to the repo, so let's
add it before we delete the wiki.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3485>
2024-01-03 22:41:10 +01:00
Sebastian Wick
50936e9953 docs: Prefix code documentation files
with the subsystem they belong to. This makes it easier to see which
files belong where.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3485>
2024-01-03 22:41:07 +01:00
Sebastian Wick
9ac2da99d6 docs/building-and-running: Add note about updating ref-tests
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3465>
2024-01-03 20:54:57 +00:00
Sebastian Wick
e583d3c0f7 docs/debugging: Expand debugging docs
Add information on different mutter specific debugging techniques.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3465>
2024-01-03 20:54:57 +00:00
Sebastian Wick
dedc2766d2 docs: Add Building and Running topic
There are a lot of ways to build and run mutter. Let's try to document
them and reduce the tribal knowledge.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3465>
2024-01-03 20:54:57 +00:00
Sebastian Wick
edfd1880c9 docs: Move the gitlab wiki and other docs to the docs/ directory
Let's try to consolidate our documentation in doc/ in the repo. This
includes some documentation from README.md, the HACKING.md coding style
and the gitlab wiki.

The README.md file now links to all top-level topics (i.e. not reachable
via other topics).

This also includes a few small changes to make things more consistent.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3465>
2024-01-03 20:54:57 +00:00
Sebastian Wick
86d61de5bd docs: Remove outdated documentation
The value of those documents is questionable. They mostly refer to the
X11 complications and have not been updated for a long time.

Let's just get rid of them.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3465>
2024-01-03 20:54:57 +00:00
Bilal Elmoussaoui
c01ffdb8ba cogl/gir: Depend explicitly on Mtk
As it is used now for MtkRegion types making the GIR file not containing
the relevant dependency and not being able to resolve MtkRegion type

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3292>
2023-11-03 11:27:52 +00:00
Bilal Elmoussaoui
a7231ab2be docs: Update url maps
To get working items links

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3227>
2023-09-02 10:50:47 +00:00
Bilal Elmoussaoui
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
Carlos Garnacho
39f1b6dca0 core: Delete now unused code
Since MetaWindowDrag took a lot of this code to handle window drags
internally with less interactions with the rest of the stack, this
code in display/window/keybindings is unused.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2683>
2023-01-30 10:56:29 +00:00
Carlos Garnacho
bec8a5860a core,wayland,compositor,x11: Migrate to MetaWindowDrag
Flip the switch in using MetaWindowDrag, leaving display grab
ops and a bunch other code unused. Some places checked the grab op
and/or window in complex ways, others just checked for grab existence
and should now look for clutter ones, and others already were already
doing this in addition.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2683>
2023-01-30 10:56:29 +00:00
Corey Berla
102736c7f5 docs: Fix dependency names
Dependency names need to match the namespace name exactly (including
capitalization) otherwise they won't be shown as dependencies.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2788>
2023-01-17 20:45:46 +00:00
Corey Berla
a60ceaa377 docs: Mark Gtk and Gdk as related libraries
Since Gtk and Gdk are no longer hard dependencies, gi-docgen considers
them related libraries.  They will not show up in the documentation
if they are tagged as dependencies without actually being dependencies.

See: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2407
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2788>
2023-01-17 20:45:46 +00:00
Bilal Elmoussaoui
9a5289cf58 docs/cogl-pango: Update urlmap
Drop unnused dependencies

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2708>
2022-11-22 13:32:52 +01:00