1
0
Fork 0
mutter-performance-source/src/compositor
Sebastian Wick c0832b99d8 multi-texture-format: Always use the tex coords of the first plane
The texture coordinates of all planes should be the same in theory so
using the coordinates of the first plane works.

The reason for this change is that Cogl somehow doesn't manage to get us
the correct coordinates for the 3rd plane in some circumstances. This is
really a workaround but not wrong in any way.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3176
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3469>
2023-12-20 19:39:06 +00:00
..
plugins clutter: Make json-glib a debug only dependency 2023-11-14 16:13:18 +01: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: Port Texture* away from CoglObject 2023-10-29 21:16:24 +00:00
cogl-utils.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
compositor-private.h mutter: Completely replace MetaRectangle with MtkRectangle 2023-08-30 16:46:14 +02:00
compositor.c x11: Adopt code to focus stage window on Clutter key focus 2023-12-18 17:55:27 +00:00
edge-resistance.c mutter: Completely replace MetaRectangle with MtkRectangle 2023-08-30 16:46:14 +02:00
edge-resistance.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-background-actor-private.h Port to MtkRegion 2023-11-03 11:27:52 +00:00
meta-background-actor.c Port to MtkRegion 2023-11-03 11:27:52 +00:00
meta-background-content-private.h Port to MtkRegion 2023-11-03 11:27:52 +00:00
meta-background-content.c Port to MtkRegion 2023-11-03 11:27:52 +00:00
meta-background-group.c Port to MtkRegion 2023-11-03 11:27:52 +00:00
meta-background-image.c cogl: Port Texture* away from CoglObject 2023-10-29 21:16:24 +00:00
meta-background-private.h mutter: Replace cairo_rectangle_int_t with MtkRectangle 2023-08-30 16:46:13 +02:00
meta-background.c Revert "background: Make the final monitor texture RGB instead of RGBA" 2023-12-19 12:30:19 +00:00
meta-compositor-native.c Update license access method 2023-08-30 08:48:23 +02:00
meta-compositor-native.h Update license access method 2023-08-30 08:48:23 +02:00
meta-compositor-server.c Update license access method 2023-08-30 08:48:23 +02:00
meta-compositor-server.h Update license access method 2023-08-30 08:48:23 +02:00
meta-compositor-view-native.c wayland/surface: Make MetaWaylandSurface public 2023-11-04 01:12:11 +00:00
meta-compositor-view-native.h Update license access method 2023-08-30 08:48:23 +02:00
meta-compositor-view.c mutter: Completely replace MetaRectangle with MtkRectangle 2023-08-30 16:46:14 +02:00
meta-compositor-view.h Update license access method 2023-08-30 08:48:23 +02:00
meta-compositor-x11.c mutter: Completely replace MetaRectangle with MtkRectangle 2023-08-30 16:46:14 +02:00
meta-compositor-x11.h Update license access method 2023-08-30 08:48:23 +02:00
meta-cullable.c Port to MtkRegion 2023-11-03 11:27:52 +00:00
meta-cullable.h Port to MtkRegion 2023-11-03 11:27:52 +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 meta/later: Remove extra word from trace span description 2023-12-06 16:12:58 +00:00
meta-module.c cleanup: Drop empty vfuncs overrides 2023-08-29 23:38:32 +00:00
meta-module.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-multi-texture-format-private.h multi-texture-format: Expose immutable fields directly 2023-11-22 12:11:38 +00:00
meta-multi-texture-format.c multi-texture-format: Always use the tex coords of the first plane 2023-12-20 19:39:06 +00:00
meta-multi-texture.c cogl: Port Texture* away from CoglObject 2023-10-29 21:16:24 +00:00
meta-plugin-manager.c mutter: Completely replace MetaRectangle with MtkRectangle 2023-08-30 16:46:14 +02:00
meta-plugin-manager.h mutter: Completely replace MetaRectangle with MtkRectangle 2023-08-30 16:46:14 +02:00
meta-plugin.c mutter: Remove stray spaces 2023-05-24 14:16:41 +02:00
meta-shadow-factory.c Port to MtkRegion 2023-11-03 11:27:52 +00:00
meta-shaped-texture-private.h Port to MtkRegion 2023-11-03 11:27:52 +00:00
meta-shaped-texture.c shaped-texture: Don't use mipmaps for small textures 2023-12-19 22:25:21 +01:00
meta-surface-actor-wayland.c wayland/surface: Rename output/protocol_state to applied/committed_state 2023-11-15 10:55:21 +00:00
meta-surface-actor-wayland.h Update license access method 2023-08-30 08:48:23 +02:00
meta-surface-actor-x11.c cogl: Port Texture* away from CoglObject 2023-10-29 21:16:24 +00:00
meta-surface-actor-x11.h Update license access method 2023-08-30 08:48:23 +02:00
meta-surface-actor.c surface-actor: Fix leak when setting non-empty clip region 2023-11-06 20:30:37 +01:00
meta-surface-actor.h Port to MtkRegion 2023-11-03 11:27:52 +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 texture-mipmap: Handle textures with width or height of 1 2023-12-19 22:24:57 +01:00
meta-texture-mipmap.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-window-actor-private.h window-actor: Adjust sync_geometry 2023-11-17 16:08:36 +00:00
meta-window-actor-wayland.c window-actor/wayland: Keep track of when the geometry needs to be synced 2023-11-17 16:08:36 +00:00
meta-window-actor-wayland.h Update license access method 2023-08-30 08:48:23 +02:00
meta-window-actor-x11.c clutter/actor: Make get_transformed_paint_volume() transfer full 2023-12-06 14:07:39 +00:00
meta-window-actor-x11.h Update license access method 2023-08-30 08:48:23 +02:00
meta-window-actor.c window-actor: Adjust sync_geometry 2023-11-17 16:08:36 +00:00
meta-window-drag.c compositor: Undo MetaWindowDrag on MetaWindow::unmanaged signal 2023-12-05 14:16:27 +00:00
meta-window-drag.h Update license access method 2023-08-30 08:48:23 +02:00
meta-window-group-private.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-window-group.c clutter/actor: Make get_transformed_paint_volume() transfer full 2023-12-06 14:07:39 +00:00
meta-window-shape.c Port to MtkRegion 2023-11-03 11:27:52 +00:00
README Document window and surface actors 2019-01-04 09:32:58 -02:00
region-utils.c compositor: Move region_to_cairo_path helper where it is used 2023-11-03 11:27:52 +00:00
region-utils.h compositor: Move region_to_cairo_path helper where it is used 2023-11-03 11:27:52 +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.