| Index: mojo/services/gfx/composition/interfaces/compositor.mojom
|
| diff --git a/mojo/services/gfx/composition/interfaces/compositor.mojom b/mojo/services/gfx/composition/interfaces/compositor.mojom
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..fb1bd6967b152d872ab099cf747a594b9d3743fe
|
| --- /dev/null
|
| +++ b/mojo/services/gfx/composition/interfaces/compositor.mojom
|
| @@ -0,0 +1,57 @@
|
| +// Copyright 2015 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +[DartPackage="mojo_services"]
|
| +module mojo.gfx.composition;
|
| +
|
| +import "mojo/services/geometry/interfaces/geometry.mojom";
|
| +import "mojo/services/gpu/interfaces/context_provider.mojom";
|
| +import "mojo/services/gfx/composition/interfaces/scene_token.mojom";
|
| +import "mojo/services/gfx/composition/interfaces/scenes.mojom";
|
| +import "mojo/services/gfx/composition/interfaces/renderers.mojom";
|
| +
|
| +// Maximum length for a scene or renderer label.
|
| +const uint32 kLabelMaxLength = 32;
|
| +
|
| +// The compositor manages scenes and scene graph renderers.
|
| +//
|
| +// Applications create scenes to describe graphical content they would like
|
| +// to render, including references to other scenes they would like to compose.
|
| +//
|
| +// The system creates a renderer to bind a scene graph to a particular display.
|
| +//
|
| +// Refer to |Scene| and |Renderer| for more information about these objects.
|
| +[ServiceName="mojo::gfx::composition::Compositor"]
|
| +interface Compositor {
|
| + // Creates a scene.
|
| + //
|
| + // The |scene| is used to supply content for the scene. The scene pipe
|
| + // is private to the scene and should not be shared with anyone else.
|
| + //
|
| + // The |scene_token| is used as a transferable reference which can be passed
|
| + // to owners of other scenes to allow them to embed this scene as a
|
| + // resource. The compositor itself does not describe how this interaction
|
| + // should take place, only that the token may eventually be used to
|
| + // construct a |SceneResource|.
|
| + //
|
| + // The |label| is an optional name to associate with the view for
|
| + // diagnostic purposes. The label will be truncated if it is longer
|
| + // than |kLabelMaxLength|.
|
| + //
|
| + // To unregister the scene, simply close the |scene| message pipe.
|
| + CreateScene(Scene& scene, string? label) => (SceneToken scene_token);
|
| +
|
| + // Creates a scene graph renderer.
|
| + //
|
| + // The |context_provider| provides the GL Context to which the content
|
| + // should be rendered. This will typically be a display.
|
| + //
|
| + // The |label| is an optional name to associate with the renderer for
|
| + // diagnostic purposes. The label will be truncated if it is longer
|
| + // than |kLabelMaxLength|.
|
| + //
|
| + // To destroy the renderer, simply close the |renderer| message pipe.
|
| + CreateRenderer(mojo.ContextProvider context_provider,
|
| + Renderer& renderer, string? label);
|
| +};
|
|
|