| 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/local_surface_id.mojom"; | 8 import "cc/ipc/local_surface_id.mojom"; |
| 9 import "cc/ipc/mojo_compositor_frame_sink.mojom"; | 9 import "cc/ipc/mojo_compositor_frame_sink.mojom"; |
| 10 import "cc/ipc/surface_id.mojom"; | 10 import "cc/ipc/surface_id.mojom"; |
| (...skipping 22 matching lines...) Expand all Loading... |
| 33 // MojoCompositorFrameSink interface, and implement a | 33 // MojoCompositorFrameSink interface, and implement a |
| 34 // MojoCompositorFrameSinkClient interface. The display compositor host | 34 // MojoCompositorFrameSinkClient interface. The display compositor host |
| 35 // holds one or more root CompositorFrameSinks that are tied to a valid | 35 // holds one or more root CompositorFrameSinks that are tied to a valid |
| 36 // |surface_handle|. All other CompositorFrameSinks are offscreen. FrameSinkIds | 36 // |surface_handle|. All other CompositorFrameSinks are offscreen. FrameSinkIds |
| 37 // are fixed for a given client and are determined ahead of time. Thus, a client | 37 // are fixed for a given client and are determined ahead of time. Thus, a client |
| 38 // will typically simply request a CompositorFrameSink from the display | 38 // will typically simply request a CompositorFrameSink from the display |
| 39 // compositor host which will forward the request to the display compositor. | 39 // compositor host which will forward the request to the display compositor. |
| 40 interface DisplayCompositor { | 40 interface DisplayCompositor { |
| 41 // Create a CompositorFrameSink for a privileged client (e.g. WindowServer). | 41 // Create a CompositorFrameSink for a privileged client (e.g. WindowServer). |
| 42 // This is only used by privileged clients. The client can call methods that | 42 // This is only used by privileged clients. The client can call methods that |
| 43 // talks to the cc::Display (e.g. ResizeDisplay(), SetDisplayVisible(), etc) | 43 // talks to the Display (e.g. ResizeDisplay(), SetDisplayVisible(), etc) |
| 44 CreateDisplayCompositorFrameSink( | 44 CreateRootCompositorFrameSink( |
| 45 cc.mojom.FrameSinkId frame_sink_id, | 45 cc.mojom.FrameSinkId frame_sink_id, |
| 46 gpu.mojom.SurfaceHandle widget, | 46 gpu.mojom.SurfaceHandle widget, |
| 47 associated cc.mojom.MojoCompositorFrameSink& compositor_frame_sink, | 47 associated cc.mojom.MojoCompositorFrameSink& compositor_frame_sink, |
| 48 cc.mojom.MojoCompositorFrameSinkPrivate& compositor_frame_sink_private, | 48 cc.mojom.MojoCompositorFrameSinkPrivate& compositor_frame_sink_private, |
| 49 cc.mojom.MojoCompositorFrameSinkClient compositor_frame_sink_client, | 49 cc.mojom.MojoCompositorFrameSinkClient compositor_frame_sink_client, |
| 50 associated DisplayPrivate& display_private); | 50 associated DisplayPrivate& display_private); |
| 51 | 51 |
| 52 // CreateOffscreenCompositorFrameSink is used by unprivileged clients. | 52 // CreateCompositorFrameSink is used by unprivileged clients. |
| 53 // An off screen CompositorFrameSink only submits frames to a buffer instead | 53 // This CompositorFrameSink is not a root, and has to be parented by another |
| 54 // of a display. | 54 // CompositorFrameSink in order to appear on screen. |
| 55 CreateOffscreenCompositorFrameSink( | 55 CreateCompositorFrameSink( |
| 56 cc.mojom.FrameSinkId frame_sink_id, | 56 cc.mojom.FrameSinkId frame_sink_id, |
| 57 cc.mojom.MojoCompositorFrameSink& compositor_frame_sink, | 57 cc.mojom.MojoCompositorFrameSink& compositor_frame_sink, |
| 58 cc.mojom.MojoCompositorFrameSinkPrivate& compositor_frame_sink_private, | 58 cc.mojom.MojoCompositorFrameSinkPrivate& compositor_frame_sink_private, |
| 59 cc.mojom.MojoCompositorFrameSinkClient compositor_frame_sink_client); | 59 cc.mojom.MojoCompositorFrameSinkClient compositor_frame_sink_client); |
| 60 }; | 60 }; |
| 61 | 61 |
| 62 // The DisplayCompositorClient interface is implemented by the Display | 62 // The DisplayCompositorClient interface is implemented by the Display |
| 63 // Compositor Host, a stable, and privileged peer service to the display | 63 // Compositor Host, a stable, and privileged peer service to the display |
| 64 // compositor. The display compositor host is either the browser process in | 64 // compositor. The display compositor host is either the browser process in |
| 65 // Chrome or the window server process. | 65 // Chrome or the window server process. |
| 66 interface DisplayCompositorClient { | 66 interface DisplayCompositorClient { |
| 67 // Called by the display compositor immediately upon receiving a | 67 // Called by the display compositor immediately upon receiving a |
| 68 // CompositorFrame with a new SurfaceId for the first time. | 68 // CompositorFrame with a new SurfaceId for the first time. |
| 69 OnSurfaceCreated(SurfaceInfo surface_info); | 69 OnSurfaceCreated(SurfaceInfo surface_info); |
| 70 }; | 70 }; |
| OLD | NEW |