Also, remove compositor_options in favour of four int constants, four
bitwise ands, and a few zero-equality comparisons, since it doesn't
seem we'll need this to scale much after all.
Rather than relying upon the rects passed in from Dart, the compositor
should compute the paint bounds of layers from the cull rects of the
underlying SkPictures. This approach is better because it will handle
effects like shadows that paint outside the incorrect paint bounds we
use today (as well as shrinking around empty space).
Rather than using IDL code generation, we now use some template magic to
generate this code. No all the code is template-generated yet, but this
patch is a start in that direction.
Some host objects hold on to a lot of state and take time to tear down. This
patch adds the ability to dispose them eagerly to release resources faster.
We still use SkPicture as our rasterization backend, but now we're uploading
our layer tree to C++. A future patch will push the layer tree deeper into the
system and we'll eventually switch backends.