1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
7 import "components/view_manager/public/interfaces/gpu_capabilities.mojom";
8 import "ui/mojo/geometry/geometry.mojom";
10 struct CommandBufferState {
15 int32 error; // TODO(piman): enum
16 int32 context_lost_reason; // TODO(piman): enum
20 interface CommandBufferSyncClient {
21 // |capabilities| is null if |success| is false.
22 DidInitialize(bool success, GpuCapabilities? capabilities);
23 DidMakeProgress(CommandBufferState state);
26 interface CommandBufferSyncPointClient {
27 DidInsertSyncPoint(uint32 sync_point);
30 interface CommandBufferLostContextObserver {
31 DidLoseContext(int32 context_lost_reason);
34 interface CommandBuffer {
35 // Initialize attempts to initialize the command buffer. Success or failure
36 // will be communicated via the CommandBufferSyncClient DidInitialize() call.
37 // If the context is lost after creation the LostContext method on the
38 // CommandBufferLostContextObserver's will be called then this pipe will be
40 Initialize(CommandBufferSyncClient sync_client,
41 CommandBufferSyncPointClient sync_point_client,
42 CommandBufferLostContextObserver lost_observer,
43 handle<shared_buffer> shared_state);
44 SetGetBuffer(int32 buffer);
45 Flush(int32 put_offset);
46 MakeProgress(int32 last_get_offset);
47 RegisterTransferBuffer(
48 int32 id, handle<shared_buffer> transfer_buffer, uint32 size);
49 DestroyTransferBuffer(int32 id);
51 // InsertSyncPoint returns the sync point returned via DidInsertSyncPoint.
52 // If |retire| is true, the sync point is retired on insertion. Otherwise,
53 // explicitly call RetireSyncPoint to retire it.
54 InsertSyncPoint(bool retire);
55 RetireSyncPoint(uint32 sync_point);
63 int32 internal_format);
64 DestroyImage(int32 id);