Remove carriage returns.

Also add a presubmit so they don't get added to source code.

Change-Id: I6a85c6a934b1068a63646a0dcc0d3a08baa96ced
Reviewed-on: https://skia-review.googlesource.com/57110
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
diff --git a/docs/SkBitmap_Reference.bmh b/docs/SkBitmap_Reference.bmh
index 03e8a10..35f4de6 100644
--- a/docs/SkBitmap_Reference.bmh
+++ b/docs/SkBitmap_Reference.bmh
@@ -213,19 +213,19 @@
 #Return  true if pixels are allocated ##
 
 #Example
-    SkBitmap bitmap;

-    bitmap.setInfo(SkImageInfo::MakeN32(16, 16, kPremul_SkAlphaType));

-    SkDebugf("pixel address = %p\n", bitmap.getPixels());

-    SkBitmap::HeapAllocator stdalloc;

-    if (!stdalloc.allocPixelRef(&bitmap)) {

-        SkDebugf("pixel allocation failed\n");

-    } else {

-        SkDebugf("pixel address = %p\n", bitmap.getPixels());

-    }

-#StdOut

-pixel address = (nil)

-pixel address = 0x560ddd0ac670

-##

+    SkBitmap bitmap;
+    bitmap.setInfo(SkImageInfo::MakeN32(16, 16, kPremul_SkAlphaType));
+    SkDebugf("pixel address = %p\n", bitmap.getPixels());
+    SkBitmap::HeapAllocator stdalloc;
+    if (!stdalloc.allocPixelRef(&bitmap)) {
+        SkDebugf("pixel allocation failed\n");
+    } else {
+        SkDebugf("pixel address = %p\n", bitmap.getPixels());
+    }
+#StdOut
+pixel address = (nil)
+pixel address = 0x560ddd0ac670
+##
 ##
 
 #SeeAlso Allocator tryAllocPixels
@@ -262,7 +262,7 @@
     }
 }
 #StdOut
-width:  0  height:  0  color: kUnknown_SkColorType  alpha: kUnknown_SkAlphaType

+width:  0  height:  0  color: kUnknown_SkColorType  alpha: kUnknown_SkAlphaType
 width: 25  height: 35  color: kRGBA_8888_SkColorType  alpha: kOpaque_SkAlphaType
 ##
 ##
@@ -283,17 +283,17 @@
 #Return  copy of src ##
 
 #Example
