| Index: cc/output/delegating_renderer.cc
|
| diff --git a/cc/output/delegating_renderer.cc b/cc/output/delegating_renderer.cc
|
| index bd1c5d1174de77e540dd66fcaae5cb2f7ac63504..be8ab031e9771f25f5af1def4f38b1dc6591d04f 100644
|
| --- a/cc/output/delegating_renderer.cc
|
| +++ b/cc/output/delegating_renderer.cc
|
| @@ -58,13 +58,14 @@ bool DelegatingRenderer::Initialize() {
|
| capabilities_.allow_partial_texture_updates = false;
|
| capabilities_.using_offscreen_context3d = false;
|
|
|
| - WebGraphicsContext3D* context3d = resource_provider_->GraphicsContext3D();
|
| -
|
| - if (!context3d) {
|
| - // Software compositing.
|
| + if (!output_surface_->context_provider()) {
|
| + // TODO(danakj): Make software compositing work.
|
| return true;
|
| }
|
|
|
| + WebGraphicsContext3D* context3d =
|
| + output_surface_->context_provider()->Context3d();
|
| +
|
| if (!context3d->makeContextCurrent())
|
| return false;
|
|
|
| @@ -171,10 +172,11 @@ void DelegatingRenderer::ReceiveSwapBuffersAck(
|
| }
|
|
|
| bool DelegatingRenderer::IsContextLost() {
|
| - WebGraphicsContext3D* context3d = resource_provider_->GraphicsContext3D();
|
| - if (!context3d)
|
| + ContextProvider* context_provider = output_surface_->context_provider();
|
| + if (!context_provider)
|
| return false;
|
| - return context3d->getGraphicsResetStatusARB() != GL_NO_ERROR;
|
| + return context_provider->Context3d()->getGraphicsResetStatusARB() !=
|
| + GL_NO_ERROR;
|
| }
|
|
|
| void DelegatingRenderer::SetVisible(bool visible) {
|
| @@ -182,27 +184,27 @@ void DelegatingRenderer::SetVisible(bool visible) {
|
| return;
|
|
|
| visible_ = visible;
|
| - WebGraphicsContext3D* context = resource_provider_->GraphicsContext3D();
|
| + ContextProvider* context_provider = output_surface_->context_provider();
|
| if (!visible_) {
|
| TRACE_EVENT0("cc", "DelegatingRenderer::SetVisible dropping resources");
|
| resource_provider_->ReleaseCachedData();
|
| - if (context)
|
| - context->flush();
|
| + if (context_provider)
|
| + context_provider->Context3d()->flush();
|
| }
|
| if (capabilities_.using_set_visibility) {
|
| // We loop visibility to the GPU process, since that's what manages memory.
|
| // That will allow it to feed us with memory allocations that we can act
|
| // upon.
|
| - DCHECK(context);
|
| - context->setVisibilityCHROMIUM(visible);
|
| + DCHECK(context_provider);
|
| + context_provider->Context3d()->setVisibilityCHROMIUM(visible);
|
| }
|
| }
|
|
|
| void DelegatingRenderer::SendManagedMemoryStats(size_t bytes_visible,
|
| size_t bytes_visible_and_nearby,
|
| size_t bytes_allocated) {
|
| - WebGraphicsContext3D* context = resource_provider_->GraphicsContext3D();
|
| - if (!context) {
|
| + ContextProvider* context_provider = output_surface_->context_provider();
|
| + if (!context_provider) {
|
| // TODO(piman): software path.
|
| NOTIMPLEMENTED();
|
| return;
|
| @@ -212,7 +214,7 @@ void DelegatingRenderer::SendManagedMemoryStats(size_t bytes_visible,
|
| stats.bytesVisibleAndNearby = bytes_visible_and_nearby;
|
| stats.bytesAllocated = bytes_allocated;
|
| stats.backbufferRequested = false;
|
| - context->sendManagedMemoryStatsCHROMIUM(&stats);
|
| + context_provider->Context3d()->sendManagedMemoryStatsCHROMIUM(&stats);
|
| }
|
|
|
| void DelegatingRenderer::SetDiscardBackBufferWhenNotVisible(bool discard) {
|
|
|