Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0e82d134 authored by John Reck's avatar John Reck Committed by Android (Google) Code Review
Browse files

Merge "Add CanvasProperty for drawCircle"

parents 5d84bce1 52244fff
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -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;
@@ -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);
+4 −0
Original line number Diff line number Diff line
@@ -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;

@@ -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);
}
+37 −14
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package android.view;

import android.graphics.CanvasProperty;
import android.graphics.Paint;
import android.util.SparseIntArray;

import java.lang.ref.WeakReference;
@@ -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
@@ -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;
@@ -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);
@@ -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);
}
+1 −0
Original line number Diff line number Diff line
@@ -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 \
+2 −0
Original line number Diff line number Diff line
@@ -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);
@@ -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