Turn off simplePath optimization then Path object is used as out param am: a6a8557d6e
am: 2ef3bdbd7a
Change-Id: I7e1a028c2b7596e2697fd319a6c899ce92a4fcc8
This commit is contained in:
@@ -788,7 +788,7 @@ public class Canvas {
|
||||
* @return true if the resulting is non-empty
|
||||
*/
|
||||
public boolean clipPath(@NonNull Path path, @NonNull Region.Op op) {
|
||||
return native_clipPath(mNativeCanvasWrapper, path.ni(), op.nativeInt);
|
||||
return native_clipPath(mNativeCanvasWrapper, path.readOnlyNI(), op.nativeInt);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -907,7 +907,7 @@ public class Canvas {
|
||||
* does not intersect with the canvas' clip
|
||||
*/
|
||||
public boolean quickReject(@NonNull Path path, @NonNull EdgeType type) {
|
||||
return native_quickReject(mNativeCanvasWrapper, path.ni());
|
||||
return native_quickReject(mNativeCanvasWrapper, path.readOnlyNI());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1259,7 +1259,7 @@ public class Canvas {
|
||||
if (path.isSimplePath && path.rects != null) {
|
||||
native_drawRegion(mNativeCanvasWrapper, path.rects.mNativeRegion, paint.getNativeInstance());
|
||||
} else {
|
||||
native_drawPath(mNativeCanvasWrapper, path.ni(), paint.getNativeInstance());
|
||||
native_drawPath(mNativeCanvasWrapper, path.readOnlyNI(), paint.getNativeInstance());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1895,7 +1895,7 @@ public class Canvas {
|
||||
throw new ArrayIndexOutOfBoundsException();
|
||||
}
|
||||
native_drawTextOnPath(mNativeCanvasWrapper, text, index, count,
|
||||
path.ni(), hOffset, vOffset,
|
||||
path.readOnlyNI(), hOffset, vOffset,
|
||||
paint.mBidiFlags, paint.getNativeInstance(), paint.mNativeTypeface);
|
||||
}
|
||||
|
||||
@@ -1915,7 +1915,7 @@ public class Canvas {
|
||||
public void drawTextOnPath(@NonNull String text, @NonNull Path path, float hOffset,
|
||||
float vOffset, @NonNull Paint paint) {
|
||||
if (text.length() > 0) {
|
||||
native_drawTextOnPath(mNativeCanvasWrapper, text, path.ni(), hOffset, vOffset,
|
||||
native_drawTextOnPath(mNativeCanvasWrapper, text, path.readOnlyNI(), hOffset, vOffset,
|
||||
paint.mBidiFlags, paint.getNativeInstance(), paint.mNativeTypeface);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1021,7 +1021,7 @@ public class Paint {
|
||||
* drawn with a hairline (width == 0)
|
||||
*/
|
||||
public boolean getFillPath(Path src, Path dst) {
|
||||
return nGetFillPath(mNativePaint, src.ni(), dst.ni());
|
||||
return nGetFillPath(mNativePaint, src.readOnlyNI(), dst.mutateNI());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2394,7 +2394,7 @@ public class Paint {
|
||||
throw new ArrayIndexOutOfBoundsException();
|
||||
}
|
||||
nGetTextPath(mNativePaint, mNativeTypeface, mBidiFlags, text, index, count, x, y,
|
||||
path.ni());
|
||||
path.mutateNI());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2416,7 +2416,7 @@ public class Paint {
|
||||
throw new IndexOutOfBoundsException();
|
||||
}
|
||||
nGetTextPath(mNativePaint, mNativeTypeface, mBidiFlags, text, start, end, x, y,
|
||||
path.ni());
|
||||
path.mutateNI());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -775,7 +775,12 @@ public class Path {
|
||||
}
|
||||
}
|
||||
|
||||
final long ni() {
|
||||
final long readOnlyNI() {
|
||||
return mNativePath;
|
||||
}
|
||||
|
||||
final long mutateNI() {
|
||||
isSimplePath = false;
|
||||
return mNativePath;
|
||||
}
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ public class PathDashPathEffect extends PathEffect {
|
||||
*/
|
||||
public PathDashPathEffect(Path shape, float advance, float phase,
|
||||
Style style) {
|
||||
native_instance = nativeCreate(shape.ni(), advance, phase,
|
||||
native_instance = nativeCreate(shape.readOnlyNI(), advance, phase,
|
||||
style.native_style);
|
||||
}
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ public class PathMeasure {
|
||||
public PathMeasure(Path path, boolean forceClosed) {
|
||||
// The native implementation does not copy the path, prevent it from being GC'd
|
||||
mPath = path;
|
||||
native_instance = native_create(path != null ? path.ni() : 0,
|
||||
native_instance = native_create(path != null ? path.readOnlyNI() : 0,
|
||||
forceClosed);
|
||||
}
|
||||
|
||||
@@ -60,7 +60,7 @@ public class PathMeasure {
|
||||
public void setPath(Path path, boolean forceClosed) {
|
||||
mPath = path;
|
||||
native_setPath(native_instance,
|
||||
path != null ? path.ni() : 0,
|
||||
path != null ? path.readOnlyNI() : 0,
|
||||
forceClosed);
|
||||
}
|
||||
|
||||
@@ -134,8 +134,7 @@ public class PathMeasure {
|
||||
return false;
|
||||
}
|
||||
|
||||
dst.isSimplePath = false;
|
||||
return native_getSegment(native_instance, startD, stopD, dst.ni(), startWithMoveTo);
|
||||
return native_getSegment(native_instance, startD, stopD, dst.mutateNI(), startWithMoveTo);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -110,7 +110,7 @@ public class Region implements Parcelable {
|
||||
* (with no antialiasing).
|
||||
*/
|
||||
public boolean setPath(Path path, Region clip) {
|
||||
return nativeSetPath(mNativeRegion, path.ni(), clip.mNativeRegion);
|
||||
return nativeSetPath(mNativeRegion, path.readOnlyNI(), clip.mNativeRegion);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -155,7 +155,7 @@ public class Region implements Parcelable {
|
||||
*/
|
||||
public Path getBoundaryPath() {
|
||||
Path path = new Path();
|
||||
nativeGetBoundaryPath(mNativeRegion, path.ni());
|
||||
nativeGetBoundaryPath(mNativeRegion, path.mutateNI());
|
||||
return path;
|
||||
}
|
||||
|
||||
@@ -164,7 +164,7 @@ public class Region implements Parcelable {
|
||||
* path will also be empty.
|
||||
*/
|
||||
public boolean getBoundaryPath(Path path) {
|
||||
return nativeGetBoundaryPath(mNativeRegion, path.ni());
|
||||
return nativeGetBoundaryPath(mNativeRegion, path.mutateNI());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user