Loading core/jni/android/graphics/NinePatchImpl.cpp +7 −5 Original line number Diff line number Diff line Loading @@ -107,6 +107,13 @@ void NinePatch_Draw(SkCanvas* canvas, const SkRect& bounds, return; } SkPaint defaultPaint; if (NULL == paint) { // matches default dither in NinePatchDrawable.java. defaultPaint.setDither(true); paint = &defaultPaint; } // if our canvas is GL, draw this as a mesh, which will be faster than // in parts (which is faster for raster) if (canvas && canvas->getViewport(NULL)) { Loading Loading @@ -158,11 +165,6 @@ void NinePatch_Draw(SkCanvas* canvas, const SkRect& bounds, if (bitmap.getPixels() == NULL) return; SkPaint defaultPaint; if (NULL == paint) { paint = &defaultPaint; } const bool hasXfer = paint->getXfermode() != NULL; SkRect dst; SkIRect src; Loading graphics/java/android/graphics/drawable/BitmapDrawable.java +2 −1 Original line number Diff line number Diff line Loading @@ -56,7 +56,8 @@ import java.io.IOException; */ public class BitmapDrawable extends Drawable { private static final int DEFAULT_PAINT_FLAGS = Paint.FILTER_BITMAP_FLAG; private static final int DEFAULT_PAINT_FLAGS = Paint.FILTER_BITMAP_FLAG | Paint.DITHER_FLAG; private BitmapState mBitmapState; private Bitmap mBitmap; private final Rect mDstRect = new Rect(); // Gravity.apply() sets this Loading graphics/java/android/graphics/drawable/DrawableContainer.java +13 −2 Original line number Diff line number Diff line Loading @@ -20,11 +20,22 @@ import android.graphics.*; public class DrawableContainer extends Drawable implements Drawable.Callback { /** * To be proper, we should have a getter for dither (and alpha, etc.) * so that proxy classes like this can save/restore their delegates' * values, but we don't have getters. Since we do have setters * (e.g. setDither), which this proxy forwards on, we have to have some * default/initial setting. * * The initial setting for dither is now true, since it almost always seems * to improve the quality at negligible cost. */ private static final boolean DEFAULT_DITHER = true; private DrawableContainerState mDrawableContainerState; private Drawable mCurrDrawable; private int mAlpha = 0xFF; private ColorFilter mColorFilter; private boolean mDither; private boolean mDither = DEFAULT_DITHER; private int mCurIndex = -1; private boolean mMutated; Loading graphics/java/android/graphics/drawable/NinePatchDrawable.java +11 −6 Original line number Diff line number Diff line Loading @@ -36,6 +36,8 @@ import java.io.InputStream; * */ public class NinePatchDrawable extends Drawable { // dithering helps a lot, and is pretty cheap, so default is true private static final boolean DEFAULT_DITHER = true; private NinePatchState mNinePatchState; private NinePatch mNinePatch; private Rect mPadding; Loading Loading @@ -101,7 +103,11 @@ public class NinePatchDrawable extends Drawable { mNinePatch = state.mNinePatch; mPadding = state.mPadding; mTargetDensity = state.mTargetDensity; if (state.mDither) setDither(state.mDither); if (DEFAULT_DITHER != state.mDither) { // avoid calling the setter unless we need to, since it does a // lazy allocation of a paint setDither(state.mDither); } if (mNinePatch != null) { computeBitmapSize(); } Loading Loading @@ -215,7 +221,8 @@ public class NinePatchDrawable extends Drawable { } final boolean dither = a.getBoolean( com.android.internal.R.styleable.NinePatchDrawable_dither, false); com.android.internal.R.styleable.NinePatchDrawable_dither, DEFAULT_DITHER); final BitmapFactory.Options options = new BitmapFactory.Options(); if (dither) { options.inDither = false; Loading Loading @@ -251,12 +258,10 @@ public class NinePatchDrawable extends Drawable { a.recycle(); } public Paint getPaint() { if (mPaint == null) { mPaint = new Paint(); // dithering helps a lot, and is pretty cheap, so default on mPaint.setDither(true); mPaint.setDither(DEFAULT_DITHER); } return mPaint; } Loading Loading @@ -327,7 +332,7 @@ public class NinePatchDrawable extends Drawable { int mTargetDensity = DisplayMetrics.DENSITY_DEFAULT; NinePatchState(NinePatch ninePatch, Rect padding) { this(ninePatch, padding, false); this(ninePatch, padding, DEFAULT_DITHER); } NinePatchState(NinePatch ninePatch, Rect rect, boolean dither) { Loading graphics/java/android/graphics/drawable/StateListDrawable.java +13 −1 Original line number Diff line number Diff line Loading @@ -50,6 +50,17 @@ import android.util.StateSet; * @attr ref android.R.styleable#DrawableStates_state_pressed */ public class StateListDrawable extends DrawableContainer { /** * To be proper, we should have a getter for dither (and alpha, etc.) * so that proxy classes like this can save/restore their delegates' * values, but we don't have getters. Since we do have setters * (e.g. setDither), which this proxy forwards on, we have to have some * default/initial setting. * * The initial setting for dither is now true, since it almost always seems * to improve the quality at negligible cost. */ private static final boolean DEFAULT_DITHER = true; private final StateListState mStateListState; private boolean mMutated; Loading Loading @@ -105,7 +116,8 @@ public class StateListDrawable extends DrawableContainer { mStateListState.setConstantSize(a.getBoolean( com.android.internal.R.styleable.StateListDrawable_constantSize, false)); setDither(a.getBoolean(com.android.internal.R.styleable.StateListDrawable_dither, false)); setDither(a.getBoolean(com.android.internal.R.styleable.StateListDrawable_dither, DEFAULT_DITHER)); a.recycle(); Loading Loading
core/jni/android/graphics/NinePatchImpl.cpp +7 −5 Original line number Diff line number Diff line Loading @@ -107,6 +107,13 @@ void NinePatch_Draw(SkCanvas* canvas, const SkRect& bounds, return; } SkPaint defaultPaint; if (NULL == paint) { // matches default dither in NinePatchDrawable.java. defaultPaint.setDither(true); paint = &defaultPaint; } // if our canvas is GL, draw this as a mesh, which will be faster than // in parts (which is faster for raster) if (canvas && canvas->getViewport(NULL)) { Loading Loading @@ -158,11 +165,6 @@ void NinePatch_Draw(SkCanvas* canvas, const SkRect& bounds, if (bitmap.getPixels() == NULL) return; SkPaint defaultPaint; if (NULL == paint) { paint = &defaultPaint; } const bool hasXfer = paint->getXfermode() != NULL; SkRect dst; SkIRect src; Loading
graphics/java/android/graphics/drawable/BitmapDrawable.java +2 −1 Original line number Diff line number Diff line Loading @@ -56,7 +56,8 @@ import java.io.IOException; */ public class BitmapDrawable extends Drawable { private static final int DEFAULT_PAINT_FLAGS = Paint.FILTER_BITMAP_FLAG; private static final int DEFAULT_PAINT_FLAGS = Paint.FILTER_BITMAP_FLAG | Paint.DITHER_FLAG; private BitmapState mBitmapState; private Bitmap mBitmap; private final Rect mDstRect = new Rect(); // Gravity.apply() sets this Loading
graphics/java/android/graphics/drawable/DrawableContainer.java +13 −2 Original line number Diff line number Diff line Loading @@ -20,11 +20,22 @@ import android.graphics.*; public class DrawableContainer extends Drawable implements Drawable.Callback { /** * To be proper, we should have a getter for dither (and alpha, etc.) * so that proxy classes like this can save/restore their delegates' * values, but we don't have getters. Since we do have setters * (e.g. setDither), which this proxy forwards on, we have to have some * default/initial setting. * * The initial setting for dither is now true, since it almost always seems * to improve the quality at negligible cost. */ private static final boolean DEFAULT_DITHER = true; private DrawableContainerState mDrawableContainerState; private Drawable mCurrDrawable; private int mAlpha = 0xFF; private ColorFilter mColorFilter; private boolean mDither; private boolean mDither = DEFAULT_DITHER; private int mCurIndex = -1; private boolean mMutated; Loading
graphics/java/android/graphics/drawable/NinePatchDrawable.java +11 −6 Original line number Diff line number Diff line Loading @@ -36,6 +36,8 @@ import java.io.InputStream; * */ public class NinePatchDrawable extends Drawable { // dithering helps a lot, and is pretty cheap, so default is true private static final boolean DEFAULT_DITHER = true; private NinePatchState mNinePatchState; private NinePatch mNinePatch; private Rect mPadding; Loading Loading @@ -101,7 +103,11 @@ public class NinePatchDrawable extends Drawable { mNinePatch = state.mNinePatch; mPadding = state.mPadding; mTargetDensity = state.mTargetDensity; if (state.mDither) setDither(state.mDither); if (DEFAULT_DITHER != state.mDither) { // avoid calling the setter unless we need to, since it does a // lazy allocation of a paint setDither(state.mDither); } if (mNinePatch != null) { computeBitmapSize(); } Loading Loading @@ -215,7 +221,8 @@ public class NinePatchDrawable extends Drawable { } final boolean dither = a.getBoolean( com.android.internal.R.styleable.NinePatchDrawable_dither, false); com.android.internal.R.styleable.NinePatchDrawable_dither, DEFAULT_DITHER); final BitmapFactory.Options options = new BitmapFactory.Options(); if (dither) { options.inDither = false; Loading Loading @@ -251,12 +258,10 @@ public class NinePatchDrawable extends Drawable { a.recycle(); } public Paint getPaint() { if (mPaint == null) { mPaint = new Paint(); // dithering helps a lot, and is pretty cheap, so default on mPaint.setDither(true); mPaint.setDither(DEFAULT_DITHER); } return mPaint; } Loading Loading @@ -327,7 +332,7 @@ public class NinePatchDrawable extends Drawable { int mTargetDensity = DisplayMetrics.DENSITY_DEFAULT; NinePatchState(NinePatch ninePatch, Rect padding) { this(ninePatch, padding, false); this(ninePatch, padding, DEFAULT_DITHER); } NinePatchState(NinePatch ninePatch, Rect rect, boolean dither) { Loading
graphics/java/android/graphics/drawable/StateListDrawable.java +13 −1 Original line number Diff line number Diff line Loading @@ -50,6 +50,17 @@ import android.util.StateSet; * @attr ref android.R.styleable#DrawableStates_state_pressed */ public class StateListDrawable extends DrawableContainer { /** * To be proper, we should have a getter for dither (and alpha, etc.) * so that proxy classes like this can save/restore their delegates' * values, but we don't have getters. Since we do have setters * (e.g. setDither), which this proxy forwards on, we have to have some * default/initial setting. * * The initial setting for dither is now true, since it almost always seems * to improve the quality at negligible cost. */ private static final boolean DEFAULT_DITHER = true; private final StateListState mStateListState; private boolean mMutated; Loading Loading @@ -105,7 +116,8 @@ public class StateListDrawable extends DrawableContainer { mStateListState.setConstantSize(a.getBoolean( com.android.internal.R.styleable.StateListDrawable_constantSize, false)); setDither(a.getBoolean(com.android.internal.R.styleable.StateListDrawable_dither, false)); setDither(a.getBoolean(com.android.internal.R.styleable.StateListDrawable_dither, DEFAULT_DITHER)); a.recycle(); Loading