summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Fedor Kudasov <kudasov@google.com> 2019-07-04 09:41:13 +0100
committer Fedor Kudasov <kudasov@google.com> 2019-07-04 08:44:26 +0000
commit09cfce089d7539c2d727d2cd563471ef39eb163a (patch)
tree57ff0f868701f24954af4f5f011ea77157c46f37
parent8958bbac1cc8c17235c1e7d490c251c28da0a923 (diff)
Enable simplified version of RootRenderNode for host
Bug: 117921091 Test: all tests should pass Change-Id: Iae6e5f37eb11cdcffe29336ce2eda6ab6897385c
-rw-r--r--libs/hwui/Android.bp2
-rw-r--r--libs/hwui/Animator.cpp2
-rw-r--r--libs/hwui/RootRenderNode.cpp20
-rw-r--r--libs/hwui/RootRenderNode.h2
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