mutter/src/compositor
2020-05-26 13:54:28 +00:00
..
plugins plugins/default: Handle skipped animations 2019-11-08 22:49:31 +01:00
clutter-utils.c shaped-texture: Fix use-nearest check when viewports are scaled 2020-03-26 08:32:46 +00:00
clutter-utils.h shaped-texture: Fix use-nearest check when viewports are scaled 2020-03-26 08:32:46 +00:00
cogl-utils.c
cogl-utils.h
compositor-private.h later: Make MetaCompositor the owner of the MetaLaters state 2020-04-16 15:05:52 +02:00
compositor.c compositor: Only include meta-window-actor-wayland.h when building with wayland 2020-04-27 13:28:28 +00:00
meta-background-actor-private.h
meta-background-actor.c shaped-texture: Fix use-nearest check when viewports are scaled 2020-03-26 08:32:46 +00:00
meta-background-group.c
meta-background-image.c
meta-background-private.h
meta-background.c background: Limit mipmap levels to avoid loss of visible detail 2020-05-13 09:37:31 +00:00
meta-compositor-native.c compositor: Add support for direct scanout of Wayland surfaces 2020-04-16 15:05:52 +02:00
meta-compositor-native.h compositor: Add support for direct scanout of Wayland surfaces 2020-04-16 15:05:52 +02:00
meta-compositor-server.c compositor: Add support for direct scanout of Wayland surfaces 2020-04-16 15:05:52 +02:00
meta-compositor-server.h compositor: Add support for direct scanout of Wayland surfaces 2020-04-16 15:05:52 +02:00
meta-compositor-x11.c display: Initialize MetaCompositor in two steps 2020-04-16 15:05:52 +02:00
meta-compositor-x11.h
meta-cullable.c cullable: Check if effects are disabled 2020-02-14 01:17:42 +01:00
meta-cullable.h cullable: Factor out untransformed check into a vfunc 2020-02-08 19:20:41 +01:00
meta-dnd-actor-private.h
meta-dnd-actor.c Replace ClutterPoint by graphene_point_t 2019-10-16 11:38:14 +00:00
meta-dnd.c cleanup: Use g_clear_signal_handler() where possible 2019-11-21 15:02:27 +00:00
meta-feedback-actor-private.h
meta-feedback-actor.c Replace ClutterPoint by graphene_point_t 2019-10-16 11:38:14 +00:00
meta-later-private.h later: Listen to MetaCompositor signal instead of clutter 2020-04-16 15:05:52 +02:00
meta-later.c later: Listen to MetaCompositor signal instead of clutter 2020-04-16 15:05:52 +02:00
meta-module.c
meta-module.h
meta-plugin-manager.c plugin-manager: Kill window effects on destroy 2019-11-08 22:18:09 +00:00
meta-plugin-manager.h
meta-plugin.c
meta-shadow-factory.c shadow-factory: Don't set implicit Cogl material 2019-12-03 19:02:14 +00:00
meta-shaped-texture-private.h shaped-texture: Add get_width()/get_height() API 2020-02-11 12:59:57 +00:00
meta-shaped-texture.c shaped-texture: Fix typo in documentation 2020-05-13 12:12:01 +02:00
meta-surface-actor-wayland.c compositor: Add support for direct scanout of Wayland surfaces 2020-04-16 15:05:52 +02:00
meta-surface-actor-wayland.h compositor: Add support for direct scanout of Wayland surfaces 2020-04-16 15:05:52 +02:00
meta-surface-actor-x11.c surface-actor-x11: Move window related unredirect logic to MetaWindowX11 2020-04-16 14:08:19 +02:00
meta-surface-actor-x11.h window-actor: Move shapes, shadows and unredirection to X11 sub types 2019-10-16 13:16:55 +02:00
meta-surface-actor.c clutter/actor: Make has_mapped_clones() factor in parent actors 2020-05-26 14:54:57 +02:00
meta-surface-actor.h surface-actor: Remove get_window() API and vfunc 2020-02-19 22:34:28 +00:00
meta-sync-ring.c Use G_GNUC_FALLTHROUGH instead of comments 2020-01-09 17:58:29 +01:00
meta-sync-ring.h
meta-texture-tower.c clutter, core: Stop using the Cogl framebuffer stack 2019-12-03 19:02:14 +00:00
meta-texture-tower.h clutter, core: Stop using the Cogl framebuffer stack 2019-12-03 19:02:14 +00:00
meta-window-actor-private.h window-actor: Add API to update regions 2020-03-10 14:52:26 +01:00
meta-window-actor-wayland.c window-actor: Add API to update regions 2020-03-10 14:52:26 +01:00
meta-window-actor-wayland.h wayland: Move tree updating to the shell surface role 2020-02-19 22:34:28 +00:00
meta-window-actor-x11.c window-actor/x11: Cache the frame bounds 2020-04-27 13:04:38 +02:00
meta-window-actor-x11.h window-actor: Move shapes, shadows and unredirection to X11 sub types 2019-10-16 13:16:55 +02:00
meta-window-actor.c clutter/paint-context: Allow passing redraw clip to offscreen paint context 2020-04-23 14:45:53 +00:00
meta-window-group-private.h
meta-window-group.c shaped-texture: Fix use-nearest check when viewports are scaled 2020-03-26 08:32:46 +00:00
meta-window-shape.c
README
region-utils.c region-utils: Make transform util const correct 2020-05-26 13:54:28 +00:00
region-utils.h region-utils: Make transform util const correct 2020-05-26 13:54:28 +00:00

