Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4356)

Unified Diff: chrome/renderer/webplugin_delegate_pepper.h

Issue 367002: Added Pepper 3D render context that instantiates the GPU plugin.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/renderer/render_view.cc ('k') | chrome/renderer/webplugin_delegate_pepper.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/renderer/webplugin_delegate_pepper.h
===================================================================
--- chrome/renderer/webplugin_delegate_pepper.h (revision 35153)
+++ chrome/renderer/webplugin_delegate_pepper.h (working copy)
@@ -18,7 +18,10 @@
#include "base/ref_counted.h"
#include "base/scoped_ptr.h"
#include "base/task.h"
+#include "base/weak_ptr.h"
#include "chrome/common/transport_dib.h"
+#include "chrome/renderer/render_view.h"
+#include "chrome/renderer/command_buffer_proxy.h"
#include "skia/ext/platform_canvas.h"
#include "third_party/npapi/bindings/npapi.h"
#include "third_party/npapi/bindings/npapi_extensions.h"
@@ -32,17 +35,12 @@
// An implementation of WebPluginDelegate for Pepper in-process plugins.
class WebPluginDelegatePepper : public webkit_glue::WebPluginDelegate {
public:
- static WebPluginDelegatePepper* Create(const FilePath& filename,
- const std::string& mime_type, gfx::PluginWindowHandle containing_view);
+ static WebPluginDelegatePepper* Create(
+ const FilePath& filename,
+ const std::string& mime_type,
+ const base::WeakPtr<RenderView>& render_view,
+ gfx::PluginWindowHandle containing_view);
- static bool IsPluginDelegateWindow(gfx::NativeWindow window);
- static bool GetPluginNameFromWindow(gfx::NativeWindow window,
- std::wstring *plugin_name);
-
- // Returns true if the window handle passed in is that of the dummy
- // activation window for windowless plugins.
- static bool IsDummyActivationWindow(gfx::NativeWindow window);
-
// WebPluginDelegate implementation
virtual bool Initialize(const GURL& url,
const std::vector<std::string>& arg_names,
@@ -118,9 +116,16 @@
NPDeviceFlushContextCallbackPtr callback,
void* user_data);
virtual NPError Device3DDestroyContext(NPDeviceContext3D* context);
+ virtual NPError Device3DCreateBuffer(NPDeviceContext3D* context,
+ size_t size,
+ int32* id);
+ virtual NPError Device3DDestroyBuffer(NPDeviceContext3D* context,
+ int32 id);
+ virtual NPError Device3DMapBuffer(NPDeviceContext3D* context,
+ int32 id,
+ NPDeviceBuffer* buffer);
// End of WebPluginDelegate implementation.
- bool IsWindowless() const { return true; }
gfx::Rect GetRect() const { return window_rect_; }
gfx::Rect GetClipRect() const { return clip_rect_; }
@@ -128,8 +133,10 @@
FilePath GetPluginPath();
private:
- WebPluginDelegatePepper(gfx::PluginWindowHandle containing_view,
- NPAPI::PluginInstance *instance);
+ WebPluginDelegatePepper(
+ const base::WeakPtr<RenderView>& render_view,
+ gfx::PluginWindowHandle containing_view,
+ NPAPI::PluginInstance *instance);
~WebPluginDelegatePepper();
// Tells the plugin about the current state of the window.
@@ -144,6 +151,8 @@
// Closes down and destroys our plugin instance.
void DestroyInstance();
+ base::WeakPtr<RenderView> render_view_;
+
webkit_glue::WebPlugin* plugin_;
scoped_refptr<NPAPI::PluginInstance> instance_;
@@ -176,6 +185,12 @@
// The url with which the plugin was instantiated.
std::string plugin_url_;
+ // The nested GPU plugin and its command buffer proxy.
+ WebPluginDelegateProxy* nested_delegate_;
+#if defined(ENABLE_GPU)
+ scoped_ptr<CommandBufferProxy> command_buffer_;
+#endif
+
DISALLOW_COPY_AND_ASSIGN(WebPluginDelegatePepper);
};
« no previous file with comments | « chrome/renderer/render_view.cc ('k') | chrome/renderer/webplugin_delegate_pepper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698