mirror of
https://github.com/brl/mutter.git
synced 2024-12-23 03:22:04 +00:00
Document window and surface actors
Document the roles of MetaSurfaceActor and MetaWindowActor, and when their subclasses are used. (And this is actually the first real documentation under src/compositor/README!) https://gitlab.gnome.org/GNOME/mutter/merge_requests/368
This commit is contained in:
parent
0442fc8ddc
commit
7952808469
@ -1,7 +1,67 @@
|
||||
Intro
|
||||
=====
|
||||
|
||||
Fix me.
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user