mutter/src/compositor
2021-12-19 23:46:11 +01:00
..
plugins plugins/default: Use local vars for refs 2021-12-07 13:57:58 +00:00
clutter-utils.c src: Use graphene APIs 2020-10-06 15:34:48 +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: Remove CoglError wrapper 2019-06-20 18:25:04 +02:00
cogl-utils.h Use a consistent style for enum braces 2019-02-28 09:31:01 +01:00
compositor-private.h compositor: Refactor backend-specific code into MetaCompositor vfuncs 2021-02-14 13:23:29 +00:00
compositor.c compositor: Remove dead code 2021-10-25 15:45:35 +02:00
meta-background-actor-private.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-background-actor.c background-actor: Use MetaBackgroundContent 2020-06-09 17:07:02 -03:00
meta-background-content-private.h Introduce MetaBackgroundContent 2020-06-09 17:07:02 -03:00
meta-background-content.c background-content: Anti-alias texels that intersect the circle boundary 2021-11-24 15:55:20 +00:00
meta-background-group.c meta: Make MetaBackgroundGroup derivable 2019-06-24 13:49:31 +00:00
meta-background-image.c background-image: Properly clear the failed to be filled texture pointer 2021-08-31 08:25:32 +00:00
meta-background-private.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-background.c background: Make the final monitor texture RGB instead of RGBA 2021-01-11 15:08:27 +08:00
meta-compositor-native.c cogl: Turn CoglFramebuffer, CoglOffscreen and CoglOnscreen into GObjects 2020-10-16 16:17:38 +00:00
meta-compositor-native.h compositor: Get the stage via the backend 2020-06-05 21:39:27 +00:00
meta-compositor-server.c compositor: Refactor backend-specific code into MetaCompositor vfuncs 2021-02-14 13:23:29 +00:00
meta-compositor-server.h compositor: Get the stage via the backend 2020-06-05 21:39:27 +00:00
meta-compositor-x11.c backends: Shuffle ClutterBackendX11 code into MetaClutterBackendX11 2021-07-16 19:08:06 +02:00
meta-compositor-x11.h compositor: Get the stage via the backend 2020-06-05 21:39:27 +00:00
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 Use G_DECLARE_DERIVABLE/FINAL_TYPE on some types 2018-12-21 19:48:50 +00:00
meta-dnd-actor.c compositor/dnd-actor: Take geometry scale into account on DnD-cancel 2021-02-05 09:51:56 +00:00
meta-dnd.c backends: Shuffle ClutterBackendX11 code into MetaClutterBackendX11 2021-07-16 19:08:06 +02:00
meta-feedback-actor-private.h feedback-actor: Add API to set and get geometry scale 2021-02-05 09:51:56 +00:00
meta-feedback-actor.c feedback-actor: Add API to set and get geometry scale 2021-02-05 09:51:56 +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: Handle gracefully calls with unset display 2021-03-13 15:12:36 +00:00
meta-module.c plugin: Drop version information 2020-10-06 15:14:34 +02:00
meta-module.h Changed obsolete FSF postal address into generic URL. 2014-01-13 11:35:47 -05:00
meta-plugin-manager.c backends: Shuffle ClutterBackendX11 code into MetaClutterBackendX11 2021-07-16 19:08:06 +02:00
meta-plugin-manager.h compositor: Add "locate_pointer" vmethod 2019-06-05 09:34:39 +00:00
meta-plugin.c backends: Shuffle ClutterBackendX11 code into MetaClutterBackendX11 2021-07-16 19:08:06 +02:00
meta-shadow-factory.c src: Stop using GSlice 2021-02-22 13:52:27 +01:00
meta-shaped-texture-private.h shaped-texture: Remove get_image_via_offscreen() 2021-09-04 09:17:44 +00:00
meta-shaped-texture.c cogl: Remove cogl_texture_new_from_sub_texture 2021-12-07 15:32:21 +00:00
meta-surface-actor-wayland.c cogl: Drop cogl-wayland-server.h 2021-12-07 18:34:00 -03:00
meta-surface-actor-wayland.h surface-actor-wayland: Add API to pick a primary stage view 2020-11-19 19:43:40 +01:00
meta-surface-actor-x11.c Remove misplaced line break in g_* logging functions 2020-10-08 16:38:41 +02:00
meta-surface-actor-x11.h surface-actor: Remove 'pre-paint' vfunc 2020-07-02 19:36:51 +02:00
meta-surface-actor.c surface-actor: Fix unobscurred_fraction calculation 2021-12-19 23:46:11 +01:00
meta-surface-actor.h surface-actor: Remove get_image() function 2021-08-28 13:59:52 +02:00
meta-sync-ring.c Make meta_* logging utilities not require line break 2020-10-08 16:38:41 +02:00
meta-sync-ring.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-texture-tower.c cogl: Remove cogl_texture_new_with_size 2021-12-07 15:32:21 +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 tests/wayland-unit-tests: Add test case for remapping popup with subsurface 2021-12-19 15:48:51 +00:00
meta-window-actor-wayland.c window-actor/wayland: Remove subsurface actors on dispose 2021-09-02 21:14:18 +00: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: Don't cache the frame-drawn frame clock 2021-08-22 17:06:53 +00: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 shaped-texture: Remove get_image_via_offscreen() 2021-09-04 09:17:44 +00:00
meta-window-group-private.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
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 src: Stop using GSlice 2021-02-22 13:52:27 +01:00
README Document window and surface actors 2019-01-04 09:32:58 -02:00
region-utils.c region-utils: Fix typo in crop_and_scale() fastpath 2021-03-29 15:17:48 +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.