Index: o3d/gpu_plugin/gpu_processor.h |
=================================================================== |
--- o3d/gpu_plugin/gpu_processor.h (revision 26879) |
+++ o3d/gpu_plugin/gpu_processor.h (working copy) |
@@ -5,34 +5,71 @@ |
#ifndef O3D_GPU_PLUGIN_GPU_PROCESSOR_H_ |
#define O3D_GPU_PLUGIN_GPU_PROCESSOR_H_ |
-#include "base/ref_counted.h" |
+#include "o3d/command_buffer/service/cross/cmd_buffer_engine.h" |
+#include "o3d/command_buffer/service/cross/cmd_parser.h" |
+#include "o3d/command_buffer/service/cross/gapi_decoder.h" |
#include "o3d/gpu_plugin/command_buffer.h" |
#include "o3d/gpu_plugin/np_utils/np_object_pointer.h" |
+#if defined(OS_WIN) |
+#include "o3d/command_buffer/service/win/d3d9/gapi_d3d9.h" |
+#endif |
+ |
namespace o3d { |
namespace gpu_plugin { |
// This class processes commands in a command buffer. It is event driven and |
// posts tasks to the current message loop to do additional work. |
-class GPUProcessor : public base::RefCountedThreadSafe<GPUProcessor> { |
+class GPUProcessor : public base::RefCountedThreadSafe<GPUProcessor>, |
+ public command_buffer::CommandBufferUpcallInterface { |
public: |
- explicit GPUProcessor(const NPObjectPointer<CommandBuffer>& command_buffer); |
+ GPUProcessor(NPP npp, |
+ const NPObjectPointer<CommandBuffer>& command_buffer); |
+#if defined(OS_WIN) |
+ // This constructor is for unit tests. |
+ GPUProcessor(NPP npp, |
+ const NPObjectPointer<CommandBuffer>& command_buffer, |
+ command_buffer::GAPID3D9* gapi, |
+ command_buffer::GAPIDecoder* decoder, |
+ command_buffer::CommandParser* parser, |
+ int commands_per_update); |
+ |
+ bool Initialize(HWND hwnd); |
+#endif // OS_WIN |
+ |
+ void Destroy(); |
+ |
void ProcessCommands(); |
#if defined(OS_WIN) |
void SetWindow(HWND handle, int width, int height); |
#endif |
- void DrawRectangle(uint32 color, int left, int top, int right, int bottom); |
+ // Implementation of CommandBufferUpcallInterface. |
+ // Gets the base address of a registered shared memory buffer. |
+ // Parameters: |
+ // shm_id: the identifier for the shared memory buffer. |
+ virtual void *GetSharedMemoryAddress(unsigned int shm_id); |
+ |
+ // Gets the size of a registered shared memory buffer. |
+ // Parameters: |
+ // shm_id: the identifier for the shared memory buffer. |
+ virtual size_t GetSharedMemorySize(unsigned int shm_id); |
+ |
+ // Sets the token value. |
+ virtual void set_token(unsigned int token); |
+ |
private: |
+ NPP npp_; |
NPObjectPointer<CommandBuffer> command_buffer_; |
+ int commands_per_update_; |
#if defined(OS_WIN) |
- HWND window_handle_; |
- int window_width_; |
- int window_height_; |
+ scoped_ptr<command_buffer::GAPID3D9> gapi_; |
+ scoped_ptr<command_buffer::GAPIDecoder> decoder_; |
+ scoped_ptr<command_buffer::CommandParser> parser_; |
#endif |
}; |