Intro
=====

In general, the compositor splits the window from the contents of
the window from the shape of the window. In other words, a window
has contents, and the contents of the window have a shape. This is
represented by the actor hierarchy:

 +--------------------------------------+
 | MetaWindowActor                      |
 | +----------------------------------+ |
 | | MetaSurfaceActor                 | |
 | | +------------------------------+ | |
 | | | MetaShapedTexture            | | |
 | | |                              | | |
 | | |                              | | |
 | | |                              | | |
 | | |                              | | |
 | | +------------------------------+ | |
 | +----------------------------------+ |
 +--------------------------------------+

Surfaces may also contain subsurfaces. The MetaWindowActor and
MetaSurfaceActor subclasses that will be created depend on the client
type, and the display server type.

## Subsurfaces

Additionally, there is also the case of subsurfaces: surfaces that
are child of other surfaces. That is also represented in the actor
hierarchy by having one or many MetaSurfaceActors (the subsurfaces)
added as children of a parent MetaSurfaceActor. There are no limits
to how many subsurfaces a surface may have. With subsurfaces, the
actor hierarchy looks like this:

 MetaWindowActor
  ↳ MetaSurfaceActor (surface)
     ↳ MetaShapedTexture
     ↳ MetaSurfaceActor (subsurface)
        ↳ MetaShapedTexture
        ↳ MetaSurfaceActor (sub-subsurface)
           ↳ MetaShapedTexture
     ↳ MetaSurfaceActor (subsurface)
        ↳ MetaShapedTexture

In this example, the main surface has 2 subsurfaces. One of these
subsurfaces contains a subsurface as well.

All MetaWindowActors contain at least one MetaSurfaceActor, and all
MetaSurfaceActors contain a MetaShapedTexture.

## Client and compositor

MetaWindowActor and its subclasses represent the client window's
type. A X11 client will have a MetaWindowActorX11 representing it,
and a Wayland client will have a MetaWindowActorWayland.

On the compositor side, the surface where the contents of the window
are drawn into are represented by MetaSurfaceActor subclasses. On a
Wayland session, windows are backed by a MetaSurfaceActorWayland
surface, whereas on X11 sessions, by MetaSurfaceActorX11.

XWayland windows are X11 client windows (MetaWindowActorX11) backed
by Wayland surfaces (MetaWindowActorWayland).


Env Vars
========

MUTTER_DISABLE_MIPMAPS - set to disable use of mipmaped windows.