-void draw(SkCanvas* canvas) {

-    SkBitmap original;

-    original.tryAllocPixels(SkImageInfo::Make(25, 35, kRGBA_8888_SkColorType, kOpaque_SkAlphaType));

-    SkDebugf("original has pixels before copy: %s\n", original.getPixels() ? "true" : "false");

-    SkBitmap copy(original);  

-    SkDebugf("original has pixels after copy: %s\n", original.getPixels() ? "true" : "false");

-    SkDebugf("copy has pixels: %s\n", copy.getPixels() ? "true" : "false");

+void draw(SkCanvas* canvas) {
+    SkBitmap original;
+    original.tryAllocPixels(SkImageInfo::Make(25, 35, kRGBA_8888_SkColorType, kOpaque_SkAlphaType));
+    SkDebugf("original has pixels before copy: %s\n", original.getPixels() ? "true" : "false");
+    SkBitmap copy(original);  
+    SkDebugf("original has pixels after copy: %s\n", original.getPixels() ? "true" : "false");
+    SkDebugf("copy has pixels: %s\n", copy.getPixels() ? "true" : "false");
 }
 #StdOut
-original has pixels before copy: true

-original has pixels after copy: true

+original has pixels before copy: true
+original has pixels after copy: true
 copy has pixels: true
 ##
 ##
@@ -314,17 +314,17 @@
 #Return  copy of src ##
 
 #Example
-void draw(SkCanvas* canvas) {

-    SkBitmap original;

-    original.tryAllocPixels(SkImageInfo::Make(25, 35, kRGBA_8888_SkColorType, kOpaque_SkAlphaType));

-    SkDebugf("original has pixels before move: %s\n", original.getPixels() ? "true" : "false");

-    SkBitmap copy(std::move(original));  

-    SkDebugf("original has pixels after move: %s\n", original.getPixels() ? "true" : "false");

-    SkDebugf("copy has pixels: %s\n", copy.getPixels() ? "true" : "false");

-}

+void draw(SkCanvas* canvas) {
+    SkBitmap original;
+    original.tryAllocPixels(SkImageInfo::Make(25, 35, kRGBA_8888_SkColorType, kOpaque_SkAlphaType));
+    SkDebugf("original has pixels before move: %s\n", original.getPixels() ? "true" : "false");
+    SkBitmap copy(std::move(original));  
+    SkDebugf("original has pixels after move: %s\n", original.getPixels() ? "true" : "false");
+    SkDebugf("copy has pixels: %s\n", copy.getPixels() ? "true" : "false");
+}
 #StdOut
-original has pixels before move: true

-original has pixels after move: false

+original has pixels before move: true
+original has pixels after move: false
 copy has pixels: true
 ##
 ##
@@ -358,17 +358,17 @@
 #Return  copy of src ##
 
 #Example
-void draw(SkCanvas* canvas) {

-    SkBitmap original;

-    original.tryAllocPixels(SkImageInfo::Make(25, 35, kRGBA_8888_SkColorType, kOpaque_SkAlphaType));

-    SkDebugf("original has pixels before copy: %s\n", original.getPixels() ? "true" : "false");

-    SkBitmap copy = original;  

-    SkDebugf("original has pixels after copy: %s\n", original.getPixels() ? "true" : "false");

-    SkDebugf("copy has pixels: %s\n", copy.getPixels() ? "true" : "false");

+void draw(SkCanvas* canvas) {
+    SkBitmap original;
+    original.tryAllocPixels(SkImageInfo::Make(25, 35, kRGBA_8888_SkColorType, kOpaque_SkAlphaType));
+    SkDebugf("original has pixels before copy: %s\n", original.getPixels() ? "true" : "false");
+    SkBitmap copy = original;  
+    SkDebugf("original has pixels after copy: %s\n", original.getPixels() ? "true" : "false");
+    SkDebugf("copy has pixels: %s\n", copy.getPixels() ? "true" : "false");
 }
 #StdOut
-original has pixels before copy: true

-original has pixels after copy: true

+original has pixels before copy: true
+original has pixels after copy: true
 copy has pixels: true
 ##
 ##
@@ -389,17 +389,17 @@
 #Return  copy of src ##
 
 #Example
-void draw(SkCanvas* canvas) {

-    SkBitmap original;

-    original.tryAllocPixels(SkImageInfo::Make(25, 35, kRGBA_8888_SkColorType, kOpaque_SkAlphaType));

-    SkDebugf("original has pixels before move: %s\n", original.getPixels() ? "true" : "false");

-    SkBitmap copy = std::move(original);  

-    SkDebugf("original has pixels after move: %s\n", original.getPixels() ? "true" : "false");

-    SkDebugf("copy has pixels: %s\n", copy.getPixels() ? "true" : "false");

-}

+void draw(SkCanvas* canvas) {
+    SkBitmap original;
+    original.tryAllocPixels(SkImageInfo::Make(25, 35, kRGBA_8888_SkColorType, kOpaque_SkAlphaType));
+    SkDebugf("original has pixels before move: %s\n", original.getPixels() ? "true" : "false");
+    SkBitmap copy = std::move(original);  
+    SkDebugf("original has pixels after move: %s\n", original.getPixels() ? "true" : "false");
+    SkDebugf("copy has pixels: %s\n", copy.getPixels() ? "true" : "false");
+}
 #StdOut
-original has pixels before move: true

-original has pixels after move: false

+original has pixels before move: true
+original has pixels after move: false
 copy has pixels: true
 ##
 ##
@@ -417,27 +417,27 @@
 #Param other  Bitmap exchanged with original ##
 
 #Example
-void draw(SkCanvas* canvas) {

-    auto debugster = [](const char* prefix, const SkBitmap& b) -> void {

-        const char* alphas[] = {"Unknown", "Opaque", "Premul", "Unpremul"};

-        const char* colors[] = {"Unknown", "Alpha", "RGB_565", "ARGB_4444", "RGBA_8888", "BGRA_8888",

-                                "Gray_8", "RGBA_F16"};

-        SkDebugf("%s width:%d height:%d colorType:k%s_SkColorType alphaType:k%s_SkAlphaType\n",

-                 prefix, b.width(), b.height(), colors[b.colorType()], alphas[b.alphaType()]);

-    };

-    SkBitmap one, two;

-    one.tryAllocPixels(SkImageInfo::Make(1, 1, kRGBA_8888_SkColorType, kOpaque_SkAlphaType));

-    two.tryAllocPixels(SkImageInfo::Make(2, 2, kBGRA_8888_SkColorType, kPremul_SkAlphaType));

-    for (int index = 0; index < 2; ++index) {

-       debugster("one", one);

-       debugster("two", two);

-       one.swap(two);

-    }

+void draw(SkCanvas* canvas) {
+    auto debugster = [](const char* prefix, const SkBitmap& b) -> void {
+        const char* alphas[] = {"Unknown", "Opaque", "Premul", "Unpremul"};
+        const char* colors[] = {"Unknown", "Alpha", "RGB_565", "ARGB_4444", "RGBA_8888", "BGRA_8888",
+                                "Gray_8", "RGBA_F16"};
+        SkDebugf("%s width:%d height:%d colorType:k%s_SkColorType alphaType:k%s_SkAlphaType\n",
+                 prefix, b.width(), b.height(), colors[b.colorType()], alphas[b.alphaType()]);
+    };
+    SkBitmap one, two;
+    one.tryAllocPixels(SkImageInfo::Make(1, 1, kRGBA_8888_SkColorType, kOpaque_SkAlphaType));
+    two.tryAllocPixels(SkImageInfo::Make(2, 2, kBGRA_8888_SkColorType, kPremul_SkAlphaType));
+    for (int index = 0; index < 2; ++index) {
+       debugster("one", one);
+       debugster("two", two);
+       one.swap(two);
+    }
 }
 #StdOut
-one width:1 height:1 colorType:kRGBA_8888_SkColorType alphaType:kOpaque_SkAlphaType

-two width:2 height:2 colorType:kBGRA_8888_SkColorType alphaType:kPremul_SkAlphaType

-one width:2 height:2 colorType:kBGRA_8888_SkColorType alphaType:kPremul_SkAlphaType

+one width:1 height:1 colorType:kRGBA_8888_SkColorType alphaType:kOpaque_SkAlphaType
+two width:2 height:2 colorType:kBGRA_8888_SkColorType alphaType:kPremul_SkAlphaType
+one width:2 height:2 colorType:kBGRA_8888_SkColorType alphaType:kPremul_SkAlphaType
 two width:1 height:1 colorType:kRGBA_8888_SkColorType alphaType:kOpaque_SkAlphaType
 ##
 ##
@@ -456,17 +456,17 @@
 
 #Example
 #Image 4
-void draw(SkCanvas* canvas) {

-    // SkBitmap source;  // pre-populated with soccer ball by fiddle.skia.org

-    const SkImageInfo& info = source.info();

-    const char* alphas[] = {"Unknown", "Opaque", "Premul", "Unpremul"};

-    const char* colors[] = {"Unknown", "Alpha", "RGB_565", "ARGB_4444",

-                            "RGBA_8888", "BGRA_8888", "Gray_8", "RGBA_F16"};

-    SkDebugf("width: %d height: %d color: %s alpha: %s\n", info.width(), info.height(),

-                colors[info.colorType()], alphas[info.alphaType()]);

-#StdOut

-width: 56 height: 56 color: BGRA_8888 alpha: Opaque

-##

+void draw(SkCanvas* canvas) {
+    // SkBitmap source;  // pre-populated with soccer ball by fiddle.skia.org
+    const SkImageInfo& info = source.info();
+    const char* alphas[] = {"Unknown", "Opaque", "Premul", "Unpremul"};
+    const char* colors[] = {"Unknown", "Alpha", "RGB_565", "ARGB_4444",
+                            "RGBA_8888", "BGRA_8888", "Gray_8", "RGBA_F16"};
+    SkDebugf("width: %d height: %d color: %s alpha: %s\n", info.width(), info.height(),
+                colors[info.colorType()], alphas[info.alphaType()]);
+#StdOut
+width: 56 height: 56 color: BGRA_8888 alpha: Opaque
+##
 }
 ##
 
@@ -539,11 +539,11 @@
 #Return  Color_Type in Image_Info ##
 
 #Example
-    const char* colors[] = {"Unknown", "Alpha", "RGB_565", "ARGB_4444",

-                            "RGBA_8888", "BGRA_8888", "Gray_8", "RGBA_F16"};

-    SkBitmap bitmap;

-    bitmap.setInfo(SkImageInfo::MakeA8(16, 32));

-    SkDebugf("color type: k" "%s" "_SkColorType\n", colors[bitmap.colorType()]);

+    const char* colors[] = {"Unknown", "Alpha", "RGB_565", "ARGB_4444",
+                            "RGBA_8888", "BGRA_8888", "Gray_8", "RGBA_F16"};
+    SkBitmap bitmap;
+    bitmap.setInfo(SkImageInfo::MakeA8(16, 32));
+    SkDebugf("color type: k" "%s" "_SkColorType\n", colors[bitmap.colorType()]);
 #StdOut
 color type: kAlpha_SkColorType
 ##
@@ -590,7 +590,7 @@
 SkColorSpace::MakeSRGBLinear creates Color_Space with linear gamma
 and an sRGB gamut. This Color_Space gamma is not close to sRGB gamma.
 ##
-    SkBitmap bitmap;

+    SkBitmap bitmap;
     bitmap.setInfo(SkImageInfo::MakeN32(16, 32, kPremul_SkAlphaType, 
             SkColorSpace::MakeSRGBLinear()));
     SkColorSpace* colorSpace = bitmap.colorSpace();
@@ -620,7 +620,7 @@
 #Return Color_Space in Image_Info wrapped in a smart pointer ##
 
 #Example
-    SkBitmap bitmap1, bitmap2;

+    SkBitmap bitmap1, bitmap2;
     bitmap1.setInfo(SkImageInfo::MakeN32(16, 32, kPremul_SkAlphaType, 
             SkColorSpace::MakeSRGBLinear()));
     bitmap2.setInfo(SkImageInfo::MakeN32(16, 32, kPremul_SkAlphaType,
@@ -663,13 +663,13 @@
                 bitmap.bytesPerPixel());
     }
 #StdOut
-color: kUnknown_SkColorType   bytesPerPixel: 0

-color: kAlpha_SkColorType     bytesPerPixel: 1

-color: kRGB_565_SkColorType   bytesPerPixel: 2

-color: kARGB_4444_SkColorType bytesPerPixel: 2

-color: kRGBA_8888_SkColorType bytesPerPixel: 4

-color: kBGRA_8888_SkColorType bytesPerPixel: 4

-color: kGray_8_SkColorType    bytesPerPixel: 1

+color: kUnknown_SkColorType   bytesPerPixel: 0
+color: kAlpha_SkColorType     bytesPerPixel: 1
+color: kRGB_565_SkColorType   bytesPerPixel: 2
+color: kARGB_4444_SkColorType bytesPerPixel: 2
+color: kRGBA_8888_SkColorType bytesPerPixel: 4
+color: kBGRA_8888_SkColorType bytesPerPixel: 4
+color: kGray_8_SkColorType    bytesPerPixel: 1
 color: kRGBA_F16_SkColorType  bytesPerPixel: 8
 ##
 ##
@@ -730,13 +730,13 @@
                 bitmap.shiftPerPixel());
     }
 #StdOut
-color: kUnknown_SkColorType   shiftPerPixel: 0

-color: kAlpha_SkColorType     shiftPerPixel: 0

-color: kRGB_565_SkColorType   shiftPerPixel: 1

-color: kARGB_4444_SkColorType shiftPerPixel: 1

-color: kRGBA_8888_SkColorType shiftPerPixel: 2

-color: kBGRA_8888_SkColorType shiftPerPixel: 2

-color: kGray_8_SkColorType    shiftPerPixel: 0

+color: kUnknown_SkColorType   shiftPerPixel: 0
+color: kAlpha_SkColorType     shiftPerPixel: 0
+color: kRGB_565_SkColorType   shiftPerPixel: 1
+color: kARGB_4444_SkColorType shiftPerPixel: 1
+color: kRGBA_8888_SkColorType shiftPerPixel: 2
+color: kBGRA_8888_SkColorType shiftPerPixel: 2
+color: kGray_8_SkColorType    shiftPerPixel: 0
 color: kRGBA_F16_SkColorType  shiftPerPixel: 3
 ##
 ##
@@ -789,15 +789,15 @@
 #Return  true if no Pixel_Ref is associated ##
 
 #Example
-    SkBitmap bitmap;

-    SkDebugf("empty bitmap does %shave pixels\n", bitmap.isNull() ? "not " : "");

-    bitmap.setInfo(SkImageInfo::MakeA8(8, 8));

-    SkDebugf("bitmap with dimensions does %shave pixels\n", bitmap.isNull() ? "not " : "");

-    bitmap.allocPixels();

-    SkDebugf("allocated bitmap does %shave pixels\n", bitmap.isNull() ? "not " : "");

+    SkBitmap bitmap;
+    SkDebugf("empty bitmap does %shave pixels\n", bitmap.isNull() ? "not " : "");
+    bitmap.setInfo(SkImageInfo::MakeA8(8, 8));
+    SkDebugf("bitmap with dimensions does %shave pixels\n", bitmap.isNull() ? "not " : "");
+    bitmap.allocPixels();
+    SkDebugf("allocated bitmap does %shave pixels\n", bitmap.isNull() ? "not " : "");
 #StdOut
-empty bitmap does not have pixels

-bitmap with dimensions does not have pixels

+empty bitmap does not have pixels
+bitmap with dimensions does not have pixels
 allocated bitmap does have pixels
 ##
 ##
@@ -816,21 +816,21 @@
 #Return  true if drawing has no effect ##
 
 #Example
-    SkBitmap bitmap;

-    for (int w : { 0, 8 } ) {

-        for (bool allocate : { false, true} ) {

-            bitmap.setInfo(SkImageInfo::MakeA8(w, 8));

-            allocate ? bitmap.allocPixels() : (void) 0 ;

-            SkDebugf("empty:%s isNull:%s drawsNothing:%s\n", bitmap.empty() ? "true " : "false",

-                     bitmap.isNull() ? "true " : "false", bitmap.drawsNothing() ? "true" : "false");

-        }

-    }

-#StdOut

-empty:true  isNull:true  drawsNothing:true

-empty:true  isNull:false drawsNothing:true

-empty:false isNull:true  drawsNothing:true

-empty:false isNull:false drawsNothing:false

-##

+    SkBitmap bitmap;
+    for (int w : { 0, 8 } ) {
+        for (bool allocate : { false, true} ) {
+            bitmap.setInfo(SkImageInfo::MakeA8(w, 8));
+            allocate ? bitmap.allocPixels() : (void) 0 ;
+            SkDebugf("empty:%s isNull:%s drawsNothing:%s\n", bitmap.empty() ? "true " : "false",
+                     bitmap.isNull() ? "true " : "false", bitmap.drawsNothing() ? "true" : "false");
+        }
+    }
+#StdOut
+empty:true  isNull:true  drawsNothing:true
+empty:true  isNull:false drawsNothing:true
+empty:false isNull:true  drawsNothing:true
+empty:false isNull:false drawsNothing:false
+##
 ##
 
 #SeeAlso empty() isNull pixelRef
@@ -854,15 +854,15 @@
 #Return  byte length of pixel row ##
 
 #Example
-   SkBitmap bitmap;

-   for (int rowBytes : { 2, 8 } ) {

-       bool result = bitmap.setInfo(SkImageInfo::MakeA8(4, 4), rowBytes);

-       SkDebugf("setInfo returned:%s rowBytes:%d\n", result ? "true " : "false", bitmap.rowBytes());

-    }

-#StdOut

-setInfo returned:false rowBytes:0

-setInfo returned:true  rowBytes:8

-##

+   SkBitmap bitmap;
+   for (int rowBytes : { 2, 8 } ) {
+       bool result = bitmap.setInfo(SkImageInfo::MakeA8(4, 4), rowBytes);
+       SkDebugf("setInfo returned:%s rowBytes:%d\n", result ? "true " : "false", bitmap.rowBytes());
+    }
+#StdOut
+setInfo returned:false rowBytes:0
+setInfo returned:true  rowBytes:8
+##
 ##
 
 #SeeAlso info() setInfo SkImageInfo::minRowBytes
@@ -903,29 +903,29 @@
 #Return  true if Alpha_Type is set ##
 
 #Example
-void draw(SkCanvas* canvas) {

-   const char* colors[] = {"Unknown", "Alpha_8", "RGB_565", "ARGB_4444",

-                                  "RGBA_8888", "BGRA_8888", "Gray_8", "RGBA_F16"};

-   const char* alphas[] = {"Unknown ", "Opaque  ", "Premul  ", "Unpremul"};

- 

-   SkBitmap bitmap;

-   SkAlphaType alphaTypes[] = { kUnknown_SkAlphaType, kOpaque_SkAlphaType,

-                                kPremul_SkAlphaType, kUnpremul_SkAlphaType };

-   SkDebugf("%88s", "Canonical    Unknown           Opaque            Premul            Unpremul\n");

-   for (SkColorType colorType : { kUnknown_SkColorType, kAlpha_8_SkColorType, kRGB_565_SkColorType,

-                            kARGB_4444_SkColorType, kRGBA_8888_SkColorType, kBGRA_8888_SkColorType, 

-                            kGray_8_SkColorType, kRGBA_F16_SkColorType } ) {

-        for (SkAlphaType canonicalAlphaType : alphaTypes) {

-            SkColorTypeValidateAlphaType(colorType, kUnknown_SkAlphaType, &canonicalAlphaType );

-            SkDebugf("%10s %10s ", colors[(int) colorType], alphas[(int) canonicalAlphaType ]);

-            for (SkAlphaType alphaType : alphaTypes) {

-                bitmap.setInfo(SkImageInfo::Make(4, 4, colorType, canonicalAlphaType));

-                bool result = bitmap.setAlphaType(alphaType);

-                SkDebugf("%s %s    ", result ? "true " : "false", alphas[(int) bitmap.alphaType()]);

-            }

-            SkDebugf("\n");

-        }

-    }

+void draw(SkCanvas* canvas) {
+   const char* colors[] = {"Unknown", "Alpha_8", "RGB_565", "ARGB_4444",
+                                  "RGBA_8888", "BGRA_8888", "Gray_8", "RGBA_F16"};
+   const char* alphas[] = {"Unknown ", "Opaque  ", "Premul  ", "Unpremul"};
+ 
+   SkBitmap bitmap;
+   SkAlphaType alphaTypes[] = { kUnknown_SkAlphaType, kOpaque_SkAlphaType,
+                                kPremul_SkAlphaType, kUnpremul_SkAlphaType };
+   SkDebugf("%88s", "Canonical    Unknown           Opaque            Premul            Unpremul\n");
+   for (SkColorType colorType : { kUnknown_SkColorType, kAlpha_8_SkColorType, kRGB_565_SkColorType,
+                            kARGB_4444_SkColorType, kRGBA_8888_SkColorType, kBGRA_8888_SkColorType, 
+                            kGray_8_SkColorType, kRGBA_F16_SkColorType } ) {
+        for (SkAlphaType canonicalAlphaType : alphaTypes) {
+            SkColorTypeValidateAlphaType(colorType, kUnknown_SkAlphaType, &canonicalAlphaType );
+            SkDebugf("%10s %10s ", colors[(int) colorType], alphas[(int) canonicalAlphaType ]);
+            for (SkAlphaType alphaType : alphaTypes) {
+                bitmap.setInfo(SkImageInfo::Make(4, 4, colorType, canonicalAlphaType));
+                bool result = bitmap.setAlphaType(alphaType);
+                SkDebugf("%s %s    ", result ? "true " : "false", alphas[(int) bitmap.alphaType()]);
+            }
+            SkDebugf("\n");
+        }
+    }
 }
 ##
 
@@ -942,18 +942,18 @@
 #Return  pixel address ##
 
 #Example
-    SkBitmap bitmap;

-    bitmap.setInfo(SkImageInfo::MakeN32(4, 4, kPremul_SkAlphaType));

-    bitmap.allocPixels();

-    bitmap.eraseColor(0x00000000);

-    void* baseAddr = bitmap.getPixels();

-    *(SkPMColor*)baseAddr = 0xFFFFFFFF;

-    SkDebugf("bitmap.getColor(0, 1) %c= 0x00000000\n",

-              bitmap.getColor(0, 1)  == 0x00000000 ? '=' : '!');

-    SkDebugf("bitmap.getColor(0, 0) %c= 0xFFFFFFFF\n",

-              bitmap.getColor(0, 0)  == 0xFFFFFFFF ? '=' : '!');

+    SkBitmap bitmap;
+    bitmap.setInfo(SkImageInfo::MakeN32(4, 4, kPremul_SkAlphaType));
+    bitmap.allocPixels();
+    bitmap.eraseColor(0x00000000);
+    void* baseAddr = bitmap.getPixels();
+    *(SkPMColor*)baseAddr = 0xFFFFFFFF;
+    SkDebugf("bitmap.getColor(0, 1) %c= 0x00000000\n",
+              bitmap.getColor(0, 1)  == 0x00000000 ? '=' : '!');
+    SkDebugf("bitmap.getColor(0, 0) %c= 0xFFFFFFFF\n",
+              bitmap.getColor(0, 0)  == 0xFFFFFFFF ? '=' : '!');
 #StdOut
-bitmap.getColor(0, 1) == 0x00000000

+bitmap.getColor(0, 1) == 0x00000000
 bitmap.getColor(0, 0) == 0xFFFFFFFF
 ##
 ##
@@ -975,7 +975,7 @@
 #Return size in bytes of image buffer ##
 
 #Example
-    SkBitmap bitmap;

+    SkBitmap bitmap;
     for (int width : { 1, 1000, 1000000 } ) {
         for (int height: { 1, 1000, 1000000 } ) {
             SkImageInfo imageInfo = SkImageInfo::MakeN32(width, height, kPremul_SkAlphaType);
@@ -985,14 +985,14 @@
         }
     }
 #StdOut
-width:       1 height:       1 computeByteSize:             4

-width:       1 height:    1000 computeByteSize:          4999

-width:       1 height: 1000000 computeByteSize:       4999999

-width:    1000 height:       1 computeByteSize:          4000

-width:    1000 height:    1000 computeByteSize:       4999000

-width:    1000 height: 1000000 computeByteSize:    4999999000

-width: 1000000 height:       1 computeByteSize:       4000000

-width: 1000000 height:    1000 computeByteSize:    4999000000

+width:       1 height:       1 computeByteSize:             4
+width:       1 height:    1000 computeByteSize:          4999
+width:       1 height: 1000000 computeByteSize:       4999999
+width:    1000 height:       1 computeByteSize:          4000
+width:    1000 height:    1000 computeByteSize:       4999000
+width:    1000 height: 1000000 computeByteSize:    4999999000
+width: 1000000 height:       1 computeByteSize:       4000000
+width: 1000000 height:    1000 computeByteSize:    4999000000
 width: 1000000 height: 1000000 computeByteSize: 4999999000000
 ##
 ##
@@ -1017,25 +1017,25 @@
 #Description
 getSize results are not useful when width() and height() are large.
 ##
-void draw(SkCanvas* canvas) {

-    SkBitmap bitmap;

-    for (int width : { 1, 1000, 1000000 } ) {

-        for (int height: { 1, 1000, 1000000 } ) {

-            SkImageInfo imageInfo = SkImageInfo::MakeN32(width, height, kPremul_SkAlphaType);

-            bitmap.setInfo(imageInfo, width * 5);

-            SkDebugf("width: %7d height: %7d getSize: %9zu\n", width, height, bitmap.getSize());

-        }

-    }

+void draw(SkCanvas* canvas) {
+    SkBitmap bitmap;
+    for (int width : { 1, 1000, 1000000 } ) {
+        for (int height: { 1, 1000, 1000000 } ) {
+            SkImageInfo imageInfo = SkImageInfo::MakeN32(width, height, kPremul_SkAlphaType);
+            bitmap.setInfo(imageInfo, width * 5);
+            SkDebugf("width: %7d height: %7d getSize: %9zu\n", width, height, bitmap.getSize());
+        }
+    }
 }
 #StdOut
-width:       1 height:       1 getSize:         5

-width:       1 height:    1000 getSize:      5000

-width:       1 height: 1000000 getSize:   5000000

-width:    1000 height:       1 getSize:      5000

-width:    1000 height:    1000 getSize:   5000000

-width:    1000 height: 1000000 getSize: 705032704

-width: 1000000 height:       1 getSize:   5000000

-width: 1000000 height:    1000 getSize: 705032704

+width:       1 height:       1 getSize:         5
+width:       1 height:    1000 getSize:      5000
+width:       1 height: 1000000 getSize:   5000000
+width:    1000 height:       1 getSize:      5000
+width:    1000 height:    1000 getSize:   5000000
+width:    1000 height: 1000000 getSize: 705032704
+width: 1000000 height:       1 getSize:   5000000
+width: 1000000 height:    1000 getSize: 705032704
 width: 1000000 height: 1000000 getSize: 658067456
 ##
 ##
@@ -1063,25 +1063,25 @@
 #Description
 getSafeSize results are not useful when width() and height() are large.
 ##
-void draw(SkCanvas* canvas) {

-    SkBitmap bitmap;

-    for (int width : { 1, 1000, 1000000 } ) {

-        for (int height: { 1, 1000, 1000000 } ) {

-            SkImageInfo imageInfo = SkImageInfo::MakeN32(width, height, kPremul_SkAlphaType);

-            bitmap.setInfo(imageInfo, width * 5);

-            SkDebugf("width: %7d height: %7d getSafeSize: %9zu\n", width, height, bitmap.getSafeSize());

-        }

-    }

+void draw(SkCanvas* canvas) {
+    SkBitmap bitmap;
+    for (int width : { 1, 1000, 1000000 } ) {
+        for (int height: { 1, 1000, 1000000 } ) {
+            SkImageInfo imageInfo = SkImageInfo::MakeN32(width, height, kPremul_SkAlphaType);
+            bitmap.setInfo(imageInfo, width * 5);
+            SkDebugf("width: %7d height: %7d getSafeSize: %9zu\n", width, height, bitmap.getSafeSize());
+        }
+    }
 }
 #StdOut
-width:       1 height:       1 getSafeSize:         4

-width:       1 height:    1000 getSafeSize:      4999

-width:       1 height: 1000000 getSafeSize:   4999999

-width:    1000 height:       1 getSafeSize:      4000

-width:    1000 height:    1000 getSafeSize:   4999000

-width:    1000 height: 1000000 getSafeSize:         0

-width: 1000000 height:       1 getSafeSize:   4000000

-width: 1000000 height:    1000 getSafeSize:         0

+width:       1 height:       1 getSafeSize:         4
+width:       1 height:    1000 getSafeSize:      4999
+width:       1 height: 1000000 getSafeSize:   4999999
+width:    1000 height:       1 getSafeSize:      4000
+width:    1000 height:    1000 getSafeSize:   4999000
+width:    1000 height: 1000000 getSafeSize:         0
+width: 1000000 height:       1 getSafeSize:   4000000
+width: 1000000 height:    1000 getSafeSize:         0
 width: 1000000 height: 1000000 getSafeSize:         0
 ##
 ##
@@ -1100,26 +1100,26 @@
 #Return  conservative pixel storage size ##
 
 #Example
-void draw(SkCanvas* canvas) {

-    SkBitmap bitmap;

-    for (int width : { 1, 1000, 1000000 } ) {

-        for (int height: { 1, 1000, 1000000 } ) {

-            SkImageInfo imageInfo = SkImageInfo::MakeN32(width, height, kPremul_SkAlphaType);

-            bitmap.setInfo(imageInfo, width * 5);

-            SkDebugf("width: %7d height: %7d computeSize64: %13lld\n", width, height,

-                     bitmap.computeSize64());

-        }

-    }

+void draw(SkCanvas* canvas) {
+    SkBitmap bitmap;
+    for (int width : { 1, 1000, 1000000 } ) {
+        for (int height: { 1, 1000, 1000000 } ) {
+            SkImageInfo imageInfo = SkImageInfo::MakeN32(width, height, kPremul_SkAlphaType);
+            bitmap.setInfo(imageInfo, width * 5);
+            SkDebugf("width: %7d height: %7d computeSize64: %13lld\n", width, height,
+                     bitmap.computeSize64());
+        }
+    }
 }
 #StdOut
-width:       1 height:       1 computeSize64:             5

-width:       1 height:    1000 computeSize64:          5000

-width:       1 height: 1000000 computeSize64:       5000000

-width:    1000 height:       1 computeSize64:          5000

-width:    1000 height:    1000 computeSize64:       5000000

-width:    1000 height: 1000000 computeSize64:    5000000000

-width: 1000000 height:       1 computeSize64:       5000000

-width: 1000000 height:    1000 computeSize64:    5000000000

+width:       1 height:       1 computeSize64:             5
+width:       1 height:    1000 computeSize64:          5000
+width:       1 height: 1000000 computeSize64:       5000000
+width:    1000 height:       1 computeSize64:          5000
+width:    1000 height:    1000 computeSize64:       5000000
+width:    1000 height: 1000000 computeSize64:    5000000000
+width: 1000000 height:       1 computeSize64:       5000000
+width: 1000000 height:    1000 computeSize64:    5000000000
 width: 1000000 height: 1000000 computeSize64: 5000000000000
 ##
 ##
@@ -1138,26 +1138,26 @@
 #Return  exact pixel storage size ##
 
 #Example
-void draw(SkCanvas* canvas) {

-    SkBitmap bitmap;

-    for (int width : { 1, 1000, 1000000 } ) {

-        for (int height: { 1, 1000, 1000000 } ) {

-            SkImageInfo imageInfo = SkImageInfo::MakeN32(width, height, kPremul_SkAlphaType);

-            bitmap.setInfo(imageInfo, width * 5);

-            SkDebugf("width: %7d height: %7d computeSafeSize64: %13lld\n", width, height,

-                     bitmap.computeSafeSize64());

-        }

-    }

+void draw(SkCanvas* canvas) {
+    SkBitmap bitmap;
+    for (int width : { 1, 1000, 1000000 } ) {
+        for (int height: { 1, 1000, 1000000 } ) {
+            SkImageInfo imageInfo = SkImageInfo::MakeN32(width, height, kPremul_SkAlphaType);
+            bitmap.setInfo(imageInfo, width * 5);
+            SkDebugf("width: %7d height: %7d computeSafeSize64: %13lld\n", width, height,
+                     bitmap.computeSafeSize64());
+        }
+    }
 }
 #StdOut
-width:       1 height:       1 computeSafeSize64:             4

-width:       1 height:    1000 computeSafeSize64:          4999

-width:       1 height: 1000000 computeSafeSize64:       4999999

-width:    1000 height:       1 computeSafeSize64:          4000

-width:    1000 height:    1000 computeSafeSize64:       4999000

-width:    1000 height: 1000000 computeSafeSize64:    4999999000

-width: 1000000 height:       1 computeSafeSize64:       4000000

-width: 1000000 height:    1000 computeSafeSize64:    4999000000

+width:       1 height:       1 computeSafeSize64:             4
+width:       1 height:    1000 computeSafeSize64:          4999
+width:       1 height: 1000000 computeSafeSize64:       4999999
+width:    1000 height:       1 computeSafeSize64:          4000
+width:    1000 height:    1000 computeSafeSize64:       4999000
+width:    1000 height: 1000000 computeSafeSize64:    4999999000
+width: 1000000 height:       1 computeSafeSize64:       4000000
+width: 1000000 height:    1000 computeSafeSize64:    4999000000
 width: 1000000 height: 1000000 computeSafeSize64: 4999999000000
 ##
 ##
@@ -1177,17 +1177,17 @@
 #Return  true if pixels are immutable ##
 
 #Example
-    SkBitmap original; 

-    SkImageInfo info = SkImageInfo::Make(25, 35, kRGBA_8888_SkColorType, kOpaque_SkAlphaType);

-    if (original.tryAllocPixels(info)) {

-        original.setImmutable();

-        SkBitmap copy;

-        original.extractSubset(&copy, {5, 10, 15, 20});  

-        SkDebugf("original is " "%s" "immutable\n", original.isImmutable() ? "" : "not ");

-        SkDebugf("copy is " "%s" "immutable\n", copy.isImmutable() ? "" : "not ");

+    SkBitmap original; 
+    SkImageInfo info = SkImageInfo::Make(25, 35, kRGBA_8888_SkColorType, kOpaque_SkAlphaType);
+    if (original.tryAllocPixels(info)) {
+        original.setImmutable();
+        SkBitmap copy;
+        original.extractSubset(&copy, {5, 10, 15, 20});  
+        SkDebugf("original is " "%s" "immutable\n", original.isImmutable() ? "" : "not ");
+        SkDebugf("copy is " "%s" "immutable\n", copy.isImmutable() ? "" : "not ");
     }
 #StdOut
-original is immutable

+original is immutable
 copy is immutable
 ##
 ##
@@ -1210,14 +1210,14 @@
 #Description
 Triggers assert if SK_DEBUG is true, runs fine otherwise.
 ##
-    SkBitmap bitmap;

-    bitmap.setInfo(SkImageInfo::MakeN32(4, 4, kPremul_SkAlphaType));

-    bitmap.allocPixels();

-    SkCanvas offscreen(bitmap);

-    SkDebugf("draw white\n");

-    offscreen.clear(SK_ColorWHITE);

-    bitmap.setImmutable();

-    SkDebugf("draw black\n");

+    SkBitmap bitmap;
+    bitmap.setInfo(SkImageInfo::MakeN32(4, 4, kPremul_SkAlphaType));
+    bitmap.allocPixels();
+    SkCanvas offscreen(bitmap);
+    SkDebugf("draw white\n");
+    offscreen.clear(SK_ColorWHITE);
+    bitmap.setImmutable();
+    SkDebugf("draw black\n");
     offscreen.clear(SK_ColorBLACK);
 ##
 
@@ -1239,18 +1239,18 @@
 #Description
     isOpaque ignores whether all pixels are opaque or not.
 ##
-    const int height = 2;

-    const int width = 2;

-    SkBitmap bitmap;

-    bitmap.setInfo(SkImageInfo::Make(width, height, kN32_SkColorType, kPremul_SkAlphaType));

-    for (int index = 0; index < 2; ++index) {

-        bitmap.allocPixels();

-        bitmap.eraseColor(0x00000000);

-        SkDebugf("isOpaque: %s\n", bitmap.isOpaque() ? "true" : "false");

-        bitmap.eraseColor(0xFFFFFFFF);

-        SkDebugf("isOpaque: %s\n", bitmap.isOpaque() ? "true" : "false");

-        bitmap.setInfo(bitmap.info().makeAlphaType(kOpaque_SkAlphaType));

-    }

+    const int height = 2;
+    const int width = 2;
+    SkBitmap bitmap;
+    bitmap.setInfo(SkImageInfo::Make(width, height, kN32_SkColorType, kPremul_SkAlphaType));
+    for (int index = 0; index < 2; ++index) {
+        bitmap.allocPixels();
+        bitmap.eraseColor(0x00000000);
+        SkDebugf("isOpaque: %s\n", bitmap.isOpaque() ? "true" : "false");
+        bitmap.eraseColor(0xFFFFFFFF);
+        SkDebugf("isOpaque: %s\n", bitmap.isOpaque() ? "true" : "false");
+        bitmap.setInfo(bitmap.info().makeAlphaType(kOpaque_SkAlphaType));
+    }
 #StdOut
 isOpaque: false
 isOpaque: false
@@ -1275,17 +1275,17 @@
 #Return  true if marked volatile ##
 
 #Example
-    SkBitmap original; 

-    SkImageInfo info = SkImageInfo::Make(25, 35, kRGBA_8888_SkColorType, kOpaque_SkAlphaType);

-    if (original.tryAllocPixels(info)) {

-        original.setIsVolatile(true);

-        SkBitmap copy;

-        original.extractSubset(&copy, {5, 10, 15, 20});  

-        SkDebugf("original is " "%s" "volatile\n", original.isVolatile() ? "" : "not ");

-        SkDebugf("copy is " "%s" "volatile\n", copy.isImmutable() ? "" : "not ");

-    }

+    SkBitmap original; 
+    SkImageInfo info = SkImageInfo::Make(25, 35, kRGBA_8888_SkColorType, kOpaque_SkAlphaType);
+    if (original.tryAllocPixels(info)) {
+        original.setIsVolatile(true);
+        SkBitmap copy;
+        original.extractSubset(&copy, {5, 10, 15, 20});  
+        SkDebugf("original is " "%s" "volatile\n", original.isVolatile() ? "" : "not ");
+        SkDebugf("copy is " "%s" "volatile\n", copy.isImmutable() ? "" : "not ");
+    }
 #StdOut
-original is volatile

+original is volatile
 copy is not volatile
 ##
 ##
@@ -1309,17 +1309,17 @@
 
 #Example
 #Height 20
-    SkBitmap bitmap; 

-    bitmap.setInfo(SkImageInfo::Make(1, 1, kRGBA_8888_SkColorType, kOpaque_SkAlphaType));

-    bitmap.allocPixels();

-    bitmap.eraseColor(SK_ColorRED);

-    canvas->scale(16, 16);

-    canvas->drawBitmap(bitmap, 0, 0);

-    *(SkPMColor*) bitmap.getPixels() = SkPreMultiplyColor(SK_ColorBLUE);

-    canvas->drawBitmap(bitmap, 2, 0);

-    bitmap.setIsVolatile(true);

-    *(SkPMColor*) bitmap.getPixels() = SkPreMultiplyColor(SK_ColorGREEN);

-    canvas->drawBitmap(bitmap, 4, 0);

+    SkBitmap bitmap; 
+    bitmap.setInfo(SkImageInfo::Make(1, 1, kRGBA_8888_SkColorType, kOpaque_SkAlphaType));
+    bitmap.allocPixels();
+    bitmap.eraseColor(SK_ColorRED);
+    canvas->scale(16, 16);
+    canvas->drawBitmap(bitmap, 0, 0);
+    *(SkPMColor*) bitmap.getPixels() = SkPreMultiplyColor(SK_ColorBLUE);
+    canvas->drawBitmap(bitmap, 2, 0);
+    bitmap.setIsVolatile(true);
+    *(SkPMColor*) bitmap.getPixels() = SkPreMultiplyColor(SK_ColorGREEN);
+    canvas->drawBitmap(bitmap, 4, 0);
 ##
 
 #SeeAlso isVolatile
@@ -1340,18 +1340,18 @@
 its memory if Bitmap is the sole owner.
 
 #Example
-    SkBitmap bitmap; 

-    bitmap.setInfo(SkImageInfo::Make(1, 1, kRGBA_8888_SkColorType, kOpaque_SkAlphaType));

-    bitmap.allocPixels();

-    SkDebugf("width:%d height:%d isNull:%s\n", bitmap.width(), bitmap.height(),

-             bitmap.isNull() ? "true" : "false");

-    bitmap.reset();

-    SkDebugf("width:%d height:%d isNull:%s\n", bitmap.width(), bitmap.height(),

-             bitmap.isNull() ? "true" : "false");

-#StdOut

-width:1 height:1 isNull:false

-width:0 height:0 isNull:true

-##

+    SkBitmap bitmap; 
+    bitmap.setInfo(SkImageInfo::Make(1, 1, kRGBA_8888_SkColorType, kOpaque_SkAlphaType));
+    bitmap.allocPixels();
+    SkDebugf("width:%d height:%d isNull:%s\n", bitmap.width(), bitmap.height(),
+             bitmap.isNull() ? "true" : "false");
+    bitmap.reset();
+    SkDebugf("width:%d height:%d isNull:%s\n", bitmap.width(), bitmap.height(),
+             bitmap.isNull() ? "true" : "false");
+#StdOut
+width:1 height:1 isNull:false
+width:0 height:0 isNull:true
+##
 ##
 
 #SeeAlso SkBitmap() SkAlphaType SkColorType
@@ -1381,15 +1381,15 @@
 #Return true if all pixels have opaque values or Color_Type is opaque ##
 
 #Example
-    SkBitmap bitmap;

-    bitmap.setInfo(SkImageInfo::Make(2, 2, kN32_SkColorType, kPremul_SkAlphaType));

-    for (int index = 0; index < 2; ++index) {

-        bitmap.allocPixels();

-        bitmap.eraseColor(0x00000000);

-        SkDebugf("computeIsOpaque: %s\n", SkBitmap::ComputeIsOpaque(bitmap) ? "true" : "false");

-        bitmap.eraseColor(0xFFFFFFFF);

-        SkDebugf("computeIsOpaque: %s\n", SkBitmap::ComputeIsOpaque(bitmap) ? "true" : "false");

-        bitmap.setInfo(bitmap.info().makeAlphaType(kOpaque_SkAlphaType));

+    SkBitmap bitmap;
+    bitmap.setInfo(SkImageInfo::Make(2, 2, kN32_SkColorType, kPremul_SkAlphaType));
+    for (int index = 0; index < 2; ++index) {
+        bitmap.allocPixels();
+        bitmap.eraseColor(0x00000000);
+        SkDebugf("computeIsOpaque: %s\n", SkBitmap::ComputeIsOpaque(bitmap) ? "true" : "false");
+        bitmap.eraseColor(0xFFFFFFFF);
+        SkDebugf("computeIsOpaque: %s\n", SkBitmap::ComputeIsOpaque(bitmap) ? "true" : "false");
+        bitmap.setInfo(bitmap.info().makeAlphaType(kOpaque_SkAlphaType));
     }
 #StdOut
 computeIsOpaque: false
@@ -1414,14 +1414,14 @@
 #Example
 #Height 160
 #Image 3
-    SkRect bounds;

-    source.getBounds(&bounds);

-    bounds.offset(100, 100);

-    SkPaint paint;

-    paint.setColor(SK_ColorGRAY);

-    canvas->scale(.25f, .25f);

-    canvas->drawRect(bounds, paint);

-    canvas->drawBitmap(source, 40, 40);

+    SkRect bounds;
+    source.getBounds(&bounds);
+    bounds.offset(100, 100);
+    SkPaint paint;
+    paint.setColor(SK_ColorGRAY);
+    canvas->scale(.25f, .25f);
+    canvas->drawRect(bounds, paint);
+    canvas->drawBitmap(source, 40, 40);
 ##
 
 #SeeAlso bounds() 
@@ -1438,13 +1438,13 @@
 
 #Example
 #Image 3
-    SkIRect bounds;

-    source.getBounds(&bounds);

-    bounds.inset(100, 100);

-    SkBitmap bitmap;

-    source.extractSubset(&bitmap, bounds);

-    canvas->scale(.5f, .5f);

-    canvas->drawBitmap(bitmap, 10, 10);

+    SkIRect bounds;
+    source.getBounds(&bounds);
+    bounds.inset(100, 100);
+    SkBitmap bitmap;
+    source.extractSubset(&bitmap, bounds);
+    canvas->scale(.5f, .5f);
+    canvas->drawBitmap(bitmap, 10, 10);
 ##
 
 #SeeAlso bounds() 
@@ -1461,12 +1461,12 @@
 
 #Example
 #Image 4
-    SkIRect bounds = source.bounds();

-    for (int x : { 0, bounds.width() } ) {

-        for (int y : { 0, bounds.height() } ) {

-            canvas->drawBitmap(source, x, y);

-        }

-    }

+    SkIRect bounds = source.bounds();
+    for (int x : { 0, bounds.width() } ) {
+        for (int y : { 0, bounds.height() } ) {
+            canvas->drawBitmap(source, x, y);
+        }
+    }
 ##
 
 #SeeAlso getBounds 
@@ -1482,13 +1482,13 @@
 #Return integral size of width() and height() ##
 
 #Example
-    SkBitmap bitmap;

-    bitmap.setInfo(SkImageInfo::MakeN32(33, 55, kOpaque_SkAlphaType));

-    SkISize dimensions = bitmap.dimensions();

-    SkRect bounds;

-    bitmap.getBounds(&bounds);

-    SkRect dimensionsAsBounds = SkRect::Make(dimensions);

-    SkDebugf("dimensionsAsBounds %c= bounds\n", dimensionsAsBounds == bounds ? '=' : '!');

+    SkBitmap bitmap;
+    bitmap.setInfo(SkImageInfo::MakeN32(33, 55, kOpaque_SkAlphaType));
+    SkISize dimensions = bitmap.dimensions();
+    SkRect bounds;
+    bitmap.getBounds(&bounds);
+    SkRect dimensionsAsBounds = SkRect::Make(dimensions);
+    SkDebugf("dimensionsAsBounds %c= bounds\n", dimensionsAsBounds == bounds ? '=' : '!');
 ##
 
 #SeeAlso height() width()
@@ -1505,19 +1505,19 @@
 
 #Example
 #Image 3
-    SkIRect bounds;

-    source.getBounds(&bounds);

-    bounds.inset(100, 100);

-    SkBitmap subset;

-    source.extractSubset(&subset, bounds);

-    SkIRect r = source.getSubset();

-    SkDebugf("source: %d, %d, %d, %d\n", r.fLeft, r.fTop, r.fRight, r.fBottom);

-    r = subset.getSubset();

-    SkDebugf("subset: %d, %d, %d, %d\n", r.fLeft, r.fTop, r.fRight, r.fBottom);

-#StdOut

-source: 0, 0, 512, 512

-subset: 100, 100, 412, 412

-##

+    SkIRect bounds;
+    source.getBounds(&bounds);
+    bounds.inset(100, 100);
+    SkBitmap subset;
+    source.extractSubset(&subset, bounds);
+    SkIRect r = source.getSubset();
+    SkDebugf("source: %d, %d, %d, %d\n", r.fLeft, r.fTop, r.fRight, r.fBottom);
+    r = subset.getSubset();
+    SkDebugf("subset: %d, %d, %d, %d\n", r.fLeft, r.fTop, r.fRight, r.fBottom);
+#StdOut
+source: 0, 0, 512, 512
+subset: 100, 100, 412, 412
+##
 ##
 
 #SeeAlso extractSubset getBounds
@@ -1563,16 +1563,16 @@
 #Example
 #Height 96
 ###^
-SkBitmap bitmap;

-bitmap.setInfo(SkImageInfo::MakeN32(44, 16, kOpaque_SkAlphaType));

-bitmap.allocPixels();

-bitmap.eraseColor(SK_ColorGREEN);

-SkCanvas offscreen(bitmap);

-SkPaint paint;

-offscreen.drawString("!@#$%", 0, 12, paint);

-canvas->scale(6, 6);

-canvas->drawBitmap(bitmap, 0, 0);

-^^^#

+SkBitmap bitmap;
+bitmap.setInfo(SkImageInfo::MakeN32(44, 16, kOpaque_SkAlphaType));
+bitmap.allocPixels();
+bitmap.eraseColor(SK_ColorGREEN);
+SkCanvas offscreen(bitmap);
+SkPaint paint;
+offscreen.drawString("!@#$%", 0, 12, paint);
+canvas->scale(6, 6);
+canvas->drawBitmap(bitmap, 0, 0);
+^^^#
 ##
 
 #SeeAlso Alpha_Type Color_Type Color_Space height rowBytes width
@@ -1634,18 +1634,18 @@
 internally by SkMallocPixelRef::MakeZeroed limits the maximum memory allowed;
 the allocation must fit in 31 bits.
 ##
-    SkBitmap bitmap;

-    int loop = 0;

-    while (++loop) {

-         SkDebugf("attempt %d\n", loop);

-         if (!bitmap.tryAllocPixelsFlags(SkImageInfo::MakeN32(100000, 100000, kOpaque_SkAlphaType), 

-                                         SkBitmap::kZeroPixels_AllocFlag)) {

-            SkDebugf("failed!\n");

-            break;

-         }

+    SkBitmap bitmap;
+    int loop = 0;
+    while (++loop) {
+         SkDebugf("attempt %d\n", loop);
+         if (!bitmap.tryAllocPixelsFlags(SkImageInfo::MakeN32(100000, 100000, kOpaque_SkAlphaType), 
+                                         SkBitmap::kZeroPixels_AllocFlag)) {
+            SkDebugf("failed!\n");
+            break;
+         }
     }
 #StdOut
-attempt 1

+attempt 1
 failed!
 ##
 ##
@@ -1685,16 +1685,16 @@
 lets the first draw show through.
 ##
 ###^
-SkBitmap bitmap;

-bitmap.allocPixelsFlags(SkImageInfo::MakeN32(44, 16, kPremul_SkAlphaType), 

-                        SkBitmap::kZeroPixels_AllocFlag);

-SkCanvas offscreen(bitmap);

-SkPaint paint;

-offscreen.drawString("!@#$%", 0, 12, paint);

-canvas->scale(6, 6);

-canvas->drawBitmap(bitmap, 0, 0);

-canvas->drawBitmap(bitmap, 8, 8);

-^^^#

+SkBitmap bitmap;
+bitmap.allocPixelsFlags(SkImageInfo::MakeN32(44, 16, kPremul_SkAlphaType), 
+                        SkBitmap::kZeroPixels_AllocFlag);
+SkCanvas offscreen(bitmap);
+SkPaint paint;
+offscreen.drawString("!@#$%", 0, 12, paint);
+canvas->scale(6, 6);
+canvas->drawBitmap(bitmap, 0, 0);
+canvas->drawBitmap(bitmap, 8, 8);
+^^^#
 ##
 
 #SeeAlso tryAllocPixelsFlags allocPixels SkMallocPixelRef::MakeZeroed
@@ -1732,15 +1732,15 @@
 
 #Example
 #Image 3
-SkBitmap bitmap;

-SkImageInfo info = SkImageInfo::Make(64, 256, kGray_8_SkColorType, kOpaque_SkAlphaType);

-if (bitmap.tryAllocPixels(info, 0)) {

-    SkCanvas offscreen(bitmap);

-    offscreen.scale(.5f, .5f);

-    for (int x : { 0, 64, 128, 192 } ) {

-        offscreen.drawBitmap(source, -x, 0);

-        canvas->drawBitmap(bitmap, x, 0);

-    }

+SkBitmap bitmap;
+SkImageInfo info = SkImageInfo::Make(64, 256, kGray_8_SkColorType, kOpaque_SkAlphaType);
+if (bitmap.tryAllocPixels(info, 0)) {
+    SkCanvas offscreen(bitmap);
+    offscreen.scale(.5f, .5f);
+    for (int x : { 0, 64, 128, 192 } ) {
+        offscreen.drawBitmap(source, -x, 0);
+        canvas->drawBitmap(bitmap, x, 0);
+    }
 }
 ##
 
@@ -1770,14 +1770,14 @@
 
 #Example
 #Image 3
-SkBitmap bitmap;

-SkImageInfo info = SkImageInfo::Make(256, 64, kGray_8_SkColorType, kOpaque_SkAlphaType);

-bitmap.allocPixels(info, info.width() * info.bytesPerPixel() + 64);

-SkCanvas offscreen(bitmap);

-offscreen.scale(.5f, .5f);

-for (int y : { 0, 64, 128, 192 } ) {

-    offscreen.drawBitmap(source, 0, -y);

-    canvas->drawBitmap(bitmap, 0, y);

+SkBitmap bitmap;
+SkImageInfo info = SkImageInfo::Make(256, 64, kGray_8_SkColorType, kOpaque_SkAlphaType);
+bitmap.allocPixels(info, info.width() * info.bytesPerPixel() + 64);
+SkCanvas offscreen(bitmap);
+offscreen.scale(.5f, .5f);
+for (int y : { 0, 64, 128, 192 } ) {
+    offscreen.drawBitmap(source, 0, -y);
+    canvas->drawBitmap(bitmap, 0, y);
 }
 ##
 
@@ -1806,14 +1806,14 @@
 
 #Example
 #Image 3
-SkBitmap bitmap;

-if (bitmap.tryAllocPixels(SkImageInfo::Make(64, 64, kGray_8_SkColorType, kOpaque_SkAlphaType))) {

-    SkCanvas offscreen(bitmap);

-    offscreen.scale(.25f, .5f);

-    for (int y : { 0, 64, 128, 192 } ) {

-        offscreen.drawBitmap(source, -y, -y);

-        canvas->drawBitmap(bitmap, y, y);

-    }

+SkBitmap bitmap;
+if (bitmap.tryAllocPixels(SkImageInfo::Make(64, 64, kGray_8_SkColorType, kOpaque_SkAlphaType))) {
+    SkCanvas offscreen(bitmap);
+    offscreen.scale(.25f, .5f);
+    for (int y : { 0, 64, 128, 192 } ) {
+        offscreen.drawBitmap(source, -y, -y);
+        canvas->drawBitmap(bitmap, y, y);
+    }
 }
 ##
 
@@ -1841,14 +1841,14 @@
 
 #Example
 #Image 4
-SkBitmap bitmap;

-bitmap.allocPixels(SkImageInfo::Make(64, 64, kGray_8_SkColorType, kOpaque_SkAlphaType));

-SkCanvas offscreen(bitmap);

-offscreen.scale(.5f, .5f);

-for (int y : { 0, 64, 128, 192 } ) {

-    offscreen.drawBitmap(source, -y, -y);

-    canvas->drawBitmap(bitmap, y, y);

-}

+SkBitmap bitmap;
+bitmap.allocPixels(SkImageInfo::Make(64, 64, kGray_8_SkColorType, kOpaque_SkAlphaType));
+SkCanvas offscreen(bitmap);
+offscreen.scale(.5f, .5f);
+for (int y : { 0, 64, 128, 192 } ) {
+    offscreen.drawBitmap(source, -y, -y);
+    canvas->drawBitmap(bitmap, y, y);
+}
 ##
 
 #SeeAlso tryAllocPixels allocPixelsFlags SkMallocPixelRef::MakeAllocate
@@ -1879,17 +1879,17 @@
 
 #Example
 #Height 160
-    SkBitmap bitmap;

-    if (bitmap.tryAllocN32Pixels(80, 80)) {

-        bitmap.eraseColor(SK_ColorTRANSPARENT);

-        bitmap.erase(0x7f3f7fff, SkIRect::MakeWH(50, 30));

-        bitmap.erase(0x3f7fff3f, SkIRect::MakeXYWH(20, 10, 50, 30));

-        bitmap.erase(0x5fff3f7f, SkIRect::MakeXYWH(40, 20, 50, 30));

-        canvas->drawBitmap(bitmap, 0, 0);

-        for (int x : { 0, 30, 60, 90 } ) {

-            canvas->drawBitmap(bitmap, x, 70);

-        }

-    }

+    SkBitmap bitmap;
+    if (bitmap.tryAllocN32Pixels(80, 80)) {
+        bitmap.eraseColor(SK_ColorTRANSPARENT);
+        bitmap.erase(0x7f3f7fff, SkIRect::MakeWH(50, 30));
+        bitmap.erase(0x3f7fff3f, SkIRect::MakeXYWH(20, 10, 50, 30));
+        bitmap.erase(0x5fff3f7f, SkIRect::MakeXYWH(40, 20, 50, 30));
+        canvas->drawBitmap(bitmap, 0, 0);
+        for (int x : { 0, 30, 60, 90 } ) {
+            canvas->drawBitmap(bitmap, x, 70);
+        }
+    }
 ##
 
 #SeeAlso tryAllocPixels allocN32Pixels SkMallocPixelRef::MakeAllocate
@@ -1916,21 +1916,21 @@
 #Param isOpaque  true if pixels do not have transparency ##
 
 #Example
-    SkRandom random;

-    SkBitmap bitmap;

-    bitmap.allocN32Pixels(64, 64);

-    bitmap.eraseColor(SK_ColorTRANSPARENT);

-    for (int y = 0; y < 256; y += 64) {

-        for (int x = 0; x < 256; x += 64) {

-            SkColor color = random.nextU();

-            uint32_t w = random.nextRangeU(4, 32);

-            uint32_t cx = random.nextRangeU(0, 64 - w);

-            uint32_t h = random.nextRangeU(4, 32);

-            uint32_t cy = random.nextRangeU(0, 64 - h);

-            bitmap.erase(color, SkIRect::MakeXYWH(cx, cy, w, h));

-            canvas->drawBitmap(bitmap, x, y);

-        }

-    }

+    SkRandom random;
+    SkBitmap bitmap;
+    bitmap.allocN32Pixels(64, 64);
+    bitmap.eraseColor(SK_ColorTRANSPARENT);
+    for (int y = 0; y < 256; y += 64) {
+        for (int x = 0; x < 256; x += 64) {
+            SkColor color = random.nextU();
+            uint32_t w = random.nextRangeU(4, 32);
+            uint32_t cx = random.nextRangeU(0, 64 - w);
+            uint32_t h = random.nextRangeU(4, 32);
+            uint32_t cy = random.nextRangeU(0, 64 - h);
+            bitmap.erase(color, SkIRect::MakeXYWH(cx, cy, w, h));
+            canvas->drawBitmap(bitmap, x, y);
+        }
+    }
 ##
 
 #SeeAlso allocPixels tryAllocN32Pixels SkMallocPixelRef::MakeAllocate
@@ -1970,24 +1970,24 @@
 releaseProc is called immediately because rowBytes is too small for Pixel_Ref.
 ##
 #Function
-static void releaseProc(void* addr, void* ) {

-    SkDebugf("releaseProc called\n");

-    delete[] (uint32_t*) addr; 

-}

-

-##

-

-void draw(SkCanvas* canvas) {

-   SkBitmap bitmap;

-   void* pixels = new uint32_t[8 * 8];

-   SkImageInfo info = SkImageInfo::MakeN32(8, 8, kOpaque_SkAlphaType);

-   SkDebugf("before installPixels\n");

-   bool installed = bitmap.installPixels(info, pixels, 16, releaseProc, nullptr);

-   SkDebugf("install " "%s" "successful\n", installed ? "" : "not ");

+static void releaseProc(void* addr, void* ) {
+    SkDebugf("releaseProc called\n");
+    delete[] (uint32_t*) addr; 
+}
+
+##
+
+void draw(SkCanvas* canvas) {
+   SkBitmap bitmap;
+   void* pixels = new uint32_t[8 * 8];
+   SkImageInfo info = SkImageInfo::MakeN32(8, 8, kOpaque_SkAlphaType);
+   SkDebugf("before installPixels\n");
+   bool installed = bitmap.installPixels(info, pixels, 16, releaseProc, nullptr);
+   SkDebugf("install " "%s" "successful\n", installed ? "" : "not ");
 }
 #StdOut
-before installPixels

-releaseProc called

+before installPixels
+releaseProc called
 install not successful
 ##
 ##
@@ -2021,20 +2021,20 @@
 #Bug 7079 ##
 GPU does not support kUnpremul_SkAlphaType, does not assert that it does not.
 ##
-void draw(SkCanvas* canvas) {

-   SkRandom random;

-   SkBitmap bitmap;

-   const int width = 8;

-   const int height = 8;

-   uint32_t pixels[width * height];

-   for (unsigned x = 0; x < width * height; ++x) {

-       pixels[x] = random.nextU();

-   }

-   SkImageInfo info = SkImageInfo::MakeN32(width, height, kUnpremul_SkAlphaType);

-   if (bitmap.installPixels(info, pixels, info.minRowBytes())) {

-       canvas->scale(32, 32);

-       canvas->drawBitmap(bitmap, 0, 0);

-   }

+void draw(SkCanvas* canvas) {
+   SkRandom random;
+   SkBitmap bitmap;
+   const int width = 8;
+   const int height = 8;
+   uint32_t pixels[width * height];
+   for (unsigned x = 0; x < width * height; ++x) {
+       pixels[x] = random.nextU();
+   }
+   SkImageInfo info = SkImageInfo::MakeN32(width, height, kUnpremul_SkAlphaType);
+   if (bitmap.installPixels(info, pixels, info.minRowBytes())) {
+       canvas->scale(32, 32);
+       canvas->drawBitmap(bitmap, 0, 0);
+   }
 }
 ##
 
@@ -2107,22 +2107,22 @@
 Draw a five by five bitmap, and draw it again with a center white pixel.
 ##
 #Height 64
-    uint8_t storage[][5] = {{ 0xCA, 0xDA, 0xCA, 0xC9, 0xA3 },

-                            { 0xAC, 0xA8, 0x89, 0x47, 0x87 },

-                            { 0x4B, 0x25, 0x25, 0x25, 0x46 },

-                            { 0x90, 0x81, 0x25, 0x41, 0x33 },

-                            { 0x75, 0x55, 0x44, 0x20, 0x00 }};

-    SkMask mask;

-    mask.fImage = storage[0];

-    mask.fBounds = SkIRect::MakeWH(5, 5);

-    mask.fRowBytes = 5;

-    mask.fFormat = SkMask::kA8_Format;

-    SkBitmap bitmap;

-    bitmap.installMaskPixels(mask);

-    canvas->scale(10, 10);

-    canvas->drawBitmap(bitmap, 0, 0);

-    storage[2][2] = 0xFF;

-    bitmap.installMaskPixels(mask);

+    uint8_t storage[][5] = {{ 0xCA, 0xDA, 0xCA, 0xC9, 0xA3 },
+                            { 0xAC, 0xA8, 0x89, 0x47, 0x87 },
+                            { 0x4B, 0x25, 0x25, 0x25, 0x46 },
+                            { 0x90, 0x81, 0x25, 0x41, 0x33 },
+                            { 0x75, 0x55, 0x44, 0x20, 0x00 }};
+    SkMask mask;
+    mask.fImage = storage[0];
+    mask.fBounds = SkIRect::MakeWH(5, 5);
+    mask.fRowBytes = 5;
+    mask.fFormat = SkMask::kA8_Format;
+    SkBitmap bitmap;
+    bitmap.installMaskPixels(mask);
+    canvas->scale(10, 10);
+    canvas->drawBitmap(bitmap, 0, 0);
+    storage[2][2] = 0xFF;
+    bitmap.installMaskPixels(mask);
     canvas->drawBitmap(bitmap, 10, 0);
 ##
 
@@ -2147,14 +2147,14 @@
 
 #Example
 #Height 50
-    uint8_t set1[5] = { 0xCA, 0xDA, 0xCA, 0xC9, 0xA3 };

-    uint8_t set2[5] = { 0xAC, 0xA8, 0x89, 0x47, 0x87 };

-    SkBitmap bitmap;

-    bitmap.installPixels(SkImageInfo::Make(5, 1, kGray_8_SkColorType, kOpaque_SkAlphaType), set1, 5);

-    canvas->scale(10, 50);

-    canvas->drawBitmap(bitmap, 0, 0);

-    bitmap.setPixels(set2);

-    canvas->drawBitmap(bitmap, 10, 0);

+    uint8_t set1[5] = { 0xCA, 0xDA, 0xCA, 0xC9, 0xA3 };
+    uint8_t set2[5] = { 0xAC, 0xA8, 0x89, 0x47, 0x87 };
+    SkBitmap bitmap;
+    bitmap.installPixels(SkImageInfo::Make(5, 1, kGray_8_SkColorType, kOpaque_SkAlphaType), set1, 5);
+    canvas->scale(10, 50);
+    canvas->drawBitmap(bitmap, 0, 0);
+    bitmap.setPixels(set2);
+    canvas->drawBitmap(bitmap, 10, 0);
 ##
 
 #SeeAlso installPixels allocPixels
@@ -2181,17 +2181,17 @@
 and erases it to black, but does not alter set1. setPixels replaces black
 Pixel_Ref with set1. 
 ##
-    uint8_t set1[5] = { 0xCA, 0xDA, 0xCA, 0xC9, 0xA3 };

-    SkBitmap bitmap;

-    bitmap.installPixels(SkImageInfo::Make(5, 1, kGray_8_SkColorType, kOpaque_SkAlphaType), set1, 5);

-    canvas->scale(10, 50);

-    canvas->drawBitmap(bitmap, 0, 0);

-    if (bitmap.tryAllocPixels()) {

-        bitmap.eraseColor(SK_ColorBLACK);

-        canvas->drawBitmap(bitmap, 8, 0);

-        bitmap.setPixels(set1);

-        canvas->drawBitmap(bitmap, 16, 0);

-    }

+    uint8_t set1[5] = { 0xCA, 0xDA, 0xCA, 0xC9, 0xA3 };
+    SkBitmap bitmap;
+    bitmap.installPixels(SkImageInfo::Make(5, 1, kGray_8_SkColorType, kOpaque_SkAlphaType), set1, 5);
+    canvas->scale(10, 50);
+    canvas->drawBitmap(bitmap, 0, 0);
+    if (bitmap.tryAllocPixels()) {
+        bitmap.eraseColor(SK_ColorBLACK);
+        canvas->drawBitmap(bitmap, 8, 0);
+        bitmap.setPixels(set1);
+        canvas->drawBitmap(bitmap, 16, 0);
+    }
 ##
 
 #SeeAlso allocPixels installPixels setPixels
@@ -2216,16 +2216,16 @@
 and erases it to black, but does not alter set1. setPixels replaces black
 Pixel_Ref with set2. 
 ##
-    uint8_t set1[5] = { 0xCA, 0xDA, 0xCA, 0xC9, 0xA3 };

-    uint8_t set2[5] = { 0xAC, 0xA8, 0x89, 0x47, 0x87 };

-    SkBitmap bitmap;

-    bitmap.installPixels(SkImageInfo::Make(5, 1, kGray_8_SkColorType, kOpaque_SkAlphaType), set1, 5);

-    canvas->scale(10, 50);

-    canvas->drawBitmap(bitmap, 0, 0);

-    bitmap.allocPixels();

-    bitmap.eraseColor(SK_ColorBLACK);

-    canvas->drawBitmap(bitmap, 8, 0);

-    bitmap.setPixels(set2);

+    uint8_t set1[5] = { 0xCA, 0xDA, 0xCA, 0xC9, 0xA3 };
+    uint8_t set2[5] = { 0xAC, 0xA8, 0x89, 0x47, 0x87 };
+    SkBitmap bitmap;
+    bitmap.installPixels(SkImageInfo::Make(5, 1, kGray_8_SkColorType, kOpaque_SkAlphaType), set1, 5);
+    canvas->scale(10, 50);
+    canvas->drawBitmap(bitmap, 0, 0);
+    bitmap.allocPixels();
+    bitmap.eraseColor(SK_ColorBLACK);
+    canvas->drawBitmap(bitmap, 8, 0);
+    bitmap.setPixels(set2);
     canvas->drawBitmap(bitmap, 16, 0);
 ##
 
@@ -2292,13 +2292,13 @@
 void draw(SkCanvas* canvas) {
    LargeAllocator largeAllocator;
    SkBitmap bitmap;
-   int width = 100; // make this 20000

-   int height = 100; // and this 100000 to allocate 8 gigs on a 64-bit platform

-   bitmap.setInfo(SkImageInfo::MakeN32(width, height, kOpaque_SkAlphaType));

-   if (bitmap.tryAllocPixels(&largeAllocator)) {

-       bitmap.eraseColor(0xff55aa33);

-       canvas->drawBitmap(bitmap, 0, 0);

-   }

+   int width = 100; // make this 20000
+   int height = 100; // and this 100000 to allocate 8 gigs on a 64-bit platform
+   bitmap.setInfo(SkImageInfo::MakeN32(width, height, kOpaque_SkAlphaType));
+   if (bitmap.tryAllocPixels(&largeAllocator)) {
+       bitmap.eraseColor(0xff55aa33);
+       canvas->drawBitmap(bitmap, 0, 0);
+   }
 }
 
 ##
@@ -2344,13 +2344,13 @@
 void draw(SkCanvas* canvas) {
    TinyAllocator tinyAllocator;
    SkBitmap bitmap;
-   bitmap.setInfo(SkImageInfo::MakeN32(2, 2, kOpaque_SkAlphaType));

-   if (bitmap.tryAllocPixels(&tinyAllocator)) {

-       bitmap.eraseColor(0xff55aa33);

-       bitmap.erase(0xffaa3355, SkIRect::MakeXYWH(1, 1, 1, 1));

-       canvas->scale(16, 16);

-       canvas->drawBitmap(bitmap, 0, 0);

-   }

+   bitmap.setInfo(SkImageInfo::MakeN32(2, 2, kOpaque_SkAlphaType));
+   if (bitmap.tryAllocPixels(&tinyAllocator)) {
+       bitmap.eraseColor(0xff55aa33);
+       bitmap.erase(0xffaa3355, SkIRect::MakeXYWH(1, 1, 1, 1));
+       canvas->scale(16, 16);
+       canvas->drawBitmap(bitmap, 0, 0);
+   }
 }
 ##
 
@@ -2371,11 +2371,11 @@
 
 #Example
 #Image 3
-   SkBitmap subset;

-   source.extractSubset(&subset, SkIRect::MakeXYWH(32, 64, 128, 256));

-   SkDebugf("src ref %c= sub ref\n", source.pixelRef() == subset.pixelRef() ? '=' : '!');

-   SkDebugf("src pixels %c= sub pixels\n", source.getPixels() == subset.getPixels() ? '=' : '!');

-   SkDebugf("src addr %c= sub addr\n", source.getAddr(32, 64) == subset.getAddr(0, 0) ? '=' : '!');

+   SkBitmap subset;
+   source.extractSubset(&subset, SkIRect::MakeXYWH(32, 64, 128, 256));
+   SkDebugf("src ref %c= sub ref\n", source.pixelRef() == subset.pixelRef() ? '=' : '!');
+   SkDebugf("src pixels %c= sub pixels\n", source.getPixels() == subset.getPixels() ? '=' : '!');
+   SkDebugf("src addr %c= sub addr\n", source.getAddr(32, 64) == subset.getAddr(0, 0) ? '=' : '!');
 ##
 
 #SeeAlso getPixels getAddr
@@ -2399,16 +2399,16 @@
 
 #Example
 #Image 3
-   SkBitmap subset;

-   source.extractSubset(&subset, SkIRect::MakeXYWH(32, 64, 128, 256));

-   SkIPoint sourceOrigin = source.pixelRefOrigin();

-   SkIPoint subsetOrigin = subset.pixelRefOrigin();

-   SkDebugf("source origin: %d, %d\n", sourceOrigin.fX, sourceOrigin.fY);

-   SkDebugf("subset origin: %d, %d\n", subsetOrigin.fX, subsetOrigin.fY);

-#StdOut

-source origin: 0, 0

-subset origin: 32, 64

-##

+   SkBitmap subset;
+   source.extractSubset(&subset, SkIRect::MakeXYWH(32, 64, 128, 256));
+   SkIPoint sourceOrigin = source.pixelRefOrigin();
+   SkIPoint subsetOrigin = subset.pixelRefOrigin();
+   SkDebugf("source origin: %d, %d\n", sourceOrigin.fX, sourceOrigin.fY);
+   SkDebugf("subset origin: %d, %d\n", subsetOrigin.fX, subsetOrigin.fY);
+#StdOut
+source origin: 0, 0
+subset origin: 32, 64
+##
 ##
 
 #ToDo incomplete ##
@@ -2438,11 +2438,11 @@
 #Description
 Treating 32 bit data as 8 bit data is unlikely to produce useful results.
 ##
-    SkBitmap bitmap;

-    bitmap.setInfo(SkImageInfo::Make(source.width() - 5, source.height() - 5, 

-                   kGray_8_SkColorType, kOpaque_SkAlphaType), source.rowBytes());

-    bitmap.setPixelRef(sk_ref_sp(source.pixelRef()), 5, 5);

-    canvas->drawBitmap(bitmap, 10, 10);

+    SkBitmap bitmap;
+    bitmap.setInfo(SkImageInfo::Make(source.width() - 5, source.height() - 5, 
+                   kGray_8_SkColorType, kOpaque_SkAlphaType), source.rowBytes());
+    bitmap.setPixelRef(sk_ref_sp(source.pixelRef()), 5, 5);
+    canvas->drawBitmap(bitmap, 10, 10);
 ##
 
 #SeeAlso setInfo
@@ -2460,9 +2460,9 @@
 #Example
 #Image 5
 #Height 160
-    if (source.readyToDraw()) {

-        canvas->drawBitmap(source, 10, 10);

-    }

+    if (source.readyToDraw()) {
+        canvas->drawBitmap(source, 10, 10);
+    }
 ##
 
 #SeeAlso getPixels drawsNothing
@@ -2482,16 +2482,16 @@
 #Return unique value for pixels in Pixel_Ref ##
 
 #Example
-    SkBitmap bitmap;

-    SkDebugf("empty id %u\n", bitmap.getGenerationID());

-    bitmap.allocPixels(SkImageInfo::MakeN32(64, 64, kOpaque_SkAlphaType));

-    SkDebugf("alloc id %u\n", bitmap.getGenerationID());

-    bitmap.eraseColor(SK_ColorRED);

+    SkBitmap bitmap;
+    SkDebugf("empty id %u\n", bitmap.getGenerationID());
+    bitmap.allocPixels(SkImageInfo::MakeN32(64, 64, kOpaque_SkAlphaType));
+    SkDebugf("alloc id %u\n", bitmap.getGenerationID());
+    bitmap.eraseColor(SK_ColorRED);
     SkDebugf("erase id %u\n", bitmap.getGenerationID());
 #StdOut
 #Volatile
-empty id 0

-alloc id 4

+empty id 0
+alloc id 4
 erase id 6
 ##    
 ##
@@ -2509,17 +2509,17 @@
 
 #Example
 #Height 20
-    SkBitmap bitmap; 

-    bitmap.setInfo(SkImageInfo::Make(1, 1, kRGBA_8888_SkColorType, kOpaque_SkAlphaType));

-    bitmap.allocPixels();

-    bitmap.eraseColor(SK_ColorRED);

-    canvas->scale(16, 16);

-    canvas->drawBitmap(bitmap, 0, 0);

-    *(SkPMColor*) bitmap.getPixels() = SkPreMultiplyColor(SK_ColorBLUE);

-    canvas->drawBitmap(bitmap, 2, 0);

-    bitmap.notifyPixelsChanged();

-    *(SkPMColor*) bitmap.getPixels() = SkPreMultiplyColor(SK_ColorGREEN);

-    canvas->drawBitmap(bitmap, 4, 0);

+    SkBitmap bitmap; 
+    bitmap.setInfo(SkImageInfo::Make(1, 1, kRGBA_8888_SkColorType, kOpaque_SkAlphaType));
+    bitmap.allocPixels();
+    bitmap.eraseColor(SK_ColorRED);
+    canvas->scale(16, 16);
+    canvas->drawBitmap(bitmap, 0, 0);
+    *(SkPMColor*) bitmap.getPixels() = SkPreMultiplyColor(SK_ColorBLUE);
+    canvas->drawBitmap(bitmap, 2, 0);
+    bitmap.notifyPixelsChanged();
+    *(SkPMColor*) bitmap.getPixels() = SkPreMultiplyColor(SK_ColorGREEN);
+    canvas->drawBitmap(bitmap, 4, 0);
 ##
 
 #SeeAlso getGenerationID isVolatile Pixel_Ref
@@ -2539,11 +2539,11 @@
 
 #Example
 #Height 20
-    SkBitmap bitmap; 

-    bitmap.allocPixels(SkImageInfo::MakeN32(1, 1, kOpaque_SkAlphaType));

-    bitmap.eraseColor(SK_ColorRED);

-    canvas->scale(16, 16);

-    canvas->drawBitmap(bitmap, 0, 0);

+    SkBitmap bitmap; 
+    bitmap.allocPixels(SkImageInfo::MakeN32(1, 1, kOpaque_SkAlphaType));
+    bitmap.eraseColor(SK_ColorRED);
+    canvas->scale(16, 16);
+    canvas->drawBitmap(bitmap, 0, 0);
 ##
 
 #SeeAlso eraseARGB eraseRGB erase
@@ -2567,12 +2567,12 @@
 
 #Example
 #Height 80
-    SkBitmap bitmap; 

-    bitmap.allocPixels(SkImageInfo::MakeN32(1, 1, kPremul_SkAlphaType));

-    bitmap.eraseARGB(0x7f, 0xff, 0x7f, 0x3f);

-    canvas->scale(50, 50);

-    canvas->drawBitmap(bitmap, 0, 0);

-    canvas->drawBitmap(bitmap, .5f, .5f);

+    SkBitmap bitmap; 
+    bitmap.allocPixels(SkImageInfo::MakeN32(1, 1, kPremul_SkAlphaType));
+    bitmap.eraseARGB(0x7f, 0xff, 0x7f, 0x3f);
+    canvas->scale(50, 50);
+    canvas->drawBitmap(bitmap, 0, 0);
+    canvas->drawBitmap(bitmap, .5f, .5f);
 ##
 
 #SeeAlso eraseColor eraseRGB erase
@@ -2593,12 +2593,12 @@
 
 #Example
 #Height 80
-    SkBitmap bitmap; 

-    bitmap.allocPixels(SkImageInfo::MakeN32(1, 1, kPremul_SkAlphaType));

-    bitmap.eraseRGB(0xff, 0x7f, 0x3f);

-    canvas->scale(50, 50);

-    canvas->drawBitmap(bitmap, 0, 0);

-    canvas->drawBitmap(bitmap, .5f, .5f);

+    SkBitmap bitmap; 
+    bitmap.allocPixels(SkImageInfo::MakeN32(1, 1, kPremul_SkAlphaType));
+    bitmap.eraseRGB(0xff, 0x7f, 0x3f);
+    canvas->scale(50, 50);
+    canvas->drawBitmap(bitmap, 0, 0);
+    canvas->drawBitmap(bitmap, .5f, .5f);
 ##
 
 #SeeAlso eraseColor eraseARGB erase
@@ -2621,15 +2621,15 @@
 
 #Example
 #Height 70
-    SkBitmap bitmap; 

-    bitmap.allocPixels(SkImageInfo::MakeN32(2, 2, kPremul_SkAlphaType));

-    bitmap.erase(0x7fff7f3f, SkIRect::MakeWH(1, 1));

-    bitmap.erase(0x7f7f3fff, SkIRect::MakeXYWH(0, 1, 1, 1));

-    bitmap.erase(0x7f3fff7f, SkIRect::MakeXYWH(1, 0, 1, 1));

-    bitmap.erase(0x7f1fbf5f, SkIRect::MakeXYWH(1, 1, 1, 1));

-    canvas->scale(25, 25);

-    canvas->drawBitmap(bitmap, 0, 0);

-    canvas->drawBitmap(bitmap, .5f, .5f);

+    SkBitmap bitmap; 
+    bitmap.allocPixels(SkImageInfo::MakeN32(2, 2, kPremul_SkAlphaType));
+    bitmap.erase(0x7fff7f3f, SkIRect::MakeWH(1, 1));
+    bitmap.erase(0x7f7f3fff, SkIRect::MakeXYWH(0, 1, 1, 1));
+    bitmap.erase(0x7f3fff7f, SkIRect::MakeXYWH(1, 0, 1, 1));
+    bitmap.erase(0x7f1fbf5f, SkIRect::MakeXYWH(1, 1, 1, 1));
+    canvas->scale(25, 25);
+    canvas->drawBitmap(bitmap, 0, 0);
+    canvas->drawBitmap(bitmap, .5f, .5f);
 
 ##
 
@@ -2733,12 +2733,12 @@
 
 #Example
 #Image 3
-    char* row0 = (char* ) source.getAddr(0, 0);

-    char* row1 = (char* ) source.getAddr(0, 1);

-    SkDebugf("addr interval %c= rowBytes\n", row1 - row0 == source.rowBytes() ? '=' : '!');

-#StdOut

-addr interval == rowBytes

-##

+    char* row0 = (char* ) source.getAddr(0, 0);
+    char* row1 = (char* ) source.getAddr(0, 1);
+    SkDebugf("addr interval %c= rowBytes\n", row1 - row0 == source.rowBytes() ? '=' : '!');
+#StdOut
+addr interval == rowBytes
+##
 ##
 
 #SeeAlso getAddr8 getAddr16 getAddr32 readPixels SkPixmap::addr
@@ -2766,13 +2766,13 @@
 
 #Example
 #Image 3
-    uint32_t* row0 = source.getAddr32(0, 0);

-    uint32_t* row1 = source.getAddr32(0, 1);

-    size_t interval = (row1 - row0) * source.bytesPerPixel();

-    SkDebugf("addr interval %c= rowBytes\n", interval == source.rowBytes() ? '=' : '!');

-#StdOut

-addr interval == rowBytes

-##

+    uint32_t* row0 = source.getAddr32(0, 0);
+    uint32_t* row1 = source.getAddr32(0, 1);
+    size_t interval = (row1 - row0) * source.bytesPerPixel();
+    SkDebugf("addr interval %c= rowBytes\n", interval == source.rowBytes() ? '=' : '!');
+#StdOut
+addr interval == rowBytes
+##
 ##
 
 #SeeAlso getAddr8 getAddr16 getAddr readPixels SkPixmap::addr32
@@ -2800,19 +2800,19 @@
 
 #Example
 #Image 3
-    SkBitmap bitmap16;

-    SkImageInfo dstInfo = SkImageInfo::Make(source.width(), source.height(), kARGB_4444_SkColorType, 

-                     kPremul_SkAlphaType);

-    bitmap16.allocPixels(dstInfo);

-    if (source.readPixels(dstInfo, bitmap16.getPixels(), bitmap16.rowBytes(), 0, 0)) {

-        uint16_t* row0 = bitmap16.getAddr16(0, 0);

-        uint16_t* row1 = bitmap16.getAddr16(0, 1);

-        size_t interval = (row1 - row0) * bitmap16.bytesPerPixel();

-        SkDebugf("addr interval %c= rowBytes\n", interval == bitmap16.rowBytes() ? '=' : '!');

-    }

-#StdOut

-addr interval == rowBytes

-##

+    SkBitmap bitmap16;
+    SkImageInfo dstInfo = SkImageInfo::Make(source.width(), source.height(), kARGB_4444_SkColorType, 
+                     kPremul_SkAlphaType);
+    bitmap16.allocPixels(dstInfo);
+    if (source.readPixels(dstInfo, bitmap16.getPixels(), bitmap16.rowBytes(), 0, 0)) {
+        uint16_t* row0 = bitmap16.getAddr16(0, 0);
+        uint16_t* row1 = bitmap16.getAddr16(0, 1);
+        size_t interval = (row1 - row0) * bitmap16.bytesPerPixel();
+        SkDebugf("addr interval %c= rowBytes\n", interval == bitmap16.rowBytes() ? '=' : '!');
+    }
+#StdOut
+addr interval == rowBytes
+##
 ##
 
 #SeeAlso getAddr8 getAddr getAddr32 readPixels SkPixmap::addr16
@@ -2839,15 +2839,15 @@
 #Return unsigned 8-bit pointer to pixel at (x, y) ##
 
 #Example
-   SkBitmap bitmap;

-   const int width = 8;

-   const int height = 8;

-   uint8_t pixels[height][width];

-   SkImageInfo info = SkImageInfo::Make(width, height, kGray_8_SkColorType, kOpaque_SkAlphaType);

-   if (bitmap.installPixels(info, pixels, info.minRowBytes())) {

-       SkDebugf("&pixels[4][2] %c= bitmap.getAddr8(2, 4)\n",

-                 &pixels[4][2]  == bitmap.getAddr8(2, 4) ? '=' : '!');

-   }

+   SkBitmap bitmap;
+   const int width = 8;
+   const int height = 8;
+   uint8_t pixels[height][width];
+   SkImageInfo info = SkImageInfo::Make(width, height, kGray_8_SkColorType, kOpaque_SkAlphaType);
+   if (bitmap.installPixels(info, pixels, info.minRowBytes())) {
+       SkDebugf("&pixels[4][2] %c= bitmap.getAddr8(2, 4)\n",
+                 &pixels[4][2]  == bitmap.getAddr8(2, 4) ? '=' : '!');
+   }
 #StdOut
 &pixels[4][2] == bitmap.getAddr8(2, 4)
 ##
@@ -2886,36 +2886,36 @@
 
 #Example
 #Image 3
-    SkIRect bounds, s;

-    source.getBounds(&bounds);

-    SkDebugf("bounds: %d, %d, %d, %d\n", bounds.fLeft, bounds.fTop, bounds.fRight, bounds.fBottom);

-    SkBitmap subset;

-    for (int left: { -100, 0, 100, 1000 } ) {

-         for (int right: { 0, 100, 1000 } ) {

-             SkIRect b = SkIRect::MakeLTRB(left, 100, right, 200);

-             bool success = source.extractSubset(&subset, b);

-             SkDebugf("subset: %4d, %4d, %4d, %4d  ", b.fLeft, b.fTop, b.fRight, b.fBottom);

-             SkDebugf("success; %s", success ? "true" : "false");

-             if (success) {

-                 subset.getBounds(&s);  

-                 SkDebugf("  subset: %d, %d, %d, %d", s.fLeft, s.fTop, s.fRight, s.fBottom);

-             }

-             SkDebugf("\n");

-         } 

-    }

+    SkIRect bounds, s;
+    source.getBounds(&bounds);
+    SkDebugf("bounds: %d, %d, %d, %d\n", bounds.fLeft, bounds.fTop, bounds.fRight, bounds.fBottom);
+    SkBitmap subset;
+    for (int left: { -100, 0, 100, 1000 } ) {
+         for (int right: { 0, 100, 1000 } ) {
+             SkIRect b = SkIRect::MakeLTRB(left, 100, right, 200);
+             bool success = source.extractSubset(&subset, b);
+             SkDebugf("subset: %4d, %4d, %4d, %4d  ", b.fLeft, b.fTop, b.fRight, b.fBottom);
+             SkDebugf("success; %s", success ? "true" : "false");
+             if (success) {
+                 subset.getBounds(&s);  
+                 SkDebugf("  subset: %d, %d, %d, %d", s.fLeft, s.fTop, s.fRight, s.fBottom);
+             }
+             SkDebugf("\n");
+         } 
+    }
 #StdOut
-bounds: 0, 0, 512, 512

-subset: -100,  100,    0,  200  success; false

-subset: -100,  100,  100,  200  success; true  subset: 0, 0, 100, 100

-subset: -100,  100, 1000,  200  success; true  subset: 0, 0, 512, 100

-subset:    0,  100,    0,  200  success; false

-subset:    0,  100,  100,  200  success; true  subset: 0, 0, 100, 100

-subset:    0,  100, 1000,  200  success; true  subset: 0, 0, 512, 100

-subset:  100,  100,    0,  200  success; false

-subset:  100,  100,  100,  200  success; false

-subset:  100,  100, 1000,  200  success; true  subset: 0, 0, 412, 100

-subset: 1000,  100,    0,  200  success; false

-subset: 1000,  100,  100,  200  success; false

+bounds: 0, 0, 512, 512
+subset: -100,  100,    0,  200  success; false
+subset: -100,  100,  100,  200  success; true  subset: 0, 0, 100, 100
+subset: -100,  100, 1000,  200  success; true  subset: 0, 0, 512, 100
+subset:    0,  100,    0,  200  success; false
+subset:    0,  100,  100,  200  success; true  subset: 0, 0, 100, 100
+subset:    0,  100, 1000,  200  success; true  subset: 0, 0, 512, 100
+subset:  100,  100,    0,  200  success; false
+subset:  100,  100,  100,  200  success; false
+subset:  100,  100, 1000,  200  success; true  subset: 0, 0, 412, 100
+subset: 1000,  100,    0,  200  success; false
+subset: 1000,  100,  100,  200  success; false
 subset: 1000,  100, 1000,  200  success; false
 ##
 ##
@@ -2978,29 +2978,29 @@
 #Example
 #Height 64
 void draw(SkCanvas* canvas) {
-    const int width = 256;

-    const int height = 32;

-    std::vector<int32_t> dstPixels;

-    dstPixels.resize(height * width * 4);

-    SkImageInfo info = SkImageInfo::MakeN32Premul(width, height);

-    SkColor  gradColors[] = { 0xFFAA3300, 0x7F881122 };

-    SkPoint  gradPoints[] = { { 0, 0 }, { width, 0 } };

-    SkPaint gradPaint;

-    gradPaint.setShader(SkGradientShader::MakeLinear(gradPoints, gradColors, nullptr,

-                    SK_ARRAY_COUNT(gradColors), SkShader::kClamp_TileMode));

-    for (auto behavior : { SkTransferFunctionBehavior::kRespect,

-                           SkTransferFunctionBehavior::kIgnore} ) {

-        SkBitmap bitmap;

-        bitmap.allocPixels(info);

-        SkCanvas srcCanvas(bitmap);

-        srcCanvas.drawRect(SkRect::MakeWH(width, height), gradPaint);

-        if (bitmap.readPixels(info, &dstPixels.front(), width * 4, 0, 0, behavior)) {

-            SkPixmap dstPixmap(info, &dstPixels.front(), width * 4);

-            bitmap.installPixels(dstPixmap);

-            canvas->drawBitmap(bitmap, 0, 0);

-        }

-        canvas->translate(0, height);

-    }

+    const int width = 256;
+    const int height = 32;
+    std::vector<int32_t> dstPixels;
+    dstPixels.resize(height * width * 4);
+    SkImageInfo info = SkImageInfo::MakeN32Premul(width, height);
+    SkColor  gradColors[] = { 0xFFAA3300, 0x7F881122 };
+    SkPoint  gradPoints[] = { { 0, 0 }, { width, 0 } };
+    SkPaint gradPaint;
+    gradPaint.setShader(SkGradientShader::MakeLinear(gradPoints, gradColors, nullptr,
+                    SK_ARRAY_COUNT(gradColors), SkShader::kClamp_TileMode));
+    for (auto behavior : { SkTransferFunctionBehavior::kRespect,
+                           SkTransferFunctionBehavior::kIgnore} ) {
+        SkBitmap bitmap;
+        bitmap.allocPixels(info);
+        SkCanvas srcCanvas(bitmap);
+        srcCanvas.drawRect(SkRect::MakeWH(width, height), gradPaint);
+        if (bitmap.readPixels(info, &dstPixels.front(), width * 4, 0, 0, behavior)) {
+            SkPixmap dstPixmap(info, &dstPixels.front(), width * 4);
+            bitmap.installPixels(dstPixmap);
+            canvas->drawBitmap(bitmap, 0, 0);
+        }
+        canvas->translate(0, height);
+    }
 }
 ##
 
@@ -3057,25 +3057,25 @@
 Transferring the gradient from 8 bits per component to 4 bits per component
 creates visible banding.
 ##
-    const int width = 256;

-    const int height = 64;

-    SkImageInfo srcInfo = SkImageInfo::MakeN32Premul(width, height);

-    SkColor  gradColors[] = { 0xFFAA3300, 0x7F881122 };

-    SkPoint  gradPoints[] = { { 0, 0 }, { 256, 0 } };

-    SkPaint paint;

-    paint.setShader(SkGradientShader::MakeLinear(gradPoints, gradColors, nullptr,

-                    SK_ARRAY_COUNT(gradColors), SkShader::kClamp_TileMode));

-    SkBitmap bitmap;

-    bitmap.allocPixels(srcInfo);

-    SkCanvas srcCanvas(bitmap);

-    srcCanvas.drawRect(SkRect::MakeWH(width, height), paint);

-    canvas->drawBitmap(bitmap, 0, 0);

-    SkImageInfo dstInfo = srcInfo.makeColorType(kARGB_4444_SkColorType);

-    std::vector<int16_t> dstPixels;

-    dstPixels.resize(height * width);

-    bitmap.readPixels(dstInfo, &dstPixels.front(), width * 2, 0, 0);

-    SkPixmap dstPixmap(dstInfo, &dstPixels.front(), width * 2);

-    bitmap.installPixels(dstPixmap);

+    const int width = 256;
+    const int height = 64;
+    SkImageInfo srcInfo = SkImageInfo::MakeN32Premul(width, height);
+    SkColor  gradColors[] = { 0xFFAA3300, 0x7F881122 };
+    SkPoint  gradPoints[] = { { 0, 0 }, { 256, 0 } };
+    SkPaint paint;
+    paint.setShader(SkGradientShader::MakeLinear(gradPoints, gradColors, nullptr,
+                    SK_ARRAY_COUNT(gradColors), SkShader::kClamp_TileMode));
+    SkBitmap bitmap;
+    bitmap.allocPixels(srcInfo);
+    SkCanvas srcCanvas(bitmap);
+    srcCanvas.drawRect(SkRect::MakeWH(width, height), paint);
+    canvas->drawBitmap(bitmap, 0, 0);
+    SkImageInfo dstInfo = srcInfo.makeColorType(kARGB_4444_SkColorType);
+    std::vector<int16_t> dstPixels;
+    dstPixels.resize(height * width);
+    bitmap.readPixels(dstInfo, &dstPixels.front(), width * 2, 0, 0);
+    SkPixmap dstPixmap(dstInfo, &dstPixels.front(), width * 2);
+    bitmap.installPixels(dstPixmap);
     canvas->drawBitmap(bitmap, 0, 64);
 ##
 
@@ -3125,20 +3125,20 @@
 
 #Example
 #Image 3
-    std::vector<int32_t> srcPixels;

-    srcPixels.resize(source.height() * source.rowBytes());

-    for (int y = 0; y < 4; ++y) {

-        for (int x = 0; x < 4; ++x) {

-            SkPixmap pixmap(SkImageInfo::MakeN32Premul(source.width() / 4, source.height() / 4),

-                    &srcPixels.front() + x * source.height() * source.width() / 4 +

-                    y * source.width() / 4, source.rowBytes());

-            source.readPixels(pixmap, x * source.width() / 4, y * source.height() / 4);

-        }

-    }

-    canvas->scale(.5f, .5f);

-    SkBitmap bitmap;

-    bitmap.installPixels(SkImageInfo::MakeN32Premul(source.width(), source.height()),

-                             &srcPixels.front(), source.rowBytes());

+    std::vector<int32_t> srcPixels;
+    srcPixels.resize(source.height() * source.rowBytes());
+    for (int y = 0; y < 4; ++y) {
+        for (int x = 0; x < 4; ++x) {
+            SkPixmap pixmap(SkImageInfo::MakeN32Premul(source.width() / 4, source.height() / 4),
+                    &srcPixels.front() + x * source.height() * source.width() / 4 +
+                    y * source.width() / 4, source.rowBytes());
+            source.readPixels(pixmap, x * source.width() / 4, y * source.height() / 4);
+        }
+    }
+    canvas->scale(.5f, .5f);
+    SkBitmap bitmap;
+    bitmap.installPixels(SkImageInfo::MakeN32Premul(source.width(), source.height()),
+                             &srcPixels.front(), source.rowBytes());
     canvas->drawBitmap(bitmap, 0, 0);
 ##
 
@@ -3176,19 +3176,19 @@
 #Example
 #Height 128
 #Image 3
-    std::vector<int32_t> srcPixels;

-    srcPixels.resize(source.height() * source.width() * 8);

-    for (int i = 0;  i < 2; ++i) {

-    SkPixmap pixmap(SkImageInfo::Make(source.width() * 2, source.height(), 

-                    i ? kRGBA_8888_SkColorType : kBGRA_8888_SkColorType, kPremul_SkAlphaType),

-                    &srcPixels.front() + i * source.width(), source.rowBytes() * 2);

-        source.readPixels(pixmap);

-    }

-    canvas->scale(.25f, .25f);

-    SkBitmap bitmap;

-    bitmap.installPixels(SkImageInfo::MakeN32Premul(source.width() * 2, source.height()),

-                         &srcPixels.front(), source.rowBytes() * 2);

-    canvas->drawBitmap(bitmap, 0, 0);

+    std::vector<int32_t> srcPixels;
+    srcPixels.resize(source.height() * source.width() * 8);
+    for (int i = 0;  i < 2; ++i) {
+    SkPixmap pixmap(SkImageInfo::Make(source.width() * 2, source.height(), 
+                    i ? kRGBA_8888_SkColorType : kBGRA_8888_SkColorType, kPremul_SkAlphaType),
+                    &srcPixels.front() + i * source.width(), source.rowBytes() * 2);
+        source.readPixels(pixmap);
+    }
+    canvas->scale(.25f, .25f);
+    SkBitmap bitmap;
+    bitmap.installPixels(SkImageInfo::MakeN32Premul(source.width() * 2, source.height()),
+                         &srcPixels.front(), source.rowBytes() * 2);
+    canvas->drawBitmap(bitmap, 0, 0);
 ##
 
 #SeeAlso writePixels SkPixmap::readPixels SkCanvas::readPixels SkImage::readPixels SkSurface::readPixels
@@ -3237,23 +3237,23 @@
 
 #Example
 #Image 3
-    std::vector<int32_t> srcPixels;

-    int width = image->width();

-    int height = image->height();

-    srcPixels.resize(height * width  * 4);

-    SkPixmap pixmap(SkImageInfo::MakeN32Premul(width, height), (const void*) &srcPixels.front(),

-                    width * 4);

-    image->readPixels(pixmap, 0, 0);

-    canvas->scale(.5f, .5f);

-    width /= 4;

-    height /= 4;

-    for (int y = 0; y < 4; ++y) {

-        for (int x = 0; x < 4; ++x) {

-            SkBitmap bitmap;

-            bitmap.allocPixels(SkImageInfo::MakeN32Premul(width, height));

-            bitmap.writePixels(pixmap, -y * width, -x * height);

-            canvas->drawBitmap(bitmap, x * width, y * height);

-        }

+    std::vector<int32_t> srcPixels;
+    int width = image->width();
+    int height = image->height();
+    srcPixels.resize(height * width  * 4);
+    SkPixmap pixmap(SkImageInfo::MakeN32Premul(width, height), (const void*) &srcPixels.front(),
+                    width * 4);
+    image->readPixels(pixmap, 0, 0);
+    canvas->scale(.5f, .5f);
+    width /= 4;
+    height /= 4;
+    for (int y = 0; y < 4; ++y) {
+        for (int x = 0; x < 4; ++x) {
+            SkBitmap bitmap;
+            bitmap.allocPixels(SkImageInfo::MakeN32Premul(width, height));
+            bitmap.writePixels(pixmap, -y * width, -x * height);
+            canvas->drawBitmap(bitmap, x * width, y * height);
+        }
     }
 ##
 
@@ -3290,14 +3290,14 @@
 
 #Example
 #Height 80
-    SkBitmap bitmap;

-    bitmap.allocPixels(SkImageInfo::MakeN32Premul(2, 2));

-    bitmap.eraseColor(SK_ColorGREEN);

-    SkPMColor color = 0xFF5599BB;

-    SkPixmap src(SkImageInfo::MakeN32Premul(1, 1), &color, 4);

-    bitmap.writePixels(src);

-    canvas->scale(40, 40);

-    canvas->drawBitmap(bitmap, 0, 0);

+    SkBitmap bitmap;
+    bitmap.allocPixels(SkImageInfo::MakeN32Premul(2, 2));
+    bitmap.eraseColor(SK_ColorGREEN);
+    SkPMColor color = 0xFF5599BB;
+    SkPixmap src(SkImageInfo::MakeN32Premul(1, 1), &color, 4);
+    bitmap.writePixels(src);
+    canvas->scale(40, 40);
+    canvas->drawBitmap(bitmap, 0, 0);
 ##
 
 #SeeAlso readPixels
@@ -3344,27 +3344,27 @@
 
 #Example
 #Height 64
-    const int width = 256;

-    const int height = 32;

-    std::vector<int32_t> dstPixels;

-    dstPixels.resize(height * width * 4);

-    SkImageInfo info = SkImageInfo::MakeN32Premul(width, height);

-    SkColor  gradColors[] = { 0xFFAA3300, 0x7F881122 };

-    SkPoint  gradPoints[] = { { 0, 0 }, { width, 0 } };

-    SkPaint gradPaint;

-    gradPaint.setShader(SkGradientShader::MakeLinear(gradPoints, gradColors, nullptr,

-                    SK_ARRAY_COUNT(gradColors), SkShader::kClamp_TileMode));

-    for (auto behavior : { SkTransferFunctionBehavior::kRespect,

-                           SkTransferFunctionBehavior::kIgnore} ) {

-        SkPixmap dstPixmap(info, &dstPixels.front(), width * 4);

-        SkBitmap bitmap;

-        bitmap.installPixels(dstPixmap);

-        SkCanvas srcCanvas(bitmap);

-        srcCanvas.drawRect(SkRect::MakeWH(width, height), gradPaint);

-        if (bitmap.writePixels(dstPixmap, 0, 0, behavior)) {

-            canvas->drawBitmap(bitmap, 0, 0);

-        }

-        canvas->translate(0, height);

+    const int width = 256;
+    const int height = 32;
+    std::vector<int32_t> dstPixels;
+    dstPixels.resize(height * width * 4);
+    SkImageInfo info = SkImageInfo::MakeN32Premul(width, height);
+    SkColor  gradColors[] = { 0xFFAA3300, 0x7F881122 };
+    SkPoint  gradPoints[] = { { 0, 0 }, { width, 0 } };
+    SkPaint gradPaint;
+    gradPaint.setShader(SkGradientShader::MakeLinear(gradPoints, gradColors, nullptr,
+                    SK_ARRAY_COUNT(gradColors), SkShader::kClamp_TileMode));
+    for (auto behavior : { SkTransferFunctionBehavior::kRespect,
+                           SkTransferFunctionBehavior::kIgnore} ) {
+        SkPixmap dstPixmap(info, &dstPixels.front(), width * 4);
+        SkBitmap bitmap;
+        bitmap.installPixels(dstPixmap);
+        SkCanvas srcCanvas(bitmap);
+        srcCanvas.drawRect(SkRect::MakeWH(width, height), gradPaint);
+        if (bitmap.writePixels(dstPixmap, 0, 0, behavior)) {
+            canvas->drawBitmap(bitmap, 0, 0);
+        }
+        canvas->translate(0, height);
     }
 ##
 
@@ -3421,20 +3421,20 @@
 
 #Example
 #Height 100
-    SkBitmap alpha, bitmap;

-    bitmap.allocN32Pixels(100, 100);

-    SkCanvas offscreen(bitmap);

-    offscreen.clear(0);

-    SkPaint paint;

-    paint.setAntiAlias(true);

-    paint.setColor(SK_ColorBLUE);

-    paint.setStyle(SkPaint::kStroke_Style);

-    paint.setStrokeWidth(20);

-    offscreen.drawCircle(50, 50, 39, paint);

-    offscreen.flush();

-    bitmap.extractAlpha(&alpha);

-    paint.setColor(SK_ColorRED);

-    canvas->drawBitmap(bitmap, 0, 0, &paint);

+    SkBitmap alpha, bitmap;
+    bitmap.allocN32Pixels(100, 100);
+    SkCanvas offscreen(bitmap);
+    offscreen.clear(0);
+    SkPaint paint;
+    paint.setAntiAlias(true);
+    paint.setColor(SK_ColorBLUE);
+    paint.setStyle(SkPaint::kStroke_Style);
+    paint.setStrokeWidth(20);
+    offscreen.drawCircle(50, 50, 39, paint);
+    offscreen.flush();
+    bitmap.extractAlpha(&alpha);
+    paint.setColor(SK_ColorRED);
+    canvas->drawBitmap(bitmap, 0, 0, &paint);
     canvas->drawBitmap(alpha, 100, 0, &paint);
 ##
 
@@ -3464,25 +3464,25 @@
 #Bug 7103 ##
 #Example
 #Height 160
-    SkBitmap alpha, bitmap;

-    bitmap.allocN32Pixels(100, 100);

-    SkCanvas offscreen(bitmap);

-    offscreen.clear(0);

-    SkPaint paint;

-    paint.setAntiAlias(true);

-    paint.setColor(SK_ColorBLUE);

-    paint.setStyle(SkPaint::kStroke_Style);

-    paint.setStrokeWidth(20);

-    offscreen.drawCircle(50, 50, 39, paint);

-    offscreen.flush();

-    const SkScalar kBlurSigma = SkBlurMaskFilter::ConvertRadiusToSigma(SkIntToScalar(25));

-    paint.setMaskFilter(SkBlurMaskFilter::Make(kNormal_SkBlurStyle, kBlurSigma,

-                                    SkBlurMaskFilter::kHighQuality_BlurFlag));

-    SkIPoint offset;

-    bitmap.extractAlpha(&alpha, &paint, &offset);

-    paint.setColor(SK_ColorRED);

-    canvas->drawBitmap(bitmap, 0, -offset.fY, &paint);

-    canvas->drawBitmap(alpha, 100 + offset.fX, 0, &paint);

+    SkBitmap alpha, bitmap;
+    bitmap.allocN32Pixels(100, 100);
+    SkCanvas offscreen(bitmap);
+    offscreen.clear(0);
+    SkPaint paint;
+    paint.setAntiAlias(true);
+    paint.setColor(SK_ColorBLUE);
+    paint.setStyle(SkPaint::kStroke_Style);
+    paint.setStrokeWidth(20);
+    offscreen.drawCircle(50, 50, 39, paint);
+    offscreen.flush();
+    const SkScalar kBlurSigma = SkBlurMaskFilter::ConvertRadiusToSigma(SkIntToScalar(25));
+    paint.setMaskFilter(SkBlurMaskFilter::Make(kNormal_SkBlurStyle, kBlurSigma,
+                                    SkBlurMaskFilter::kHighQuality_BlurFlag));
+    SkIPoint offset;
+    bitmap.extractAlpha(&alpha, &paint, &offset);
+    paint.setColor(SK_ColorRED);
+    canvas->drawBitmap(bitmap, 0, -offset.fY, &paint);
+    canvas->drawBitmap(alpha, 100 + offset.fX, 0, &paint);
 ##
 
 #SeeAlso extractSubset
@@ -3513,23 +3513,23 @@
 #Bug 7104 ##
 #Example
 #Height 128
-    SkBitmap alpha, bitmap;

-    bitmap.allocN32Pixels(100, 100);

-    SkCanvas offscreen(bitmap);

-    offscreen.clear(0);

-    SkPaint paint;

-    paint.setAntiAlias(true);

-    paint.setColor(SK_ColorBLUE);

-    paint.setStyle(SkPaint::kStroke_Style);

-    paint.setStrokeWidth(20);

-    offscreen.drawCircle(50, 50, 39, paint);

-    offscreen.flush();

+    SkBitmap alpha, bitmap;
+    bitmap.allocN32Pixels(100, 100);
+    SkCanvas offscreen(bitmap);
+    offscreen.clear(0);
+    SkPaint paint;
+    paint.setAntiAlias(true);
+    paint.setColor(SK_ColorBLUE);
+    paint.setStyle(SkPaint::kStroke_Style);
+    paint.setStrokeWidth(20);
+    offscreen.drawCircle(50, 50, 39, paint);
+    offscreen.flush();
     paint.setMaskFilter(SkBlurMaskFilter::Make(kOuter_SkBlurStyle, 3));
-    SkIPoint offset;

-    bitmap.extractAlpha(&alpha, &paint, nullptr, &offset);

-    paint.setColor(SK_ColorRED);

-    canvas->drawBitmap(bitmap, 0, -offset.fY, &paint);

-    canvas->drawBitmap(alpha, 100 + offset.fX, 0, &paint);

+    SkIPoint offset;
+    bitmap.extractAlpha(&alpha, &paint, nullptr, &offset);
+    paint.setColor(SK_ColorRED);
+    canvas->drawBitmap(bitmap, 0, -offset.fY, &paint);
+    canvas->drawBitmap(alpha, 100 + offset.fX, 0, &paint);
 ##
 
 #SeeAlso extractSubset
@@ -3551,34 +3551,34 @@
 #Return true if Bitmap has direct access to pixels ##
 
 #Example
-    SkBitmap bitmap;

-    bitmap.allocPixels(SkImageInfo::MakeN32Premul(6, 11));

-    SkCanvas offscreen(bitmap);

-    offscreen.clear(SK_ColorWHITE);

-    SkPaint paint;

-    offscreen.drawString("?", 0, 10, paint);

-    SkPixmap pixmap;

-    if (bitmap.peekPixels(&pixmap)) {

-        const SkPMColor* pixels = pixmap.addr32();

-        SkPMColor pmWhite = pixels[0];

-        for (int y = 0; y < bitmap.height(); ++y) {

-            for (int x = 0; x < bitmap.width(); ++x) {

-                SkDebugf("%c", *pixels++ == pmWhite ? '-' : 'x');

-            }

-            SkDebugf("\n");

-        }

-    }

+    SkBitmap bitmap;
+    bitmap.allocPixels(SkImageInfo::MakeN32Premul(6, 11));
+    SkCanvas offscreen(bitmap);
+    offscreen.clear(SK_ColorWHITE);
+    SkPaint paint;
+    offscreen.drawString("?", 0, 10, paint);
+    SkPixmap pixmap;
+    if (bitmap.peekPixels(&pixmap)) {
+        const SkPMColor* pixels = pixmap.addr32();
+        SkPMColor pmWhite = pixels[0];
+        for (int y = 0; y < bitmap.height(); ++y) {
+            for (int x = 0; x < bitmap.width(); ++x) {
+                SkDebugf("%c", *pixels++ == pmWhite ? '-' : 'x');
+            }
+            SkDebugf("\n");
+        }
+    }
     #StdOut
-    ------

-    --xxx-

-    -x--x-

-    ----x-

-    ---xx-

-    --xx--

-    --x---

-    ------

-    --x---

-    --x---

+    ------
+    --xxx-
+    -x--x-
+    ----x-
+    ---xx-
+    --xx--
+    --x---
+    ------
+    --x---
+    --x---
     ------
     #StdOut ##
 ##
@@ -3604,18 +3604,18 @@
 #Param str  storage for string representation ##
 
 #Example
-    SkBitmap bitmap;

-    int width = 6;

-    int height = 11;

-    bitmap.allocPixels(SkImageInfo::MakeN32Premul(width, height));

-    SkString string;

-    bitmap.toString(&string);

-    SkString match;

-    match.printf("(%d, %d)", width, height);

-    int start = string.find(match.c_str());

-    if (start >= 0) {

-        SkString whStr(&string.c_str()[start], match.size());

-        SkDebugf("bitmap dimensions %s\n", whStr.c_str());

+    SkBitmap bitmap;
+    int width = 6;
+    int height = 11;
+    bitmap.allocPixels(SkImageInfo::MakeN32Premul(width, height));
+    SkString string;
+    bitmap.toString(&string);
+    SkString match;
+    match.printf("(%d, %d)", width, height);
+    int start = string.find(match.c_str());
+    if (start >= 0) {
+        SkString whStr(&string.c_str()[start], match.size());
+        SkDebugf("bitmap dimensions %s\n", whStr.c_str());
     }
     #StdOut
     bitmap dimensions (6, 11)
diff --git a/docs/SkPixmap_Reference.bmh b/docs/SkPixmap_Reference.bmh
index 09fb1a6..837d3af 100644
--- a/docs/SkPixmap_Reference.bmh
+++ b/docs/SkPixmap_Reference.bmh
@@ -799,14 +799,14 @@
         }
     }
 #StdOut
-width:       1 height:       1 computeByteSize:             4

-width:       1 height:    1000 computeByteSize:          4999

-width:       1 height: 1000000 computeByteSize:       4999999

-width:    1000 height:       1 computeByteSize:          4000

-width:    1000 height:    1000 computeByteSize:       4999000

-width:    1000 height: 1000000 computeByteSize:    4999999000

-width: 1000000 height:       1 computeByteSize:       4000000

-width: 1000000 height:    1000 computeByteSize:    4999000000

+width:       1 height:       1 computeByteSize:             4
+width:       1 height:    1000 computeByteSize:          4999
+width:       1 height: 1000000 computeByteSize:       4999999
+width:    1000 height:       1 computeByteSize:          4000
+width:    1000 height:    1000 computeByteSize:       4999000
+width:    1000 height: 1000000 computeByteSize:    4999999000
+width: 1000000 height:       1 computeByteSize:       4000000
+width: 1000000 height:    1000 computeByteSize:    4999000000
 width: 1000000 height: 1000000 computeByteSize: 4999999000000
 ##
 ##
diff --git a/docs/usingBookmaker.bmh b/docs/usingBookmaker.bmh
index 4e1f84b..f0f79d2 100644
--- a/docs/usingBookmaker.bmh
+++ b/docs/usingBookmaker.bmh
@@ -1,143 +1,143 @@
-#External

-SkXXX

-bmh_SkXXX

-CL

-Go

-Visual_Studio

-##

-

-#Topic Bookmaker

-

-How to use the Bookmaker utility.

-

-Install

-#A Go # https://golang.org/doc/install ##

- if needed.  

-Get the fiddle command line interface tool.

-By default this will appear in your home directory.

-

-#Code

-$ go get go.skia.org/infra/fiddle/go/fiddlecli

-##

-

-Build Bookmaker.

-

-#Code

-$ ninja -C out/dir bookmaker

-##

-

-Generate an starter Bookmaker file from an existing include.

-

-#Code

-$ ./out/dir/bookmaker -i include/core/SkXXX.h -t docs

-##

-

-If a method or function has an unnamed parameter, bookmaker generates an error:

-

-#Code

-###$

-C:/puregit/include/core/SkPixmap.h(208): error: #Method missing param name

-bool erase(const SkColor4f&, const SkIRect* subset = nullptr) const

-           ^

-$$$#

-##

-

-All parameters require names to allow markdown and doxygen documents to refer to

-them. After naming all parameters, check in the include before continuing.

-

-A successful run generates

-#Code

-docs/SkXXX_Reference.bmh

-##

-.

-

-Next, use your favorite editor to fill out

-#Code

-docs/SkXXX_Reference.bmh

-##

-.

-

-#Subtopic Style

-

-Documentation consists of cross references, descriptions, and examples.

-All structs, classes, enums, their members and methods, functions, and so on,

-require descriptions. Most also require examples.

-

-All methods and functions should include examples if practical.

-

-Descriptions start with an active verb. Descriptions are complete, punctuated

-sentences unless they describe parameters or return values. Parameters and

-returned values are described by phrases that start lower case and do not

-include trailing punctuation.

-

-Descriptions are not self-referential; they do not include the thing they

-describe. Descriptions may contain upper case references to definitions

-but otherwise should be free of jargon.

-

-Descriptions may contain code and formulas, each bracketed by markup.

-

-Similar items may be grouped into topics. Topics may include subtopics.

-

-Each document begins with one or more indices that include the contents of

-that file. A class reference includes an index listing contained topics, 

-a separate listing for constructors, one for methods, and so on.

-

-Class methods contain a description, any parameters, any return value,

-an example, and any cross references.

-

-Each method must contain either one or more examples or markup indicating

-that there is no example.

-

-##

-

-Generate fiddle.json from all examples, including the ones you just wrote.

-Error checking is syntatic: starting keywords are closed, keywords have the

-correct parents.

-If you run Bookmaker inside Visual_Studio, you can click on errors and it

-will take you to the source line in question.

-

-#Code

-$ ./out/dir/bookmaker -e fiddle.json -b docs

-##

-

-Once complete, run fiddlecli to generate the example hashes.

-Errors are contained by the output but aren't reported yet.

-

-#Code

-$ $GOPATH/bin/fiddlecli --input fiddle.json --output fiddleout.json

-##

-

-Generate bmh_SkXXX.md from SkXXX.bmh and fiddleout.json.

-Error checking includes: undefined references, fiddle compiler errors,

-missing or mismatched printf output.

-Again, you can click on any errors inside Visual_Studio.

-

-#Code

-$ ./out/dir/bookmaker -r site/user/api -b docs -f fiddleout.json

-##

-

-The original include may have changed since you started creating the markdown.

-Check to see if it is up to date.

-This reports if a method no longer exists or its parameters have changed.

-

-#Code

-$ ./out/dir/bookmaker -x -b docs/SkXXX.bmh -i include/core/SkXXX.h

-##

-

-Generate an updated include header. Run:

-

-#Code

-$ ./out/dir/bookmaker -p -b docs -i include/core/SkXXX.h

-##

-

-to write the updated SkXXX.h to the current directory.

-

-#Subtopic Bugs

-

-Bookmaker bugs are tracked

-#A here # bug.skia.org/6898 ##

-.

-

-##

-

-#Topic Bookmaker ##

+#External
+SkXXX
+bmh_SkXXX
+CL
+Go
+Visual_Studio
+##
+
+#Topic Bookmaker
+
+How to use the Bookmaker utility.
+
+Install
+#A Go # https://golang.org/doc/install ##
+ if needed.  
+Get the fiddle command line interface tool.
+By default this will appear in your home directory.
+
+#Code
+$ go get go.skia.org/infra/fiddle/go/fiddlecli
+##
+
+Build Bookmaker.
+
+#Code
+$ ninja -C out/dir bookmaker
+##
+
+Generate an starter Bookmaker file from an existing include.
+
+#Code
+$ ./out/dir/bookmaker -i include/core/SkXXX.h -t docs
+##
+
+If a method or function has an unnamed parameter, bookmaker generates an error:
+
+#Code
+###$
+C:/puregit/include/core/SkPixmap.h(208): error: #Method missing param name
+bool erase(const SkColor4f&, const SkIRect* subset = nullptr) const
+           ^
+$$$#
+##
+
+All parameters require names to allow markdown and doxygen documents to refer to
+them. After naming all parameters, check in the include before continuing.
+
+A successful run generates
+#Code
+docs/SkXXX_Reference.bmh
+##
+.
+
+Next, use your favorite editor to fill out
+#Code
+docs/SkXXX_Reference.bmh
+##
+.
+
+#Subtopic Style
+
+Documentation consists of cross references, descriptions, and examples.
+All structs, classes, enums, their members and methods, functions, and so on,
+require descriptions. Most also require examples.
+
+All methods and functions should include examples if practical.
+
+Descriptions start with an active verb. Descriptions are complete, punctuated
+sentences unless they describe parameters or return values. Parameters and
+returned values are described by phrases that start lower case and do not
+include trailing punctuation.
+
+Descriptions are not self-referential; they do not include the thing they
+describe. Descriptions may contain upper case references to definitions
+but otherwise should be free of jargon.
+
+Descriptions may contain code and formulas, each bracketed by markup.
+
+Similar items may be grouped into topics. Topics may include subtopics.
+
+Each document begins with one or more indices that include the contents of
+that file. A class reference includes an index listing contained topics, 
+a separate listing for constructors, one for methods, and so on.
+
+Class methods contain a description, any parameters, any return value,
+an example, and any cross references.
+
+Each method must contain either one or more examples or markup indicating
+that there is no example.
+
+##
+
+Generate fiddle.json from all examples, including the ones you just wrote.
+Error checking is syntatic: starting keywords are closed, keywords have the
+correct parents.
+If you run Bookmaker inside Visual_Studio, you can click on errors and it
+will take you to the source line in question.
+
+#Code
+$ ./out/dir/bookmaker -e fiddle.json -b docs
+##
+
+Once complete, run fiddlecli to generate the example hashes.
+Errors are contained by the output but aren't reported yet.
+
+#Code
+$ $GOPATH/bin/fiddlecli --input fiddle.json --output fiddleout.json
+##
+
+Generate bmh_SkXXX.md from SkXXX.bmh and fiddleout.json.
+Error checking includes: undefined references, fiddle compiler errors,
+missing or mismatched printf output.
+Again, you can click on any errors inside Visual_Studio.
+
+#Code
+$ ./out/dir/bookmaker -r site/user/api -b docs -f fiddleout.json
+##
+
+The original include may have changed since you started creating the markdown.
+Check to see if it is up to date.
+This reports if a method no longer exists or its parameters have changed.
+
+#Code
+$ ./out/dir/bookmaker -x -b docs/SkXXX.bmh -i include/core/SkXXX.h
+##
+
+Generate an updated include header. Run:
+
+#Code
+$ ./out/dir/bookmaker -p -b docs -i include/core/SkXXX.h
+##
+
+to write the updated SkXXX.h to the current directory.
+
+#Subtopic Bugs
+
+Bookmaker bugs are tracked
+#A here # bug.skia.org/6898 ##
+.
+
+##
+
+#Topic Bookmaker ##