tree c21ee43722e04b43636178aa31c86a14c57fa1fe
parent fbf0a4ee9c117d4ea25ea2654ff5aaac3936ab40
author James Robinson <jamesr@chromium.org> 1425512993 -0800
committer James Robinson <jamesr@chromium.org> 1425512993 -0800

Add a Display and ContextProvider concept to mojom, use to recreate

This introduces two new concepts to make initializing and reinitializing
the objects needed to draw onscreen easier. This makes it easier to draw
things and will make recovering from lost contexts simpler.

The first is ContextProvider which is an interface for creating contexts
(in the GPU command buffer sense) associated with a piece of state (such
as drawing to a particular native viewport). This allows code to request
command buffer contexts associated with a particular native viewport
multiple times without requiring passing identifiers around since the
identity of the native viewport in question is contained in the identity
of the message pipe that the interface is bound to. This also makes it
possible for the gpu mojoms to produce viewport-bound contexts without
needing to be aware of the native viewport interfaces explicitly or
through opaque ID side channels.

The second is Display which is an interface used to submit frames that
should be drawn onscreen. A Display is somewhat like a Surface with a
few differences that make interacting with one simpler than interacting
with a Surface in general. Display is only drawn to and never embedded
in another frame so it does not need to have an explicit size or global
ID as those are only used when embedding one Surface's frame into
another. The only operations a Display has to support is receiving
frames, ACKing them and returning resources when unused.

A Display needs to know how to draw to a particular context so it can be
constructed from a ContextProvider if that ContextProvider is associated
with the desired native viewport. This means that in turn the native
viewport service doesn't have to know anything about surfaces, it only
needs to provide appropriate ContextProvider implementations to whomever
asks.

R=qsr@chromium.org

Review URL: https://codereview.chromium.org/940293003
