summaryrefslogtreecommitdiffstats
path: root/o3d/gpu_plugin/gpu_plugin_object.h
diff options
context:
space:
mode:
authorapatrick@google.com <apatrick@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-02 00:55:39 +0000
committerapatrick@google.com <apatrick@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-02 00:55:39 +0000
commit261e60d51c33dfa14a225203bb7cfe0dc0ec88a2 (patch)
tree059a0de9dda5abaa70a74e79e1a7c5542e14c48b /o3d/gpu_plugin/gpu_plugin_object.h
parent2408380ce8f8b90dd577a0403958bb292aec0d68 (diff)
downloadchromium_src-261e60d51c33dfa14a225203bb7cfe0dc0ec88a2.zip
chromium_src-261e60d51c33dfa14a225203bb7cfe0dc0ec88a2.tar.gz
chromium_src-261e60d51c33dfa14a225203bb7cfe0dc0ec88a2.tar.bz2
GPU plugin object can create a command buffer via a V8 extension in Chromium and return it via NPAPI.
Introduced NPBrowser class to abstract functions provided by browser to plugin, including Chromium extensions. NPBrowser is stubbed for tests. TEST=none BUG=none Review URL: http://codereview.chromium.org/177060 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25135 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'o3d/gpu_plugin/gpu_plugin_object.h')
-rw-r--r--o3d/gpu_plugin/gpu_plugin_object.h26
1 files changed, 20 insertions, 6 deletions
diff --git a/o3d/gpu_plugin/gpu_plugin_object.h b/o3d/gpu_plugin/gpu_plugin_object.h
index d3c6576..d939982 100644
--- a/o3d/gpu_plugin/gpu_plugin_object.h
+++ b/o3d/gpu_plugin/gpu_plugin_object.h
@@ -5,11 +5,17 @@
#ifndef O3D_GPU_PLUGIN_GPU_PLUGIN_OBJECT_H_
#define O3D_GPU_PLUGIN_GPU_PLUGIN_OBJECT_H_
+#include <string>
+
#include "o3d/gpu_plugin/np_utils/dispatched_np_object.h"
-#include "o3d/gpu_plugin/plugin_object.h"
+#include "o3d/gpu_plugin/np_utils/np_dispatcher.h"
+#include "o3d/gpu_plugin/np_utils/np_plugin_object.h"
+#include "o3d/gpu_plugin/np_utils/np_utils.h"
#include "third_party/npapi/bindings/npapi.h"
#include "third_party/npapi/bindings/npruntime.h"
+struct NaClDesc;
+
namespace o3d {
namespace gpu_plugin {
@@ -18,10 +24,7 @@ class GPUPluginObject : public DispatchedNPObject, public PluginObject {
public:
static const NPUTF8 kPluginType[];
- explicit GPUPluginObject(NPP npp)
- : DispatchedNPObject(npp),
- status_(CREATED) {
- }
+ explicit GPUPluginObject(NPP npp);
virtual NPError New(NPMIMEType plugin_type,
int16 argc,
@@ -36,7 +39,16 @@ class GPUPluginObject : public DispatchedNPObject, public PluginObject {
virtual NPError Destroy(NPSavedData** saved);
- virtual NPObject* GetScriptableInstance();
+ virtual void Release();
+
+ virtual NPObject* GetScriptableNPObject();
+
+ NPObjectPointer<NPObject> OpenCommandBuffer();
+
+ protected:
+ NP_UTILS_BEGIN_DISPATCHER_CHAIN(GPUPluginObject, DispatchedNPObject)
+ NP_UTILS_DISPATCHER(OpenCommandBuffer, NPObjectPointer<NPObject>())
+ NP_UTILS_END_DISPATCHER_CHAIN
private:
NPError PlatformSpecificSetWindow(NPWindow* new_window);
@@ -49,6 +61,8 @@ class GPUPluginObject : public DispatchedNPObject, public PluginObject {
Status status_;
NPWindow window_;
+ NPObjectPointer<NPObject> command_buffer_object_;
+ NPSharedMemory* shared_memory_;
};
} // namespace gpu_plugin