blob: 3c7b6d402f2eef15f59164c82ae599cebd7702f7 [file] [log] [blame]
// 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);
};