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). |