• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
5module mojo {
6
7struct CommandBufferState {
8  int32 num_entries;
9  int32 get_offset;
10  int32 put_offset;
11  int32 token;
12  int32 error;  // TODO(piman): enum
13  int32 context_lost_reason;  // TODO(piman): enum
14  uint32 generation;
15};
16
17interface CommandBufferSyncClient {
18  DidInitialize(bool success);
19  DidMakeProgress(CommandBufferState state);
20};
21
22[Client=CommandBufferClient]
23interface CommandBuffer {
24  Initialize(CommandBufferSyncClient sync_client,
25             handle<shared_buffer> shared_state);
26  SetGetBuffer(int32 buffer);
27  Flush(int32 put_offset);
28  MakeProgress(int32 last_get_offset);
29  RegisterTransferBuffer(
30      int32 id, handle<shared_buffer> transfer_buffer, uint32 size);
31  DestroyTransferBuffer(int32 id);
32  Echo() => ();
33
34  // TODO(piman): move to somewhere else (native_viewport?).
35  RequestAnimationFrames();
36  CancelAnimationFrames();
37
38  // TODO(piman): sync points
39};
40
41interface CommandBufferClient {
42  DidDestroy();
43  LostContext(int32 lost_reason);  // TODO(piman): enum
44
45  // TODO(piman): move to somewhere else (native_viewport?).
46  DrawAnimationFrame();
47};
48
49}
50