Revert "Revert "add SK_ATTR_DEPRECATED -- will need to disable for chrome, since it triggers a warning""

This reverts commit 1e787c38fa71f2a21fd728f1b1d620b9b09b0d3d.

BUG=

Review URL: https://codereview.chromium.org/54603004

git-svn-id: http://skia.googlecode.com/svn/trunk@12057 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/bench/BitmapRectBench.cpp b/bench/BitmapRectBench.cpp
index 104cb24..6029aeb 100644
--- a/bench/BitmapRectBench.cpp
+++ b/bench/BitmapRectBench.cpp
@@ -39,18 +39,20 @@
  */
 
 class BitmapRectBench : public SkBenchmark {
-    SkBitmap    fBitmap;
-    bool        fDoFilter;
-    bool        fSlightMatrix;
-    uint8_t     fAlpha;
-    SkString    fName;
-    SkRect      fSrcR, fDstR;
+    SkBitmap                fBitmap;
+    bool                    fSlightMatrix;
+    uint8_t                 fAlpha;
+    SkPaint::FilterLevel    fFilterLevel;
+    SkString                fName;
+    SkRect                  fSrcR, fDstR;
+
     static const int kWidth = 128;
     static const int kHeight = 128;
 public:
-    BitmapRectBench(U8CPU alpha, bool doFilter, bool slightMatrix)  {
+    BitmapRectBench(U8CPU alpha, SkPaint::FilterLevel filterLevel,
+                    bool slightMatrix)  {
         fAlpha = SkToU8(alpha);
-        fDoFilter = doFilter;
+        fFilterLevel = filterLevel;
         fSlightMatrix = slightMatrix;
 
         fBitmap.setConfig(SkBitmap::kARGB_8888_Config, kWidth, kHeight);
@@ -59,7 +61,8 @@
 protected:
     virtual const char* onGetName() SK_OVERRIDE {
         fName.printf("bitmaprect_%02X_%sfilter_%s",
-                     fAlpha, fDoFilter ? "" : "no",
+                     fAlpha,
+                     SkPaint::kNone_FilterLevel == fFilterLevel ? "no" : "",
                      fSlightMatrix ? "trans" : "identity");
         return fName.c_str();
     }
@@ -89,7 +92,7 @@
 
         SkPaint paint;
         this->setupPaint(&paint);
-        paint.setFilterBitmap(fDoFilter);
+        paint.setFilterLevel(fFilterLevel);
         paint.setAlpha(fAlpha);
 
         for (int i = 0; i < this->getLoops(); i++) {
@@ -101,10 +104,10 @@
     typedef SkBenchmark INHERITED;
 };
 
-DEF_BENCH(return new BitmapRectBench(0xFF, false, false))
-DEF_BENCH(return new BitmapRectBench(0x80, false, false))
-DEF_BENCH(return new BitmapRectBench(0xFF, true, false))
-DEF_BENCH(return new BitmapRectBench(0x80, true, false))
+DEF_BENCH(return new BitmapRectBench(0xFF, SkPaint::kNone_FilterLevel, false))
+DEF_BENCH(return new BitmapRectBench(0x80, SkPaint::kNone_FilterLevel, false))
+DEF_BENCH(return new BitmapRectBench(0xFF, SkPaint::kLow_FilterLevel, false))
+DEF_BENCH(return new BitmapRectBench(0x80, SkPaint::kLow_FilterLevel, false))
 
-DEF_BENCH(return new BitmapRectBench(0xFF, false, true))
-DEF_BENCH(return new BitmapRectBench(0xFF, true, true))
+DEF_BENCH(return new BitmapRectBench(0xFF, SkPaint::kNone_FilterLevel, true))
+DEF_BENCH(return new BitmapRectBench(0xFF, SkPaint::kLow_FilterLevel, true))
diff --git a/bench/GameBench.cpp b/bench/GameBench.cpp
index 7812285..3d371be 100644
--- a/bench/GameBench.cpp
+++ b/bench/GameBench.cpp
@@ -134,11 +134,11 @@
 
         SkPaint p;
         p.setColor(0xFF000000);
-        p.setFilterBitmap(true);
+        p.setFilterLevel(SkPaint::kLow_FilterLevel);
 
         SkPaint p2;         // for drawVertices path
         p2.setColor(0xFF000000);
-        p2.setFilterBitmap(true);
+        p2.setFilterLevel(SkPaint::kLow_FilterLevel);
         p2.setShader(SkShader::CreateBitmapShader(fAtlas,
                                                   SkShader::kClamp_TileMode,
                                                   SkShader::kClamp_TileMode))->unref();
diff --git a/bench/Matrix44Bench.cpp b/bench/Matrix44Bench.cpp
index a4b36d8..1316997 100644
--- a/bench/Matrix44Bench.cpp
+++ b/bench/Matrix44Bench.cpp
@@ -13,7 +13,7 @@
 class Matrix44Bench : public SkBenchmark {
     SkString    fName;
 public:
-    Matrix44Bench(const char name[])  {
+    Matrix44Bench(const char name[]) {
         fName.printf("matrix44_%s", name);
         fIsRendering = false;
     }
@@ -39,7 +39,12 @@
 
 class EqualsMatrix44Bench : public Matrix44Bench {
 public:
-    EqualsMatrix44Bench() : INHERITED("equals") {
+    EqualsMatrix44Bench()
+        : INHERITED("equals")
+        , fM0(SkMatrix44::kIdentity_Constructor)
+        , fM1(SkMatrix44::kIdentity_Constructor)
+        , fM2(SkMatrix44::kIdentity_Constructor)
+    {
         fM1.set(0, 0, 0);
         fM2.set(3, 3, 0);
     }
@@ -58,7 +63,10 @@
 
 class SetIdentityMatrix44Bench : public Matrix44Bench {
 public:
-    SetIdentityMatrix44Bench() : INHERITED("setidentity") {
+    SetIdentityMatrix44Bench()
+        : INHERITED("setidentity")
+        , mat(SkMatrix44::kIdentity_Constructor)
+    {
         double rowMajor[16] =
                 { 1, 2, 3, 4,
                   5, 6, 7, 8,
@@ -79,7 +87,10 @@
 
 class PreScaleMatrix44Bench : public Matrix44Bench {
 public:
-    PreScaleMatrix44Bench() : INHERITED("prescale") {
+    PreScaleMatrix44Bench()
+        : INHERITED("prescale")
+        , fM0(SkMatrix44::kUninitialized_Constructor)
+    {
         fX = fY = fZ = SkDoubleToMScalar(1.5);
     }
 protected:
@@ -97,7 +108,11 @@
 
 class InvertMatrix44Bench : public Matrix44Bench {
 public:
-    InvertMatrix44Bench() : INHERITED("invert") {
+    InvertMatrix44Bench()
+        : INHERITED("invert")
+        , fM0(SkMatrix44::kUninitialized_Constructor)
+        , fM1(SkMatrix44::kUninitialized_Constructor)
+    {
         fM0.set(0, 0, -1.1);
         fM0.set(0, 1, 2.1);
         fM0.set(0, 2, -3.1);
@@ -128,7 +143,11 @@
 
 class InvertAffineMatrix44Bench : public Matrix44Bench {
 public:
-    InvertAffineMatrix44Bench() : INHERITED("invertaffine") {
+    InvertAffineMatrix44Bench()
+        : INHERITED("invertaffine")
+        , fM0(SkMatrix44::kIdentity_Constructor)
+        , fM1(SkMatrix44::kUninitialized_Constructor)
+    {
         fM0.set(0, 0, -1.1);
         fM0.set(0, 1, 2.1);
         fM0.set(0, 2, -3.1);
@@ -156,7 +175,11 @@
 
 class InvertScaleTranslateMatrix44Bench : public Matrix44Bench {
 public:
-    InvertScaleTranslateMatrix44Bench() : INHERITED("invertscaletranslate") {
+    InvertScaleTranslateMatrix44Bench()
+        : INHERITED("invertscaletranslate")
+        , fM0(SkMatrix44::kIdentity_Constructor)
+        , fM1(SkMatrix44::kUninitialized_Constructor)
+    {
         fM0.set(0, 0, -1.1);
         fM0.set(0, 3, 4.1);
 
@@ -179,7 +202,11 @@
 
 class InvertTranslateMatrix44Bench : public Matrix44Bench {
 public:
-    InvertTranslateMatrix44Bench() : INHERITED("inverttranslate") {
+    InvertTranslateMatrix44Bench()
+        : INHERITED("inverttranslate")
+        , fM0(SkMatrix44::kIdentity_Constructor)
+        , fM1(SkMatrix44::kUninitialized_Constructor)
+    {
         fM0.set(0, 3, 4.1);
         fM0.set(1, 3, 8.1);
         fM0.set(2, 3, -12.1);
@@ -197,7 +224,10 @@
 
 class PostScaleMatrix44Bench : public Matrix44Bench {
 public:
-    PostScaleMatrix44Bench() : INHERITED("postscale") {
+    PostScaleMatrix44Bench()
+        : INHERITED("postscale")
+        , fM0(SkMatrix44::kUninitialized_Constructor)
+    {
         fX = fY = fZ = SkDoubleToMScalar(1.5);
     }
 protected:
@@ -215,7 +245,12 @@
 
 class SetConcatMatrix44Bench : public Matrix44Bench {
 public:
-    SetConcatMatrix44Bench() : INHERITED("setconcat") {
+    SetConcatMatrix44Bench()
+        : INHERITED("setconcat")
+        , fM0(SkMatrix44::kUninitialized_Constructor)
+        , fM1(SkMatrix44::kUninitialized_Constructor)
+        , fM2(SkMatrix44::kUninitialized_Constructor)
+{
         fX = fY = fZ = SkDoubleToMScalar(1.5);
         fM1.setScale(fX, fY, fZ);
         fM2.setTranslate(fX, fY, fZ);
@@ -235,7 +270,10 @@
 
 class GetTypeMatrix44Bench : public Matrix44Bench {
 public:
-    GetTypeMatrix44Bench() : INHERITED("gettype") {}
+    GetTypeMatrix44Bench()
+        : INHERITED("gettype")
+        , fMatrix(SkMatrix44::kIdentity_Constructor)
+    {}
 protected:
     // Putting random generation of the matrix inside performTest()
     // would help us avoid anomalous runs, but takes up 25% or
diff --git a/bench/SkBenchmark.cpp b/bench/SkBenchmark.cpp
index e11ebcf..432d5be 100644
--- a/bench/SkBenchmark.cpp
+++ b/bench/SkBenchmark.cpp
@@ -19,6 +19,7 @@
 SkBenchmark::SkBenchmark() {
     fForceAlpha = 0xFF;
     fForceAA = true;
+    fForceFilter = false;
     fDither = SkTriState::kDefault;
     fIsRendering = true;
     fOrMask = fClearMask = 0;
@@ -48,7 +49,8 @@
 void SkBenchmark::setupPaint(SkPaint* paint) {
     paint->setAlpha(fForceAlpha);
     paint->setAntiAlias(fForceAA);
-    paint->setFilterBitmap(fForceFilter);
+    paint->setFilterLevel(fForceFilter ? SkPaint::kLow_FilterLevel
+                                       : SkPaint::kNone_FilterLevel);
 
     paint->setFlags((paint->getFlags() & ~fClearMask) | fOrMask);
 
diff --git a/bench/TileBench.cpp b/bench/TileBench.cpp
index 03a758c..4619d8b 100644
--- a/bench/TileBench.cpp
+++ b/bench/TileBench.cpp
@@ -85,7 +85,8 @@
     virtual void onDraw(SkCanvas* canvas) {
         SkPaint paint(fPaint);
         this->setupPaint(&paint);
-        paint.setFilterBitmap(fDoFilter);
+        paint.setFilterLevel(fDoFilter ? SkPaint::kLow_FilterLevel
+                                       : SkPaint::kNone_FilterLevel);
         if (fDoTrans) {
             paint.setColor(SkColorSetARGBMacro(0x80, 0xFF, 0xFF, 0xFF));
         }
diff --git a/gm/bicubicfilter.cpp b/gm/bicubicfilter.cpp
index c3f80df..7eb0aee 100644
--- a/gm/bicubicfilter.cpp
+++ b/gm/bicubicfilter.cpp
@@ -57,7 +57,7 @@
         SkSize scale = SkSize::Make(sk32, sk32);
         canvas->save();
         canvas->scale(sk32, sk32);
-        bilinearPaint.setFilterBitmap(true);
+        bilinearPaint.setFilterLevel(SkPaint::kLow_FilterLevel);
         canvas->drawBitmap(fCheckerboard, 0, 0, &bilinearPaint);
         canvas->restore();
         SkAutoTUnref<SkImageFilter> bicubic(SkBicubicImageFilter::CreateMitchell(scale));
diff --git a/gm/bigmatrix.cpp b/gm/bigmatrix.cpp
index d414486..9b49a64 100644
--- a/gm/bigmatrix.cpp
+++ b/gm/bigmatrix.cpp
@@ -80,7 +80,7 @@
         shader->setLocalMatrix(s);
         paint.setShader(shader)->unref();
         paint.setAntiAlias(false);
-        paint.setFilterBitmap(true);
+        paint.setFilterLevel(SkPaint::kLow_FilterLevel);
         rect.setLTRB(pt.fX - small, pt.fY - small,
                      pt.fX + small, pt.fY + small);
         canvas->drawRect(rect, paint);
diff --git a/gm/bitmapfilters.cpp b/gm/bitmapfilters.cpp
index d74dbf5..f0153e4 100644
--- a/gm/bitmapfilters.cpp
+++ b/gm/bitmapfilters.cpp
@@ -39,7 +39,7 @@
 static SkScalar draw_set(SkCanvas* c, const SkBitmap& bm, SkScalar x,
                          SkPaint* p) {
     x += draw_bm(c, bm, x, 0, p);
-    p->setFilterBitmap(true);
+    p->setFilterLevel(SkPaint::kLow_FilterLevel);
     x += draw_bm(c, bm, x, 0, p);
     p->setDither(true);
     return x + draw_bm(c, bm, x, 0, p);
diff --git a/gm/bitmapmatrix.cpp b/gm/bitmapmatrix.cpp
index f89cc97..4609891 100644
--- a/gm/bitmapmatrix.cpp
+++ b/gm/bitmapmatrix.cpp
@@ -81,7 +81,7 @@
             // SkGpuDevice::drawPath() -> SkGpuDevice::drawWithMaskFilter()
             SkPaint paint;
 
-            paint.setFilterBitmap(true);
+            paint.setFilterLevel(SkPaint::kLow_FilterLevel);
 
             SkMaskFilter* mf = SkBlurMaskFilter::Create(
                 SkBlurMaskFilter::kNormal_BlurStyle,
diff --git a/gm/bleed.cpp b/gm/bleed.cpp
index 0d09394..aaca62b 100644
--- a/gm/bleed.cpp
+++ b/gm/bleed.cpp
@@ -91,7 +91,7 @@
         SkRect dst = SkRect::MakeXYWH(0, 0, SkIntToScalar(kBlockSize), SkIntToScalar(kBlockSize));
 
         SkPaint paint;
-        paint.setFilterBitmap(filter);
+        paint.setFilterLevel(filter ? SkPaint::kLow_FilterLevel : SkPaint::kNone_FilterLevel);
 
         canvas->save();
         canvas->translate(SkIntToScalar(transX), SkIntToScalar(transY));
@@ -108,7 +108,7 @@
         SkRect dst = SkRect::MakeXYWH(0, 0, SkIntToScalar(kBlockSize), SkIntToScalar(kBlockSize));
 
         SkPaint paint;
-        paint.setFilterBitmap(filter);
+        paint.setFilterLevel(filter ? SkPaint::kLow_FilterLevel : SkPaint::kNone_FilterLevel);
 
         canvas->save();
         canvas->translate(SkIntToScalar(transX), SkIntToScalar(transY));
@@ -125,7 +125,7 @@
         SkRect dst = SkRect::MakeXYWH(0, 0, SkIntToScalar(kBlockSize), SkIntToScalar(kBlockSize));
 
         SkPaint paint;
-        paint.setFilterBitmap(filter);
+        paint.setFilterLevel(filter ? SkPaint::kLow_FilterLevel : SkPaint::kNone_FilterLevel);
 
         canvas->save();
         canvas->translate(SkIntToScalar(transX), SkIntToScalar(transY));
@@ -142,7 +142,7 @@
         SkRect dst = SkRect::MakeXYWH(0, 0, SkIntToScalar(kBlockSize), SkIntToScalar(kBlockSize));
 
         SkPaint paint;
-        paint.setFilterBitmap(filter);
+        paint.setFilterLevel(filter ? SkPaint::kLow_FilterLevel : SkPaint::kNone_FilterLevel);
         SkMaskFilter* mf = SkBlurMaskFilter::Create(SkBlurMaskFilter::kNormal_BlurStyle,
                                          SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(3)));
         paint.setMaskFilter(mf)->unref();
diff --git a/gm/blurquickreject.cpp b/gm/blurquickreject.cpp
index 070a59c..431f022 100644
--- a/gm/blurquickreject.cpp
+++ b/gm/blurquickreject.cpp
@@ -55,7 +55,7 @@
         hairlinePaint.setStrokeWidth(0);
 
         SkPaint blurPaint;
-        blurPaint.setFilterBitmap(true);
+        blurPaint.setFilterLevel(SkPaint::kLow_FilterLevel);
         SkMaskFilter* mf = SkBlurMaskFilter::Create(SkBlurMaskFilter::kNormal_BlurStyle,
                                                     SkBlurMask::ConvertRadiusToSigma(kBlurRadius));
         blurPaint.setMaskFilter(mf)->unref();
diff --git a/gm/drawbitmaprect.cpp b/gm/drawbitmaprect.cpp
index 106f6d3..c880063 100644
--- a/gm/drawbitmaprect.cpp
+++ b/gm/drawbitmaprect.cpp
@@ -163,7 +163,7 @@
             SkBitmap bm;
 
             bm = make_chessbm(5, 5);
-            paint.setFilterBitmap(true);
+            paint.setFilterLevel(SkPaint::kLow_FilterLevel);
 
             srcRect.setXYWH(1, 1, 3, 3);
             SkMaskFilter* mf = SkBlurMaskFilter::Create(
diff --git a/gm/giantbitmap.cpp b/gm/giantbitmap.cpp
index 0d342b8..ab75dc7 100644
--- a/gm/giantbitmap.cpp
+++ b/gm/giantbitmap.cpp
@@ -110,7 +110,7 @@
         s->setLocalMatrix(m);
 
         paint.setShader(s)->unref();
-        paint.setFilterBitmap(fDoFilter);
+        paint.setFilterLevel(fDoFilter ? SkPaint::kLow_FilterLevel : SkPaint::kNone_FilterLevel);
 
         canvas->translate(SkIntToScalar(50), SkIntToScalar(50));
 
diff --git a/gm/ninepatchstretch.cpp b/gm/ninepatchstretch.cpp
index 551f020..bc6f13d 100644
--- a/gm/ninepatchstretch.cpp
+++ b/gm/ninepatchstretch.cpp
@@ -93,7 +93,7 @@
         SkScalar y = SkIntToScalar(100);
 
         SkPaint paint;
-        paint.setFilterBitmap(true);
+        paint.setFilterLevel(SkPaint::kLow_FilterLevel);
 
         for (int iy = 0; iy < 2; ++iy) {
             for (int ix = 0; ix < 2; ++ix) {
diff --git a/gm/shadertext2.cpp b/gm/shadertext2.cpp
index e760e54..a7da436 100644
--- a/gm/shadertext2.cpp
+++ b/gm/shadertext2.cpp
@@ -102,7 +102,7 @@
         SkPaint fillPaint;
         fillPaint.setAntiAlias(true);
         fillPaint.setTextSize(SkIntToScalar(kPointSize));
-        fillPaint.setFilterBitmap(true);
+        fillPaint.setFilterLevel(SkPaint::kLow_FilterLevel);
         fillPaint.setShader(shader);
 
         SkPaint outlinePaint;
diff --git a/gm/shadertext3.cpp b/gm/shadertext3.cpp
index fa327c8..36abf9f 100644
--- a/gm/shadertext3.cpp
+++ b/gm/shadertext3.cpp
@@ -74,7 +74,7 @@
 
         SkPaint bmpPaint;
         bmpPaint.setAntiAlias(true);
-        bmpPaint.setFilterBitmap(true);
+        bmpPaint.setFilterLevel(SkPaint::kLow_FilterLevel);
         bmpPaint.setAlpha(0x80);
         canvas->drawBitmap(bmp, 5.f, 5.f, &bmpPaint);
 
@@ -113,7 +113,7 @@
                 SkPaint fillPaint;
                 fillPaint.setAntiAlias(true);
                 fillPaint.setTextSize(SkIntToScalar(kPointSize));
-                fillPaint.setFilterBitmap(true);
+                fillPaint.setFilterLevel(SkPaint::kLow_FilterLevel);
                 fillPaint.setShader(shader);
 
                 canvas->drawText(kText, kTextLen, 0, 0, fillPaint);
diff --git a/gm/tilemodes.cpp b/gm/tilemodes.cpp
index 5a5fbbe..dcfc133 100644
--- a/gm/tilemodes.cpp
+++ b/gm/tilemodes.cpp
@@ -47,7 +47,7 @@
                   SkShader::TileMode tmx, SkShader::TileMode tmy) {
     SkShader* shader = SkShader::CreateBitmapShader(bm, tmx, tmy);
     paint->setShader(shader)->unref();
-    paint->setFilterBitmap(filter);
+    paint->setFilterLevel(filter ? SkPaint::kLow_FilterLevel : SkPaint::kNone_FilterLevel);
 }
 
 static const SkBitmap::Config gConfigs[] = {
diff --git a/include/core/SkBitmap.h b/include/core/SkBitmap.h
index 3e22069..59b6482 100644
--- a/include/core/SkBitmap.h
+++ b/include/core/SkBitmap.h
@@ -96,20 +96,19 @@
     */
     bool isNull() const { return NULL == fPixelRef; }
 
-    /** Return the config for the bitmap.
-    */
+    /** Return the config for the bitmap. */
     Config  config() const { return (Config)fConfig; }
-    /** DEPRECATED, use config()
-    */
+
+    SK_ATTR_DEPRECATED("use config()")
     Config  getConfig() const { return this->config(); }
-    /** Return the bitmap's width, in pixels.
-    */
+
+    /** Return the bitmap's width, in pixels. */
     int width() const { return fWidth; }
-    /** Return the bitmap's height, in pixels.
-    */
+
+    /** Return the bitmap's height, in pixels. */
     int height() const { return fHeight; }
-    /** Return the number of bytes between subsequent rows of the bitmap.
-    */
+
+    /** Return the number of bytes between subsequent rows of the bitmap. */
     size_t rowBytes() const { return fRowBytes; }
 
     /** Return the shift amount per pixel (i.e. 0 for 1-byte per pixel, 1 for
@@ -189,9 +188,7 @@
         return SkAlphaTypeIsOpaque(this->alphaType());
     }
 
-    /**
-     *  DEPRECATED: use setAlpahType() instead.
-     */
+    SK_ATTR_DEPRECATED("use setAlphaType")
     void setIsOpaque(bool opaque) {
         this->setAlphaType(opaque ? kOpaque_SkAlphaType : kPremul_SkAlphaType);
     }
@@ -419,7 +416,7 @@
      */
     void eraseARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b) const;
 
-    // DEPRECATED -- call eraseColor or eraseARGB
+    SK_ATTR_DEPRECATED("use eraseARGB or eraseColor")
     void eraseRGB(U8CPU r, U8CPU g, U8CPU b) const {
         this->eraseARGB(0xFF, r, g, b);
     }
@@ -553,9 +550,7 @@
      */
     bool canCopyTo(Config newConfig) const;
 
-    /**
-     *  DEPRECATED -- will be replaced with API on SkPaint
-     */
+    SK_ATTR_DEPRECATED("use setFilterLevel on SkPaint")
     void buildMipMap(bool forceRebuild = false);
 
 #ifdef SK_BUILD_FOR_ANDROID
diff --git a/include/core/SkBitmapDevice.h b/include/core/SkBitmapDevice.h
index a288f8a..530b85c 100644
--- a/include/core/SkBitmapDevice.h
+++ b/include/core/SkBitmapDevice.h
@@ -87,7 +87,7 @@
 
     /** Return the bitmap config of the device's pixels
     */
-    virtual SkBitmap::Config config() const SK_OVERRIDE { return fBitmap.getConfig(); }
+    virtual SkBitmap::Config config() const SK_OVERRIDE { return fBitmap.config(); }
 
     /**
      *  DEPRECATED: This will be made protected once WebKit stops using it.
diff --git a/include/core/SkCanvas.h b/include/core/SkCanvas.h
index dc3953e..d0b8fc9 100644
--- a/include/core/SkCanvas.h
+++ b/include/core/SkCanvas.h
@@ -57,7 +57,7 @@
     */
     explicit SkCanvas(SkBaseDevice* device);
 
-    /** Deprecated - Construct a canvas with the specified bitmap to draw into.
+    /** Construct a canvas with the specified bitmap to draw into.
         @param bitmap   Specifies a bitmap for the canvas to draw into. Its
                         structure are copied to the canvas.
     */
@@ -942,11 +942,10 @@
     */
     ClipType getClipType() const;
 
-    /** Return the current device clip (concatenation of all clip calls).
+    /** DEPRECATED -- need to move this guy to private/friend
+     *  Return the current device clip (concatenation of all clip calls).
      *  This does not account for the translate in any of the devices.
      *  @return the current device clip (concatenation of all clip calls).
-     *
-     *  DEPRECATED -- call getClipDeviceBounds() instead.
      */
     const SkRegion& getTotalClip() const;
 
@@ -1034,8 +1033,8 @@
     // can perform copy-on-write or invalidate any cached images
     void predrawNotify();
 
-    /** DEPRECATED -- use constructor(device)
-
+    /**
+     DEPRECATED -- need to remove when subclass stop relying on it.
      Marked as 'protected' to avoid new clients using this before we can
      completely remove it.
 
diff --git a/include/core/SkDevice.h b/include/core/SkDevice.h
index ed1c8fd..22a56d0 100644
--- a/include/core/SkDevice.h
+++ b/include/core/SkDevice.h
@@ -90,8 +90,9 @@
     */
     virtual bool isOpaque() const = 0;
 
-    /** DEPRECATED - Return the bitmap config of the device's pixels
+    /** Return the bitmap config of the device's pixels
      */
+    SK_ATTR_DEPRECATED("want to hide configness of the device -- don't use")
     virtual SkBitmap::Config config() const = 0;
 
     /** Return the bitmap associated with this device. Call this each time you need
diff --git a/include/core/SkPaint.h b/include/core/SkPaint.h
index 6c3a10f..1244795 100644
--- a/include/core/SkPaint.h
+++ b/include/core/SkPaint.h
@@ -304,18 +304,18 @@
     void setFilterLevel(FilterLevel);
 
     /**
-     *  DEPRECATED: use setFilterLevel instead.
      *  If the predicate is true, set the filterLevel to Low, else set it to
      *  None.
      */
+    SK_ATTR_DEPRECATED("use setFilterLevel")
     void setFilterBitmap(bool doFilter) {
         this->setFilterLevel(doFilter ? kLow_FilterLevel : kNone_FilterLevel);
     }
 
     /**
-     *  DEPRECATED: call getFilterLevel() instead.
      *  Returns true if getFilterLevel() returns anything other than None.
      */
+    SK_ATTR_DEPRECATED("use getFilterLevel")
     bool isFilterBitmap() const {
         return kNone_FilterLevel != this->getFilterLevel();
     }
@@ -638,9 +638,8 @@
     /**
      *  Returns true if there is an annotation installed on this paint, and
      *  the annotation specifics no-drawing.
-     *
-     *  Deprecated: all annotations are no-draw.  Please just check getAnnotation().
      */
+    SK_ATTR_DEPRECATED("use getAnnotation and check for non-null")
     bool isNoDrawAnnotation() const { return this->getAnnotation() != NULL; }
 
     /**
diff --git a/include/core/SkPath.h b/include/core/SkPath.h
index 02e3423..785eb77 100644
--- a/include/core/SkPath.h
+++ b/include/core/SkPath.h
@@ -123,7 +123,6 @@
     void setConvexity(Convexity);
 
     /**
-     *  DEPRECATED: use getConvexity()
      *  Returns true if the path is flagged as being convex. This is not a
      *  confirmed by any analysis, it is just the value set earlier.
      */
@@ -132,12 +131,12 @@
     }
 
     /**
-     *  DEPRECATED: use setConvexity()
      *  Set the isConvex flag to true or false. Convex paths may draw faster if
      *  this flag is set, though setting this to true on a path that is in fact
      *  not convex can give undefined results when drawn. Paths default to
      *  isConvex == false
      */
+    SK_ATTR_DEPRECATED("use setConvexity")
     void setIsConvex(bool isConvex) {
         this->setConvexity(isConvex ? kConvex_Convexity : kConcave_Convexity);
     }
diff --git a/include/core/SkPoint.h b/include/core/SkPoint.h
index 5eca72f..b94f730 100644
--- a/include/core/SkPoint.h
+++ b/include/core/SkPoint.h
@@ -353,7 +353,7 @@
     /** Return true if this point and the given point are far enough apart
         such that a vector between them would be non-degenerate.
 
-        WARNING: Unlike the deprecated version of equalsWithinTolerance(),
+        WARNING: Unlike the explicit tolerance version,
         this method does not use componentwise comparison.  Instead, it
         uses a comparison designed to match judgments elsewhere regarding
         degeneracy ("points A and B are so close that the vector between them
@@ -363,10 +363,7 @@
         return !CanNormalize(fX - p.fX, fY - p.fY);
     }
 
-    /** DEPRECATED: Return true if this and the given point are componentwise
-        within tolerance "tol".
-
-        WARNING: There is no guarantee that the result will reflect judgments
+    /** WARNING: There is no guarantee that the result will reflect judgments
         elsewhere regarding degeneracy ("points A and B are so close that the
         vector between them is essentially zero").
     */
diff --git a/include/core/SkPostConfig.h b/include/core/SkPostConfig.h
index 0c2358a..61998f6 100644
--- a/include/core/SkPostConfig.h
+++ b/include/core/SkPostConfig.h
@@ -374,6 +374,11 @@
     #define SK_UNUSED SK_ATTRIBUTE(unused)
 #endif
 
+#if !defined(SK_ATTR_DEPRECATED)
+    // we ignore msg for now...
+    #define SK_ATTR_DEPRECATED(msg) SK_ATTRIBUTE(deprecated)
+#endif
+
 //////////////////////////////////////////////////////////////////////
 
 #ifndef SK_PRINTF_LIKE
diff --git a/include/core/SkPreConfig.h b/include/core/SkPreConfig.h
index db40f69..ab995d7 100644
--- a/include/core/SkPreConfig.h
+++ b/include/core/SkPreConfig.h
@@ -14,6 +14,13 @@
     #include "config.h"
 #endif
 
+// Allows embedders that want to disable macros that take arguments to just
+// define that symbol to be one of these
+//
+#define SK_NOTHING_ARG1(arg1)
+#define SK_NOTHING_ARG2(arg1, arg2)
+#define SK_NOTHING_ARG3(arg1, arg2, arg3)
+
 //////////////////////////////////////////////////////////////////////
 
 #if !defined(SK_BUILD_FOR_ANDROID) && !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_PALM) && !defined(SK_BUILD_FOR_WINCE) && !defined(SK_BUILD_FOR_WIN32) && !defined(SK_BUILD_FOR_UNIX) && !defined(SK_BUILD_FOR_MAC) && !defined(SK_BUILD_FOR_SDL) && !defined(SK_BUILD_FOR_BREW) && !defined(SK_BUILD_FOR_NACL)
diff --git a/include/core/SkRect.h b/include/core/SkRect.h
index d9ac3a6..98acb1c 100644
--- a/include/core/SkRect.h
+++ b/include/core/SkRect.h
@@ -401,7 +401,7 @@
         return r;
     }
 
-    // DEPRECATED: call Make(r)
+    SK_ATTR_DEPRECATED("use Make()")
     static SkRect SK_WARN_UNUSED_RESULT MakeFromIRect(const SkIRect& irect) {
         SkRect r;
         r.set(SkIntToScalar(irect.fLeft),
diff --git a/include/core/SkWriter32.h b/include/core/SkWriter32.h
index ba8893e..9fb1f7b 100644
--- a/include/core/SkWriter32.h
+++ b/include/core/SkWriter32.h
@@ -46,7 +46,8 @@
 
     // return the current offset (will always be a multiple of 4)
     size_t bytesWritten() const { return fSize; }
-    // DEPRECATED: use bytesWritten instead  TODO(mtklein): clean up
+
+    SK_ATTR_DEPRECATED("use bytesWritten")
     size_t size() const { return this->bytesWritten(); }
 
     // Returns true if we've written only into the storage passed into constructor or reset.
diff --git a/include/core/SkXfermode.h b/include/core/SkXfermode.h
index 5bf8a22..3ef2241 100644
--- a/include/core/SkXfermode.h
+++ b/include/core/SkXfermode.h
@@ -186,7 +186,7 @@
      */
     static bool ModeAsCoeff(Mode mode, Coeff* src, Coeff* dst);
 
-    // DEPRECATED: call AsMode(...)
+    SK_ATTR_DEPRECATED("use AsMode(...)")
     static bool IsMode(const SkXfermode* xfer, Mode* mode) {
         return AsMode(xfer, mode);
     }
diff --git a/include/effects/SkBlurDrawLooper.h b/include/effects/SkBlurDrawLooper.h
index 8e0c2dd..013e807 100644
--- a/include/effects/SkBlurDrawLooper.h
+++ b/include/effects/SkBlurDrawLooper.h
@@ -38,7 +38,7 @@
     SkBlurDrawLooper(SkColor color, SkScalar sigma, SkScalar dx, SkScalar dy,
                      uint32_t flags = kNone_BlurFlag);
 
-    // DEPRECATED - radius-based
+//    SK_ATTR_DEPRECATED("use sigma version")
     SkBlurDrawLooper(SkScalar radius, SkScalar dx, SkScalar dy, SkColor color,
                      uint32_t flags = kNone_BlurFlag);
     virtual ~SkBlurDrawLooper();
diff --git a/include/effects/SkBlurMaskFilter.h b/include/effects/SkBlurMaskFilter.h
index d590b27..9b352dc 100644
--- a/include/effects/SkBlurMaskFilter.h
+++ b/include/effects/SkBlurMaskFilter.h
@@ -33,9 +33,7 @@
         kAll_BlurFlag = 0x03
     };
 
-    /**
-     *  DEPRECATED - radius-based
-     */
+    SK_ATTR_DEPRECATED("use sigma version")
     static SkMaskFilter* Create(SkScalar radius, BlurStyle style,
                                 uint32_t flags = kNone_BlurFlag);
 
@@ -59,7 +57,7 @@
     static SkMaskFilter* CreateEmboss(SkScalar blurSigma, const SkScalar direction[3],
                                       SkScalar ambient, SkScalar specular);
 
-    // DEPRECATED - radius-based
+    SK_ATTR_DEPRECATED("use sigma version")
     static SkMaskFilter* CreateEmboss(const SkScalar direction[3],
                                       SkScalar ambient, SkScalar specular,
                                       SkScalar blurRadius);
diff --git a/include/effects/SkEmbossMaskFilter.h b/include/effects/SkEmbossMaskFilter.h
index 4b5bd6f..7210b78 100644
--- a/include/effects/SkEmbossMaskFilter.h
+++ b/include/effects/SkEmbossMaskFilter.h
@@ -25,7 +25,7 @@
 
     SkEmbossMaskFilter(SkScalar blurSigma, const Light& light);
 
-    // DEPRECATED - radius-based
+    SK_ATTR_DEPRECATED("use sigma version")
     SkEmbossMaskFilter(const Light& light, SkScalar blurRadius);
 
     // overrides from SkMaskFilter
diff --git a/include/effects/SkPorterDuff.h b/include/effects/SkPorterDuff.h
index c5f5492..e984e8e 100644
--- a/include/effects/SkPorterDuff.h
+++ b/include/effects/SkPorterDuff.h
@@ -13,8 +13,6 @@
 
 class SkXfermode;
 
-/** DEPRECATED - use SkXfermode::Mode instead
- */
 class SK_API SkPorterDuff {
 public:
     /** List of predefined xfermodes. In general, the algebra for the modes
@@ -76,6 +74,6 @@
     /** Return the corersponding SkXfermode::Mode
      */
     static SkXfermode::Mode ToXfermodeMode(Mode);
-};
+} SK_ATTR_DEPRECATED("use SkXfermode::Mode");
 
 #endif
diff --git a/include/effects/SkRectShaderImageFilter.h b/include/effects/SkRectShaderImageFilter.h
index 650a583..ea97478 100644
--- a/include/effects/SkRectShaderImageFilter.h
+++ b/include/effects/SkRectShaderImageFilter.h
@@ -25,7 +25,9 @@
      *               If NULL or a given crop edge is not specified, the source
      *               primitive's bounds are used instead.
      */
-    /* DEPRECATED */ static SkRectShaderImageFilter* Create(SkShader* s, const SkRect& rect);
+    SK_ATTR_DEPRECATED("use Create(SkShader*, const CropRect*)")
+    static SkRectShaderImageFilter* Create(SkShader* s, const SkRect& rect);
+
     static SkRectShaderImageFilter* Create(SkShader* s, const CropRect* rect = NULL);
     virtual ~SkRectShaderImageFilter();
 
diff --git a/include/gpu/SkGpuDevice.h b/include/gpu/SkGpuDevice.h
index 0862514..29f59f2 100644
--- a/include/gpu/SkGpuDevice.h
+++ b/include/gpu/SkGpuDevice.h
@@ -43,16 +43,16 @@
     SkGpuDevice(GrContext*, SkBitmap::Config, int width, int height, int sampleCount = 0);
 
     /**
+     *  DEPRECATED -- need to make this private, call Create(surface)
      *  New device that will render to the specified renderTarget.
-     *  DEPRECATED: Use Create(surface)
      */
     SkGpuDevice(GrContext*, GrRenderTarget*);
 
     /**
+     *  DEPRECATED -- need to make this private, call Create(surface)
      *  New device that will render to the texture (as a rendertarget).
      *  The GrTexture's asRenderTarget() must be non-NULL or device will not
      *  function.
-     *  DEPRECATED: Use Create(surface)
      */
     SkGpuDevice(GrContext*, GrTexture*);
 
diff --git a/include/utils/SkMatrix44.h b/include/utils/SkMatrix44.h
index 9282770..26247a0 100644
--- a/include/utils/SkMatrix44.h
+++ b/include/utils/SkMatrix44.h
@@ -112,7 +112,7 @@
     SkMatrix44(Uninitialized_Constructor) { }
     SkMatrix44(Identity_Constructor) { this->setIdentity(); }
 
-    // DEPRECATED: use the constructors that take an enum
+    SK_ATTR_DEPRECATED("use the constructors that take an enum")
     SkMatrix44() { this->setIdentity(); }
 
     SkMatrix44(const SkMatrix44& src) {
@@ -335,11 +335,12 @@
         this->mapScalars(vec, vec);
     }
 
-    // DEPRECATED: call mapScalars()
+    SK_ATTR_DEPRECATED("use mapScalars")
     void map(const SkScalar src[4], SkScalar dst[4]) const {
         this->mapScalars(src, dst);
     }
-    // DEPRECATED: call mapScalars()
+
+    SK_ATTR_DEPRECATED("use mapScalars")
     void map(SkScalar vec[4]) const {
         this->mapScalars(vec, vec);
     }
@@ -357,7 +358,7 @@
 
     friend SkVector4 operator*(const SkMatrix44& m, const SkVector4& src) {
         SkVector4 dst;
-        m.map(src.fData, dst.fData);
+        m.mapScalars(src.fData, dst.fData);
         return dst;
     }
 
diff --git a/samplecode/SampleApp.cpp b/samplecode/SampleApp.cpp
index f044e70..04d2cdd 100644
--- a/samplecode/SampleApp.cpp
+++ b/samplecode/SampleApp.cpp
@@ -505,7 +505,8 @@
             paint->setAntiAlias(SkOSMenu::kOnState == fAAState);
         }
         if (SkOSMenu::kMixedState != fFilterState) {
-            paint->setFilterBitmap(SkOSMenu::kOnState == fFilterState);
+            paint->setFilterLevel(SkOSMenu::kOnState == fFilterState ?
+                                  SkPaint::kLow_FilterLevel : SkPaint::kNone_FilterLevel);
         }
         if (SkOSMenu::kMixedState != fSubpixelState) {
             paint->setSubpixelText(SkOSMenu::kOnState == fSubpixelState);
diff --git a/samplecode/SampleBitmapRect.cpp b/samplecode/SampleBitmapRect.cpp
index 04297e0..422ed58 100644
--- a/samplecode/SampleBitmapRect.cpp
+++ b/samplecode/SampleBitmapRect.cpp
@@ -133,7 +133,7 @@
         canvas->drawRect(srcR, paint);
 
         for (int i = 0; i < 2; ++i) {
-            paint.setFilterBitmap(1 == i);
+            paint.setFilterLevel(1 == i ? SkPaint::kLow_FilterLevel : SkPaint::kNone_FilterLevel);
             canvas->drawBitmapRectToRect(bitmap, &srcR, fDstR[i], &paint);
             canvas->drawRect(fDstR[i], paint);
         }
@@ -226,7 +226,7 @@
         paint.setColor(SK_ColorYELLOW);
 
         for (int i = 0; i < 2; ++i) {
-            paint.setFilterBitmap(1 == i);
+            paint.setFilterLevel(1 == i ? SkPaint::kLow_FilterLevel : SkPaint::kNone_FilterLevel);
             canvas->drawBitmapRectToRect(fBitmap, &fSrcR, fDstR[i], &paint);
             canvas->drawRect(fDstR[i], paint);
         }
diff --git a/samplecode/SampleFilter.cpp b/samplecode/SampleFilter.cpp
index 3eb9cdc..71ab62f 100644
--- a/samplecode/SampleFilter.cpp
+++ b/samplecode/SampleFilter.cpp
@@ -59,7 +59,7 @@
 
 static SkScalar draw_set(SkCanvas* c, const SkBitmap& bm, SkScalar x, SkPaint* p) {
     x += draw_bm(c, bm, x, 0, p);
-    p->setFilterBitmap(true);
+    p->setFilterLevel(SkPaint::kLow_FilterLevel);
     x += draw_bm(c, bm, x, 0, p);
     p->setDither(true);
     return x + draw_bm(c, bm, x, 0, p);
diff --git a/samplecode/SampleFilter2.cpp b/samplecode/SampleFilter2.cpp
index f3a8b46..e982778 100644
--- a/samplecode/SampleFilter2.cpp
+++ b/samplecode/SampleFilter2.cpp
@@ -76,7 +76,7 @@
         canvas->scale(SK_Scalar1, scale);
 
         for (int k = 0; k < 2; k++) {
-            paint.setFilterBitmap(k == 1);
+            paint.setFilterLevel(k == 1 ? SkPaint::kLow_FilterLevel : SkPaint::kNone_FilterLevel);
             for (int j = 0; j < 2; j++) {
                 paint.setDither(j == 1);
                 for (int i = 0; i < fBitmapCount; i++) {
@@ -93,7 +93,7 @@
                         SkString s("dither=");
                         s.appendS32(paint.isDither());
                         s.append(" filter=");
-                        s.appendS32(paint.isFilterBitmap());
+                        s.appendS32(paint.getFilterLevel() != SkPaint::kNone_FilterLevel);
                         canvas->drawText(s.c_str(), s.size(), x + W/2,
                                          y - p.getTextSize(), p);
                     }
diff --git a/samplecode/SampleFilterFuzz.cpp b/samplecode/SampleFilterFuzz.cpp
index c04292d..b10fb31 100644
--- a/samplecode/SampleFilterFuzz.cpp
+++ b/samplecode/SampleFilterFuzz.cpp
@@ -231,9 +231,9 @@
                 make_scalar(true), make_scalar(true), R(10.0f), make_scalar()) :
             SkPerlinNoiseShader::CreateTubulence(
                 make_scalar(true), make_scalar(true), R(10.0f), make_scalar()));
-        filter = SkRectShaderImageFilter::Create(shader,
-                                                 SkRect::MakeWH(SkIntToScalar(kBitmapSize),
-                                                                SkIntToScalar(kBitmapSize)));
+        SkImageFilter::CropRect cropR(SkRect::MakeWH(SkIntToScalar(kBitmapSize),
+                                                     SkIntToScalar(kBitmapSize)));
+        filter = SkRectShaderImageFilter::Create(shader, &cropR);
     }
         break;
     case DROP_SHADOW:
diff --git a/samplecode/SamplePatch.cpp b/samplecode/SamplePatch.cpp
index 3da4b0c..c630e89 100644
--- a/samplecode/SamplePatch.cpp
+++ b/samplecode/SamplePatch.cpp
@@ -269,7 +269,7 @@
     virtual void onDrawContent(SkCanvas* canvas) {
         SkPaint paint;
         paint.setDither(true);
-        paint.setFilterBitmap(true);
+        paint.setFilterLevel(SkPaint::kLow_FilterLevel);
 
         canvas->translate(SkIntToScalar(20), 0);
 
diff --git a/samplecode/SampleSlides.cpp b/samplecode/SampleSlides.cpp
index 98e4e72..3dba782 100644
--- a/samplecode/SampleSlides.cpp
+++ b/samplecode/SampleSlides.cpp
@@ -444,7 +444,7 @@
 
     SkPaint paint;
     paint.setDither(true);
-    paint.setFilterBitmap(true);
+    paint.setFilterLevel(SkPaint::kLow_FilterLevel);
 
     for (size_t i = 0; i < SK_ARRAY_COUNT(fRecs); i++) {
         canvas->save();
diff --git a/samplecode/SampleTextureDomain.cpp b/samplecode/SampleTextureDomain.cpp
index 154eaa9..16e7a16 100644
--- a/samplecode/SampleTextureDomain.cpp
+++ b/samplecode/SampleTextureDomain.cpp
@@ -48,7 +48,7 @@
         SkIRect srcRect;
         SkRect dstRect;
         SkPaint paint;
-        paint.setFilterBitmap(true);
+        paint.setFilterLevel(SkPaint::kLow_FilterLevel);
 
         // Test that bitmap draws from malloc-backed bitmaps respect
         // the constrained texture domain.
diff --git a/samplecode/SampleTiling.cpp b/samplecode/SampleTiling.cpp
index eb791c5..c35cf88 100644
--- a/samplecode/SampleTiling.cpp
+++ b/samplecode/SampleTiling.cpp
@@ -52,7 +52,7 @@
                   SkShader::TileMode tmx, SkShader::TileMode tmy) {
     SkShader* shader = SkShader::CreateBitmapShader(bm, tmx, tmy);
     paint->setShader(shader)->unref();
-    paint->setFilterBitmap(filter);
+    paint->setFilterLevel(filter ? SkPaint::kLow_FilterLevel : SkPaint::kNone_FilterLevel);
 }
 
 static const SkBitmap::Config gConfigs[] = {
diff --git a/samplecode/SampleVertices.cpp b/samplecode/SampleVertices.cpp
index 53db2ea..323c4b5 100644
--- a/samplecode/SampleVertices.cpp
+++ b/samplecode/SampleVertices.cpp
@@ -91,7 +91,7 @@
     virtual void onDrawContent(SkCanvas* canvas) {
         SkPaint paint;
         paint.setDither(true);
-        paint.setFilterBitmap(true);
+        paint.setFilterLevel(SkPaint::kLow_FilterLevel);
 
         for (size_t i = 0; i < SK_ARRAY_COUNT(fRecs); i++) {
             canvas->save();
diff --git a/src/animator/SkDrawPaint.cpp b/src/animator/SkDrawPaint.cpp
index 22d99e4..825d048 100644
--- a/src/animator/SkDrawPaint.cpp
+++ b/src/animator/SkDrawPaint.cpp
@@ -220,7 +220,7 @@
     if (fakeBold != -1)
         paint->setFakeBoldText(SkToBool(fakeBold));
     if (filterBitmap != -1)
-        paint->setFilterBitmap(SkToBool(filterBitmap));
+        paint->setFilterLevel(filterBitmap ? SkPaint::kLow_FilterLevel : SkPaint::kNone_FilterLevel);
     //  stroke is legacy; style setting if present overrides stroke
     if (stroke != -1)
         paint->setStyle(SkToBool(stroke) ? SkPaint::kStroke_Style : SkPaint::kFill_Style);
diff --git a/src/core/SkBBoxHierarchyRecord.cpp b/src/core/SkBBoxHierarchyRecord.cpp
index 61a82ce..8e5861b 100644
--- a/src/core/SkBBoxHierarchyRecord.cpp
+++ b/src/core/SkBBoxHierarchyRecord.cpp
@@ -22,7 +22,7 @@
 void SkBBoxHierarchyRecord::handleBBox(const SkRect& bounds) {
     SkIRect r;
     bounds.roundOut(&r);
-    SkPictureStateTree::Draw* draw = fStateTree->appendDraw(this->writeStream().size());
+    SkPictureStateTree::Draw* draw = fStateTree->appendDraw(this->writeStream().bytesWritten());
     fBoundingHierarchy->insert(draw, r, true);
 }
 
@@ -33,7 +33,7 @@
 
 int SkBBoxHierarchyRecord::saveLayer(const SkRect* bounds, const SkPaint* paint,
                                      SaveFlags flags) {
-    fStateTree->appendSaveLayer(this->writeStream().size());
+    fStateTree->appendSaveLayer(this->writeStream().bytesWritten());
     return INHERITED::saveLayer(bounds, paint, flags);
 }
 
@@ -80,27 +80,27 @@
 bool SkBBoxHierarchyRecord::clipRect(const SkRect& rect,
                                      SkRegion::Op op,
                                      bool doAntiAlias) {
-    fStateTree->appendClip(this->writeStream().size());
+    fStateTree->appendClip(this->writeStream().bytesWritten());
     return INHERITED::clipRect(rect, op, doAntiAlias);
 }
 
 bool SkBBoxHierarchyRecord::clipRegion(const SkRegion& region,
                                        SkRegion::Op op) {
-    fStateTree->appendClip(this->writeStream().size());
+    fStateTree->appendClip(this->writeStream().bytesWritten());
     return INHERITED::clipRegion(region, op);
 }
 
 bool SkBBoxHierarchyRecord::clipPath(const SkPath& path,
                                      SkRegion::Op op,
                                      bool doAntiAlias) {
-    fStateTree->appendClip(this->writeStream().size());
+    fStateTree->appendClip(this->writeStream().bytesWritten());
     return INHERITED::clipPath(path, op, doAntiAlias);
 }
 
 bool SkBBoxHierarchyRecord::clipRRect(const SkRRect& rrect,
                                       SkRegion::Op op,
                                       bool doAntiAlias) {
-    fStateTree->appendClip(this->writeStream().size());
+    fStateTree->appendClip(this->writeStream().bytesWritten());
     return INHERITED::clipRRect(rrect, op, doAntiAlias);
 }
 
@@ -109,7 +109,7 @@
     // SkPicture has rewound its command stream.  To match that rewind in the
     // BBH, we rewind all draws that reference commands that were recorded
     // past the point to which the SkPicture has rewound, which is given by
-    // writeStream().size().
+    // writeStream().bytesWritten().
     SkPictureStateTree::Draw* draw = static_cast<SkPictureStateTree::Draw*>(data);
-    return draw->fOffset >= writeStream().size();
+    return draw->fOffset >= writeStream().bytesWritten();
 }
diff --git a/src/core/SkBBoxRecord.cpp b/src/core/SkBBoxRecord.cpp
index 1e6c69b..2349b1c 100644
--- a/src/core/SkBBoxRecord.cpp
+++ b/src/core/SkBBoxRecord.cpp
@@ -32,7 +32,7 @@
         // path's device-space bounding box.
         SkIRect clipBounds;
         if (this->getClipDeviceBounds(&clipBounds)) {
-            this->handleBBox(SkRect::MakeFromIRect(clipBounds));
+            this->handleBBox(SkRect::Make(clipBounds));
             INHERITED::drawPath(path, paint);
         }
     } else if (this->transformBounds(path.getBounds(), &paint)) {
diff --git a/src/core/SkBitmap.cpp b/src/core/SkBitmap.cpp
index 2f1c9a4..bff0880 100644
--- a/src/core/SkBitmap.cpp
+++ b/src/core/SkBitmap.cpp
@@ -502,11 +502,11 @@
     // This is intended to be a size_t version of ComputeSafeSize64(), just
     // faster. The computation is meant to be identical.
     return (fHeight ? ((fHeight - 1) * fRowBytes) +
-            ComputeRowBytes(getConfig(), fWidth): 0);
+            ComputeRowBytes(this->config(), fWidth): 0);
 }
 
 Sk64 SkBitmap::getSafeSize64() const {
-    return ComputeSafeSize64(getConfig(), fWidth, fHeight, fRowBytes);
+    return ComputeSafeSize64(this->config(), fWidth, fHeight, fRowBytes);
 }
 
 bool SkBitmap::copyPixelsTo(void* const dst, size_t dstSize,
@@ -516,12 +516,12 @@
         dstRowBytes = fRowBytes;
     }
 
-    if (dstRowBytes < ComputeRowBytes(getConfig(), fWidth) ||
+    if (dstRowBytes < ComputeRowBytes(this->config(), fWidth) ||
         dst == NULL || (getPixels() == NULL && pixelRef() == NULL))
         return false;
 
     if (!preserveDstPad && static_cast<uint32_t>(dstRowBytes) == fRowBytes) {
-        size_t safeSize = getSafeSize();
+        size_t safeSize = this->getSafeSize();
         if (safeSize > dstSize || safeSize == 0)
             return false;
         else {
@@ -535,12 +535,12 @@
         }
     } else {
         // If destination has different stride than us, then copy line by line.
-        if (ComputeSafeSize(getConfig(), fWidth, fHeight, dstRowBytes) >
+        if (ComputeSafeSize(this->config(), fWidth, fHeight, dstRowBytes) >
             dstSize)
             return false;
         else {
             // Just copy what we need on each line.
-            size_t rowBytes = ComputeRowBytes(getConfig(), fWidth);
+            size_t rowBytes = ComputeRowBytes(this->config(), fWidth);
             SkAutoLockPixels lock(*this);
             const uint8_t* srcP = reinterpret_cast<const uint8_t*>(getPixels());
             uint8_t* dstP = reinterpret_cast<uint8_t*>(dst);
@@ -874,7 +874,7 @@
  *  within the bounds of the SkPixelRef being used.
  */
 static size_t get_sub_offset(const SkBitmap& bm, int x, int y) {
-    switch (bm.getConfig()) {
+    switch (bm.config()) {
         case SkBitmap::kA8_Config:
         case SkBitmap:: kIndex8_Config:
             // x is fine as is for the calculation
@@ -1005,7 +1005,7 @@
 #include "SkPaint.h"
 
 bool SkBitmap::canCopyTo(Config dstConfig) const {
-    if (this->getConfig() == kNo_Config) {
+    if (this->config() == kNo_Config) {
         return false;
     }
 
@@ -1028,7 +1028,7 @@
     }
 
     // do not copy src if srcConfig == kA1_Config while dstConfig != kA1_Config
-    if (this->getConfig() == kA1_Config && !sameConfigs) {
+    if (this->config() == kA1_Config && !sameConfigs) {
         return false;
     }
 
@@ -1305,7 +1305,7 @@
 
     void (*proc)(SkBitmap* dst, int x, int y, const SkBitmap& src);
 
-    const SkBitmap::Config config = this->getConfig();
+    const SkBitmap::Config config = this->config();
 
     switch (config) {
         case kARGB_8888_Config:
@@ -1444,7 +1444,7 @@
     SkASSERT(alpha != NULL);
     SkASSERT(alphaRowBytes >= src.width());
 
-    SkBitmap::Config config = src.getConfig();
+    SkBitmap::Config config = src.config();
     int              w = src.width();
     int              h = src.height();
     size_t           rb = src.rowBytes();
diff --git a/src/core/SkBitmapDevice.cpp b/src/core/SkBitmapDevice.cpp
index ff68481..eac21e2 100644
--- a/src/core/SkBitmapDevice.cpp
+++ b/src/core/SkBitmapDevice.cpp
@@ -13,8 +13,8 @@
 
 SK_DEFINE_INST_COUNT(SkBitmapDevice)
 
-#define CHECK_FOR_NODRAW_ANNOTATION(paint) \
-    do { if (paint.isNoDrawAnnotation()) { return; } } while (0)
+#define CHECK_FOR_ANNOTATION(paint) \
+    do { if (paint.getAnnotation()) { return; } } while (0)
 
 SkBitmapDevice::SkBitmapDevice(const SkBitmap& bitmap)
     : fBitmap(bitmap) {
@@ -210,17 +210,17 @@
 
 void SkBitmapDevice::drawPoints(const SkDraw& draw, SkCanvas::PointMode mode, size_t count,
                                 const SkPoint pts[], const SkPaint& paint) {
-    CHECK_FOR_NODRAW_ANNOTATION(paint);
+    CHECK_FOR_ANNOTATION(paint);
     draw.drawPoints(mode, count, pts, paint);
 }
 
 void SkBitmapDevice::drawRect(const SkDraw& draw, const SkRect& r, const SkPaint& paint) {
-    CHECK_FOR_NODRAW_ANNOTATION(paint);
+    CHECK_FOR_ANNOTATION(paint);
     draw.drawRect(r, paint);
 }
 
 void SkBitmapDevice::drawOval(const SkDraw& draw, const SkRect& oval, const SkPaint& paint) {
-    CHECK_FOR_NODRAW_ANNOTATION(paint);
+    CHECK_FOR_ANNOTATION(paint);
 
     SkPath path;
     path.addOval(oval);
@@ -230,7 +230,7 @@
 }
 
 void SkBitmapDevice::drawRRect(const SkDraw& draw, const SkRRect& rrect, const SkPaint& paint) {
-    CHECK_FOR_NODRAW_ANNOTATION(paint);
+    CHECK_FOR_ANNOTATION(paint);
 
     SkPath  path;
     path.addRRect(rrect);
@@ -242,7 +242,7 @@
 void SkBitmapDevice::drawPath(const SkDraw& draw, const SkPath& path,
                               const SkPaint& paint, const SkMatrix* prePathMatrix,
                               bool pathIsMutable) {
-    CHECK_FOR_NODRAW_ANNOTATION(paint);
+    CHECK_FOR_ANNOTATION(paint);
     draw.drawPath(path, paint, prePathMatrix, pathIsMutable);
 }
 
diff --git a/src/core/SkBitmapHeap.cpp b/src/core/SkBitmapHeap.cpp
index f3428db..a171138 100644
--- a/src/core/SkBitmapHeap.cpp
+++ b/src/core/SkBitmapHeap.cpp
@@ -259,7 +259,7 @@
 //        copiedBitmap.setPixelRef(sharedPixelRef, originalBitmap.pixelRefOffset());
     } else if (originalBitmap.empty()) {
         copiedBitmap.reset();
-    } else if (!originalBitmap.deepCopyTo(&copiedBitmap, originalBitmap.getConfig())) {
+    } else if (!originalBitmap.deepCopyTo(&copiedBitmap, originalBitmap.config())) {
         return false;
     }
     copiedBitmap.setImmutable();
diff --git a/src/core/SkBlitter.cpp b/src/core/SkBlitter.cpp
index 6ba82bf..f4e1a37 100644
--- a/src/core/SkBlitter.cpp
+++ b/src/core/SkBlitter.cpp
@@ -857,7 +857,7 @@
 
     // which check, in case we're being called by a client with a dummy device
     // (e.g. they have a bounder that always aborts the draw)
-    if (SkBitmap::kNo_Config == device.getConfig()) {
+    if (SkBitmap::kNo_Config == device.config()) {
         SK_PLACEMENT_NEW(blitter, SkNullBlitter, storage, storageSize);
         return blitter;
     }
@@ -940,7 +940,7 @@
         return blitter;
     }
 
-    switch (device.getConfig()) {
+    switch (device.config()) {
         case SkBitmap::kA1_Config:
             SK_PLACEMENT_NEW_ARGS(blitter, SkA1_Blitter,
                                   storage, storageSize, (device, *paint));
diff --git a/src/core/SkBlitter_Sprite.cpp b/src/core/SkBlitter_Sprite.cpp
index db7cc69..9322e20 100644
--- a/src/core/SkBlitter_Sprite.cpp
+++ b/src/core/SkBlitter_Sprite.cpp
@@ -66,7 +66,7 @@
 
     SkSpriteBlitter* blitter;
 
-    switch (device.getConfig()) {
+    switch (device.config()) {
         case SkBitmap::kRGB_565_Config:
             blitter = SkSpriteBlitter::ChooseD16(source, paint, storage,
                                                  storageSize);
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index 6036186..32a6e09 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -1307,7 +1307,7 @@
                     SkRect deviceBounds;
                     SkIRect deviceIBounds;
                     this->getDevice()->getGlobalBounds(&deviceIBounds);
-                    deviceBounds = SkRect::MakeFromIRect(deviceIBounds);
+                    deviceBounds = SkRect::Make(deviceIBounds);
                     this->SkCanvas::save(SkCanvas::kMatrix_SaveFlag);
                     // set the clip in device space
                     this->SkCanvas::setMatrix(SkMatrix::I());
diff --git a/src/core/SkDraw.cpp b/src/core/SkDraw.cpp
index d2d6180..df73f7a 100644
--- a/src/core/SkDraw.cpp
+++ b/src/core/SkDraw.cpp
@@ -1156,7 +1156,7 @@
 
 void SkDraw::drawBitmapAsMask(const SkBitmap& bitmap,
                               const SkPaint& paint) const {
-    SkASSERT(bitmap.getConfig() == SkBitmap::kA8_Config);
+    SkASSERT(bitmap.config() == SkBitmap::kA8_Config);
 
     if (just_translate(*fMatrix, bitmap)) {
         int ix = SkScalarRound(fMatrix->getTranslateX());
@@ -1264,7 +1264,7 @@
     // nothing to draw
     if (fRC->isEmpty() ||
             bitmap.width() == 0 || bitmap.height() == 0 ||
-            bitmap.getConfig() == SkBitmap::kNo_Config) {
+            bitmap.config() == SkBitmap::kNo_Config) {
         return;
     }
 
@@ -1290,7 +1290,7 @@
         }
     }
 
-    if (bitmap.getConfig() != SkBitmap::kA8_Config &&
+    if (bitmap.config() != SkBitmap::kA8_Config &&
             just_translate(matrix, bitmap)) {
         //
         // It is safe to call lock pixels now, since we know the matrix is
@@ -1323,7 +1323,7 @@
     SkDraw draw(*this);
     draw.fMatrix = &matrix;
 
-    if (bitmap.getConfig() == SkBitmap::kA8_Config) {
+    if (bitmap.config() == SkBitmap::kA8_Config) {
         draw.drawBitmapAsMask(bitmap, paint);
     } else {
         SkAutoBitmapShaderInstall install(bitmap, paint);
@@ -1343,7 +1343,7 @@
     // nothing to draw
     if (fRC->isEmpty() ||
             bitmap.width() == 0 || bitmap.height() == 0 ||
-            bitmap.getConfig() == SkBitmap::kNo_Config) {
+            bitmap.config() == SkBitmap::kNo_Config) {
         return;
     }
 
diff --git a/src/core/SkMipMap.cpp b/src/core/SkMipMap.cpp
index 0673c7e..4888b57 100644
--- a/src/core/SkMipMap.cpp
+++ b/src/core/SkMipMap.cpp
@@ -129,7 +129,7 @@
 SkMipMap* SkMipMap::Build(const SkBitmap& src) {
     void (*proc)(SkBitmap* dst, int x, int y, const SkBitmap& src);
 
-    const SkBitmap::Config config = src.getConfig();
+    const SkBitmap::Config config = src.config();
     switch (config) {
         case SkBitmap::kARGB_8888_Config:
             proc = downsampleby2_proc32;
diff --git a/src/core/SkOrderedWriteBuffer.cpp b/src/core/SkOrderedWriteBuffer.cpp
index 1c15e43..25ca769 100644
--- a/src/core/SkOrderedWriteBuffer.cpp
+++ b/src/core/SkOrderedWriteBuffer.cpp
@@ -310,10 +310,10 @@
     // make room for the size of the flattened object
     (void)fWriter.reserve(sizeof(uint32_t));
     // record the current size, so we can subtract after the object writes.
-    uint32_t offset = fWriter.size();
+    uint32_t offset = fWriter.bytesWritten();
     // now flatten the object
     flattenObject(flattenable, *this);
-    uint32_t objSize = fWriter.size() - offset;
+    uint32_t objSize = fWriter.bytesWritten() - offset;
     // record the obj's size
     *fWriter.peek32(offset - sizeof(uint32_t)) = objSize;
 }
diff --git a/src/core/SkPath.cpp b/src/core/SkPath.cpp
index 83f481a..94dd651 100644
--- a/src/core/SkPath.cpp
+++ b/src/core/SkPath.cpp
@@ -97,7 +97,8 @@
     }
 
     ~SkAutoPathBoundsUpdate() {
-        fPath->setIsConvex(fDegenerate);
+        fPath->setConvexity(fDegenerate ? SkPath::kConvex_Convexity
+                                        : SkPath::kUnknown_Convexity);
         if (fEmpty || fHasValidBounds) {
             fPath->setBounds(fRect);
         }
diff --git a/src/core/SkPicturePlayback.cpp b/src/core/SkPicturePlayback.cpp
index 4ce29c8..f2d959d 100644
--- a/src/core/SkPicturePlayback.cpp
+++ b/src/core/SkPicturePlayback.cpp
@@ -66,10 +66,10 @@
     record.dumpPaints();
 #endif
 
-    record.validate(record.writeStream().size(), 0);
+    record.validate(record.writeStream().bytesWritten(), 0);
     const SkWriter32& writer = record.writeStream();
     init();
-    if (writer.size() == 0) {
+    if (writer.bytesWritten() == 0) {
         fOpData = SkData::NewEmpty();
         return;
     }
@@ -85,7 +85,7 @@
     }
 
     {
-        size_t size = writer.size();
+        size_t size = writer.bytesWritten();
         void* buffer = sk_malloc_throw(size);
         writer.flatten(buffer);
         SkASSERT(!fOpData);
diff --git a/src/core/SkPictureRecord.cpp b/src/core/SkPictureRecord.cpp
index f7a7633..c59dfe3 100644
--- a/src/core/SkPictureRecord.cpp
+++ b/src/core/SkPictureRecord.cpp
@@ -146,7 +146,7 @@
 int SkPictureRecord::save(SaveFlags flags) {
     // record the offset to us, making it non-positive to distinguish a save
     // from a clip entry.
-    fRestoreOffsetStack.push(-(int32_t)fWriter.size());
+    fRestoreOffsetStack.push(-(int32_t)fWriter.bytesWritten());
 
     // op + flags
     uint32_t size = kSaveSize;
@@ -161,7 +161,7 @@
                                SaveFlags flags) {
     // record the offset to us, making it non-positive to distinguish a save
     // from a clip entry.
-    fRestoreOffsetStack.push(-(int32_t)fWriter.size());
+    fRestoreOffsetStack.push(-(int32_t)fWriter.bytesWritten());
 
     // op + bool for 'bounds'
     uint32_t size = 2 * kUInt32Size;
@@ -175,7 +175,7 @@
 
     size_t initialOffset = this->addDraw(SAVE_LAYER, &size);
     addRectPtr(bounds);
-    SkASSERT(initialOffset+getPaintOffset(SAVE_LAYER, size) == fWriter.size());
+    SkASSERT(initialOffset+getPaintOffset(SAVE_LAYER, size) == fWriter.bytesWritten());
     addPaintPtr(paint);
     addInt(flags);
 
@@ -248,19 +248,19 @@
  */
 static bool match(SkWriter32* writer, uint32_t offset,
                   int* pattern, CommandInfo* result, int numCommands) {
-    SkASSERT(offset < writer->size());
+    SkASSERT(offset < writer->bytesWritten());
 
     uint32_t curOffset = offset;
     uint32_t curSize = 0;
     int numMatched;
-    for (numMatched = 0; numMatched < numCommands && curOffset < writer->size(); ++numMatched) {
+    for (numMatched = 0; numMatched < numCommands && curOffset < writer->bytesWritten(); ++numMatched) {
         DrawType op = peek_op_and_size(writer, curOffset, &curSize);
-        while (NOOP == op && curOffset < writer->size()) {
+        while (NOOP == op && curOffset < writer->bytesWritten()) {
             curOffset += curSize;
             op = peek_op_and_size(writer, curOffset, &curSize);
         }
 
-        if (curOffset >= writer->size()) {
+        if (curOffset >= writer->bytesWritten()) {
             return false; // ran out of byte stream
         }
 
@@ -285,7 +285,7 @@
     }
 
     curOffset += curSize;
-    if (curOffset < writer->size()) {
+    if (curOffset < writer->bytesWritten()) {
         // Something else between the last command and the end of the stream
         return false;
     }
@@ -464,7 +464,7 @@
     gCollapseCalls += 1;
 #endif
 
-    int32_t restoreOffset = (int32_t)writer->size();
+    int32_t restoreOffset = (int32_t)writer->bytesWritten();
 
     // back up to the save block
     while (offset > 0) {
@@ -585,7 +585,7 @@
             if ((*gPictureRecordOpts[opt].fProc)(&fWriter, fRestoreOffsetStack.top(), &fPaints)) {
                 // Some optimization fired so don't add the RESTORE
                 size = 0;
-                initialOffset = fWriter.size();
+                initialOffset = fWriter.bytesWritten();
                 apply_optimization_to_bbh(gPictureRecordOpts[opt].fType,
                                           fStateTree, fBoundingHierarchy);
                 break;
@@ -596,7 +596,7 @@
     if ((fRecordFlags & SkPicture::kDisableRecordOptimizations_RecordingFlag) ||
         SK_ARRAY_COUNT(gPictureRecordOpts) == opt) {
         // No optimization fired so add the RESTORE
-        fillRestoreOffsetPlaceholdersForCurrentStackLevel((uint32_t)fWriter.size());
+        fillRestoreOffsetPlaceholdersForCurrentStackLevel((uint32_t)fWriter.bytesWritten());
         size = 1 * kUInt32Size; // RESTORE consists solely of 1 op code
         initialOffset = this->addDraw(RESTORE, &size);
     }
@@ -647,7 +647,7 @@
 }
 
 bool SkPictureRecord::concat(const SkMatrix& matrix) {
-    this->validate(fWriter.size(), 0);
+    this->validate(fWriter.bytesWritten(), 0);
     // op + matrix index
     uint32_t size = 2 * kUInt32Size;
     size_t initialOffset = this->addDraw(CONCAT, &size);
@@ -657,7 +657,7 @@
 }
 
 void SkPictureRecord::setMatrix(const SkMatrix& matrix) {
-    this->validate(fWriter.size(), 0);
+    this->validate(fWriter.bytesWritten(), 0);
     // op + matrix index
     uint32_t size = 2 * kUInt32Size;
     size_t initialOffset = this->addDraw(SET_MATRIX, &size);
@@ -734,7 +734,7 @@
         prevOffset = 0;
     }
 
-    size_t offset = fWriter.size();
+    size_t offset = fWriter.bytesWritten();
     addInt(prevOffset);
     fRestoreOffsetStack.top() = offset;
 }
@@ -840,7 +840,7 @@
     // op + paint index
     uint32_t size = 2 * kUInt32Size;
     size_t initialOffset = this->addDraw(DRAW_PAINT, &size);
-    SkASSERT(initialOffset+getPaintOffset(DRAW_PAINT, size) == fWriter.size());
+    SkASSERT(initialOffset+getPaintOffset(DRAW_PAINT, size) == fWriter.bytesWritten());
     addPaint(paint);
     this->validate(initialOffset, size);
 }
@@ -850,7 +850,7 @@
     // op + paint index + mode + count + point data
     uint32_t size = 4 * kUInt32Size + count * sizeof(SkPoint);
     size_t initialOffset = this->addDraw(DRAW_POINTS, &size);
-    SkASSERT(initialOffset+getPaintOffset(DRAW_POINTS, size) == fWriter.size());
+    SkASSERT(initialOffset+getPaintOffset(DRAW_POINTS, size) == fWriter.bytesWritten());
     addPaint(paint);
     addInt(mode);
     addInt(count);
@@ -862,7 +862,7 @@
     // op + paint index + rect
     uint32_t size = 2 * kUInt32Size + sizeof(oval);
     size_t initialOffset = this->addDraw(DRAW_OVAL, &size);
-    SkASSERT(initialOffset+getPaintOffset(DRAW_OVAL, size) == fWriter.size());
+    SkASSERT(initialOffset+getPaintOffset(DRAW_OVAL, size) == fWriter.bytesWritten());
     addPaint(paint);
     addRect(oval);
     this->validate(initialOffset, size);
@@ -872,7 +872,7 @@
     // op + paint index + rect
     uint32_t size = 2 * kUInt32Size + sizeof(rect);
     size_t initialOffset = this->addDraw(DRAW_RECT, &size);
-    SkASSERT(initialOffset+getPaintOffset(DRAW_RECT, size) == fWriter.size());
+    SkASSERT(initialOffset+getPaintOffset(DRAW_RECT, size) == fWriter.bytesWritten());
     addPaint(paint);
     addRect(rect);
     this->validate(initialOffset, size);
@@ -888,7 +888,7 @@
         uint32_t initialOffset, size;
         size = 2 * kUInt32Size + SkRRect::kSizeInMemory;
         initialOffset = this->addDraw(DRAW_RRECT, &size);
-        SkASSERT(initialOffset+getPaintOffset(DRAW_RRECT, size) == fWriter.size());
+        SkASSERT(initialOffset+getPaintOffset(DRAW_RRECT, size) == fWriter.bytesWritten());
         addPaint(paint);
         addRRect(rrect);
         this->validate(initialOffset, size);
@@ -899,7 +899,7 @@
     // op + paint index + path index
     uint32_t size = 3 * kUInt32Size;
     size_t initialOffset = this->addDraw(DRAW_PATH, &size);
-    SkASSERT(initialOffset+getPaintOffset(DRAW_PATH, size) == fWriter.size());
+    SkASSERT(initialOffset+getPaintOffset(DRAW_PATH, size) == fWriter.bytesWritten());
     addPaint(paint);
     addPath(path);
     this->validate(initialOffset, size);
@@ -910,7 +910,7 @@
     // op + paint index + bitmap index + left + top
     uint32_t size = 3 * kUInt32Size + 2 * sizeof(SkScalar);
     size_t initialOffset = this->addDraw(DRAW_BITMAP, &size);
-    SkASSERT(initialOffset+getPaintOffset(DRAW_BITMAP, size) == fWriter.size());
+    SkASSERT(initialOffset+getPaintOffset(DRAW_BITMAP, size) == fWriter.bytesWritten());
     addPaintPtr(paint);
     addBitmap(bitmap);
     addScalar(left);
@@ -929,7 +929,7 @@
     size += sizeof(dst);        // + rect
 
     size_t initialOffset = this->addDraw(DRAW_BITMAP_RECT_TO_RECT, &size);
-    SkASSERT(initialOffset+getPaintOffset(DRAW_BITMAP_RECT_TO_RECT, size) == fWriter.size());
+    SkASSERT(initialOffset+getPaintOffset(DRAW_BITMAP_RECT_TO_RECT, size) == fWriter.bytesWritten());
     addPaintPtr(paint);
     addBitmap(bitmap);
     addRectPtr(src);  // may be null
@@ -943,7 +943,7 @@
     // id + paint index + bitmap index + matrix index
     uint32_t size = 4 * kUInt32Size;
     size_t initialOffset = this->addDraw(DRAW_BITMAP_MATRIX, &size);
-    SkASSERT(initialOffset+getPaintOffset(DRAW_BITMAP_MATRIX, size) == fWriter.size());
+    SkASSERT(initialOffset+getPaintOffset(DRAW_BITMAP_MATRIX, size) == fWriter.bytesWritten());
     addPaintPtr(paint);
     addBitmap(bitmap);
     addMatrix(matrix);
@@ -955,7 +955,7 @@
     // op + paint index + bitmap id + center + dst rect
     uint32_t size = 3 * kUInt32Size + sizeof(center) + sizeof(dst);
     size_t initialOffset = this->addDraw(DRAW_BITMAP_NINE, &size);
-    SkASSERT(initialOffset+getPaintOffset(DRAW_BITMAP_NINE, size) == fWriter.size());
+    SkASSERT(initialOffset+getPaintOffset(DRAW_BITMAP_NINE, size) == fWriter.bytesWritten());
     addPaintPtr(paint);
     addBitmap(bitmap);
     addIRect(center);
@@ -968,7 +968,7 @@
     // op + paint index + bitmap index + left + top
     uint32_t size = 5 * kUInt32Size;
     size_t initialOffset = this->addDraw(DRAW_SPRITE, &size);
-    SkASSERT(initialOffset+getPaintOffset(DRAW_SPRITE, size) == fWriter.size());
+    SkASSERT(initialOffset+getPaintOffset(DRAW_SPRITE, size) == fWriter.bytesWritten());
     addPaintPtr(paint);
     addBitmap(bitmap);
     addInt(left);
@@ -1007,7 +1007,7 @@
 
     DrawType op = fast ? DRAW_TEXT_TOP_BOTTOM : DRAW_TEXT;
     size_t initialOffset = this->addDraw(op, &size);
-    SkASSERT(initialOffset+getPaintOffset(op, size) == fWriter.size());
+    SkASSERT(initialOffset+getPaintOffset(op, size) == fWriter.bytesWritten());
     const SkFlatData* flatPaintData = addPaint(paint);
     SkASSERT(flatPaintData);
     addText(text, byteLength);
@@ -1073,14 +1073,14 @@
         op = DRAW_POS_TEXT;
     }
     size_t initialOffset = this->addDraw(op, &size);
-    SkASSERT(initialOffset+getPaintOffset(op, size) == fWriter.size());
+    SkASSERT(initialOffset+getPaintOffset(op, size) == fWriter.bytesWritten());
     const SkFlatData* flatPaintData = addPaint(paint);
     SkASSERT(flatPaintData);
     addText(text, byteLength);
     addInt(points);
 
 #ifdef SK_DEBUG_SIZE
-    size_t start = fWriter.size();
+    size_t start = fWriter.bytesWritten();
 #endif
     if (canUseDrawH) {
         if (fast) {
@@ -1097,7 +1097,7 @@
         }
     }
 #ifdef SK_DEBUG_SIZE
-    fPointBytes += fWriter.size() - start;
+    fPointBytes += fWriter.bytesWritten() - start;
     fPointWrites += points;
 #endif
     this->validate(initialOffset, size);
@@ -1136,7 +1136,7 @@
     addInt(points);
 
 #ifdef SK_DEBUG_SIZE
-    size_t start = fWriter.size();
+    size_t start = fWriter.bytesWritten();
 #endif
     if (fast) {
         addFontMetricsTopBottom(paint, *flatPaintData, constY, constY);
@@ -1144,7 +1144,7 @@
     addScalar(constY);
     fWriter.writeMul4(xpos, points * sizeof(SkScalar));
 #ifdef SK_DEBUG_SIZE
-    fPointBytes += fWriter.size() - start;
+    fPointBytes += fWriter.bytesWritten() - start;
     fPointWrites += points;
 #endif
     this->validate(initialOffset, size);
@@ -1156,7 +1156,7 @@
     // op + paint index + length + 'length' worth of data + path index + matrix index
     uint32_t size = 3 * kUInt32Size + SkAlign4(byteLength) + 2 * kUInt32Size;
     size_t initialOffset = this->addDraw(DRAW_TEXT_ON_PATH, &size);
-    SkASSERT(initialOffset+getPaintOffset(DRAW_TEXT_ON_PATH, size) == fWriter.size());
+    SkASSERT(initialOffset+getPaintOffset(DRAW_TEXT_ON_PATH, size) == fWriter.bytesWritten());
     addPaint(paint);
     addText(text, byteLength);
     addPath(path);
@@ -1202,7 +1202,7 @@
     }
 
     size_t initialOffset = this->addDraw(DRAW_VERTICES, &size);
-    SkASSERT(initialOffset+getPaintOffset(DRAW_VERTICES, size) == fWriter.size());
+    SkASSERT(initialOffset+getPaintOffset(DRAW_VERTICES, size) == fWriter.bytesWritten());
     addPaint(paint);
     addInt(flags);
     addInt(vmode);
@@ -1311,11 +1311,11 @@
 
 void SkPictureRecord::addPoint(const SkPoint& point) {
 #ifdef SK_DEBUG_SIZE
-    size_t start = fWriter.size();
+    size_t start = fWriter.bytesWritten();
 #endif
     fWriter.writePoint(point);
 #ifdef SK_DEBUG_SIZE
-    fPointBytes += fWriter.size() - start;
+    fPointBytes += fWriter.bytesWritten() - start;
     fPointWrites++;
 #endif
 }
@@ -1330,11 +1330,11 @@
 
 void SkPictureRecord::addRect(const SkRect& rect) {
 #ifdef SK_DEBUG_SIZE
-    size_t start = fWriter.size();
+    size_t start = fWriter.bytesWritten();
 #endif
     fWriter.writeRect(rect);
 #ifdef SK_DEBUG_SIZE
-    fRectBytes += fWriter.size() - start;
+    fRectBytes += fWriter.bytesWritten() - start;
     fRectWrites++;
 #endif
 }
@@ -1365,12 +1365,12 @@
 
 void SkPictureRecord::addText(const void* text, size_t byteLength) {
 #ifdef SK_DEBUG_SIZE
-    size_t start = fWriter.size();
+    size_t start = fWriter.bytesWritten();
 #endif
     addInt(byteLength);
     fWriter.writePad(text, byteLength);
 #ifdef SK_DEBUG_SIZE
-    fTextBytes += fWriter.size() - start;
+    fTextBytes += fWriter.bytesWritten() - start;
     fTextWrites++;
 #endif
 }
diff --git a/src/core/SkPictureRecord.h b/src/core/SkPictureRecord.h
index d80182c..da79fc1 100644
--- a/src/core/SkPictureRecord.h
+++ b/src/core/SkPictureRecord.h
@@ -131,7 +131,7 @@
      * operates in this manner.
      */
     size_t addDraw(DrawType drawType, uint32_t* size) {
-        size_t offset = fWriter.size();
+        size_t offset = fWriter.bytesWritten();
 
         this->predrawNotify();
 
@@ -212,7 +212,7 @@
 #else
 public:
     void validate(size_t initialOffset, uint32_t size) const {
-        SkASSERT(fWriter.size() == initialOffset + size);
+        SkASSERT(fWriter.bytesWritten() == initialOffset + size);
     }
 #endif
 
diff --git a/src/core/SkShader.cpp b/src/core/SkShader.cpp
index 32f3df4..8f6bfb5 100644
--- a/src/core/SkShader.cpp
+++ b/src/core/SkShader.cpp
@@ -51,7 +51,7 @@
     const SkMatrix* m = &matrix;
     SkMatrix        total;
 
-    fDeviceConfig = SkToU8(device.getConfig());
+    fDeviceConfig = SkToU8(device.config());
     fPaintAlpha = paint.getAlpha();
     if (this->hasLocalMatrix()) {
         total.setConcat(matrix, this->getLocalMatrix());
diff --git a/src/core/SkSpriteBlitter_ARGB32.cpp b/src/core/SkSpriteBlitter_ARGB32.cpp
index 255ef26..8255336 100644
--- a/src/core/SkSpriteBlitter_ARGB32.cpp
+++ b/src/core/SkSpriteBlitter_ARGB32.cpp
@@ -277,7 +277,7 @@
     SkColorFilter* filter = paint.getColorFilter();
     SkSpriteBlitter* blitter = NULL;
 
-    switch (source.getConfig()) {
+    switch (source.config()) {
         case SkBitmap::kARGB_4444_Config:
             if (alpha != 0xFF) {
                 return NULL;    // we only have opaque sprites
diff --git a/src/core/SkSpriteBlitter_RGB16.cpp b/src/core/SkSpriteBlitter_RGB16.cpp
index 8cef767..2bce41e 100644
--- a/src/core/SkSpriteBlitter_RGB16.cpp
+++ b/src/core/SkSpriteBlitter_RGB16.cpp
@@ -324,7 +324,7 @@
     SkSpriteBlitter* blitter = NULL;
     unsigned alpha = paint.getAlpha();
 
-    switch (source.getConfig()) {
+    switch (source.config()) {
         case SkBitmap::kARGB_8888_Config:
             SK_PLACEMENT_NEW_ARGS(blitter, Sprite_D16_S32_BlitRowProc,
                                   storage, storageSize, (source));
diff --git a/src/effects/SkBitmapAlphaThresholdShader.cpp b/src/effects/SkBitmapAlphaThresholdShader.cpp
index 1b54425..226b317 100644
--- a/src/effects/SkBitmapAlphaThresholdShader.cpp
+++ b/src/effects/SkBitmapAlphaThresholdShader.cpp
@@ -249,7 +249,7 @@
     context->setMatrix(matrix);
 
     while (!iter.done()) {
-        SkRect rect = SkRect::MakeFromIRect(iter.rect());
+        SkRect rect = SkRect::Make(iter.rect());
         context->drawRect(grPaint, rect);
         iter.next();
     }
diff --git a/src/effects/SkBlurMask.h b/src/effects/SkBlurMask.h
index 061cfde..e0b8d54 100644
--- a/src/effects/SkBlurMask.h
+++ b/src/effects/SkBlurMask.h
@@ -44,17 +44,19 @@
                                 Style style,
                                 SkIPoint* margin = NULL);
 
-    // DEPRECATED - radius-based
+    SK_ATTR_DEPRECATED("use sigma version")
     static bool BlurRect(SkMask *dst, const SkRect &src,
                          SkScalar radius, Style style,
                          SkIPoint *margin = NULL,
                          SkMask::CreateMode createMode =
                                                 SkMask::kComputeBoundsAndRenderImage_CreateMode);
-    // DEPRECATED - radius-based
+
+    SK_ATTR_DEPRECATED("use sigma version")
     static bool Blur(SkMask* dst, const SkMask& src,
                      SkScalar radius, Style style, Quality quality,
                      SkIPoint* margin = NULL);
-    // DEPRECATED - radius-based
+
+    SK_ATTR_DEPRECATED("use sigma version")
     static bool BlurGroundTruth(SkMask* dst, const SkMask& src,
                                 SkScalar radius, Style style,
                                 SkIPoint* margin = NULL);
diff --git a/src/effects/SkBlurMaskFilter.cpp b/src/effects/SkBlurMaskFilter.cpp
index 6a5a397..5b72a6c 100644
--- a/src/effects/SkBlurMaskFilter.cpp
+++ b/src/effects/SkBlurMaskFilter.cpp
@@ -386,7 +386,7 @@
 
     float sigma3 = 3 * SkScalarToFloat(xformedSigma);
 
-    SkRect clipRect = SkRect::MakeFromIRect(clipBounds);
+    SkRect clipRect = SkRect::Make(clipBounds);
     SkRect srcRect(srcBounds);
 
     // Outset srcRect and clipRect by 3 * sigma, to compute affected blur area.
diff --git a/src/effects/SkMorphologyImageFilter.cpp b/src/effects/SkMorphologyImageFilter.cpp
index 52c01fe..152ec56 100644
--- a/src/effects/SkMorphologyImageFilter.cpp
+++ b/src/effects/SkMorphologyImageFilter.cpp
@@ -501,7 +501,7 @@
                                                     direction,
                                                     radius,
                                                     morphType))->unref();
-    context->drawRectToRect(paint, SkRect::MakeFromIRect(dstRect), SkRect::MakeFromIRect(srcRect));
+    context->drawRectToRect(paint, SkRect::Make(dstRect), SkRect::Make(srcRect));
 }
 
 bool apply_morphology(const SkBitmap& input,
diff --git a/src/effects/SkPorterDuff.cpp b/src/effects/SkPorterDuff.cpp
index 816ddae..4cdcf79 100644
--- a/src/effects/SkPorterDuff.cpp
+++ b/src/effects/SkPorterDuff.cpp
@@ -72,7 +72,7 @@
 
 bool SkPorterDuff::IsMode(SkXfermode* xfer, Mode* pdmode) {
     SkXfermode::Mode xfmode;
-    if (!SkXfermode::IsMode(xfer, &xfmode)) {
+    if (!SkXfermode::AsMode(xfer, &xfmode)) {
         return false;
     }
     return find_pdmode(xfmode, pdmode);
diff --git a/src/effects/SkTestImageFilters.cpp b/src/effects/SkTestImageFilters.cpp
index d0e21a3..2891131 100755
--- a/src/effects/SkTestImageFilters.cpp
+++ b/src/effects/SkTestImageFilters.cpp
@@ -48,7 +48,7 @@
         OwnDeviceCanvas canvas(dev);
         SkPaint paint;
 
-        paint.setFilterBitmap(true);
+        paint.setFilterLevel(SkPaint::kLow_FilterLevel);
         canvas.scale(scale, scale);
         canvas.drawBitmap(src, 0, 0, &paint);
         tmp = dev->accessBitmap(false);
diff --git a/src/effects/SkTransparentShader.cpp b/src/effects/SkTransparentShader.cpp
index 0274481..970e74f 100644
--- a/src/effects/SkTransparentShader.cpp
+++ b/src/effects/SkTransparentShader.cpp
@@ -23,7 +23,7 @@
 uint32_t SkTransparentShader::getFlags() {
     uint32_t flags = this->INHERITED::getFlags();
 
-    switch (fDevice->getConfig()) {
+    switch (fDevice->config()) {
         case SkBitmap::kRGB_565_Config:
             flags |= kHasSpan16_Flag;
             if (fAlpha == 255)
@@ -42,7 +42,7 @@
 void SkTransparentShader::shadeSpan(int x, int y, SkPMColor span[], int count) {
     unsigned scale = SkAlpha255To256(fAlpha);
 
-    switch (fDevice->getConfig()) {
+    switch (fDevice->config()) {
         case SkBitmap::kARGB_8888_Config:
             if (scale == 256) {
                 SkPMColor* src = fDevice->getAddr32(x, y);
@@ -103,7 +103,7 @@
 }
 
 void SkTransparentShader::shadeSpan16(int x, int y, uint16_t span[], int count) {
-    SkASSERT(fDevice->getConfig() == SkBitmap::kRGB_565_Config);
+    SkASSERT(fDevice->config() == SkBitmap::kRGB_565_Config);
 
     uint16_t* src = fDevice->getAddr16(x, y);
     if (src != span) {
diff --git a/src/gpu/GrClipMaskManager.cpp b/src/gpu/GrClipMaskManager.cpp
index c8713b6..e2597df 100644
--- a/src/gpu/GrClipMaskManager.cpp
+++ b/src/gpu/GrClipMaskManager.cpp
@@ -366,7 +366,7 @@
                                       GrTextureDomainEffect::MakeTexelDomain(srcMask, srcBound),
                                       GrTextureDomainEffect::kDecal_WrapMode,
                                       GrTextureParams::kNone_FilterMode))->unref();
-    fGpu->drawSimpleRect(SkRect::MakeFromIRect(dstBound), NULL);
+    fGpu->drawSimpleRect(SkRect::Make(dstBound), NULL);
 }
 
 // get a texture to act as a temporary buffer for AA clip boolean operations
@@ -722,7 +722,7 @@
                     SET_RANDOM_COLOR
                     // The view matrix is setup to do clip space -> stencil space translation, so
                     // draw rect in clip space.
-                    fGpu->drawSimpleRect(SkRect::MakeFromIRect(clipSpaceIBounds), NULL);
+                    fGpu->drawSimpleRect(SkRect::Make(clipSpaceIBounds), NULL);
                 }
             }
         }
@@ -961,7 +961,7 @@
             // but leave the pixels inside the geometry alone. For reverse difference we invert all
             // the pixels before clearing the ones outside the geometry.
             if (SkRegion::kReverseDifference_Op == op) {
-                SkRect temp = SkRect::MakeFromIRect(clipSpaceIBounds);
+                SkRect temp = SkRect::Make(clipSpaceIBounds);
                 // invert the entire scene
                 helper.draw(temp, SkRegion::kXOR_Op, false, 0xFF);
             }
diff --git a/src/gpu/GrDrawTarget.h b/src/gpu/GrDrawTarget.h
index c75bba2..6a1cc02 100644
--- a/src/gpu/GrDrawTarget.h
+++ b/src/gpu/GrDrawTarget.h
@@ -362,7 +362,7 @@
         this->drawRect(rect, matrix, NULL, NULL);
     }
     void drawSimpleRect(const SkIRect& irect, const SkMatrix* matrix = NULL) {
-        SkRect rect = SkRect::MakeFromIRect(irect);
+        SkRect rect = SkRect::Make(irect);
         this->drawRect(rect, matrix, NULL, NULL);
     }
 
diff --git a/src/gpu/GrInOrderDrawBuffer.cpp b/src/gpu/GrInOrderDrawBuffer.cpp
index e426de3..a299512 100644
--- a/src/gpu/GrInOrderDrawBuffer.cpp
+++ b/src/gpu/GrInOrderDrawBuffer.cpp
@@ -213,7 +213,7 @@
             // free via the viewport. We don't want to think that clipping must be enabled in this
             // case. So we extend the clip outward from the edge to avoid these false negatives.
             fClipProxyState = kValid_ClipProxyState;
-            fClipProxy = SkRect::MakeFromIRect(rect);
+            fClipProxy = SkRect::Make(rect);
 
             if (fClipProxy.fLeft <= 0) {
                 fClipProxy.fLeft = SK_ScalarMin;
diff --git a/src/gpu/GrReducedClip.cpp b/src/gpu/GrReducedClip.cpp
index 2b6583e..a5f4519 100644
--- a/src/gpu/GrReducedClip.cpp
+++ b/src/gpu/GrReducedClip.cpp
@@ -51,7 +51,7 @@
 
     const SkIRect* bounds = &queryBounds;
 
-    SkRect scalarQueryBounds = SkRect::MakeFromIRect(queryBounds);
+    SkRect scalarQueryBounds = SkRect::Make(queryBounds);
 
     if (iior) {
         SkASSERT(SkClipStack::kNormal_BoundsType == stackBoundsType);
@@ -67,7 +67,7 @@
         } else if (isectRect.intersect(stackBounds, scalarQueryBounds)) {
             if (NULL != tighterBounds) {
                 isectRect.roundOut(tighterBounds);
-                SkRect scalarTighterBounds = SkRect::MakeFromIRect(*tighterBounds);
+                SkRect scalarTighterBounds = SkRect::Make(*tighterBounds);
                 if (scalarTighterBounds == isectRect) {
                     // the round-out didn't add any area outside the clip rect.
                     *requiresAA = false;
@@ -119,7 +119,7 @@
         }
     }
 
-    SkRect scalarBounds = SkRect::MakeFromIRect(*bounds);
+    SkRect scalarBounds = SkRect::Make(*bounds);
 
     // Now that we have determined the bounds to use and filtered out the trivial cases, call the
     // helper that actually walks the stack.
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
index 730dad6..f47a91b 100644
--- a/src/gpu/SkGpuDevice.cpp
+++ b/src/gpu/SkGpuDevice.cpp
@@ -53,8 +53,8 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-#define CHECK_FOR_NODRAW_ANNOTATION(paint) \
-    do { if (paint.isNoDrawAnnotation()) { return; } } while (0)
+#define CHECK_FOR_ANNOTATION(paint) \
+    do { if (paint.getAnnotation()) { return; } } while (0)
 
 ///////////////////////////////////////////////////////////////////////////////
 
@@ -572,7 +572,7 @@
 
 void SkGpuDevice::drawPoints(const SkDraw& draw, SkCanvas::PointMode mode,
                              size_t count, const SkPoint pts[], const SkPaint& paint) {
-    CHECK_FOR_NODRAW_ANNOTATION(paint);
+    CHECK_FOR_ANNOTATION(paint);
     CHECK_SHOULD_DRAW(draw, false);
 
     SkScalar width = paint.getStrokeWidth();
@@ -606,7 +606,7 @@
 
 void SkGpuDevice::drawRect(const SkDraw& draw, const SkRect& rect,
                            const SkPaint& paint) {
-    CHECK_FOR_NODRAW_ANNOTATION(paint);
+    CHECK_FOR_ANNOTATION(paint);
     CHECK_SHOULD_DRAW(draw, false);
 
     bool doStroke = paint.getStyle() != SkPaint::kFill_Style;
@@ -662,7 +662,7 @@
 
 void SkGpuDevice::drawRRect(const SkDraw& draw, const SkRRect& rect,
                            const SkPaint& paint) {
-    CHECK_FOR_NODRAW_ANNOTATION(paint);
+    CHECK_FOR_ANNOTATION(paint);
     CHECK_SHOULD_DRAW(draw, false);
 
     bool usePath = !rect.isSimple();
@@ -695,7 +695,7 @@
 
 void SkGpuDevice::drawOval(const SkDraw& draw, const SkRect& oval,
                            const SkPaint& paint) {
-    CHECK_FOR_NODRAW_ANNOTATION(paint);
+    CHECK_FOR_ANNOTATION(paint);
     CHECK_SHOULD_DRAW(draw, false);
 
     bool usePath = false;
@@ -787,7 +787,7 @@
     texture->writePixels(0, 0, desc.fWidth, desc.fHeight, desc.fConfig,
                                dstM.fImage, dstM.fRowBytes);
 
-    SkRect maskRect = SkRect::MakeFromIRect(dstM.fBounds);
+    SkRect maskRect = SkRect::Make(dstM.fBounds);
 
     return draw_mask(context, maskRect, grp, texture);
 }
@@ -860,7 +860,7 @@
 void SkGpuDevice::drawPath(const SkDraw& draw, const SkPath& origSrcPath,
                            const SkPaint& paint, const SkMatrix* prePathMatrix,
                            bool pathIsMutable) {
-    CHECK_FOR_NODRAW_ANNOTATION(paint);
+    CHECK_FOR_ANNOTATION(paint);
     CHECK_SHOULD_DRAW(draw, false);
 
     GrPaint grPaint;
@@ -1017,7 +1017,7 @@
         clippedSrcIRect->setEmpty();
         return;
     }
-    SkRect clippedSrcRect = SkRect::MakeFromIRect(*clippedSrcIRect);
+    SkRect clippedSrcRect = SkRect::Make(*clippedSrcIRect);
     inv.mapRect(&clippedSrcRect);
     if (NULL != srcRectPtr) {
         if (!clippedSrcRect.intersect(*srcRectPtr)) {
@@ -1236,7 +1236,7 @@
                                   const SkPaint& paint,
                                   SkCanvas::DrawBitmapRectFlags flags,
                                   int tileSize) {
-    SkRect clippedSrcRect = SkRect::MakeFromIRect(clippedSrcIRect);
+    SkRect clippedSrcRect = SkRect::Make(clippedSrcIRect);
 
     int nx = bitmap.width() / tileSize;
     int ny = bitmap.height() / tileSize;
diff --git a/src/images/SkImageDecoder.cpp b/src/images/SkImageDecoder.cpp
index 89bd059..74c80bc 100644
--- a/src/images/SkImageDecoder.cpp
+++ b/src/images/SkImageDecoder.cpp
@@ -229,7 +229,7 @@
                                 int srcX, int srcY) {
     int w = width / sampleSize;
     int h = height / sampleSize;
-    if (src->getConfig() == SkBitmap::kIndex8_Config) {
+    if (src->config() == SkBitmap::kIndex8_Config) {
         // kIndex8 does not allow drawing via an SkCanvas, as is done below.
         // Instead, use extractSubset. Note that this shares the SkPixelRef and
         // SkColorTable.
@@ -245,7 +245,7 @@
     }
     // if the destination has no pixels then we must allocate them.
     if (dst->isNull()) {
-        dst->setConfig(src->getConfig(), w, h, 0, src->alphaType());
+        dst->setConfig(src->config(), w, h, 0, src->alphaType());
 
         if (!this->allocPixelRef(dst, NULL)) {
             SkDEBUGF(("failed to allocate pixels needed to crop the bitmap"));
diff --git a/src/images/SkImageDecoder_libpng.cpp b/src/images/SkImageDecoder_libpng.cpp
index 4047fea..e46def4 100644
--- a/src/images/SkImageDecoder_libpng.cpp
+++ b/src/images/SkImageDecoder_libpng.cpp
@@ -1123,7 +1123,7 @@
 
 bool SkPNGImageEncoder::onEncode(SkWStream* stream, const SkBitmap& bitmap,
                                  int /*quality*/) {
-    SkBitmap::Config config = bitmap.getConfig();
+    SkBitmap::Config config = bitmap.config();
 
     const bool hasAlpha = !bitmap.isOpaque();
     int colorType = PNG_COLOR_MASK_COLOR;
diff --git a/src/images/SkImageDecoder_libwebp.cpp b/src/images/SkImageDecoder_libwebp.cpp
index 68014dd..ab58aef 100644
--- a/src/images/SkImageDecoder_libwebp.cpp
+++ b/src/images/SkImageDecoder_libwebp.cpp
@@ -521,7 +521,7 @@
 
 bool SkWEBPImageEncoder::onEncode(SkWStream* stream, const SkBitmap& bm,
                                   int quality) {
-    const SkBitmap::Config config = bm.getConfig();
+    const SkBitmap::Config config = bm.config();
     const ScanlineImporter scanline_import = ChooseImporter(config);
     if (NULL == scanline_import) {
         return false;
diff --git a/src/images/SkImageEncoder_argb.cpp b/src/images/SkImageEncoder_argb.cpp
index 5abc23c..97b741b 100644
--- a/src/images/SkImageEncoder_argb.cpp
+++ b/src/images/SkImageEncoder_argb.cpp
@@ -87,7 +87,7 @@
 }
 
 bool SkARGBImageEncoder::onEncode(SkWStream* stream, const SkBitmap& bitmap, int) {
-    const SkBitmap::Config config = bitmap.getConfig();
+    const SkBitmap::Config config = bitmap.config();
     const ScanlineImporter scanline_import = ChooseImporter(config);
     if (NULL == scanline_import) {
         return false;
diff --git a/src/pdf/SkPDFDevice.cpp b/src/pdf/SkPDFDevice.cpp
index d8e7b13..77aa7a3 100644
--- a/src/pdf/SkPDFDevice.cpp
+++ b/src/pdf/SkPDFDevice.cpp
@@ -1607,13 +1607,13 @@
     SkData* urlData = annotationInfo->find(SkAnnotationKeys::URL_Key());
     if (urlData) {
         handleLinkToURL(urlData, r, matrix);
-        return p.isNoDrawAnnotation();
+        return p.getAnnotation() != NULL;
     }
     SkData* linkToName = annotationInfo->find(
             SkAnnotationKeys::Link_Named_Dest_Key());
     if (linkToName) {
         handleLinkToNamedDest(linkToName, r, matrix);
-        return p.isNoDrawAnnotation();
+        return p.getAnnotation() != NULL;
     }
     return false;
 }
@@ -1631,7 +1631,7 @@
         for (size_t i = 0; i < count; i++) {
             defineNamedDestination(nameData, points[i], matrix);
         }
-        return paint.isNoDrawAnnotation();
+        return paint.getAnnotation() != NULL;
     }
     return false;
 }
diff --git a/src/pdf/SkPDFImage.cpp b/src/pdf/SkPDFImage.cpp
index ed20455..c3dc396 100644
--- a/src/pdf/SkPDFImage.cpp
+++ b/src/pdf/SkPDFImage.cpp
@@ -27,7 +27,7 @@
 
 static size_t get_uncompressed_size(const SkBitmap& bitmap,
                                     const SkIRect& srcRect) {
-    switch (bitmap.getConfig()) {
+    switch (bitmap.config()) {
         case SkBitmap::kIndex8_Config:
             return srcRect.width() * srcRect.height();
         case SkBitmap::kARGB_4444_Config:
@@ -491,7 +491,7 @@
 SkPDFImage* SkPDFImage::CreateImage(const SkBitmap& bitmap,
                                     const SkIRect& srcRect,
                                     SkPicture::EncodeBitmap encoder) {
-    if (bitmap.getConfig() == SkBitmap::kNo_Config) {
+    if (bitmap.config() == SkBitmap::kNo_Config) {
         return NULL;
     }
 
@@ -569,7 +569,7 @@
         fStreamValid = false;
     }
 
-    SkBitmap::Config config = fBitmap.getConfig();
+    SkBitmap::Config config = fBitmap.config();
 
     insertName("Type", "XObject");
     insertName("Subtype", "Image");
diff --git a/src/pipe/SkGPipeWrite.cpp b/src/pipe/SkGPipeWrite.cpp
index 50043c6..b61de1c 100644
--- a/src/pipe/SkGPipeWrite.cpp
+++ b/src/pipe/SkGPipeWrite.cpp
@@ -294,7 +294,7 @@
 
     inline void doNotify() {
         if (!fDone) {
-            size_t bytes = fWriter.size() - fBytesNotified;
+            size_t bytes = fWriter.bytesWritten() - fBytesNotified;
             if (bytes > 0) {
                 fController->notifyWritten(bytes);
                 fBytesNotified += bytes;
@@ -467,7 +467,7 @@
     }
 
     needed += 4;  // size of DrawOp atom
-    if (fWriter.size() + needed > fBlockSize) {
+    if (fWriter.bytesWritten() + needed > fBlockSize) {
         // Before we wipe out any data that has already been written, read it
         // out.
         this->doNotify();
diff --git a/src/ports/SkImageDecoder_CG.cpp b/src/ports/SkImageDecoder_CG.cpp
index 3f850b5..9b93f81 100644
--- a/src/ports/SkImageDecoder_CG.cpp
+++ b/src/ports/SkImageDecoder_CG.cpp
@@ -219,7 +219,7 @@
             // format.
             // <Error>: CGImageDestinationFinalize image destination does not have enough images
             // So instead we copy to 8888.
-            if (bm.getConfig() == SkBitmap::kARGB_4444_Config) {
+            if (bm.config() == SkBitmap::kARGB_4444_Config) {
                 bm.copyTo(&bitmap8888, SkBitmap::kARGB_8888_Config);
                 bmPtr = &bitmap8888;
             }
diff --git a/src/utils/SkCanvasStateUtils.cpp b/src/utils/SkCanvasStateUtils.cpp
index c62bc04..9c7d8fa 100644
--- a/src/utils/SkCanvasStateUtils.cpp
+++ b/src/utils/SkCanvasStateUtils.cpp
@@ -171,7 +171,7 @@
     }
 
     // allocate memory for the clip then and copy them to the struct
-    state->clipRects = (ClipRect*) sk_malloc_throw(clipWriter.size());
+    state->clipRects = (ClipRect*) sk_malloc_throw(clipWriter.bytesWritten());
     clipWriter.flatten(state->clipRects);
 }
 
@@ -239,9 +239,9 @@
     }
 
     // allocate memory for the layers and then and copy them to the struct
-    SkASSERT(layerWriter.size() == layerCount * sizeof(SkCanvasLayerState));
+    SkASSERT(layerWriter.bytesWritten() == layerCount * sizeof(SkCanvasLayerState));
     canvasState->layerCount = layerCount;
-    canvasState->layers = (SkCanvasLayerState*) sk_malloc_throw(layerWriter.size());
+    canvasState->layers = (SkCanvasLayerState*) sk_malloc_throw(layerWriter.bytesWritten());
     layerWriter.flatten(canvasState->layers);
 
     // for now, just ignore any client supplied DrawFilter.
diff --git a/src/utils/debugger/SkDebugCanvas.h b/src/utils/debugger/SkDebugCanvas.h
index 7d11662..3df3151 100644
--- a/src/utils/debugger/SkDebugCanvas.h
+++ b/src/utils/debugger/SkDebugCanvas.h
@@ -109,8 +109,8 @@
 
     /**
         Returns the vector of draw commands
-        DEPRECATED: please use getDrawCommandAt and getSize instead
      */
+    SK_ATTR_DEPRECATED("please use getDrawCommandAt and getSize instead")
     const SkTDArray<SkDrawCommand*>& getDrawCommands() const;
 
     /**
diff --git a/src/utils/debugger/SkObjectParser.cpp b/src/utils/debugger/SkObjectParser.cpp
index 9dd77c0..107e04a 100644
--- a/src/utils/debugger/SkObjectParser.cpp
+++ b/src/utils/debugger/SkObjectParser.cpp
@@ -31,7 +31,7 @@
     SkASSERT(SkBitmap::kConfigCount == 7);
 
     mBitmap->append(" Config: ");
-    mBitmap->append(gConfigStrings[bitmap.getConfig()]);
+    mBitmap->append(gConfigStrings[bitmap.config()]);
 
     if (bitmap.isOpaque()) {
         mBitmap->append(" opaque");
diff --git a/src/views/SkWindow.cpp b/src/views/SkWindow.cpp
index d6fe32b..3291450 100644
--- a/src/views/SkWindow.cpp
+++ b/src/views/SkWindow.cpp
@@ -117,7 +117,7 @@
 
 void SkWindow::eraseRGB(U8CPU r, U8CPU g, U8CPU b)
 {
-    fBitmap.eraseRGB(r, g, b);
+    fBitmap.eraseARGB(0xFF, r, g, b);
 }
 
 bool SkWindow::handleInval(const SkRect* localR)
diff --git a/tests/BitmapCopyTest.cpp b/tests/BitmapCopyTest.cpp
index bf0d2f7..5cef1eb 100644
--- a/tests/BitmapCopyTest.cpp
+++ b/tests/BitmapCopyTest.cpp
@@ -96,7 +96,7 @@
     SkAutoLockPixels lock(bm);
     const void* rawAddr = bm.getAddr(x,y);
 
-    switch (bm.getConfig()) {
+    switch (bm.config()) {
         case SkBitmap::kARGB_8888_Config:
             memcpy(&val, rawAddr, sizeof(uint32_t));
             break;
@@ -130,7 +130,7 @@
     SkAutoLockPixels lock(bm);
     void* rawAddr = bm.getAddr(x,y);
 
-    switch (bm.getConfig()) {
+    switch (bm.config()) {
         case SkBitmap::kARGB_8888_Config:
             memcpy(rawAddr, &val, sizeof(uint32_t));
             break;
@@ -162,7 +162,7 @@
 // Utility to return string containing name of each format, to
 // simplify diagnostic output.
 static const char* getSkConfigName(const SkBitmap& bm) {
-    switch (bm.getConfig()) {
+    switch (bm.config()) {
         case SkBitmap::kNo_Config: return "SkBitmap::kNo_Config";
         case SkBitmap::kA1_Config: return "SkBitmap::kA1_Config";
         case SkBitmap::kA8_Config: return "SkBitmap::kA8_Config";
@@ -458,7 +458,7 @@
 
                 srcReady = src.extractSubset(&subset, r);
             } else {
-                srcReady = src.copyTo(&subset, src.getConfig());
+                srcReady = src.copyTo(&subset, src.config());
             }
 
             // Not all configurations will generate a valid 'subset'.
@@ -469,7 +469,7 @@
                 // buf to a SkBitmap, but copies are done using the
                 // raw buffer pointer.
                 const size_t bufSize = subH *
-                    SkBitmap::ComputeRowBytes(src.getConfig(), subW) * 2;
+                    SkBitmap::ComputeRowBytes(src.config(), subW) * 2;
                 SkAutoMalloc autoBuf (bufSize);
                 uint8_t* buf = static_cast<uint8_t*>(autoBuf.get());
 
@@ -496,8 +496,7 @@
                 memset(buf, 0xFF, bufSize);
                 // Config with stride greater than src but that fits in buf.
                 bufBm.setConfig(gPairs[i].fConfig, subW, subH,
-                    SkBitmap::ComputeRowBytes(subset.getConfig(), subW)
-                                              * 2);
+                    SkBitmap::ComputeRowBytes(subset.config(), subW) * 2);
                 bufBm.setPixels(buf);
                 successExpected = false;
                 // Then attempt to copy with a stride that is too large
diff --git a/tests/GpuBitmapCopyTest.cpp b/tests/GpuBitmapCopyTest.cpp
index 0d9cf2b..6e1d74d 100644
--- a/tests/GpuBitmapCopyTest.cpp
+++ b/tests/GpuBitmapCopyTest.cpp
@@ -139,7 +139,7 @@
             SkCanvas drawingCanvas(device);
             SkPaint paint;
             paint.setColor(SK_ColorRED);
-            drawingCanvas.drawRect(SkRect::MakeFromIRect(subsetRect), paint);
+            drawingCanvas.drawRect(SkRect::Make(subsetRect), paint);
 
             // Extract a subset. If this succeeds we will test copying the subset.
             SkBitmap subset;
diff --git a/tests/Matrix44Test.cpp b/tests/Matrix44Test.cpp
index 772d7b2..51a6e7f 100644
--- a/tests/Matrix44Test.cpp
+++ b/tests/Matrix44Test.cpp
@@ -73,8 +73,7 @@
 }
 
 static bool is_identity(const SkMatrix44& m) {
-    SkMatrix44 identity;
-    identity.reset();
+    SkMatrix44 identity(SkMatrix44::kIdentity_Constructor);
     return nearly_equal(m, identity);
 }
 
@@ -85,7 +84,7 @@
 
 static void test_constructor(skiatest::Reporter* reporter) {
     // Allocate a matrix on the heap
-    SkMatrix44* placeholderMatrix = new SkMatrix44();
+    SkMatrix44* placeholderMatrix = new SkMatrix44(SkMatrix44::kUninitialized_Constructor);
     SkAutoTDelete<SkMatrix44> deleteMe(placeholderMatrix);
 
     for (int row = 0; row < 4; ++row) {
@@ -115,7 +114,8 @@
 }
 
 static void test_translate(skiatest::Reporter* reporter) {
-    SkMatrix44 mat, inverse;
+    SkMatrix44 mat(SkMatrix44::kUninitialized_Constructor);
+    SkMatrix44 inverse(SkMatrix44::kUninitialized_Constructor);
 
     mat.setTranslate(0, 0, 0);
     REPORTER_ASSERT(reporter, bits_isonly(mat.getType(), SkMatrix44::kIdentity_Mask));
@@ -124,7 +124,9 @@
     REPORTER_ASSERT(reporter, mat.invert(&inverse));
     REPORTER_ASSERT(reporter, bits_isonly(inverse.getType(), SkMatrix44::kTranslate_Mask));
 
-    SkMatrix44 a, b, c;
+    SkMatrix44 a(SkMatrix44::kUninitialized_Constructor);
+    SkMatrix44 b(SkMatrix44::kUninitialized_Constructor);
+    SkMatrix44 c(SkMatrix44::kUninitialized_Constructor);
     a.set3x3(1, 2, 3, 4, 5, 6, 7, 8, 9);
     b.setTranslate(10, 11, 12);
 
@@ -140,7 +142,8 @@
 }
 
 static void test_scale(skiatest::Reporter* reporter) {
-    SkMatrix44 mat, inverse;
+    SkMatrix44 mat(SkMatrix44::kUninitialized_Constructor);
+    SkMatrix44 inverse(SkMatrix44::kUninitialized_Constructor);
 
     mat.setScale(1, 1, 1);
     REPORTER_ASSERT(reporter, bits_isonly(mat.getType(), SkMatrix44::kIdentity_Mask));
@@ -149,7 +152,9 @@
     REPORTER_ASSERT(reporter, mat.invert(&inverse));
     REPORTER_ASSERT(reporter, bits_isonly(inverse.getType(), SkMatrix44::kScale_Mask));
 
-    SkMatrix44 a, b, c;
+    SkMatrix44 a(SkMatrix44::kUninitialized_Constructor);
+    SkMatrix44 b(SkMatrix44::kUninitialized_Constructor);
+    SkMatrix44 c(SkMatrix44::kUninitialized_Constructor);
     a.set3x3(1, 2, 3, 4, 5, 6, 7, 8, 9);
     b.setScale(10, 11, 12);
 
@@ -207,7 +212,7 @@
 }
 
 static void test_map2(skiatest::Reporter* reporter) {
-    SkMatrix44 mat;
+    SkMatrix44 mat(SkMatrix44::kUninitialized_Constructor);
 
     for (size_t i = 0; i < SK_ARRAY_COUNT(gMakeProcs); ++i) {
         gMakeProcs[i](&mat);
@@ -216,7 +221,7 @@
 }
 
 static void test_gettype(skiatest::Reporter* reporter) {
-    SkMatrix44 matrix;
+    SkMatrix44 matrix(SkMatrix44::kIdentity_Constructor);
 
     REPORTER_ASSERT(reporter, matrix.isIdentity());
     REPORTER_ASSERT(reporter, SkMatrix44::kIdentity_Mask == matrix.getType());
@@ -251,7 +256,7 @@
 }
 
 static void test_common_angles(skiatest::Reporter* reporter) {
-    SkMatrix44 rot;
+    SkMatrix44 rot(SkMatrix44::kUninitialized_Constructor);
     // Test precision of rotation in common cases
     int common_angles[] = { 0, 90, -90, 180, -180, 270, -270, 360, -360 };
     for (int i = 0; i < 9; ++i) {
@@ -264,7 +269,10 @@
 
 static void test_concat(skiatest::Reporter* reporter) {
     int i;
-    SkMatrix44 a, b, c, d;
+    SkMatrix44 a(SkMatrix44::kUninitialized_Constructor);
+    SkMatrix44 b(SkMatrix44::kUninitialized_Constructor);
+    SkMatrix44 c(SkMatrix44::kUninitialized_Constructor);
+    SkMatrix44 d(SkMatrix44::kUninitialized_Constructor);
 
     a.setTranslate(10, 10, 10);
     b.setScale(2, 2, 2);
@@ -301,11 +309,11 @@
 }
 
 static void test_determinant(skiatest::Reporter* reporter) {
-    SkMatrix44 a;
+    SkMatrix44 a(SkMatrix44::kIdentity_Constructor);
     REPORTER_ASSERT(reporter, nearly_equal_double(1, a.determinant()));
     a.set(1, 1, 2);
     REPORTER_ASSERT(reporter, nearly_equal_double(2, a.determinant()));
-    SkMatrix44 b;
+    SkMatrix44 b(SkMatrix44::kUninitialized_Constructor);
     REPORTER_ASSERT(reporter, a.invert(&b));
     REPORTER_ASSERT(reporter, nearly_equal_double(0.5, b.determinant()));
     SkMatrix44 c = b = a;
@@ -326,11 +334,10 @@
 }
 
 static void test_invert(skiatest::Reporter* reporter) {
-    SkMatrix44 inverse;
+    SkMatrix44 inverse(SkMatrix44::kUninitialized_Constructor);
     double inverseData[16];
 
-    SkMatrix44 identity;
-    identity.setIdentity();
+    SkMatrix44 identity(SkMatrix44::kIdentity_Constructor);
     identity.invert(&inverse);
     inverse.asRowMajord(inverseData);
     assert16<double>(reporter, inverseData,
@@ -339,7 +346,7 @@
                      0, 0, 1, 0,
                      0, 0, 0, 1);
 
-    SkMatrix44 translation;
+    SkMatrix44 translation(SkMatrix44::kUninitialized_Constructor);
     translation.setTranslate(2, 3, 4);
     translation.invert(&inverse);
     inverse.asRowMajord(inverseData);
@@ -349,7 +356,7 @@
                      0, 0, 1, -4,
                      0, 0, 0, 1);
 
-    SkMatrix44 scale;
+    SkMatrix44 scale(SkMatrix44::kUninitialized_Constructor);
     scale.setScale(2, 4, 8);
     scale.invert(&inverse);
     inverse.asRowMajord(inverseData);
@@ -359,7 +366,7 @@
                      0,   0,    0.125, 0,
                      0,   0,    0,     1);
 
-    SkMatrix44 scaleTranslation;
+    SkMatrix44 scaleTranslation(SkMatrix44::kUninitialized_Constructor);
     scaleTranslation.setScale(10, 100, 1000);
     scaleTranslation.preTranslate(2, 3, 4);
     scaleTranslation.invert(&inverse);
@@ -370,10 +377,10 @@
                      0,    0,  0.001, -4,
                      0,    0,    0,   1);
 
-    SkMatrix44 rotation;
+    SkMatrix44 rotation(SkMatrix44::kUninitialized_Constructor);
     rotation.setRotateDegreesAbout(0, 0, 1, 90);
     rotation.invert(&inverse);
-    SkMatrix44 expected;
+    SkMatrix44 expected(SkMatrix44::kUninitialized_Constructor);
     double expectedInverseRotation[16] =
             {0,  1, 0, 0,
              -1, 0, 0, 0,
@@ -382,7 +389,7 @@
     expected.setRowMajord(expectedInverseRotation);
     REPORTER_ASSERT(reporter, nearly_equal(expected, inverse));
 
-    SkMatrix44 affine;
+    SkMatrix44 affine(SkMatrix44::kUninitialized_Constructor);
     affine.setRotateDegreesAbout(0, 0, 1, 90);
     affine.preScale(10, 20, 100);
     affine.preTranslate(2, 3, 4);
@@ -395,8 +402,7 @@
     expected.setRowMajord(expectedInverseAffine);
     REPORTER_ASSERT(reporter, nearly_equal(expected, inverse));
 
-    SkMatrix44 perspective;
-    perspective.setIdentity();
+    SkMatrix44 perspective(SkMatrix44::kIdentity_Constructor);
     perspective.setDouble(3, 2, 1.0);
     perspective.invert(&inverse);
     double expectedInversePerspective[16] =
@@ -407,8 +413,7 @@
     expected.setRowMajord(expectedInversePerspective);
     REPORTER_ASSERT(reporter, nearly_equal(expected, inverse));
 
-    SkMatrix44 affineAndPerspective;
-    affineAndPerspective.setIdentity();
+    SkMatrix44 affineAndPerspective(SkMatrix44::kIdentity_Constructor);
     affineAndPerspective.setDouble(3, 2, 1.0);
     affineAndPerspective.preScale(10, 20, 100);
     affineAndPerspective.preTranslate(2, 3, 4);
@@ -423,8 +428,8 @@
 }
 
 static void test_transpose(skiatest::Reporter* reporter) {
-    SkMatrix44 a;
-    SkMatrix44 b;
+    SkMatrix44 a(SkMatrix44::kUninitialized_Constructor);
+    SkMatrix44 b(SkMatrix44::kUninitialized_Constructor);
 
     int i = 0;
     for (int row = 0; row < 4; ++row) {
@@ -439,7 +444,7 @@
 }
 
 static void test_get_set_double(skiatest::Reporter* reporter) {
-    SkMatrix44 a;
+    SkMatrix44 a(SkMatrix44::kUninitialized_Constructor);
     for (int row = 0; row < 4; ++row) {
         for (int col = 0; col < 4; ++col) {
             a.setDouble(row, col, 3.141592653589793);
@@ -454,7 +459,9 @@
 }
 
 static void test_set_row_col_major(skiatest::Reporter* reporter) {
-    SkMatrix44 a, b, c, d;
+    SkMatrix44 a(SkMatrix44::kUninitialized_Constructor);
+    SkMatrix44 b(SkMatrix44::kUninitialized_Constructor);
+
     for (int row = 0; row < 4; ++row) {
         for (int col = 0; col < 4; ++col) {
             a.setDouble(row, col, row * 4 + col);
@@ -489,7 +496,7 @@
                                          5, 6, 0, 8,
                                          0, 0, 1, 0,
                                          13, 14, 0, 16 };
-    SkMatrix44 a44;
+    SkMatrix44 a44(SkMatrix44::kUninitialized_Constructor);
     a44.setRowMajor(values4x4);
 
     SkMatrix a33 = a44;
@@ -498,7 +505,7 @@
     REPORTER_ASSERT(reporter, expected33 == a33);
 
     SkMatrix44 a44flattened = a33;
-    SkMatrix44 expected44flattened;
+    SkMatrix44 expected44flattened(SkMatrix44::kUninitialized_Constructor);
     expected44flattened.setRowMajor(values4x4flattened);
     REPORTER_ASSERT(reporter, nearly_equal(a44flattened, expected44flattened));
 
@@ -522,9 +529,12 @@
 }
 
 static void TestMatrix44(skiatest::Reporter* reporter) {
-    SkMatrix44 mat, inverse, iden1, iden2, rot;
+    SkMatrix44 mat(SkMatrix44::kUninitialized_Constructor);
+    SkMatrix44 inverse(SkMatrix44::kUninitialized_Constructor);
+    SkMatrix44 iden1(SkMatrix44::kUninitialized_Constructor);
+    SkMatrix44 iden2(SkMatrix44::kUninitialized_Constructor);
+    SkMatrix44 rot(SkMatrix44::kUninitialized_Constructor);
 
-    mat.reset();
     mat.setTranslate(1, 1, 1);
     mat.invert(&inverse);
     iden1.setConcat(mat, inverse);
diff --git a/tests/PathTest.cpp b/tests/PathTest.cpp
index 6544c0b..d879ea6 100644
--- a/tests/PathTest.cpp
+++ b/tests/PathTest.cpp
@@ -1768,7 +1768,7 @@
                                 const SkPath& p) {
     SkWriter32 writer(100);
     writer.writePath(p);
-    size_t size = writer.size();
+    size_t size = writer.bytesWritten();
     SkAutoMalloc storage(size);
     writer.flatten(storage.get());
     SkReader32 reader(storage.get(), size);
diff --git a/tests/ShaderImageFilterTest.cpp b/tests/ShaderImageFilterTest.cpp
index 78aa796..49fc6e0 100644
--- a/tests/ShaderImageFilterTest.cpp
+++ b/tests/ShaderImageFilterTest.cpp
@@ -37,7 +37,8 @@
         SkShader* s = SkGradientShader::CreateRadial(
             center, radius, colors, pos, SK_ARRAY_COUNT(colors), SkShader::kClamp_TileMode);
         SkPaint paint;
-        paint.setImageFilter(SkRectShaderImageFilter::Create(s, r))->unref();
+        SkImageFilter::CropRect cr(r);
+        paint.setImageFilter(SkRectShaderImageFilter::Create(s, &cr))->unref();
         canvasFilter.drawRect(r, paint);
         s->unref();
     }
diff --git a/tests/Writer32Test.cpp b/tests/Writer32Test.cpp
index 8b4aba5..1521837 100644
--- a/tests/Writer32Test.cpp
+++ b/tests/Writer32Test.cpp
@@ -86,7 +86,7 @@
     writer.writePtr(p1);
     writer.write8(0x66);
 
-    size_t size = writer.size();
+    size_t size = writer.bytesWritten();
     REPORTER_ASSERT(reporter, 2 * sizeof(void*) + 2 * sizeof(int32_t));
 
     char buffer[32];
@@ -103,14 +103,14 @@
 static void test1(skiatest::Reporter* reporter, SkWriter32* writer) {
     const uint32_t data[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
     for (size_t i = 0; i < SK_ARRAY_COUNT(data); ++i) {
-        REPORTER_ASSERT(reporter, i*4 == writer->size());
+        REPORTER_ASSERT(reporter, i*4 == writer->bytesWritten());
         writer->write32(data[i]);
         uint32_t* addr = writer->peek32(i * 4);
         REPORTER_ASSERT(reporter, data[i] == *addr);
     }
 
     char buffer[sizeof(data)];
-    REPORTER_ASSERT(reporter, sizeof(buffer) == writer->size());
+    REPORTER_ASSERT(reporter, sizeof(buffer) == writer->bytesWritten());
     writer->flatten(buffer);
     REPORTER_ASSERT(reporter, !memcmp(data, buffer, sizeof(buffer)));
 }
@@ -124,7 +124,7 @@
         len += SkWriter32::WriteStringSize(gStr, i);
         writer->writeString(gStr, i);
     }
-    REPORTER_ASSERT(reporter, writer->size() == len);
+    REPORTER_ASSERT(reporter, writer->bytesWritten() == len);
 
     SkAutoMalloc storage(len);
     writer->flatten(storage.get());
@@ -167,7 +167,7 @@
         }
     }
 
-    uint32_t totalBytes = writer->size();
+    uint32_t totalBytes = writer->bytesWritten();
 
     SkAutoMalloc readStorage(totalBytes);
     writer->flatten(readStorage.get());
diff --git a/tests/XfermodeTest.cpp b/tests/XfermodeTest.cpp
index 620fbf4..7d23b85 100644
--- a/tests/XfermodeTest.cpp
+++ b/tests/XfermodeTest.cpp
@@ -23,7 +23,7 @@
         REPORTER_ASSERT(reporter, reportedMode != mode);
 
         // test IsMode
-        REPORTER_ASSERT(reporter, SkXfermode::IsMode(xfer, &reportedMode));
+        REPORTER_ASSERT(reporter, SkXfermode::AsMode(xfer, &reportedMode));
         REPORTER_ASSERT(reporter, reportedMode == mode);
 
         // repeat that test, but with asMode instead
@@ -41,7 +41,7 @@
     SkXfermode::Mode reportedMode = ILLEGAL_MODE;
     REPORTER_ASSERT(reporter, !bogusXfer->asMode(&reportedMode));
     REPORTER_ASSERT(reporter, reportedMode == ILLEGAL_MODE);
-    REPORTER_ASSERT(reporter, !SkXfermode::IsMode(bogusXfer, &reportedMode));
+    REPORTER_ASSERT(reporter, !SkXfermode::AsMode(bogusXfer, &reportedMode));
     REPORTER_ASSERT(reporter, reportedMode == ILLEGAL_MODE);
     bogusXfer->unref();
 }