OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 module cc.mojom; | 5 module cc.mojom; |
6 | 6 |
7 import "cc/ipc/frame_sink_id.mojom"; | 7 import "cc/ipc/frame_sink_id.mojom"; |
8 import "cc/ipc/mojo_compositor_frame_sink.mojom"; | 8 import "cc/ipc/mojo_compositor_frame_sink.mojom"; |
9 import "cc/ipc/surface_id.mojom"; | 9 import "cc/ipc/surface_id.mojom"; |
10 import "cc/ipc/surface_sequence.mojom"; | 10 import "cc/ipc/surface_sequence.mojom"; |
11 import "gpu/ipc/common/surface_handle.mojom"; | 11 import "gpu/ipc/common/surface_handle.mojom"; |
12 import "ui/gfx/geometry/mojo/geometry.mojom"; | 12 import "ui/gfx/geometry/mojo/geometry.mojom"; |
13 | 13 |
14 // The DisplayCompositor interface is a privileged interface that allows | 14 // The DisplayCompositor interface is a privileged interface that allows |
15 // the display compositor host (browser or window server) to create | 15 // the display compositor host (browser or window server) to create |
16 // CompositorFrameSinks. Clients acquire a CompositorFrameSink connection | 16 // CompositorFrameSinks. Clients acquire a CompositorFrameSink connection |
17 // through the display compositor host. Clients request a | 17 // through the display compositor host. Clients request a |
18 // MojoCompositorFrameSink interface, and implement a | 18 // MojoCompositorFrameSink interface, and implement a |
19 // MojoCompositorFrameSinkClient interface. The display compositor host | 19 // MojoCompositorFrameSinkClient interface. The display compositor host |
20 // holds one or more root CompositorFrameSinks that are tied to a valid | 20 // holds one or more root CompositorFrameSinks that are tied to a valid |
21 // |surface_handle|. All other CompositorFrameSinks are offscreen. FrameSinkIds | 21 // |surface_handle|. All other CompositorFrameSinks are offscreen. FrameSinkIds |
22 // are fixed for a given client and are determined ahead of time. Thus, a client | 22 // are fixed for a given client and are determined ahead of time. Thus, a client |
23 // will typically simply request a CompositorFrameSink from the display | 23 // will typically simply request a CompositorFrameSink from the display |
24 // compositor host which will forward the request to the display compositor. | 24 // compositor host which will forward the request to the display compositor. |
25 interface DisplayCompositor { | 25 interface DisplayCompositor { |
26 CreateCompositorFrameSink( | 26 CreateDisplayCompositorFrameSink( |
27 cc.mojom.FrameSinkId frame_sink_id, | 27 cc.mojom.FrameSinkId frame_sink_id, |
28 gpu.mojom.SurfaceHandle widget, | 28 gpu.mojom.SurfaceHandle widget, |
29 cc.mojom.MojoCompositorFrameSink& compositor_frame_sink, | 29 cc.mojom.MojoCompositorFrameSink& compositor_frame_sink, |
30 cc.mojom.MojoCompositorFrameSinkPrivate& compositor_frame_sink_private, | 30 cc.mojom.MojoCompositorFrameSinkPrivate& compositor_frame_sink_private, |
31 cc.mojom.MojoCompositorFrameSinkClient compositor_frame_sink_client); | 31 cc.mojom.MojoCompositorFrameSinkClient compositor_frame_sink_client); |
| 32 |
| 33 CreateOffscreenCompositorFrameSink( |
| 34 cc.mojom.FrameSinkId frame_sink_id, |
| 35 cc.mojom.MojoCompositorFrameSink& compositor_frame_sink, |
| 36 cc.mojom.MojoCompositorFrameSinkPrivate& compositor_frame_sink_private, |
| 37 cc.mojom.MojoCompositorFrameSinkClient compositor_frame_sink_client); |
32 }; | 38 }; |
33 | 39 |
34 // The DisplayCompositorClient interface is implemented by the Display | 40 // The DisplayCompositorClient interface is implemented by the Display |
35 // Compositor Host, a stable, and privileged peer service to the display | 41 // Compositor Host, a stable, and privileged peer service to the display |
36 // compositor. The display compositor host is either the browser process in | 42 // compositor. The display compositor host is either the browser process in |
37 // Chrome or the window server process. | 43 // Chrome or the window server process. |
38 interface DisplayCompositorClient { | 44 interface DisplayCompositorClient { |
39 // Called by the display compostor when it is created. Provides the top level | 45 // Called by the display compostor when it is created. Provides the top level |
40 // root surface id that should reference display roots. This will always be | 46 // root surface id that should reference display roots. This will always be |
41 // the first message sent. | 47 // the first message sent. |
42 OnDisplayCompositorCreated(cc.mojom.SurfaceId root_surface_id); | 48 OnDisplayCompositorCreated(cc.mojom.SurfaceId root_surface_id); |
43 | 49 |
44 // Called by the display compositor immediately upon receiving a | 50 // Called by the display compositor immediately upon receiving a |
45 // CompositorFrame with a new SurfaceId for the first time. | 51 // CompositorFrame with a new SurfaceId for the first time. |
46 OnSurfaceCreated(cc.mojom.SurfaceId surface_id, | 52 OnSurfaceCreated(cc.mojom.SurfaceId surface_id, |
47 gfx.mojom.Size frame_size, | 53 gfx.mojom.Size frame_size, |
48 float device_scale_factor); | 54 float device_scale_factor); |
49 }; | 55 }; |
OLD | NEW |