Loading core/java/android/view/GLES20Canvas.java +11 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.view; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.CanvasProperty; import android.graphics.DrawFilter; import android.graphics.Matrix; import android.graphics.NinePatch; Loading Loading @@ -888,6 +889,16 @@ class GLES20Canvas extends HardwareCanvas { private static native void nDrawCircle(long renderer, float cx, float cy, float radius, long paint); @Override public void drawCircle(CanvasProperty<Float> cx, CanvasProperty<Float> cy, CanvasProperty<Float> radius, CanvasProperty<Paint> paint) { nDrawCircle(mRenderer, cx.getNativeContainer(), cy.getNativeContainer(), radius.getNativeContainer(), paint.getNativeContainer()); } private static native void nDrawCircle(long renderer, long propCx, long propCy, long propRadius, long propPaint); @Override public void drawColor(int color) { drawColor(color, PorterDuff.Mode.SRC_OVER); Loading core/java/android/view/HardwareCanvas.java +4 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.view; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.CanvasProperty; import android.graphics.Paint; import android.graphics.Rect; Loading Loading @@ -189,4 +190,7 @@ public abstract class HardwareCanvas extends Canvas { * @hide */ abstract void clearLayerUpdates(); public abstract void drawCircle(CanvasProperty<Float> cx, CanvasProperty<Float> cy, CanvasProperty<Float> radius, CanvasProperty<Paint> paint); } core/java/android/view/RenderNodeAnimator.java +37 −14 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package android.view; import android.graphics.CanvasProperty; import android.graphics.Paint; import android.util.SparseIntArray; import java.lang.ref.WeakReference; Loading @@ -26,18 +28,22 @@ import java.lang.ref.WeakReference; public final class RenderNodeAnimator { // Keep in sync with enum RenderProperty in Animator.h private static final int TRANSLATION_X = 0; private static final int TRANSLATION_Y = 1; private static final int TRANSLATION_Z = 2; private static final int SCALE_X = 3; private static final int SCALE_Y = 4; private static final int ROTATION = 5; private static final int ROTATION_X = 6; private static final int ROTATION_Y = 7; private static final int X = 8; private static final int Y = 9; private static final int Z = 10; private static final int ALPHA = 11; public static final int TRANSLATION_X = 0; public static final int TRANSLATION_Y = 1; public static final int TRANSLATION_Z = 2; public static final int SCALE_X = 3; public static final int SCALE_Y = 4; public static final int ROTATION = 5; public static final int ROTATION_X = 6; public static final int ROTATION_Y = 7; public static final int X = 8; public static final int Y = 9; public static final int Z = 10; public static final int ALPHA = 11; // Keep in sync with enum PaintFields in Animator.h public static final int PAINT_STROKE_WIDTH = 0; public static final int PAINT_ALPHA = 1; // ViewPropertyAnimator uses a mask for its values, we need to remap them // to the enum values here. RenderPropertyAnimator can't use the mask values Loading @@ -59,8 +65,8 @@ public final class RenderNodeAnimator { }}; // Keep in sync DeltaValueType in Animator.h private static final int DELTA_TYPE_ABSOLUTE = 0; private static final int DELTA_TYPE_DELTA = 1; public static final int DELTA_TYPE_ABSOLUTE = 0; public static final int DELTA_TYPE_DELTA = 1; private RenderNode mTarget; private long mNativePtr; Loading @@ -74,6 +80,19 @@ public final class RenderNodeAnimator { property, deltaType, deltaValue); } public RenderNodeAnimator(CanvasProperty<Float> property, int deltaType, float deltaValue) { mNativePtr = nCreateCanvasPropertyFloatAnimator( new WeakReference<RenderNodeAnimator>(this), property.getNativeContainer(), deltaType, deltaValue); } public RenderNodeAnimator(CanvasProperty<Paint> property, int paintField, int deltaType, float deltaValue) { mNativePtr = nCreateCanvasPropertyPaintAnimator( new WeakReference<RenderNodeAnimator>(this), property.getNativeContainer(), paintField, deltaType, deltaValue); } public void start(View target) { mTarget = target.mRenderNode; mTarget.addAnimator(this); Loading Loading @@ -117,6 +136,10 @@ public final class RenderNodeAnimator { private static native long nCreateAnimator(WeakReference<RenderNodeAnimator> weakThis, int property, int deltaValueType, float deltaValue); private static native long nCreateCanvasPropertyFloatAnimator(WeakReference<RenderNodeAnimator> weakThis, long canvasProperty, int deltaValueType, float deltaValue); private static native long nCreateCanvasPropertyPaintAnimator(WeakReference<RenderNodeAnimator> weakThis, long canvasProperty, int paintField, int deltaValueType, float deltaValue); private static native void nSetDuration(long nativePtr, int duration); private static native void nUnref(long nativePtr); } core/jni/Android.mk +1 −0 Original line number Diff line number Diff line Loading @@ -92,6 +92,7 @@ LOCAL_SRC_FILES:= \ android/graphics/BitmapFactory.cpp \ android/graphics/Camera.cpp \ android/graphics/Canvas.cpp \ android/graphics/CanvasProperty.cpp \ android/graphics/ColorFilter.cpp \ android/graphics/DrawFilter.cpp \ android/graphics/CreateJavaOutputStreamAdaptor.cpp \ Loading core/jni/AndroidRuntime.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -105,6 +105,7 @@ extern int register_android_content_StringBlock(JNIEnv* env); extern int register_android_content_XmlBlock(JNIEnv* env); extern int register_android_emoji_EmojiFactory(JNIEnv* env); extern int register_android_graphics_Canvas(JNIEnv* env); extern int register_android_graphics_CanvasProperty(JNIEnv* env); extern int register_android_graphics_ColorFilter(JNIEnv* env); extern int register_android_graphics_DrawFilter(JNIEnv* env); extern int register_android_graphics_Matrix(JNIEnv* env); Loading Loading @@ -1221,6 +1222,7 @@ static const RegJNIRec gRegJNI[] = { REG_JNI(register_android_graphics_Camera), REG_JNI(register_android_graphics_CreateJavaOutputStreamAdaptor), REG_JNI(register_android_graphics_Canvas), REG_JNI(register_android_graphics_CanvasProperty), REG_JNI(register_android_graphics_ColorFilter), REG_JNI(register_android_graphics_DrawFilter), REG_JNI(register_android_graphics_Interpolator), Loading Loading
core/java/android/view/GLES20Canvas.java +11 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.view; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.CanvasProperty; import android.graphics.DrawFilter; import android.graphics.Matrix; import android.graphics.NinePatch; Loading Loading @@ -888,6 +889,16 @@ class GLES20Canvas extends HardwareCanvas { private static native void nDrawCircle(long renderer, float cx, float cy, float radius, long paint); @Override public void drawCircle(CanvasProperty<Float> cx, CanvasProperty<Float> cy, CanvasProperty<Float> radius, CanvasProperty<Paint> paint) { nDrawCircle(mRenderer, cx.getNativeContainer(), cy.getNativeContainer(), radius.getNativeContainer(), paint.getNativeContainer()); } private static native void nDrawCircle(long renderer, long propCx, long propCy, long propRadius, long propPaint); @Override public void drawColor(int color) { drawColor(color, PorterDuff.Mode.SRC_OVER); Loading
core/java/android/view/HardwareCanvas.java +4 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.view; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.CanvasProperty; import android.graphics.Paint; import android.graphics.Rect; Loading Loading @@ -189,4 +190,7 @@ public abstract class HardwareCanvas extends Canvas { * @hide */ abstract void clearLayerUpdates(); public abstract void drawCircle(CanvasProperty<Float> cx, CanvasProperty<Float> cy, CanvasProperty<Float> radius, CanvasProperty<Paint> paint); }
core/java/android/view/RenderNodeAnimator.java +37 −14 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package android.view; import android.graphics.CanvasProperty; import android.graphics.Paint; import android.util.SparseIntArray; import java.lang.ref.WeakReference; Loading @@ -26,18 +28,22 @@ import java.lang.ref.WeakReference; public final class RenderNodeAnimator { // Keep in sync with enum RenderProperty in Animator.h private static final int TRANSLATION_X = 0; private static final int TRANSLATION_Y = 1; private static final int TRANSLATION_Z = 2; private static final int SCALE_X = 3; private static final int SCALE_Y = 4; private static final int ROTATION = 5; private static final int ROTATION_X = 6; private static final int ROTATION_Y = 7; private static final int X = 8; private static final int Y = 9; private static final int Z = 10; private static final int ALPHA = 11; public static final int TRANSLATION_X = 0; public static final int TRANSLATION_Y = 1; public static final int TRANSLATION_Z = 2; public static final int SCALE_X = 3; public static final int SCALE_Y = 4; public static final int ROTATION = 5; public static final int ROTATION_X = 6; public static final int ROTATION_Y = 7; public static final int X = 8; public static final int Y = 9; public static final int Z = 10; public static final int ALPHA = 11; // Keep in sync with enum PaintFields in Animator.h public static final int PAINT_STROKE_WIDTH = 0; public static final int PAINT_ALPHA = 1; // ViewPropertyAnimator uses a mask for its values, we need to remap them // to the enum values here. RenderPropertyAnimator can't use the mask values Loading @@ -59,8 +65,8 @@ public final class RenderNodeAnimator { }}; // Keep in sync DeltaValueType in Animator.h private static final int DELTA_TYPE_ABSOLUTE = 0; private static final int DELTA_TYPE_DELTA = 1; public static final int DELTA_TYPE_ABSOLUTE = 0; public static final int DELTA_TYPE_DELTA = 1; private RenderNode mTarget; private long mNativePtr; Loading @@ -74,6 +80,19 @@ public final class RenderNodeAnimator { property, deltaType, deltaValue); } public RenderNodeAnimator(CanvasProperty<Float> property, int deltaType, float deltaValue) { mNativePtr = nCreateCanvasPropertyFloatAnimator( new WeakReference<RenderNodeAnimator>(this), property.getNativeContainer(), deltaType, deltaValue); } public RenderNodeAnimator(CanvasProperty<Paint> property, int paintField, int deltaType, float deltaValue) { mNativePtr = nCreateCanvasPropertyPaintAnimator( new WeakReference<RenderNodeAnimator>(this), property.getNativeContainer(), paintField, deltaType, deltaValue); } public void start(View target) { mTarget = target.mRenderNode; mTarget.addAnimator(this); Loading Loading @@ -117,6 +136,10 @@ public final class RenderNodeAnimator { private static native long nCreateAnimator(WeakReference<RenderNodeAnimator> weakThis, int property, int deltaValueType, float deltaValue); private static native long nCreateCanvasPropertyFloatAnimator(WeakReference<RenderNodeAnimator> weakThis, long canvasProperty, int deltaValueType, float deltaValue); private static native long nCreateCanvasPropertyPaintAnimator(WeakReference<RenderNodeAnimator> weakThis, long canvasProperty, int paintField, int deltaValueType, float deltaValue); private static native void nSetDuration(long nativePtr, int duration); private static native void nUnref(long nativePtr); }
core/jni/Android.mk +1 −0 Original line number Diff line number Diff line Loading @@ -92,6 +92,7 @@ LOCAL_SRC_FILES:= \ android/graphics/BitmapFactory.cpp \ android/graphics/Camera.cpp \ android/graphics/Canvas.cpp \ android/graphics/CanvasProperty.cpp \ android/graphics/ColorFilter.cpp \ android/graphics/DrawFilter.cpp \ android/graphics/CreateJavaOutputStreamAdaptor.cpp \ Loading
core/jni/AndroidRuntime.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -105,6 +105,7 @@ extern int register_android_content_StringBlock(JNIEnv* env); extern int register_android_content_XmlBlock(JNIEnv* env); extern int register_android_emoji_EmojiFactory(JNIEnv* env); extern int register_android_graphics_Canvas(JNIEnv* env); extern int register_android_graphics_CanvasProperty(JNIEnv* env); extern int register_android_graphics_ColorFilter(JNIEnv* env); extern int register_android_graphics_DrawFilter(JNIEnv* env); extern int register_android_graphics_Matrix(JNIEnv* env); Loading Loading @@ -1221,6 +1222,7 @@ static const RegJNIRec gRegJNI[] = { REG_JNI(register_android_graphics_Camera), REG_JNI(register_android_graphics_CreateJavaOutputStreamAdaptor), REG_JNI(register_android_graphics_Canvas), REG_JNI(register_android_graphics_CanvasProperty), REG_JNI(register_android_graphics_ColorFilter), REG_JNI(register_android_graphics_DrawFilter), REG_JNI(register_android_graphics_Interpolator), Loading