summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/webplugin_delegate_proxy.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/renderer/webplugin_delegate_proxy.cc')
-rw-r--r--chrome/renderer/webplugin_delegate_proxy.cc31
1 files changed, 31 insertions, 0 deletions
diff --git a/chrome/renderer/webplugin_delegate_proxy.cc b/chrome/renderer/webplugin_delegate_proxy.cc
index 6554c74..bc65843 100644
--- a/chrome/renderer/webplugin_delegate_proxy.cc
+++ b/chrome/renderer/webplugin_delegate_proxy.cc
@@ -1450,6 +1450,37 @@ bool WebPluginDelegateProxy::BindFakePluginWindowHandle(bool opaque) {
}
#endif
+CommandBufferProxy* WebPluginDelegateProxy::CreateCommandBuffer() {
+#if defined(ENABLE_GPU)
+#if defined(OS_MACOSX)
+ if (!BindFakePluginWindowHandle(true))
+ return NULL;
+#endif
+ int command_buffer_id;
+ if (!Send(new PluginMsg_CreateCommandBuffer(instance_id_,
+ &command_buffer_id))) {
+ return NULL;
+ }
+
+ CommandBufferProxy* command_buffer =
+ new CommandBufferProxy(channel_host_, command_buffer_id);
+ channel_host_->AddRoute(command_buffer_id, command_buffer, NULL);
+ return command_buffer;
+#else
+ return NULL;
+#endif // ENABLE_GPU
+}
+
+void WebPluginDelegateProxy::DestroyCommandBuffer(
+ CommandBufferProxy* command_buffer) {
+ DCHECK(command_buffer);
+#if defined(ENABLE_GPU)
+ Send(new PluginMsg_DestroyCommandBuffer(instance_id_));
+ channel_host_->RemoveRoute(command_buffer->route_id());
+ delete command_buffer;
+#endif
+}
+
gfx::PluginWindowHandle WebPluginDelegateProxy::GetPluginWindowHandle() {
return window_;
}