Loading api/current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -9926,6 +9926,7 @@ package android.graphics { method public void cubicTo(float, float, float, float, float, float); method public android.graphics.Path.FillType getFillType(); method public void incReserve(int); method public boolean isConvex(); method public boolean isEmpty(); method public boolean isInverseFillType(); method public boolean isRect(android.graphics.RectF); core/java/android/view/View.java +7 −1 Original line number Diff line number Diff line Loading @@ -10838,11 +10838,14 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * Sets the outline of the view, which defines the shape of the shadow it * casts, and can used for clipping. * <p> * The outline path of a View must be {@link android.graphics.Path#isConvex() convex}. * <p> * If the outline is not set, or {@link Path#isEmpty()}, shadows will be * cast from the bounds of the View, and clipToOutline will be ignored. * * @param outline The new outline of the view. Must be non-null. * @param outline The new outline of the view. Must be non-null, and convex. * * @see #setCastsShadow(boolean) * @see #getOutline(Path) * @see #getClipToOutline() * @see #setClipToOutline(boolean) Loading @@ -10851,6 +10854,9 @@ public class View implements Drawable.Callback, KeyEvent.Callback, if (outline == null) { throw new IllegalArgumentException("Path must be non-null"); } if (!outline.isConvex()) { throw new IllegalArgumentException("Path must be convex"); } // always copy the path since caller may reuse if (mOutline == null) { mOutline = new Path(outline); Loading core/jni/android/graphics/Path.cpp +7 −1 Original line number Diff line number Diff line Loading @@ -72,6 +72,11 @@ public: *dst = *src; } static jboolean isConvex(JNIEnv* env, jobject clazz, jlong objHandle) { SkPath* obj = reinterpret_cast<SkPath*>(objHandle); return obj->isConvex(); } static jint getFillType(JNIEnv* env, jobject clazz, jlong objHandle) { SkPath* obj = reinterpret_cast<SkPath*>(objHandle); return obj->getFillType(); Loading Loading @@ -524,6 +529,7 @@ static JNINativeMethod methods[] = { {"native_reset","(J)V", (void*) SkPathGlue::reset}, {"native_rewind","(J)V", (void*) SkPathGlue::rewind}, {"native_set","(JJ)V", (void*) SkPathGlue::assign}, {"native_isConvex","(J)Z", (void*) SkPathGlue::isConvex}, {"native_getFillType","(J)I", (void*) SkPathGlue::getFillType}, {"native_setFillType","(JI)V", (void*) SkPathGlue::setFillType}, {"native_isEmpty","(J)Z", (void*) SkPathGlue::isEmpty}, Loading graphics/java/android/graphics/Path.java +21 −5 Original line number Diff line number Diff line Loading @@ -167,6 +167,21 @@ public class Path { return false; } /** * Returns the path's convexity, as defined by the content of the path. * <p> * A path is convex if it has a single contour, and only ever curves in a * single direction. * <p> * This function will calculate the convexity of the path from its control * points, and cache the result. * * @return True if the path is convex. */ public boolean isConvex() { return native_isConvex(mNativePath); } /** * Enum for the ways a path may be filled. */ Loading Loading @@ -232,7 +247,7 @@ public class Path { */ public boolean isInverseFillType() { final int ft = native_getFillType(mNativePath); return (ft & 2) != 0; return (ft & FillType.INVERSE_WINDING.nativeInt) != 0; } /** Loading @@ -240,7 +255,7 @@ public class Path { */ public void toggleInverseFillType() { int ft = native_getFillType(mNativePath); ft ^= 2; ft ^= FillType.INVERSE_WINDING.nativeInt; native_setFillType(mNativePath, ft); } Loading Loading @@ -719,6 +734,7 @@ public class Path { private static native void native_reset(long nPath); private static native void native_rewind(long nPath); private static native void native_set(long native_dst, long native_src); private static native boolean native_isConvex(long nPath); private static native int native_getFillType(long nPath); private static native void native_setFillType(long nPath, int ft); private static native boolean native_isEmpty(long nPath); Loading Loading
api/current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -9926,6 +9926,7 @@ package android.graphics { method public void cubicTo(float, float, float, float, float, float); method public android.graphics.Path.FillType getFillType(); method public void incReserve(int); method public boolean isConvex(); method public boolean isEmpty(); method public boolean isInverseFillType(); method public boolean isRect(android.graphics.RectF);
core/java/android/view/View.java +7 −1 Original line number Diff line number Diff line Loading @@ -10838,11 +10838,14 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * Sets the outline of the view, which defines the shape of the shadow it * casts, and can used for clipping. * <p> * The outline path of a View must be {@link android.graphics.Path#isConvex() convex}. * <p> * If the outline is not set, or {@link Path#isEmpty()}, shadows will be * cast from the bounds of the View, and clipToOutline will be ignored. * * @param outline The new outline of the view. Must be non-null. * @param outline The new outline of the view. Must be non-null, and convex. * * @see #setCastsShadow(boolean) * @see #getOutline(Path) * @see #getClipToOutline() * @see #setClipToOutline(boolean) Loading @@ -10851,6 +10854,9 @@ public class View implements Drawable.Callback, KeyEvent.Callback, if (outline == null) { throw new IllegalArgumentException("Path must be non-null"); } if (!outline.isConvex()) { throw new IllegalArgumentException("Path must be convex"); } // always copy the path since caller may reuse if (mOutline == null) { mOutline = new Path(outline); Loading
core/jni/android/graphics/Path.cpp +7 −1 Original line number Diff line number Diff line Loading @@ -72,6 +72,11 @@ public: *dst = *src; } static jboolean isConvex(JNIEnv* env, jobject clazz, jlong objHandle) { SkPath* obj = reinterpret_cast<SkPath*>(objHandle); return obj->isConvex(); } static jint getFillType(JNIEnv* env, jobject clazz, jlong objHandle) { SkPath* obj = reinterpret_cast<SkPath*>(objHandle); return obj->getFillType(); Loading Loading @@ -524,6 +529,7 @@ static JNINativeMethod methods[] = { {"native_reset","(J)V", (void*) SkPathGlue::reset}, {"native_rewind","(J)V", (void*) SkPathGlue::rewind}, {"native_set","(JJ)V", (void*) SkPathGlue::assign}, {"native_isConvex","(J)Z", (void*) SkPathGlue::isConvex}, {"native_getFillType","(J)I", (void*) SkPathGlue::getFillType}, {"native_setFillType","(JI)V", (void*) SkPathGlue::setFillType}, {"native_isEmpty","(J)Z", (void*) SkPathGlue::isEmpty}, Loading
graphics/java/android/graphics/Path.java +21 −5 Original line number Diff line number Diff line Loading @@ -167,6 +167,21 @@ public class Path { return false; } /** * Returns the path's convexity, as defined by the content of the path. * <p> * A path is convex if it has a single contour, and only ever curves in a * single direction. * <p> * This function will calculate the convexity of the path from its control * points, and cache the result. * * @return True if the path is convex. */ public boolean isConvex() { return native_isConvex(mNativePath); } /** * Enum for the ways a path may be filled. */ Loading Loading @@ -232,7 +247,7 @@ public class Path { */ public boolean isInverseFillType() { final int ft = native_getFillType(mNativePath); return (ft & 2) != 0; return (ft & FillType.INVERSE_WINDING.nativeInt) != 0; } /** Loading @@ -240,7 +255,7 @@ public class Path { */ public void toggleInverseFillType() { int ft = native_getFillType(mNativePath); ft ^= 2; ft ^= FillType.INVERSE_WINDING.nativeInt; native_setFillType(mNativePath, ft); } Loading Loading @@ -719,6 +734,7 @@ public class Path { private static native void native_reset(long nPath); private static native void native_rewind(long nPath); private static native void native_set(long native_dst, long native_src); private static native boolean native_isConvex(long nPath); private static native int native_getFillType(long nPath); private static native void native_setFillType(long nPath, int ft); private static native boolean native_isEmpty(long nPath); Loading