1 // Copyright (c) 2010 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.
5 #ifndef GPU_PGL_COMMAND_BUFFER_PEPPER_H
6 #define GPU_PGL_COMMAND_BUFFER_PEPPER_H
8 #include "gpu/command_buffer/common/command_buffer.h"
9 #include "third_party/npapi/bindings/npapi.h"
10 #include "third_party/npapi/bindings/npruntime.h"
11 #include "third_party/npapi/bindings/npapi_extensions.h"
12 #ifdef __native_client__
13 #include "native_client/src/third_party/npapi/files/include/npupp.h"
15 #include "webkit/glue/plugins/nphostapi.h"
16 #endif // __native_client__
18 // A CommandBuffer proxy implementation that uses the Pepper API to access
19 // the command buffer.
21 class CommandBufferPepper
: public gpu::CommandBuffer
{
23 CommandBufferPepper(NPP npp
,
25 NPDeviceContext3D
* device_context
);
26 virtual ~CommandBufferPepper();
28 // CommandBuffer implementation.
29 virtual bool Initialize(int32 size
);
30 virtual gpu::Buffer
GetRingBuffer();
31 virtual State
GetState();
32 virtual State
Flush(int32 put_offset
);
33 virtual void SetGetOffset(int32 get_offset
);
34 virtual int32
CreateTransferBuffer(size_t size
);
35 virtual void DestroyTransferBuffer(int32 id
);
36 virtual gpu::Buffer
GetTransferBuffer(int32 handle
);
37 virtual void SetToken(int32 token
);
38 virtual void SetParseError(gpu::error::Error error
);
41 CommandBuffer::State
ConvertState();
45 NPDeviceContext3D
* context_
;
48 #endif // GPU_PGL_COMMAND_BUFFER_PEPPER_H