| 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"; | 
|  | 8 import "cc/ipc/mojo_compositor_frame_sink.mojom"; | 
| 7 import "cc/ipc/surface_id.mojom"; | 9 import "cc/ipc/surface_id.mojom"; | 
|  | 10 import "cc/ipc/surface_sequence.mojom"; | 
|  | 11 import "gpu/ipc/common/surface_handle.mojom"; | 
| 8 import "ui/gfx/geometry/mojo/geometry.mojom"; | 12 import "ui/gfx/geometry/mojo/geometry.mojom"; | 
| 9 | 13 | 
|  | 14 // The DisplayCompositor interface is a privileged interface that allows | 
|  | 15 // the display compositor host (browser or window server) to create | 
|  | 16 // CompositorFrameSinks. Clients acquire a CompositorFrameSink connection | 
|  | 17 // through the display compositor host. Clients request a | 
|  | 18 // MojoCompositorFrameSink interface, and implement a | 
|  | 19 // MojoCompositorFrameSinkClient interface. The display compositor host | 
|  | 20 // holds one or more root CompositorFrameSinks that are tied to a valid | 
|  | 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 | 
|  | 23 // will typically simply request a CompositorFrameSink from the display | 
|  | 24 // compositor host which will forward the request to the display compositor. | 
|  | 25 interface DisplayCompositor { | 
|  | 26   CreateCompositorFrameSink( | 
|  | 27       cc.mojom.FrameSinkId frame_sink_id, | 
|  | 28       gpu.mojom.SurfaceHandle widget, | 
|  | 29       cc.mojom.MojoCompositorFrameSink& compositor_frame_sink, | 
|  | 30       cc.mojom.MojoCompositorFrameSinkPrivate& compositor_frame_sink_private, | 
|  | 31       cc.mojom.MojoCompositorFrameSinkClient compositor_frame_sink_client); | 
|  | 32 | 
|  | 33   // TODO(fsamuel): This surface reference API is temporary. Surface references | 
|  | 34   // should be bundled with CompositorFrames. | 
|  | 35   AddRootSurfaceReference(cc.mojom.SurfaceId child_id); | 
|  | 36   AddSurfaceReference(cc.mojom.SurfaceId parent_id, | 
|  | 37                       cc.mojom.SurfaceId child_id); | 
|  | 38   RemoveRootSurfaceReference(cc.mojom.SurfaceId child_id); | 
|  | 39   RemoveSurfaceReference(cc.mojom.SurfaceId parent_id, | 
|  | 40                          cc.mojom.SurfaceId child_id); | 
|  | 41 }; | 
|  | 42 | 
| 10 // The DisplayCompositorClient interface is implemented by the Display | 43 // The DisplayCompositorClient interface is implemented by the Display | 
| 11 // Compositor Host, a stable, and privileged peer service to the display | 44 // Compositor Host, a stable, and privileged peer service to the display | 
| 12 // compositor. The display compositor host is either the browser process in | 45 // compositor. The display compositor host is either the browser process in | 
| 13 // Chrome or the window server process. | 46 // Chrome or the window server process. | 
| 14 interface DisplayCompositorClient { | 47 interface DisplayCompositorClient { | 
| 15   // Called by the display compositor immediately upon receiving a | 48   // Called by the display compositor immediately upon receiving a | 
| 16   // CompositorFrame with a new SurfaceId for the first time. | 49   // CompositorFrame with a new SurfaceId for the first time. | 
| 17   OnSurfaceCreated(cc.mojom.SurfaceId surface_id, | 50   OnSurfaceCreated(cc.mojom.SurfaceId surface_id, | 
| 18                    gfx.mojom.Size frame_size, | 51                    gfx.mojom.Size frame_size, | 
| 19                    float device_scale_factor); | 52                    float device_scale_factor); | 
| 20 }; | 53 }; | 
| OLD | NEW | 
|---|