// Copyright 2015 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 mojo;

import "gpu/interfaces/context_provider.mojom";
import "gpu/interfaces/viewport_parameter_listener.mojom";
import "surfaces/interfaces/surfaces.mojom";

interface Display {
  // Submits a new frame to the display to be drawn when possible. The callback
  // will be run after the frame has been issued to the display but possibly
  // before the frame is actually visible.
  //
  // The Display will be resized to the size of the last entry in |frame|'s
  // |passes| list (aka the root pass).
  //
  // Any resources submitted in the frame will be returned via the
  // ResourceReturner associated with the Display at construction time.
  SubmitFrame(Frame frame) => ();
};

// DisplayFactory creates new Display instances.
[ServiceName="mojo::DisplayFactory"]
interface DisplayFactory {
  // Create associates a Display that will draw to contexts produced by
  // |context_provider|. Any resources submitted to the display will be
  // returned via the |returner|, if supplied.
  Create(ContextProvider context_provider,
         ResourceReturner? returner,
         Display& display_request);
};
