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

Unified Diff: cc/CCLayerTreeHostImpl.cpp

Issue 10918258: Add CC software renderer. (Closed) Base URL: http://git.chromium.org/chromium/src.git@gladapter
Patch Set: Fix license headers 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
« no previous file with comments | « cc/CCDirectRenderer.cpp ('k') | cc/CCRendererGL.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/CCLayerTreeHostImpl.cpp
diff --git a/cc/CCLayerTreeHostImpl.cpp b/cc/CCLayerTreeHostImpl.cpp
index 4cb3db08867154a57d08c65425e882a2cf3ae22c..326117d8c15ed4ac79237b8d69804034bf87a716 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"
@@ -714,18 +715,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());
+
+ OwnPtr<CCRenderer> renderer;
+ if (resourceProvider.get()) {
+ if (contextRef->context3D())
+ renderer = CCRendererGL::create(this, resourceProvider.get());
+ else if (contextRef->softwareDevice())
+ renderer = CCRendererSoftware::create(this, resourceProvider.get(), contextRef->softwareDevice());
+ }
// 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') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698