Index: cc/resources/video_resource_updater.cc |
diff --git a/cc/resources/video_resource_updater.cc b/cc/resources/video_resource_updater.cc |
index 4239e989e567ca6ef889a3c3ed27236981acb1a0..33682eb70a2f10b3ddde82aac06eff09c476f0b2 100644 |
--- a/cc/resources/video_resource_updater.cc |
+++ b/cc/resources/video_resource_updater.cc |
@@ -10,6 +10,7 @@ |
#include "gpu/GLES2/gl2extchromium.h" |
#include "media/base/video_frame.h" |
#include "media/filters/skcanvas_video_renderer.h" |
+#include "third_party/WebKit/public/platform/WebGraphicsContext3D.h" |
#include "third_party/khronos/GLES2/gl2.h" |
#include "third_party/khronos/GLES2/gl2ext.h" |
#include "ui/gfx/size_conversions.h" |
@@ -23,8 +24,10 @@ VideoFrameExternalResources::VideoFrameExternalResources() : type(NONE) {} |
VideoFrameExternalResources::~VideoFrameExternalResources() {} |
-VideoResourceUpdater::VideoResourceUpdater(ResourceProvider* resource_provider) |
- : resource_provider_(resource_provider) { |
+VideoResourceUpdater::VideoResourceUpdater(ContextProvider* context_provider, |
+ ResourceProvider* resource_provider) |
+ : context_provider_(context_provider), |
+ resource_provider_(resource_provider) { |
} |
VideoResourceUpdater::~VideoResourceUpdater() { |
@@ -138,7 +141,7 @@ VideoFrameExternalResources VideoResourceUpdater::CreateForSoftwarePlanes( |
input_frame_format != media::VideoFrame::YV16) |
return VideoFrameExternalResources(); |
- bool software_compositor = !resource_provider_->GraphicsContext3D(); |
+ bool software_compositor = context_provider_ == NULL; |
GLenum output_resource_format = kYUVResourceFormat; |
size_t output_plane_count = |
@@ -197,9 +200,10 @@ VideoFrameExternalResources VideoResourceUpdater::CreateForSoftwarePlanes( |
DCHECK(mailbox.IsZero()); |
if (!software_compositor) { |
+ DCHECK(context_provider_); |
+ |
WebKit::WebGraphicsContext3D* context = |
- resource_provider_->GraphicsContext3D(); |
- DCHECK(context); |
+ context_provider_->Context3d(); |
GLC(context, context->genMailboxCHROMIUM(mailbox.name)); |
if (mailbox.IsZero()) { |
@@ -330,9 +334,7 @@ VideoFrameExternalResources VideoResourceUpdater::CreateForHardwarePlanes( |
if (frame_format != media::VideoFrame::NATIVE_TEXTURE) |
return VideoFrameExternalResources(); |
- WebKit::WebGraphicsContext3D* context = |
- resource_provider_->GraphicsContext3D(); |
- if (!context) |
+ if (!context_provider_) |
return VideoFrameExternalResources(); |
VideoFrameExternalResources external_resources; |
@@ -377,10 +379,11 @@ void VideoResourceUpdater::RecycleResource( |
return; |
} |
- WebKit::WebGraphicsContext3D* context = |
- updater->resource_provider_->GraphicsContext3D(); |
- if (context && sync_point) |
- GLC(context, context->waitSyncPoint(sync_point)); |
+ ContextProvider* context_provider = updater->context_provider_; |
+ if (context_provider && sync_point) { |
+ GLC(context_provider->Context3d(), |
+ context_provider->Context3d()->waitSyncPoint(sync_point)); |
+ } |
if (lost_resource) { |
updater->DeleteResource(data.resource_id); |