diff options
author | Chris Craik <ccraik@google.com> | 2015-11-02 21:16:37 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-11-02 21:16:37 +0000 |
commit | 2359d85e31c8f17b82869fb35ebca50b8dd428bd (patch) | |
tree | 586f8b98d5e4b940fc3474e4e4b0c85529c050ec /libs/hwui/renderthread/CanvasContext.cpp | |
parent | 02a5a6bb9ba05bdf7517de90ede49fb535ea06ca (diff) | |
parent | 0b7e8245db728d127ada698be63d78b33fc6e4da (diff) |
Merge "Initial HW layer support in new reorderer/renderer"
Diffstat (limited to 'libs/hwui/renderthread/CanvasContext.cpp')
-rw-r--r-- | libs/hwui/renderthread/CanvasContext.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp index c1f667024784..b6fecb45a8ad 100644 --- a/libs/hwui/renderthread/CanvasContext.cpp +++ b/libs/hwui/renderthread/CanvasContext.cpp @@ -20,6 +20,7 @@ #include "Caches.h" #include "DeferredLayerUpdater.h" #include "EglManager.h" +#include "LayerUpdateQueue.h" #include "LayerRenderer.h" #include "OpenGLRenderer.h" #include "Properties.h" @@ -198,7 +199,11 @@ void CanvasContext::prepareTree(TreeInfo& info, int64_t* uiFrameInfo, mCurrentFrameInfo->markSyncStart(); info.damageAccumulator = &mDamageAccumulator; +#if HWUI_NEW_OPS + info.layerUpdateQueue = &mLayerUpdateQueue; +#else info.renderer = mCanvas; +#endif mAnimationContext->startFrame(info.mode); for (const sp<RenderNode>& node : mRenderNodes) { @@ -333,7 +338,8 @@ void CanvasContext::draw() { mEglManager.damageFrame(frame, dirty); #if HWUI_NEW_OPS - OpReorderer reorderer(dirty, frame.width(), frame.height(), mRenderNodes); + OpReorderer reorderer(mLayerUpdateQueue, dirty, frame.width(), frame.height(), mRenderNodes); + mLayerUpdateQueue.clear(); BakedOpRenderer renderer(Caches::getInstance(), mRenderThread.renderState(), mOpaque); // TODO: profiler().draw(mCanvas); reorderer.replayBakedOps<BakedOpDispatcher>(renderer); @@ -555,7 +561,11 @@ void CanvasContext::buildLayer(RenderNode* node) { TreeInfo info(TreeInfo::MODE_FULL, *this); info.damageAccumulator = &mDamageAccumulator; +#if HWUI_NEW_OPS + info.layerUpdateQueue = &mLayerUpdateQueue; +#else info.renderer = mCanvas; +#endif info.runAnimations = false; node->prepareTree(info); SkRect ignore; |