|  | // 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/public/interfaces/context_provider.mojom"; | 
|  | import "gpu/public/interfaces/viewport_parameter_listener.mojom"; | 
|  | import "surfaces/public/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. | 
|  | 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); | 
|  | }; | 
|  |  |