| Index: content/renderer/gpu/compositor_output_surface.cc
|
| diff --git a/content/renderer/gpu/compositor_output_surface.cc b/content/renderer/gpu/compositor_output_surface.cc
|
| index 1f1257ebd612ddc75dc02560bf43563d461d3f62..41da0d2a3568298fd1a6c0c73f97dccf0bea3d77 100644
|
| --- a/content/renderer/gpu/compositor_output_surface.cc
|
| +++ b/content/renderer/gpu/compositor_output_surface.cc
|
| @@ -13,6 +13,7 @@
|
| #include "third_party/WebKit/Source/Platform/chromium/public/WebGraphicsContext3D.h"
|
|
|
| using WebKit::WebGraphicsContext3D;
|
| +using WebKit::WebCompositorOutputCanvas2D;
|
|
|
| //------------------------------------------------------------------------------
|
|
|
| @@ -28,12 +29,14 @@ IPC::ForwardingMessageFilter* CompositorOutputSurface::CreateFilter(
|
|
|
| CompositorOutputSurface::CompositorOutputSurface(
|
| int32 routing_id,
|
| - WebGraphicsContext3D* context3D)
|
| + WebGraphicsContext3D* context3D,
|
| + WebCompositorOutputCanvas2D* canvas2D)
|
| : output_surface_filter_(
|
| RenderThreadImpl::current()->compositor_output_surface_filter())
|
| , client_(NULL)
|
| , routing_id_(routing_id)
|
| - , context3D_(context3D) {
|
| + , context3D_(context3D)
|
| + , canvas2D_(canvas2D) {
|
| DCHECK(output_surface_filter_);
|
| capabilities_.hasParentCompositor = false;
|
| DetachFromThread();
|
| @@ -56,8 +59,10 @@ bool CompositorOutputSurface::bindToClient(
|
| WebKit::WebCompositorOutputSurfaceClient* client) {
|
| DCHECK(CalledOnValidThread());
|
| DCHECK(!client_);
|
| - if (!context3D_->makeContextCurrent())
|
| - return false;
|
| + if (context3D_.get()) {
|
| + if (!context3D_->makeContextCurrent())
|
| + return false;
|
| + }
|
|
|
| client_ = client;
|
|
|
| @@ -74,6 +79,10 @@ WebGraphicsContext3D* CompositorOutputSurface::context3D() const {
|
| return context3D_.get();
|
| }
|
|
|
| +WebCompositorOutputCanvas2D* CompositorOutputSurface::canvas2D() {
|
| + return canvas2D_.get();
|
| +}
|
| +
|
| void CompositorOutputSurface::sendFrameToParentCompositor(
|
| const WebKit::WebCompositorFrame&) {
|
| DCHECK(CalledOnValidThread());
|
|
|