|  | // 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/command_buffer.mojom"; | 
|  | import "gpu/interfaces/viewport_parameter_listener.mojom"; | 
|  |  | 
|  | // A ContextProvider can be used to provide new command buffers related to a | 
|  | // particular context, for instance configured to draw to a particular display. | 
|  | interface ContextProvider { | 
|  | // This initializes a new command buffer for this provider when available, | 
|  | // closing connections to the previously created command buffer (if any). | 
|  | // | 
|  | // This call may not return for an extended period of time if a command | 
|  | // buffer cannot be produced immediately, for example if it is associated | 
|  | // with a view that is offscreen. | 
|  | // | 
|  | // If a viewport_parameter_listener is provided it will notified be when | 
|  | // vsync parameters change for this context. | 
|  | // | 
|  | // The returned handle will be null if no command buffer can be created for | 
|  | // this request, for example if another request is made on the same provider | 
|  | // before a previous call returns. | 
|  | Create(ViewportParameterListener? viewport_parameter_listener) | 
|  | => (CommandBuffer? gles2_client); | 
|  | }; |