wl_subcompositor provides an interface for clients to defer some composition
to the server. For example, a media player application may provide the
compositor with one surface that contains the video frames and another
surface that contains playback controls. Deferring this composition to the
server allows for the server to make certain optimizations, such as mapping
these surfaces to hardware layers on the display controller, if available.
Implementation Note: We currently implement the wl_subcompositor by creating
new scenic ShapeNodes and placing them as children of the parent node. This
makes for a simple implementation, but we don’t support any alpha blending
of subsurfaces (due to limitations in how Scenic handles these use cases).
Scenic may be extended to handle these 2D composition use-cases, but without
that we’ll need to do some of our own blending here.