Loading graphics/java/android/graphics/BitmapShader.java +30 −3 Original line number Diff line number Diff line Loading @@ -31,6 +31,23 @@ public class BitmapShader extends Shader { private int mTileX; private int mTileY; /* * This is cache of the last value from the Paint of bitmap-filtering. * In the future, BitmapShaders will carry their own (expanded) data for this * (e.g. including mipmap options, or bicubic weights) * * When that happens, this bool will become those extended values, and we will * need to track whether this Shader was created with those new constructors, * or from the current "legacy" constructor, which (for compatibility) will * still need to know the Paint's setting. * * When the filter Paint setting is finally gone, we will be able to remove * the filterFromPaint parameter currently being passed to createNativeInstance() * and shouldDiscardNativeInstance(), as shaders will always know their filter * settings. */ private boolean mFilterFromPaint; /** * Call this to create a new shader that will draw with a bitmap. * Loading @@ -49,14 +66,24 @@ public class BitmapShader extends Shader { mBitmap = bitmap; mTileX = tileX; mTileY = tileY; mFilterFromPaint = false; } /** @hide */ @Override protected long createNativeInstance(long nativeMatrix) { return nativeCreate(nativeMatrix, mBitmap.getNativeInstance(), mTileX, mTileY); protected long createNativeInstance(long nativeMatrix, boolean filterFromPaint) { mFilterFromPaint = filterFromPaint; return nativeCreate(nativeMatrix, mBitmap.getNativeInstance(), mTileX, mTileY, mFilterFromPaint); } /** @hide */ @Override protected boolean shouldDiscardNativeInstance(boolean filterFromPaint) { return mFilterFromPaint != filterFromPaint; } private static native long nativeCreate(long nativeMatrix, long bitmapHandle, int shaderTileModeX, int shaderTileModeY); int shaderTileModeX, int shaderTileModeY, boolean filter); } graphics/java/android/graphics/BlurShader.java +6 −4 Original line number Diff line number Diff line Loading @@ -69,16 +69,18 @@ public final class BlurShader extends Shader { /** @hide **/ @Override protected long createNativeInstance(long nativeMatrix) { mNativeInputShader = mInputShader != null ? mInputShader.getNativeInstance() : 0; protected long createNativeInstance(long nativeMatrix, boolean filterFromPaint) { mNativeInputShader = mInputShader != null ? mInputShader.getNativeInstance(filterFromPaint) : 0; return nativeCreate(nativeMatrix, mRadiusX, mRadiusY, mNativeInputShader, mEdgeTreatment.nativeInt); } /** @hide **/ @Override protected boolean shouldDiscardNativeInstance() { long currentNativeInstance = mInputShader != null ? mInputShader.getNativeInstance() : 0; protected boolean shouldDiscardNativeInstance(boolean filterFromPaint) { long currentNativeInstance = mInputShader != null ? mInputShader.getNativeInstance(filterFromPaint) : 0; return mNativeInputShader != currentNativeInstance; } Loading graphics/java/android/graphics/ComposeShader.java +6 −6 Original line number Diff line number Diff line Loading @@ -86,18 +86,18 @@ public class ComposeShader extends Shader { /** @hide */ @Override protected long createNativeInstance(long nativeMatrix) { mNativeInstanceShaderA = mShaderA.getNativeInstance(); mNativeInstanceShaderB = mShaderB.getNativeInstance(); protected long createNativeInstance(long nativeMatrix, boolean filterFromPaint) { mNativeInstanceShaderA = mShaderA.getNativeInstance(filterFromPaint); mNativeInstanceShaderB = mShaderB.getNativeInstance(filterFromPaint); return nativeCreate(nativeMatrix, mShaderA.getNativeInstance(), mShaderB.getNativeInstance(), mPorterDuffMode); } /** @hide */ @Override protected boolean shouldDiscardNativeInstance() { return mShaderA.getNativeInstance() != mNativeInstanceShaderA || mShaderB.getNativeInstance() != mNativeInstanceShaderB; protected boolean shouldDiscardNativeInstance(boolean filterFromPaint) { return mShaderA.getNativeInstance(filterFromPaint) != mNativeInstanceShaderA || mShaderB.getNativeInstance(filterFromPaint) != mNativeInstanceShaderB; } private static native long nativeCreate(long nativeMatrix, Loading graphics/java/android/graphics/LinearGradient.java +1 −1 Original line number Diff line number Diff line Loading @@ -154,7 +154,7 @@ public class LinearGradient extends Shader { /** @hide */ @Override protected long createNativeInstance(long nativeMatrix) { protected long createNativeInstance(long nativeMatrix, boolean filterFromPaint) { return nativeCreate(nativeMatrix, mX0, mY0, mX1, mY1, mColorLongs, mPositions, mTileMode.nativeInt, colorSpace().getNativeInstance()); Loading graphics/java/android/graphics/Paint.java +2 −1 Original line number Diff line number Diff line Loading @@ -698,7 +698,8 @@ public class Paint { */ @UnsupportedAppUsage public synchronized long getNativeInstance() { long newNativeShader = mShader == null ? 0 : mShader.getNativeInstance(); boolean filter = isFilterBitmap(); long newNativeShader = mShader == null ? 0 : mShader.getNativeInstance(filter); if (newNativeShader != mNativeShader) { mNativeShader = newNativeShader; nSetShader(mNativePaint, mNativeShader); Loading Loading
graphics/java/android/graphics/BitmapShader.java +30 −3 Original line number Diff line number Diff line Loading @@ -31,6 +31,23 @@ public class BitmapShader extends Shader { private int mTileX; private int mTileY; /* * This is cache of the last value from the Paint of bitmap-filtering. * In the future, BitmapShaders will carry their own (expanded) data for this * (e.g. including mipmap options, or bicubic weights) * * When that happens, this bool will become those extended values, and we will * need to track whether this Shader was created with those new constructors, * or from the current "legacy" constructor, which (for compatibility) will * still need to know the Paint's setting. * * When the filter Paint setting is finally gone, we will be able to remove * the filterFromPaint parameter currently being passed to createNativeInstance() * and shouldDiscardNativeInstance(), as shaders will always know their filter * settings. */ private boolean mFilterFromPaint; /** * Call this to create a new shader that will draw with a bitmap. * Loading @@ -49,14 +66,24 @@ public class BitmapShader extends Shader { mBitmap = bitmap; mTileX = tileX; mTileY = tileY; mFilterFromPaint = false; } /** @hide */ @Override protected long createNativeInstance(long nativeMatrix) { return nativeCreate(nativeMatrix, mBitmap.getNativeInstance(), mTileX, mTileY); protected long createNativeInstance(long nativeMatrix, boolean filterFromPaint) { mFilterFromPaint = filterFromPaint; return nativeCreate(nativeMatrix, mBitmap.getNativeInstance(), mTileX, mTileY, mFilterFromPaint); } /** @hide */ @Override protected boolean shouldDiscardNativeInstance(boolean filterFromPaint) { return mFilterFromPaint != filterFromPaint; } private static native long nativeCreate(long nativeMatrix, long bitmapHandle, int shaderTileModeX, int shaderTileModeY); int shaderTileModeX, int shaderTileModeY, boolean filter); }
graphics/java/android/graphics/BlurShader.java +6 −4 Original line number Diff line number Diff line Loading @@ -69,16 +69,18 @@ public final class BlurShader extends Shader { /** @hide **/ @Override protected long createNativeInstance(long nativeMatrix) { mNativeInputShader = mInputShader != null ? mInputShader.getNativeInstance() : 0; protected long createNativeInstance(long nativeMatrix, boolean filterFromPaint) { mNativeInputShader = mInputShader != null ? mInputShader.getNativeInstance(filterFromPaint) : 0; return nativeCreate(nativeMatrix, mRadiusX, mRadiusY, mNativeInputShader, mEdgeTreatment.nativeInt); } /** @hide **/ @Override protected boolean shouldDiscardNativeInstance() { long currentNativeInstance = mInputShader != null ? mInputShader.getNativeInstance() : 0; protected boolean shouldDiscardNativeInstance(boolean filterFromPaint) { long currentNativeInstance = mInputShader != null ? mInputShader.getNativeInstance(filterFromPaint) : 0; return mNativeInputShader != currentNativeInstance; } Loading
graphics/java/android/graphics/ComposeShader.java +6 −6 Original line number Diff line number Diff line Loading @@ -86,18 +86,18 @@ public class ComposeShader extends Shader { /** @hide */ @Override protected long createNativeInstance(long nativeMatrix) { mNativeInstanceShaderA = mShaderA.getNativeInstance(); mNativeInstanceShaderB = mShaderB.getNativeInstance(); protected long createNativeInstance(long nativeMatrix, boolean filterFromPaint) { mNativeInstanceShaderA = mShaderA.getNativeInstance(filterFromPaint); mNativeInstanceShaderB = mShaderB.getNativeInstance(filterFromPaint); return nativeCreate(nativeMatrix, mShaderA.getNativeInstance(), mShaderB.getNativeInstance(), mPorterDuffMode); } /** @hide */ @Override protected boolean shouldDiscardNativeInstance() { return mShaderA.getNativeInstance() != mNativeInstanceShaderA || mShaderB.getNativeInstance() != mNativeInstanceShaderB; protected boolean shouldDiscardNativeInstance(boolean filterFromPaint) { return mShaderA.getNativeInstance(filterFromPaint) != mNativeInstanceShaderA || mShaderB.getNativeInstance(filterFromPaint) != mNativeInstanceShaderB; } private static native long nativeCreate(long nativeMatrix, Loading
graphics/java/android/graphics/LinearGradient.java +1 −1 Original line number Diff line number Diff line Loading @@ -154,7 +154,7 @@ public class LinearGradient extends Shader { /** @hide */ @Override protected long createNativeInstance(long nativeMatrix) { protected long createNativeInstance(long nativeMatrix, boolean filterFromPaint) { return nativeCreate(nativeMatrix, mX0, mY0, mX1, mY1, mColorLongs, mPositions, mTileMode.nativeInt, colorSpace().getNativeInstance()); Loading
graphics/java/android/graphics/Paint.java +2 −1 Original line number Diff line number Diff line Loading @@ -698,7 +698,8 @@ public class Paint { */ @UnsupportedAppUsage public synchronized long getNativeInstance() { long newNativeShader = mShader == null ? 0 : mShader.getNativeInstance(); boolean filter = isFilterBitmap(); long newNativeShader = mShader == null ? 0 : mShader.getNativeInstance(filter); if (newNativeShader != mNativeShader) { mNativeShader = newNativeShader; nSetShader(mNativePaint, mNativeShader); Loading