OLD | NEW |
| (Empty) |
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. | |
4 | |
5 module mojo; | |
6 | |
7 import "gpu/public/interfaces/gpu_capabilities.mojom"; | |
8 | |
9 struct CommandBufferState { | |
10 int32 num_entries; | |
11 int32 get_offset; | |
12 int32 put_offset; | |
13 int32 token; | |
14 int32 error; // TODO(piman): enum | |
15 int32 context_lost_reason; // TODO(piman): enum | |
16 uint32 generation; | |
17 }; | |
18 | |
19 interface CommandBufferSyncClient { | |
20 DidInitialize(bool success, GpuCapabilities capabilities); | |
21 DidMakeProgress(CommandBufferState state); | |
22 }; | |
23 | |
24 interface CommandBufferSyncPointClient { | |
25 DidInsertSyncPoint(uint32 sync_point); | |
26 }; | |
27 | |
28 [Client=CommandBufferClient] | |
29 interface CommandBuffer { | |
30 Initialize(CommandBufferSyncClient sync_client, | |
31 CommandBufferSyncPointClient sync_point_client, | |
32 handle<shared_buffer> shared_state); | |
33 SetGetBuffer(int32 buffer); | |
34 Flush(int32 put_offset); | |
35 MakeProgress(int32 last_get_offset); | |
36 RegisterTransferBuffer( | |
37 int32 id, handle<shared_buffer> transfer_buffer, uint32 size); | |
38 DestroyTransferBuffer(int32 id); | |
39 | |
40 // InsertSyncPoint returns the sync point returned via DidInsertSyncPoint. | |
41 // If |retire| is true, the sync point is retired on insertion. Otherwise, | |
42 // explicitly call RetireSyncPoint to retire it. | |
43 InsertSyncPoint(bool retire); | |
44 RetireSyncPoint(uint32 sync_point); | |
45 Echo() => (); | |
46 | |
47 // TODO(piman): sync points | |
48 }; | |
49 | |
50 interface CommandBufferClient { | |
51 DidDestroy(); | |
52 LostContext(int32 lost_reason); // TODO(piman): enum | |
53 }; | |
OLD | NEW |