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

Side by Side Diff: content/renderer/pepper/pepper_plugin_delegate_impl.cc

Issue 12673002: pepper: Use the RenderThread's shared context as the parent context. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: null context3d in swiftshader Created 7 years, 9 months 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/pepper/pepper_plugin_delegate_impl.h" 5 #include "content/renderer/pepper/pepper_plugin_delegate_impl.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 #include <cstddef> 8 #include <cstddef>
9 #include <map> 9 #include <map>
10 #include <queue> 10 #include <queue>
(...skipping 814 matching lines...) Expand 10 before | Expand all | Expand 10 after
825 825
826 webkit::ppapi::PluginDelegate::PlatformContext3D* 826 webkit::ppapi::PluginDelegate::PlatformContext3D*
827 PepperPluginDelegateImpl::CreateContext3D() { 827 PepperPluginDelegateImpl::CreateContext3D() {
828 #ifdef ENABLE_GPU 828 #ifdef ENABLE_GPU
829 // If accelerated compositing of plugins is disabled, fail to create a 3D 829 // If accelerated compositing of plugins is disabled, fail to create a 3D
830 // context, because it won't be visible. This allows graceful fallback in the 830 // context, because it won't be visible. This allows graceful fallback in the
831 // modules. 831 // modules.
832 const webkit_glue::WebPreferences& prefs = render_view_->webkit_preferences(); 832 const webkit_glue::WebPreferences& prefs = render_view_->webkit_preferences();
833 if (!prefs.accelerated_compositing_for_plugins_enabled) 833 if (!prefs.accelerated_compositing_for_plugins_enabled)
834 return NULL; 834 return NULL;
835 return new PlatformContext3DImpl(this); 835 return new PlatformContext3DImpl;
836 #else 836 #else
837 return NULL; 837 return NULL;
838 #endif 838 #endif
839 } 839 }
840 840
841 void PepperPluginDelegateImpl::ReparentContext( 841 void PepperPluginDelegateImpl::ReparentContext(
842 webkit::ppapi::PluginDelegate::PlatformContext3D* context) { 842 webkit::ppapi::PluginDelegate::PlatformContext3D* context) {
843 static_cast<PlatformContext3DImpl*>(context)->SetParentContext(this); 843 static_cast<PlatformContext3DImpl*>(context)->
844 SetParentAndCreateBackingTextureIfNeeded();
844 } 845 }
845 846
846 webkit::ppapi::PluginDelegate::PlatformVideoCapture* 847 webkit::ppapi::PluginDelegate::PlatformVideoCapture*
847 PepperPluginDelegateImpl::CreateVideoCapture( 848 PepperPluginDelegateImpl::CreateVideoCapture(
848 const std::string& device_id, 849 const std::string& device_id,
849 PlatformVideoCaptureEventHandler* handler) { 850 PlatformVideoCaptureEventHandler* handler) {
850 return new PepperPlatformVideoCaptureImpl(AsWeakPtr(), device_id, handler); 851 return new PepperPlatformVideoCaptureImpl(AsWeakPtr(), device_id, handler);
851 } 852 }
852 853
853 webkit::ppapi::PluginDelegate::PlatformVideoDecoder* 854 webkit::ppapi::PluginDelegate::PlatformVideoDecoder*
(...skipping 712 matching lines...) Expand 10 before | Expand all | Expand 10 after
1566 0); 1567 0);
1567 default: 1568 default:
1568 NOTREACHED(); 1569 NOTREACHED();
1569 return 0; 1570 return 0;
1570 } 1571 }
1571 #else 1572 #else
1572 return 0; 1573 return 0;
1573 #endif 1574 #endif
1574 } 1575 }
1575 1576
1576 WebGraphicsContext3DCommandBufferImpl*
1577 PepperPluginDelegateImpl::GetParentContextForPlatformContext3D() {
1578 if (!offscreen_context3d_ || offscreen_context3d_->DestroyedOnMainThread()) {
1579 offscreen_context3d_ =
1580 RenderThreadImpl::current()->OffscreenContextProviderForMainThread();
1581
1582 if (!offscreen_context3d_->InitializeOnMainThread() ||
1583 !offscreen_context3d_->BindToCurrentThread()) {
1584 offscreen_context3d_ = NULL;
1585 return NULL;
1586 }
1587 }
1588 return offscreen_context3d_->Context3d();
1589 }
1590
1591 MouseLockDispatcher::LockTarget* 1577 MouseLockDispatcher::LockTarget*
1592 PepperPluginDelegateImpl::GetOrCreateLockTargetAdapter( 1578 PepperPluginDelegateImpl::GetOrCreateLockTargetAdapter(
1593 webkit::ppapi::PluginInstance* instance) { 1579 webkit::ppapi::PluginInstance* instance) {
1594 MouseLockDispatcher::LockTarget* target = mouse_lock_instances_[instance]; 1580 MouseLockDispatcher::LockTarget* target = mouse_lock_instances_[instance];
1595 if (target) 1581 if (target)
1596 return target; 1582 return target;
1597 1583
1598 return mouse_lock_instances_[instance] = 1584 return mouse_lock_instances_[instance] =
1599 new PluginInstanceLockTarget(instance); 1585 new PluginInstanceLockTarget(instance);
1600 } 1586 }
(...skipping 15 matching lines...) Expand all
1616 RenderWidgetFullscreenPepper* container = 1602 RenderWidgetFullscreenPepper* container =
1617 static_cast<RenderWidgetFullscreenPepper*>( 1603 static_cast<RenderWidgetFullscreenPepper*>(
1618 instance->fullscreen_container()); 1604 instance->fullscreen_container());
1619 return container->mouse_lock_dispatcher(); 1605 return container->mouse_lock_dispatcher();
1620 } else { 1606 } else {
1621 return render_view_->mouse_lock_dispatcher(); 1607 return render_view_->mouse_lock_dispatcher();
1622 } 1608 }
1623 } 1609 }
1624 1610
1625 } // namespace content 1611 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/pepper/pepper_plugin_delegate_impl.h ('k') | content/renderer/render_widget_fullscreen_pepper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698