Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2449)

Unified Diff: cc/CCLayerTreeHostImpl.cpp

Issue 10918258: Add CC software renderer. (Closed) Base URL: http://git.chromium.org/chromium/src.git@gladapter
Patch Set: Change to OutputDevice API and remove "using namespace WebKit" Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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).
« no previous file with comments | « cc/CCDirectRenderer.cpp ('k') | cc/CCRendererGL.h » ('j') | cc/CCRendererSoftware.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698