Chromium Code Reviews| Index: cc/CCLayerTreeHostImpl.cpp |
| diff --git a/cc/CCLayerTreeHostImpl.cpp b/cc/CCLayerTreeHostImpl.cpp |
| index 8abbd1ad49fdcc8883d6add2b7d8f8cf9531dc65..1bab722fb2667d8e6f677413876682e0838e00db 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->softwareDevice()) |
| + renderer = CCRendererSoftware::create(this, resourceProvider.get(), contextRef->softwareDevice()); |
|
danakj
2012/09/19 18:35:14
Should there be an else { ASSERT_NOT_REACHED(); }
aelias_OOO_until_Jul13
2012/09/19 19:58:27
The release() will not crash given a NULL pointer.
danakj
2012/09/19 20:06:18
ah ok! right it didn't worry about else before eit
|
| + } |
| // Since we now have a new context/renderer, we cannot continue to use the old |
| // resources (i.e. renderSurfaces and texture IDs). |