Skip to content
  • Jonas Ådahl's avatar
    kms: Add plane representation · 4d3e8043
    Jonas Ådahl authored and Georges Basile Stavracas Neto's avatar Georges Basile Stavracas Neto committed
    A plane is one of three possible: primary, overlay and cursor. Each
    plane can have various properties, such as possible rotations, formats
    etc. Each plane can also be used with a set of CRTCs.
    
    A primary plane is the "backdrop" of a CRTC, i.e. the primary output for
    the composited frame that covers the whole CRTC. In general, mutter
    composites to a stage view frame onto a framebuffer that is then put on
    the primary plane.
    
    An overlay plane is a rectangular area that can be displayed on top of
    the primary plane. Eventually it will be used to place non-fullscreen
    surfaces, potentially avoiding stage redraws.
    
    A cursor plane is a plane placed on top of all the other planes, usually
    used to put the mouse cursor sprite.
    
    Initially, we only fetch the rotation properties, and we so far
    blacklist all rotations except ones that ends up with the same
    dimensions as with no rotations. This is because non-180° rotations
    doesn't work yet due to incorrect buffer modifiers. To make it possible
    to use non-180° rotations, changes necessary include among other things
    finding compatible modifiers using atomic modesetting. Until then,
    simply blacklist the ones we know doesn't work.
    
    GNOME/mutter#548
    GNOME/mutter!525
    4d3e8043