diff options
author | jbauman@chromium.org <jbauman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-10 07:33:27 +0000 |
---|---|---|
committer | jbauman@chromium.org <jbauman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-10 07:33:27 +0000 |
commit | 2541d1ac91e59dc5eb26addb44e9d9496e10f9f7 (patch) | |
tree | 307abbdb543b9d89050c2382e56c0cdee3fca383 /content | |
parent | 43d9663e465af59f73efed267228a909d1832fc4 (diff) | |
download | chromium_src-2541d1ac91e59dc5eb26addb44e9d9496e10f9f7.zip chromium_src-2541d1ac91e59dc5eb26addb44e9d9496e10f9f7.tar.gz chromium_src-2541d1ac91e59dc5eb26addb44e9d9496e10f9f7.tar.bz2 |
Allow WebExternalTextureLayers to receive a bitmap along with a mailbox
When using the software renderer, texture layers can't be drawn from directly. Instead allow the WebExternalTextureLayer to request a bitmap that will be used to draw.
BUG=151713
Review URL: https://chromiumcodereview.appspot.com/17859002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@210773 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
3 files changed, 11 insertions, 2 deletions
diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc index 2d50108..33c0958 100644 --- a/content/browser/renderer_host/render_widget_host_view_android.cc +++ b/content/browser/renderer_host/render_widget_host_view_android.cc @@ -1088,7 +1088,8 @@ WebKit::WebGraphicsContext3D* RenderWidgetHostViewAndroid::Context3d() { } bool RenderWidgetHostViewAndroid::PrepareTextureMailbox( - cc::TextureMailbox* mailbox) { + cc::TextureMailbox* mailbox, + bool use_shared_memory) { return false; } diff --git a/content/browser/renderer_host/render_widget_host_view_android.h b/content/browser/renderer_host/render_widget_host_view_android.h index 51df8ed..c3ecbeb 100644 --- a/content/browser/renderer_host/render_widget_host_view_android.h +++ b/content/browser/renderer_host/render_widget_host_view_android.h @@ -179,7 +179,8 @@ class RenderWidgetHostViewAndroid // cc::TextureLayerClient implementation. virtual unsigned PrepareTexture(cc::ResourceUpdateQueue* queue) OVERRIDE; virtual WebKit::WebGraphicsContext3D* Context3d() OVERRIDE; - virtual bool PrepareTextureMailbox(cc::TextureMailbox* mailbox) OVERRIDE; + virtual bool PrepareTextureMailbox(cc::TextureMailbox* mailbox, + bool use_shared_memory) OVERRIDE; // cc::DelegatedRendererLayerClient implementation. virtual void DidCommitFrameData() OVERRIDE; diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc index 617902b..fdc6a8b 100644 --- a/content/renderer/render_thread_impl.cc +++ b/content/renderer/render_thread_impl.cc @@ -106,6 +106,7 @@ #include "webkit/glue/webkit_glue.h" #include "webkit/child/worker_task_runner.h" #include "webkit/renderer/appcache/appcache_frontend_impl.h" +#include "webkit/renderer/compositor_bindings/web_external_bitmap_impl.h" #if defined(OS_WIN) #include <windows.h> @@ -217,6 +218,10 @@ void AddHistogramSample(void* hist, int sample) { histogram->Add(sample); } +scoped_ptr<base::SharedMemory> AllocateSharedMemoryFunction(size_t size) { + return RenderThreadImpl::Get()->HostAllocateSharedMemoryBuffer(size); +} + } // namespace class RenderThreadImpl::GpuVDAContextLostCallback @@ -731,6 +736,8 @@ void RenderThreadImpl::EnsureWebKitInitialized() { if (GetContentClient()->renderer()->RunIdleHandlerWhenWidgetsHidden()) ScheduleIdleHandler(kLongIdleHandlerDelayMs); + + webkit::SetSharedMemoryAllocationFunction(AllocateSharedMemoryFunction); } void RenderThreadImpl::RegisterSchemes() { |