Home | History | Annotate | Download | only in service
      1 // Copyright (c) 2011 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 // This file defines the CommandBufferEngine class, providing the main loop for
      6 // the service, exposing the RPC API, managing the command parser.
      7 
      8 #ifndef GPU_COMMAND_BUFFER_SERVICE_CMD_BUFFER_ENGINE_H_
      9 #define GPU_COMMAND_BUFFER_SERVICE_CMD_BUFFER_ENGINE_H_
     10 
     11 #include "base/basictypes.h"
     12 #include "gpu/command_buffer/common/buffer.h"
     13 
     14 namespace gpu {
     15 
     16 class CommandBufferEngine {
     17  public:
     18   CommandBufferEngine() {
     19   }
     20 
     21   virtual ~CommandBufferEngine() {
     22   }
     23 
     24   // Gets the base address and size of a registered shared memory buffer.
     25   // Parameters:
     26   //   shm_id: the identifier for the shared memory buffer.
     27   virtual scoped_refptr<gpu::Buffer> GetSharedMemoryBuffer(int32 shm_id) = 0;
     28 
     29   // Sets the token value.
     30   virtual void set_token(int32 token) = 0;
     31 
     32   // Sets the shared memory buffer used for commands.
     33   virtual bool SetGetBuffer(int32 transfer_buffer_id) = 0;
     34 
     35   // Sets the "get" pointer. Return false if offset is out of range.
     36   virtual bool SetGetOffset(int32 offset) = 0;
     37 
     38   // Gets the "get" pointer.
     39   virtual int32 GetGetOffset() = 0;
     40 
     41  private:
     42   DISALLOW_COPY_AND_ASSIGN(CommandBufferEngine);
     43 };
     44 
     45 }  // namespace gpu
     46 
     47 #endif  // GPU_COMMAND_BUFFER_SERVICE_CMD_BUFFER_ENGINE_H_
     48