1
0
Fork 0
mutter-performance-source/src/compositor
Georges Basile Stavracas Neto 763ae36cee
Drop Autotools
I saw Meson fade from the sky
On the wind I heard a sigh
As snowflakes cover fallen Makefiles
I will say this last goodbye

Meson is now coming
So ends Autotools days
Future is now coming
And we must away
Over Python and without Bashisms
Through lands where never Meson touched
By silver streams that run down to the Sea

Under parsers, beneath old legacy
Over snow one winter’s morn
I turned at last to paths that lead home
And though where the road then takes me
I cannot tell
We came all this way
But now comes the day
To bid you farewell

Many places I have been
Many sorrows I have seen
But I don’t regret
Nor will I forget
All Makefiles that took that road with me

I bid you all a very fond farewell.
2019-01-10 11:50:54 -02:00
..
plugins Drop Autotools 2019-01-10 11:50:54 -02:00
clutter-utils.c compositor: Make meta_actor_painting_untransformed take a framebuffer 2019-01-03 10:26:13 +00:00
clutter-utils.h compositor: Make meta_actor_painting_untransformed take a framebuffer 2019-01-03 10:26:13 +00:00
cogl-utils.c Clean up include macros mess 2018-11-06 17:17:36 +01:00
cogl-utils.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
compositor-private.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
compositor.c compositor: Fix maybe-uninitialized warning 2019-01-07 16:13:32 +00:00
meta-background-actor-private.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-background-actor.c compositor: Make meta_actor_painting_untransformed take a framebuffer 2019-01-03 10:26:13 +00:00
meta-background-group.c Use G_DECLARE_DERIVABLE/FINAL_TYPE on some types 2018-12-21 19:48:50 +00:00
meta-background-image.c Use G_DECLARE_DERIVABLE/FINAL_TYPE on some types 2018-12-21 19:48:50 +00:00
meta-background-private.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-background.c Use G_DECLARE_DERIVABLE/FINAL_TYPE on some types 2018-12-21 19:48:50 +00:00
meta-cullable.c Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-cullable.h Use G_DECLARE_DERIVABLE/FINAL_TYPE on some types 2018-12-21 19:48:50 +00: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 Use G_DECLARE_DERIVABLE/FINAL_TYPE on some types 2018-12-21 19:48:50 +00:00
meta-dnd.c Fix XDND handling to work without GDK and MetaX11Display 2018-07-06 19:47:16 +02:00
meta-feedback-actor-private.h Use G_DECLARE_DERIVABLE/FINAL_TYPE on some types 2018-12-21 19:48:50 +00:00
meta-feedback-actor.c Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-module.c Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-module.h Changed obsolete FSF postal address into generic URL. 2014-01-13 11:35:47 -05:00
meta-plugin-manager.c Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-plugin-manager.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-plugin.c meta/plugin: Use G_DECLARE_DERIVABLE_TYPE 2018-11-23 14:28:37 +00:00
meta-shadow-factory.c Use G_DECLARE_DERIVABLE/FINAL_TYPE on some types 2018-12-21 19:48:50 +00:00
meta-shaped-texture-private.h shaped-texture: Add support for texture transform 2018-12-03 18:57:59 +01:00
meta-shaped-texture.c shaped-texture: Indentation fix in update_area() 2019-01-05 14:18:31 +01:00
meta-surface-actor-wayland.c Use G_DECLARE_DERIVABLE/FINAL_TYPE on some types 2018-12-21 19:48:50 +00:00
meta-surface-actor-wayland.h Use G_DECLARE_DERIVABLE/FINAL_TYPE on some types 2018-12-21 19:48:50 +00:00
meta-surface-actor-x11.c Use G_DECLARE_DERIVABLE/FINAL_TYPE on some types 2018-12-21 19:48:50 +00:00
meta-surface-actor-x11.h Use G_DECLARE_DERIVABLE/FINAL_TYPE on some types 2018-12-21 19:48:50 +00:00
meta-surface-actor.c Add some gtk-doc comments. 2019-01-06 21:57:16 +01:00
meta-surface-actor.h Use G_DECLARE_DERIVABLE/FINAL_TYPE on some types 2018-12-21 19:48:50 +00:00
meta-sync-ring.c Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-sync-ring.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-texture-rectangle.c Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-texture-rectangle.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-texture-tower.c Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-texture-tower.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-window-actor-private.h window-actor: Remove post_init() vfunc 2019-01-04 11:58:02 -02:00
meta-window-actor-wayland.c window-actor: Remove post_init() vfunc 2019-01-04 11:58:02 -02:00
meta-window-actor-wayland.h Add MetaWindowActorX11 and MetaWindowActorWayland 2019-01-04 09:32:51 -02:00
meta-window-actor-x11.c window-actor: Remove post_init() vfunc 2019-01-04 11:58:02 -02:00
meta-window-actor-x11.h Add MetaWindowActorX11 and MetaWindowActorWayland 2019-01-04 09:32:51 -02:00
meta-window-actor.c Add some gtk-doc comments. 2019-01-06 21:57:16 +01:00
meta-window-group-private.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-window-group.c compositor: Make meta_actor_painting_untransformed take a framebuffer 2019-01-03 10:26:13 +00:00
meta-window-shape.c Clean up include macros mess 2018-11-06 17:17:36 +01:00
README Document window and surface actors 2019-01-04 09:32:58 -02:00
region-utils.c boxes: Add API to transform a MetaRectangle 2019-01-05 14:18:25 +01:00
region-utils.h boxes: Add helper to scale rectangles by a double 2019-01-03 10:26:13 +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.