| // 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/gfx/composition/interfaces/hit_tests.mojom"; |
| import "mojo/services/gfx/composition/interfaces/scene_token.mojom"; |
| |
| // The renderer is a service which renders a scene graph to a display. |
| // |
| // Use |Compositor.CreateRenderer()| to create a renderer. |
| interface Renderer { |
| // Sets the scene to be displayed by the renderer. |
| // |
| // The |size| specifies the size of the output. |
| // |
| // The |scene_token| specifies the scene which will be drawn as the |
| // root of the scene graph. |
| // |
| // The |scene_version| specifies the version of the scene to render, |
| // Use |kSceneVersionNone| to request the most recently published |
| // version of the scene if synchronization is unimportant. |
| // |
| // The |viewport| specifies the portion of the scene to render in pixels. |
| // |
| // It is an error to create a renderer with an invalid |scene_token| |
| // or |size|; the connection will be closed. |
| // TODO: make this an event instead |
| SetRootScene(SceneToken scene_token, |
| uint32 scene_version, |
| mojo.Rect viewport); |
| |
| // Dissociates the root scene from the renderer. |
| ClearRootScene(); |
| |
| // Provides an interface which can be used to perform hit tests on the |
| // contents of the renderer's scene graph. |
| GetHitTester(HitTester& hit_tester); |
| }; |