| Index: cc/CCLayerTreeHostImpl.cpp
|
| diff --git a/cc/CCLayerTreeHostImpl.cpp b/cc/CCLayerTreeHostImpl.cpp
|
| index 8abbd1ad49fdcc8883d6add2b7d8f8cf9531dc65..d1171b5631a8292d894daa7ba2326d3a54a19495 100644
|
| --- a/cc/CCLayerTreeHostImpl.cpp
|
| +++ b/cc/CCLayerTreeHostImpl.cpp
|
| @@ -22,6 +22,7 @@
|
| #include "CCPrioritizedTextureManager.h"
|
| #include "CCRenderPassDrawQuad.h"
|
| #include "CCRendererGL.h"
|
| +#include "CCRendererSoftware.h"
|
| #include "CCRenderingStats.h"
|
| #include "CCScrollbarAnimationController.h"
|
| #include "CCScrollbarLayerImpl.h"
|
| @@ -679,18 +680,16 @@ bool CCLayerTreeHostImpl::initializeRenderer(PassOwnPtr<CCGraphicsContext> conte
|
| if (!context->bindToClient(this))
|
| return false;
|
|
|
| - WebKit::WebGraphicsContext3D* context3d = context->context3D();
|
| -
|
| - if (!context3d) {
|
| - // FIXME: Implement this path for software compositing.
|
| - return false;
|
| - }
|
| -
|
| OwnPtr<CCGraphicsContext> contextRef(context);
|
| OwnPtr<CCResourceProvider> resourceProvider = CCResourceProvider::create(contextRef.get());
|
| - OwnPtr<CCRendererGL> renderer;
|
| - if (resourceProvider.get())
|
| - renderer = CCRendererGL::create(this, resourceProvider.get(), textureUploader);
|
| +
|
| + OwnPtr<CCRenderer> renderer;
|
| + if (resourceProvider.get()) {
|
| + if (contextRef->context3D())
|
| + renderer = CCRendererGL::create(this, resourceProvider.get(), textureUploader);
|
| + else if (contextRef->surfaceSoftware())
|
| + renderer = CCRendererSoftware::create(this, resourceProvider.get(), contextRef->surfaceSoftware());
|
| + }
|
|
|
| // Since we now have a new context/renderer, we cannot continue to use the old
|
| // resources (i.e. renderSurfaces and texture IDs).
|
|
|