Loading core/java/android/view/RenderNode.java +0 −19 Original line number Original line Diff line number Diff line Loading @@ -21,9 +21,6 @@ import android.graphics.Matrix; import android.graphics.Outline; import android.graphics.Outline; import android.graphics.Paint; import android.graphics.Paint; import java.util.ArrayList; import java.util.List; /** /** * <p>A display list records a series of graphics related operations and can replay * <p>A display list records a series of graphics related operations and can replay * them later. Display lists are usually built by recording operations on a * them later. Display lists are usually built by recording operations on a Loading Loading @@ -180,12 +177,6 @@ public class RenderNode { private boolean mValid; private boolean mValid; private final long mNativeRenderNode; private final long mNativeRenderNode; // We need to keep a strong reference to all running animators to ensure that // they can call removeAnimator when they have finished, as the native-side // object can only hold a WeakReference<> to avoid leaking memory due to // cyclic references. private List<RenderNodeAnimator> mActiveAnimators; private RenderNode(String name) { private RenderNode(String name) { mNativeRenderNode = nCreate(name); mNativeRenderNode = nCreate(name); } } Loading Loading @@ -866,18 +857,9 @@ public class RenderNode { /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// public void addAnimator(RenderNodeAnimator animator) { public void addAnimator(RenderNodeAnimator animator) { if (mActiveAnimators == null) { mActiveAnimators = new ArrayList<RenderNodeAnimator>(); } mActiveAnimators.add(animator); nAddAnimator(mNativeRenderNode, animator.getNativeAnimator()); nAddAnimator(mNativeRenderNode, animator.getNativeAnimator()); } } public void removeAnimator(RenderNodeAnimator animator) { nRemoveAnimator(mNativeRenderNode, animator.getNativeAnimator()); mActiveAnimators.remove(animator); } /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// // Native methods // Native methods /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// Loading Loading @@ -960,7 +942,6 @@ public class RenderNode { /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// private static native void nAddAnimator(long renderNode, long animatorPtr); private static native void nAddAnimator(long renderNode, long animatorPtr); private static native void nRemoveAnimator(long renderNode, long animatorPtr); /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// // Finalization // Finalization Loading core/java/android/view/RenderNodeAnimator.java +17 −11 Original line number Original line Diff line number Diff line Loading @@ -172,7 +172,8 @@ public final class RenderNodeAnimator extends Animator { @Override @Override public void cancel() { public void cancel() { mTarget.removeAnimator(this); if (!mFinished) { nCancel(mNativePtr.get()); final ArrayList<AnimatorListener> listeners = getListeners(); final ArrayList<AnimatorListener> listeners = getListeners(); final int numListeners = listeners == null ? 0 : listeners.size(); final int numListeners = listeners == null ? 0 : listeners.size(); Loading @@ -180,6 +181,7 @@ public final class RenderNodeAnimator extends Animator { listeners.get(i).onAnimationCancel(this); listeners.get(i).onAnimationCancel(this); } } } } } @Override @Override public void end() { public void end() { Loading Loading @@ -219,10 +221,6 @@ public final class RenderNodeAnimator extends Animator { return mTarget; return mTarget; } } /** * WARNING: May only be called once!!! * TODO: Fix above -_- */ public void setStartValue(float startValue) { public void setStartValue(float startValue) { checkMutable(); checkMutable(); nSetStartValue(mNativePtr.get(), startValue); nSetStartValue(mNativePtr.get(), startValue); Loading @@ -231,6 +229,9 @@ public final class RenderNodeAnimator extends Animator { @Override @Override public void setStartDelay(long startDelay) { public void setStartDelay(long startDelay) { checkMutable(); checkMutable(); if (startDelay < 0) { throw new IllegalArgumentException("startDelay must be positive; " + startDelay); } nSetStartDelay(mNativePtr.get(), startDelay); nSetStartDelay(mNativePtr.get(), startDelay); } } Loading @@ -242,6 +243,9 @@ public final class RenderNodeAnimator extends Animator { @Override @Override public RenderNodeAnimator setDuration(long duration) { public RenderNodeAnimator setDuration(long duration) { checkMutable(); checkMutable(); if (duration < 0) { throw new IllegalArgumentException("duration must be positive; " + duration); } nSetDuration(mNativePtr.get(), duration); nSetDuration(mNativePtr.get(), duration); return this; return this; } } Loading Loading @@ -269,7 +273,6 @@ public final class RenderNodeAnimator extends Animator { private void onFinished() { private void onFinished() { mFinished = true; mFinished = true; mTarget.removeAnimator(this); final ArrayList<AnimatorListener> listeners = getListeners(); final ArrayList<AnimatorListener> listeners = getListeners(); final int numListeners = listeners == null ? 0 : listeners.size(); final int numListeners = listeners == null ? 0 : listeners.size(); Loading @@ -296,10 +299,13 @@ public final class RenderNodeAnimator extends Animator { long canvasProperty, float finalValue); long canvasProperty, float finalValue); private static native long nCreateCanvasPropertyPaintAnimator(WeakReference<RenderNodeAnimator> weakThis, private static native long nCreateCanvasPropertyPaintAnimator(WeakReference<RenderNodeAnimator> weakThis, long canvasProperty, int paintField, float finalValue); long canvasProperty, int paintField, float finalValue); private static native void nSetStartValue(long nativePtr, float startValue); private static native void nSetStartValue(long nativePtr, float startValue); private static native void nSetDuration(long nativePtr, long duration); private static native void nSetDuration(long nativePtr, long duration); private static native long nGetDuration(long nativePtr); private static native long nGetDuration(long nativePtr); private static native void nSetStartDelay(long nativePtr, long startDelay); private static native void nSetStartDelay(long nativePtr, long startDelay); private static native long nGetStartDelay(long nativePtr); private static native long nGetStartDelay(long nativePtr); private static native void nSetInterpolator(long animPtr, long interpolatorPtr); private static native void nSetInterpolator(long animPtr, long interpolatorPtr); private static native void nCancel(long animPtr); } } core/jni/android_view_RenderNode.cpp +1 −9 Original line number Original line Diff line number Diff line Loading @@ -456,16 +456,9 @@ static void android_view_RenderNode_addAnimator(JNIEnv* env, jobject clazz, RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr); RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr); RenderPropertyAnimator* animator = reinterpret_cast<RenderPropertyAnimator*>(animatorPtr); RenderPropertyAnimator* animator = reinterpret_cast<RenderPropertyAnimator*>(animatorPtr); renderNode->addAnimator(animator); renderNode->addAnimator(animator); animator->start(); } } static void android_view_RenderNode_removeAnimator(JNIEnv* env, jobject clazz, jlong renderNodePtr, jlong animatorPtr) { RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr); RenderPropertyAnimator* animator = reinterpret_cast<RenderPropertyAnimator*>(animatorPtr); renderNode->removeAnimator(animator); } #endif // USE_OPENGL_RENDERER #endif // USE_OPENGL_RENDERER // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- Loading Loading @@ -546,7 +539,6 @@ static JNINativeMethod gMethods[] = { { "nGetPivotY", "(J)F", (void*) android_view_RenderNode_getPivotY }, { "nGetPivotY", "(J)F", (void*) android_view_RenderNode_getPivotY }, { "nAddAnimator", "(JJ)V", (void*) android_view_RenderNode_addAnimator }, { "nAddAnimator", "(JJ)V", (void*) android_view_RenderNode_addAnimator }, { "nRemoveAnimator", "(JJ)V", (void*) android_view_RenderNode_removeAnimator }, #endif #endif }; }; Loading core/jni/android_view_RenderNodeAnimator.cpp +6 −0 Original line number Original line Diff line number Diff line Loading @@ -149,6 +149,11 @@ static void setInterpolator(JNIEnv* env, jobject clazz, jlong animatorPtr, jlong animator->setInterpolator(interpolator); animator->setInterpolator(interpolator); } } static void cancel(JNIEnv* env, jobject clazz, jlong animatorPtr) { BaseRenderNodeAnimator* animator = reinterpret_cast<BaseRenderNodeAnimator*>(animatorPtr); animator->cancel(); } #endif #endif // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- Loading @@ -168,6 +173,7 @@ static JNINativeMethod gMethods[] = { { "nSetStartDelay", "(JJ)V", (void*) setStartDelay }, { "nSetStartDelay", "(JJ)V", (void*) setStartDelay }, { "nGetStartDelay", "(J)J", (void*) getStartDelay }, { "nGetStartDelay", "(J)J", (void*) getStartDelay }, { "nSetInterpolator", "(JJ)V", (void*) setInterpolator }, { "nSetInterpolator", "(JJ)V", (void*) setInterpolator }, { "nCancel", "(J)V", (void*) cancel }, #endif #endif }; }; Loading libs/hwui/Android.mk +1 −0 Original line number Original line Diff line number Diff line Loading @@ -13,6 +13,7 @@ ifeq ($(USE_OPENGL_RENDERER),true) font/Font.cpp \ font/Font.cpp \ AmbientShadow.cpp \ AmbientShadow.cpp \ Animator.cpp \ Animator.cpp \ AnimatorManager.cpp \ AssetAtlas.cpp \ AssetAtlas.cpp \ DamageAccumulator.cpp \ DamageAccumulator.cpp \ FontRenderer.cpp \ FontRenderer.cpp \ Loading Loading
core/java/android/view/RenderNode.java +0 −19 Original line number Original line Diff line number Diff line Loading @@ -21,9 +21,6 @@ import android.graphics.Matrix; import android.graphics.Outline; import android.graphics.Outline; import android.graphics.Paint; import android.graphics.Paint; import java.util.ArrayList; import java.util.List; /** /** * <p>A display list records a series of graphics related operations and can replay * <p>A display list records a series of graphics related operations and can replay * them later. Display lists are usually built by recording operations on a * them later. Display lists are usually built by recording operations on a Loading Loading @@ -180,12 +177,6 @@ public class RenderNode { private boolean mValid; private boolean mValid; private final long mNativeRenderNode; private final long mNativeRenderNode; // We need to keep a strong reference to all running animators to ensure that // they can call removeAnimator when they have finished, as the native-side // object can only hold a WeakReference<> to avoid leaking memory due to // cyclic references. private List<RenderNodeAnimator> mActiveAnimators; private RenderNode(String name) { private RenderNode(String name) { mNativeRenderNode = nCreate(name); mNativeRenderNode = nCreate(name); } } Loading Loading @@ -866,18 +857,9 @@ public class RenderNode { /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// public void addAnimator(RenderNodeAnimator animator) { public void addAnimator(RenderNodeAnimator animator) { if (mActiveAnimators == null) { mActiveAnimators = new ArrayList<RenderNodeAnimator>(); } mActiveAnimators.add(animator); nAddAnimator(mNativeRenderNode, animator.getNativeAnimator()); nAddAnimator(mNativeRenderNode, animator.getNativeAnimator()); } } public void removeAnimator(RenderNodeAnimator animator) { nRemoveAnimator(mNativeRenderNode, animator.getNativeAnimator()); mActiveAnimators.remove(animator); } /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// // Native methods // Native methods /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// Loading Loading @@ -960,7 +942,6 @@ public class RenderNode { /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// private static native void nAddAnimator(long renderNode, long animatorPtr); private static native void nAddAnimator(long renderNode, long animatorPtr); private static native void nRemoveAnimator(long renderNode, long animatorPtr); /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// // Finalization // Finalization Loading
core/java/android/view/RenderNodeAnimator.java +17 −11 Original line number Original line Diff line number Diff line Loading @@ -172,7 +172,8 @@ public final class RenderNodeAnimator extends Animator { @Override @Override public void cancel() { public void cancel() { mTarget.removeAnimator(this); if (!mFinished) { nCancel(mNativePtr.get()); final ArrayList<AnimatorListener> listeners = getListeners(); final ArrayList<AnimatorListener> listeners = getListeners(); final int numListeners = listeners == null ? 0 : listeners.size(); final int numListeners = listeners == null ? 0 : listeners.size(); Loading @@ -180,6 +181,7 @@ public final class RenderNodeAnimator extends Animator { listeners.get(i).onAnimationCancel(this); listeners.get(i).onAnimationCancel(this); } } } } } @Override @Override public void end() { public void end() { Loading Loading @@ -219,10 +221,6 @@ public final class RenderNodeAnimator extends Animator { return mTarget; return mTarget; } } /** * WARNING: May only be called once!!! * TODO: Fix above -_- */ public void setStartValue(float startValue) { public void setStartValue(float startValue) { checkMutable(); checkMutable(); nSetStartValue(mNativePtr.get(), startValue); nSetStartValue(mNativePtr.get(), startValue); Loading @@ -231,6 +229,9 @@ public final class RenderNodeAnimator extends Animator { @Override @Override public void setStartDelay(long startDelay) { public void setStartDelay(long startDelay) { checkMutable(); checkMutable(); if (startDelay < 0) { throw new IllegalArgumentException("startDelay must be positive; " + startDelay); } nSetStartDelay(mNativePtr.get(), startDelay); nSetStartDelay(mNativePtr.get(), startDelay); } } Loading @@ -242,6 +243,9 @@ public final class RenderNodeAnimator extends Animator { @Override @Override public RenderNodeAnimator setDuration(long duration) { public RenderNodeAnimator setDuration(long duration) { checkMutable(); checkMutable(); if (duration < 0) { throw new IllegalArgumentException("duration must be positive; " + duration); } nSetDuration(mNativePtr.get(), duration); nSetDuration(mNativePtr.get(), duration); return this; return this; } } Loading Loading @@ -269,7 +273,6 @@ public final class RenderNodeAnimator extends Animator { private void onFinished() { private void onFinished() { mFinished = true; mFinished = true; mTarget.removeAnimator(this); final ArrayList<AnimatorListener> listeners = getListeners(); final ArrayList<AnimatorListener> listeners = getListeners(); final int numListeners = listeners == null ? 0 : listeners.size(); final int numListeners = listeners == null ? 0 : listeners.size(); Loading @@ -296,10 +299,13 @@ public final class RenderNodeAnimator extends Animator { long canvasProperty, float finalValue); long canvasProperty, float finalValue); private static native long nCreateCanvasPropertyPaintAnimator(WeakReference<RenderNodeAnimator> weakThis, private static native long nCreateCanvasPropertyPaintAnimator(WeakReference<RenderNodeAnimator> weakThis, long canvasProperty, int paintField, float finalValue); long canvasProperty, int paintField, float finalValue); private static native void nSetStartValue(long nativePtr, float startValue); private static native void nSetStartValue(long nativePtr, float startValue); private static native void nSetDuration(long nativePtr, long duration); private static native void nSetDuration(long nativePtr, long duration); private static native long nGetDuration(long nativePtr); private static native long nGetDuration(long nativePtr); private static native void nSetStartDelay(long nativePtr, long startDelay); private static native void nSetStartDelay(long nativePtr, long startDelay); private static native long nGetStartDelay(long nativePtr); private static native long nGetStartDelay(long nativePtr); private static native void nSetInterpolator(long animPtr, long interpolatorPtr); private static native void nSetInterpolator(long animPtr, long interpolatorPtr); private static native void nCancel(long animPtr); } }
core/jni/android_view_RenderNode.cpp +1 −9 Original line number Original line Diff line number Diff line Loading @@ -456,16 +456,9 @@ static void android_view_RenderNode_addAnimator(JNIEnv* env, jobject clazz, RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr); RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr); RenderPropertyAnimator* animator = reinterpret_cast<RenderPropertyAnimator*>(animatorPtr); RenderPropertyAnimator* animator = reinterpret_cast<RenderPropertyAnimator*>(animatorPtr); renderNode->addAnimator(animator); renderNode->addAnimator(animator); animator->start(); } } static void android_view_RenderNode_removeAnimator(JNIEnv* env, jobject clazz, jlong renderNodePtr, jlong animatorPtr) { RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr); RenderPropertyAnimator* animator = reinterpret_cast<RenderPropertyAnimator*>(animatorPtr); renderNode->removeAnimator(animator); } #endif // USE_OPENGL_RENDERER #endif // USE_OPENGL_RENDERER // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- Loading Loading @@ -546,7 +539,6 @@ static JNINativeMethod gMethods[] = { { "nGetPivotY", "(J)F", (void*) android_view_RenderNode_getPivotY }, { "nGetPivotY", "(J)F", (void*) android_view_RenderNode_getPivotY }, { "nAddAnimator", "(JJ)V", (void*) android_view_RenderNode_addAnimator }, { "nAddAnimator", "(JJ)V", (void*) android_view_RenderNode_addAnimator }, { "nRemoveAnimator", "(JJ)V", (void*) android_view_RenderNode_removeAnimator }, #endif #endif }; }; Loading
core/jni/android_view_RenderNodeAnimator.cpp +6 −0 Original line number Original line Diff line number Diff line Loading @@ -149,6 +149,11 @@ static void setInterpolator(JNIEnv* env, jobject clazz, jlong animatorPtr, jlong animator->setInterpolator(interpolator); animator->setInterpolator(interpolator); } } static void cancel(JNIEnv* env, jobject clazz, jlong animatorPtr) { BaseRenderNodeAnimator* animator = reinterpret_cast<BaseRenderNodeAnimator*>(animatorPtr); animator->cancel(); } #endif #endif // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- Loading @@ -168,6 +173,7 @@ static JNINativeMethod gMethods[] = { { "nSetStartDelay", "(JJ)V", (void*) setStartDelay }, { "nSetStartDelay", "(JJ)V", (void*) setStartDelay }, { "nGetStartDelay", "(J)J", (void*) getStartDelay }, { "nGetStartDelay", "(J)J", (void*) getStartDelay }, { "nSetInterpolator", "(JJ)V", (void*) setInterpolator }, { "nSetInterpolator", "(JJ)V", (void*) setInterpolator }, { "nCancel", "(J)V", (void*) cancel }, #endif #endif }; }; Loading
libs/hwui/Android.mk +1 −0 Original line number Original line Diff line number Diff line Loading @@ -13,6 +13,7 @@ ifeq ($(USE_OPENGL_RENDERER),true) font/Font.cpp \ font/Font.cpp \ AmbientShadow.cpp \ AmbientShadow.cpp \ Animator.cpp \ Animator.cpp \ AnimatorManager.cpp \ AssetAtlas.cpp \ AssetAtlas.cpp \ DamageAccumulator.cpp \ DamageAccumulator.cpp \ FontRenderer.cpp \ FontRenderer.cpp \ Loading