1
0
Fork 0
mutter-performance-source/src/compositor
2023-08-24 19:57:57 +00:00
..
plugins build: Use / operator instead of join_paths everywhere 2023-05-04 12:35:38 +00:00
clutter-utils.c clutter/utils: Remove magic numbers from fixed point calculations 2022-09-02 07:33:26 +00:00
clutter-utils.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
cogl-utils.c cogl: Remove CoglError wrapper 2019-06-20 18:25:04 +02:00
cogl-utils.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
compositor-private.h Remove unused *_menu_for_rect functions 2023-08-12 19:53:46 +00:00
compositor.c compositor: Handle grab state through ClutterStage::is-grabbed handler 2023-08-16 15:34:46 +00:00
edge-resistance.c compositor: Move edge resistance data to MetaWindowDrag 2023-01-30 10:56:29 +00:00
edge-resistance.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-background-actor-private.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-background-actor.c cullable: Split unobscured and redraw clip region culling 2023-08-12 10:27:45 +00:00
meta-background-content-private.h cullable: Split unobscured and redraw clip region culling 2023-08-12 10:27:45 +00:00
meta-background-content.c cullable: Split unobscured and redraw clip region culling 2023-08-12 10:27:45 +00:00
meta-background-group.c cullable: Split unobscured and redraw clip region culling 2023-08-12 10:27:45 +00:00
meta-background-image.c mutter: Remove stray spaces 2023-05-24 14:16:41 +02:00
meta-background-private.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-background.c cleanup: Stop translating nick/blurb for pspecs 2023-07-19 11:33:59 +00:00
meta-compositor-native.c compositor/native: Add support for direct scanout per view 2022-08-01 21:05:04 +00:00
meta-compositor-native.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-compositor-server.c compositor: Introduce MetaCompositorViewNative 2022-08-01 21:05:04 +00:00
meta-compositor-server.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-compositor-view-native.c compositor-view/native: Add 'render' debug prints 2022-12-09 20:14:26 +00:00
meta-compositor-view-native.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-compositor-view.c cleanup: Stop translating nick/blurb for pspecs 2023-07-19 11:33:59 +00:00
meta-compositor-view.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-compositor-x11.c compositor: Stop forwarding MapNotify events back through the backend 2023-08-08 03:58:42 +02:00
meta-compositor-x11.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-cullable.c cullable: Split unobscured and redraw clip region culling 2023-08-12 10:27:45 +00:00
meta-cullable.h cullable: Split unobscured and redraw clip region culling 2023-08-12 10:27:45 +00:00
meta-dnd-actor-private.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-dnd-actor.c clutter: Remove deprecated macros usage 2023-08-07 19:30:34 +00:00
meta-dnd-private.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-dnd.c compositor: Use ClutterEvent getter methods 2023-08-08 04:11:13 +02:00
meta-feedback-actor-private.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-feedback-actor.c cleanup: Stop translating nick/blurb for pspecs 2023-07-19 11:33:59 +00:00
meta-later-private.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-later.c clutter: Pass 'ClutterFrame' in all stage update signals 2023-01-23 15:57:50 +01:00
meta-module.c cleanup: Stop translating nick/blurb for pspecs 2023-07-19 11:33:59 +00:00
meta-module.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-multi-texture-format-private.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-multi-texture-format.c cleanup: Fix various typos 2023-08-12 20:13:37 +00:00
meta-multi-texture.c compositor: Add MetaMultiTexture class 2023-07-25 21:24:35 +00:00
meta-plugin-manager.c Remove unused *_menu_for_rect functions 2023-08-12 19:53:46 +00:00
meta-plugin-manager.h Remove unused *_menu_for_rect functions 2023-08-12 19:53:46 +00:00
meta-plugin.c mutter: Remove stray spaces 2023-05-24 14:16:41 +02:00
meta-shadow-factory.c mutter: Remove stray spaces 2023-05-24 14:16:41 +02:00
meta-shaped-texture-private.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-shaped-texture.c shaped-texture: Start using MetaMultiTexture 2023-07-25 21:24:35 +00:00
meta-surface-actor-wayland.c surface-actor-wayland: Fix leak in apply_transform() 2023-08-16 21:24:28 +02:00
meta-surface-actor-wayland.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-surface-actor-x11.c shaped-texture: Start using MetaMultiTexture 2023-07-25 21:24:35 +00:00
meta-surface-actor-x11.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-surface-actor.c cullable: Split unobscured and redraw clip region culling 2023-08-12 10:27:45 +00:00
meta-surface-actor.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-sync-ring.c cogl: Remove legacy OpenGL driver support 2023-02-21 18:09:28 +00:00
meta-sync-ring.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-texture-mipmap.c shaped-texture: Start using MetaMultiTexture 2023-07-25 21:24:35 +00:00
meta-texture-mipmap.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-window-actor-private.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-window-actor-wayland.c cullable: Split unobscured and redraw clip region culling 2023-08-12 10:27:45 +00:00
meta-window-actor-wayland.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-window-actor-x11.c cullable: Split unobscured and redraw clip region culling 2023-08-12 10:27:45 +00:00
meta-window-actor-x11.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-window-actor.c window-actor: Be more consistent declaring the property 2023-08-24 19:57:57 +00:00
meta-window-drag.c compositor: Use ClutterEvent getter methods 2023-08-08 04:11:13 +02:00
meta-window-drag.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-window-group-private.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-window-group.c cullable: Split unobscured and redraw clip region culling 2023-08-12 10:27:45 +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 Remove unused meta_region_scale_double 2023-08-12 19:53:46 +00:00
region-utils.h Remove unused meta_region_scale_double 2023-08-12 19:53:46 +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.