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