Add RT-enabled reveal animator
Bug: 16161431
Also re-writes RevealAnimator to avoid using any listeners internally,
removing the logic around shadowing the update listeners.
Change-Id: I6ed8126398eed971a87f20bccb7584c9acafbb6c
diff --git a/libs/hwui/Animator.h b/libs/hwui/Animator.h
index 0dda23f..9a080a7 100644
--- a/libs/hwui/Animator.h
+++ b/libs/hwui/Animator.h
@@ -51,7 +51,7 @@
mListener = listener;
}
ANDROID_API void start() { mStagingPlayState = RUNNING; onStagingPlayStateChanged(); }
- ANDROID_API void cancel() { mStagingPlayState = FINISHED; onStagingPlayStateChanged(); }
+ ANDROID_API void end() { mStagingPlayState = FINISHED; onStagingPlayStateChanged(); }
void attach(RenderNode* target);
virtual void onAttached() {}
@@ -169,6 +169,19 @@
PaintField mField;
};
+class RevealAnimator : public BaseRenderNodeAnimator {
+public:
+ ANDROID_API RevealAnimator(int centerX, int centerY, bool inverseClip,
+ float startValue, float finalValue);
+protected:
+ virtual float getValue(RenderNode* target) const;
+ virtual void setValue(RenderNode* target, float value);
+
+private:
+ int mCenterX, mCenterY;
+ bool mInverseClip;
+};
+
} /* namespace uirenderer */
} /* namespace android */