diff options
author | 2019-07-04 09:41:13 +0100 | |
---|---|---|
committer | 2019-07-04 08:44:26 +0000 | |
commit | 09cfce089d7539c2d727d2cd563471ef39eb163a (patch) | |
tree | 57ff0f868701f24954af4f5f011ea77157c46f37 | |
parent | 8958bbac1cc8c17235c1e7d490c251c28da0a923 (diff) |
Enable simplified version of RootRenderNode for host
Bug: 117921091
Test: all tests should pass
Change-Id: Iae6e5f37eb11cdcffe29336ce2eda6ab6897385c
-rw-r--r-- | libs/hwui/Android.bp | 2 | ||||
-rw-r--r-- | libs/hwui/Animator.cpp | 2 | ||||
-rw-r--r-- | libs/hwui/RootRenderNode.cpp | 20 | ||||
-rw-r--r-- | libs/hwui/RootRenderNode.h | 2 |
4 files changed, 23 insertions, 3 deletions
diff --git a/libs/hwui/Android.bp b/libs/hwui/Android.bp index bf948b135728..0d837f2c7fed 100644 --- a/libs/hwui/Android.bp +++ b/libs/hwui/Android.bp @@ -195,6 +195,7 @@ cc_defaults { "RecordingCanvas.cpp", "RenderNode.cpp", "RenderProperties.cpp", + "RootRenderNode.cpp", "SkiaCanvas.cpp", "VectorDrawable.cpp", ], @@ -250,7 +251,6 @@ cc_defaults { "ProfileData.cpp", "ProfileDataContainer.cpp", "Readback.cpp", - "RootRenderNode.cpp", "TreeInfo.cpp", "WebViewFunctorManager.cpp", "protos/graphicsstats.proto", diff --git a/libs/hwui/Animator.cpp b/libs/hwui/Animator.cpp index 93b9decd9cbc..74cf1fda1b75 100644 --- a/libs/hwui/Animator.cpp +++ b/libs/hwui/Animator.cpp @@ -155,11 +155,9 @@ void BaseRenderNodeAnimator::pushStaging(AnimationContext& context) { RenderNode* oldTarget = mTarget; mTarget = mStagingTarget; mStagingTarget = nullptr; -#ifdef __ANDROID__ // Layoutlib does not support RenderNode if (oldTarget && oldTarget != mTarget) { oldTarget->onAnimatorTargetChanged(this); } -#endif } if (!mHasStartValue) { diff --git a/libs/hwui/RootRenderNode.cpp b/libs/hwui/RootRenderNode.cpp index 24801928121b..ddbbf58b3071 100644 --- a/libs/hwui/RootRenderNode.cpp +++ b/libs/hwui/RootRenderNode.cpp @@ -16,10 +16,13 @@ #include "RootRenderNode.h" +#ifdef __ANDROID__ // Layoutlib does not support Looper (windows) #include <utils/Looper.h> +#endif namespace android::uirenderer { +#ifdef __ANDROID__ // Layoutlib does not support Looper class FinishAndInvokeListener : public MessageHandler { public: explicit FinishAndInvokeListener(PropertyValuesAnimatorSet* anim) : mAnimator(anim) { @@ -282,5 +285,22 @@ private: AnimationContext* ContextFactoryImpl::createAnimationContext(renderthread::TimeLord& clock) { return new AnimationContextBridge(clock, mRootNode); } +#else + +void RootRenderNode::prepareTree(TreeInfo& info) { + info.errorHandler = mErrorHandler.get(); + info.updateWindowPositions = true; + RenderNode::prepareTree(info); + info.updateWindowPositions = false; + info.errorHandler = nullptr; +} + +void RootRenderNode::attachAnimatingNode(RenderNode* animatingNode) { } + +void RootRenderNode::destroy() { } + +void RootRenderNode::addVectorDrawableAnimator(PropertyValuesAnimatorSet* anim) { } + +#endif } // namespace android::uirenderer diff --git a/libs/hwui/RootRenderNode.h b/libs/hwui/RootRenderNode.h index 5c830e08ef68..12de4ecac94b 100644 --- a/libs/hwui/RootRenderNode.h +++ b/libs/hwui/RootRenderNode.h @@ -74,6 +74,7 @@ private: void detachVectorDrawableAnimator(PropertyValuesAnimatorSet* anim); }; +#ifdef __ANDROID__ // Layoutlib does not support Animations class ANDROID_API ContextFactoryImpl : public IContextFactory { public: ANDROID_API explicit ContextFactoryImpl(RootRenderNode* rootNode) : mRootNode(rootNode) {} @@ -84,5 +85,6 @@ public: private: RootRenderNode* mRootNode; }; +#endif } // namespace android::uirenderer |