blob: 88950e5ea1e55e060fcbdaccb890b51f36518468 [file] [log] [blame]
// 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.
[DartPackage="mojo_services"]
module mojo;
import "gpu/public/interfaces/command_buffer.mojom";
import "gpu/public/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);
};