| // Copyright 2016 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. |
| |
| module mus.gpu.mojom; |
| |
| import "components/mus/public/interfaces/gpu/display_compositor.mojom"; |
| |
| // This is a privileged API to be used only by the Mus Window Server. |
| // There is one Display per accelerated widget. This corresponds to a physical |
| // display on Chrome OS, and a window on other Chrome platforms. |
| interface Display { |
| // Each client (process) has a unique |client_id| and implements the |
| // DisplayClient interface. |
| CreateClient(uint32 client_id, DisplayClient& client); |
| }; |
| |
| interface DisplayHost { |
| // TODO(fsamuel): OnBeginFrame needs to take a BeginFrameArgs instance per |
| // cc/output/begin_frame_args.h. |
| OnBeginFrame(); |
| }; |
| |
| // This is a privileged API to be used only by the Mus Window Server. |
| // There should be only one DisplayCompositor connection. |
| interface DisplayCompositor { |
| CreateDisplay(int32 accelerated_widget, |
| Display& display, |
| DisplayHost display_host, |
| CompositorFrameSink& sink, |
| CompositorFrameSinkClient client); |
| }; |