Instead, make Layer::Paint take a new PaintContext that has just exactly
the state that it needs, mirroring PrerollContext. Also, rename
PaintContext to CompositorContext because it holds the context for the
whole compositor.
Currently there's no good way of synchronizing layout changes with children in
Mozart. Previously we flickered when we were out of sync with our child. Now we
jank instead because that's a more acceptable artifact while we work on
improving Mozart.
Fixes https://github.com/flutter/flutter/issues/3024
When we're created off-screen, Mozart gives us a 0x0 view to populate. Rather
than trying to draw a 0x0 texture, we just acknolwedge the frame request
immediately. This matches what we do in the non-Mozart rasterizer.
* Use Node::Combinator::PRUNE, which stops the Mozart launcher from showing red
when we're loading child views. Instead of blocking the whole app, we'll now
just prune away the children that aren't ready. Eventually we'll want
to let authors control these operations.
* Grab the service registry in AcceptConnection rather than CreateView. The
CreateView comes from the Mozart launcher, which isn't where we want to get
the service registry. Now we get the service registry from the first app to
connect, which isn't right either but at least works while we sort out what
we really want.
Previously we just dropped child scenes on the floor. Now we upload them
to Mozart. However, we just draw them on top of all the other content
and don't apply any clips or blends.