Docs: Give documentation examples better names

These names come from the bookmaker generated md files.

Also, delete ducplicated and empty examples.

A later CL will re-name the cpp files.

Change-Id: Ie365b9cc1cc705d010c674b9988b32c8307a0455
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/201609
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Hal Canary <halcanary@google.com>
diff --git a/docs/examples/AutoCanvasRestore_000.cpp b/docs/examples/AutoCanvasRestore_000.cpp
index d7f2de3..a810cd7 100644
--- a/docs/examples/AutoCanvasRestore_000.cpp
+++ b/docs/examples/AutoCanvasRestore_000.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=466ef576b88e29d7252422db7adeed1c
-REG_FIDDLE(AutoCanvasRestore_000, 256, 128, false, 0) {
+REG_FIDDLE(AutoCanvasRestore_SkCanvas_star, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/AutoCanvasRestore_001.cpp b/docs/examples/AutoCanvasRestore_001.cpp
index 6176b86..216d8f4 100644
--- a/docs/examples/AutoCanvasRestore_001.cpp
+++ b/docs/examples/AutoCanvasRestore_001.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9f459b218ec079c1ada23f4412968f9a
-REG_FIDDLE(AutoCanvasRestore_001, 256, 256, true, 0) {
+REG_FIDDLE(AutoCanvasRestore_restore, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     for (bool callRestore : { false, true } ) {
         for (bool saveCanvas : {false, true} ) {
diff --git a/docs/examples/Bitmap_000.cpp b/docs/examples/Bitmap_000.cpp
index 0bfebc9..4f3a110 100644
--- a/docs/examples/Bitmap_000.cpp
+++ b/docs/examples/Bitmap_000.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=fe79a9c1ec350264eb9c7b2509dd3638
-REG_FIDDLE(Bitmap_000, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_HeapAllocator_allocPixelRef, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     bitmap.setInfo(SkImageInfo::MakeN32(16, 16, kPremul_SkAlphaType));
diff --git a/docs/examples/Bitmap_001.cpp b/docs/examples/Bitmap_001.cpp
index 39613b1..c7a5c8c 100644
--- a/docs/examples/Bitmap_001.cpp
+++ b/docs/examples/Bitmap_001.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6739d14ec0d6a373f2fcadc6b3077fd4
-REG_FIDDLE(Bitmap_001, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_empty_constructor, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const char* alphas[] = {"Unknown", "Opaque", "Premul", "Unpremul"};
     const char* colors[] = {"Unknown", "Alpha_8", "RGB_565", "ARGB_4444", "RGBA_8888", "RGB_888x",
diff --git a/docs/examples/Bitmap_002.cpp b/docs/examples/Bitmap_002.cpp
index 6e2ca88..77350dc 100644
--- a/docs/examples/Bitmap_002.cpp
+++ b/docs/examples/Bitmap_002.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=bbbae7a181bfd128a4484e8e9f454db1
-REG_FIDDLE(Bitmap_002, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_copy_const_SkBitmap, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap original;
     if (original.tryAllocPixels(
diff --git a/docs/examples/Bitmap_003.cpp b/docs/examples/Bitmap_003.cpp
index 6c307af..2362eef 100644
--- a/docs/examples/Bitmap_003.cpp
+++ b/docs/examples/Bitmap_003.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=40afd4f1fa69e02d69d92b38252088ef
-REG_FIDDLE(Bitmap_003, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_move_SkBitmap, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap original;
     if (original.tryAllocPixels(
diff --git a/docs/examples/Bitmap_004.cpp b/docs/examples/Bitmap_004.cpp
index f0e7bfe..c998dad 100644
--- a/docs/examples/Bitmap_004.cpp
+++ b/docs/examples/Bitmap_004.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=45279c519ae808f78bd30e9d84bdfdde
-REG_FIDDLE(Bitmap_004, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_copy_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap original;
     if (original.tryAllocPixels(
diff --git a/docs/examples/Bitmap_005.cpp b/docs/examples/Bitmap_005.cpp
index c4bb112..0a12712 100644
--- a/docs/examples/Bitmap_005.cpp
+++ b/docs/examples/Bitmap_005.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=35ea3fed27d8db22dc00f48670de64de
-REG_FIDDLE(Bitmap_005, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_move_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap original;
     if (original.tryAllocPixels(
diff --git a/docs/examples/Bitmap_006.cpp b/docs/examples/Bitmap_006.cpp
index 9de6348..5ae88f2 100644
--- a/docs/examples/Bitmap_006.cpp
+++ b/docs/examples/Bitmap_006.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=de9be45255e48fae445c916a41063abc
-REG_FIDDLE(Bitmap_006, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_swap, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* prefix, const SkBitmap& b) -> void {
         const char* alphas[] = {"Unknown", "Opaque", "Premul", "Unpremul"};
diff --git a/docs/examples/Bitmap_007.cpp b/docs/examples/Bitmap_007.cpp
index 8e55515..b9e113c 100644
--- a/docs/examples/Bitmap_007.cpp
+++ b/docs/examples/Bitmap_007.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=7f972d742dd78d2500034d8867e9ef2f
-REG_FIDDLE(Bitmap_007, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_pixmap, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     bitmap.allocPixels(SkImageInfo::MakeN32Premul(10, 11));
diff --git a/docs/examples/Bitmap_008.cpp b/docs/examples/Bitmap_008.cpp
index 8aae2e3..b792f16 100644
--- a/docs/examples/Bitmap_008.cpp
+++ b/docs/examples/Bitmap_008.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ec47c4dc23e2925ad565eaba55a91553
-REG_FIDDLE(Bitmap_008, 256, 256, true, 4) {
+REG_FIDDLE(Bitmap_info, 256, 256, true, 4) {
 void draw(SkCanvas* canvas) {
     // SkBitmap source;  // pre-populated with soccer ball by fiddle.skia.org
     const SkImageInfo& info = source.info();
diff --git a/docs/examples/Bitmap_009.cpp b/docs/examples/Bitmap_009.cpp
index c85fc11..c8330be 100644
--- a/docs/examples/Bitmap_009.cpp
+++ b/docs/examples/Bitmap_009.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d06880c42f8bb3b4c3b67bd988046049
-REG_FIDDLE(Bitmap_009, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_width, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkImageInfo info = SkImageInfo::MakeA8(16, 32);
     SkBitmap bitmap;
diff --git a/docs/examples/Bitmap_010.cpp b/docs/examples/Bitmap_010.cpp
index 7cc01bc..69aef2f 100644
--- a/docs/examples/Bitmap_010.cpp
+++ b/docs/examples/Bitmap_010.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c79a196278c58b34cd5f551b0124ecc9
-REG_FIDDLE(Bitmap_010, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_height, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkImageInfo info = SkImageInfo::MakeA8(16, 32);
     SkBitmap bitmap;
diff --git a/docs/examples/Bitmap_011.cpp b/docs/examples/Bitmap_011.cpp
index 2d905c8..cbc225f 100644
--- a/docs/examples/Bitmap_011.cpp
+++ b/docs/examples/Bitmap_011.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ceb77fab7326b57822a147b04aa0960e
-REG_FIDDLE(Bitmap_011, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_colorType, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const char* colors[] = {"Unknown", "Alpha_8", "RGB_565", "ARGB_4444", "RGBA_8888", "RGB_888x",
                             "BGRA_8888", "RGBA_1010102", "RGB_101010x", "Gray_8", "RGBA_F16Norm",
diff --git a/docs/examples/Bitmap_013.cpp b/docs/examples/Bitmap_013.cpp
index 5b2c4d5..632e50d 100644
--- a/docs/examples/Bitmap_013.cpp
+++ b/docs/examples/Bitmap_013.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=817f95879fadba44baf87ea60e9b595a
-REG_FIDDLE(Bitmap_013, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_colorSpace, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     bitmap.setInfo(SkImageInfo::MakeN32(16, 32, kPremul_SkAlphaType,
diff --git a/docs/examples/Bitmap_014.cpp b/docs/examples/Bitmap_014.cpp
index 4d90ea5..930dd48 100644
--- a/docs/examples/Bitmap_014.cpp
+++ b/docs/examples/Bitmap_014.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=cb028b7931da85b949ad0953b9711f9f
-REG_FIDDLE(Bitmap_014, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_refColorSpace, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap1, bitmap2;
     bitmap1.setInfo(SkImageInfo::MakeN32(16, 32, kPremul_SkAlphaType,
diff --git a/docs/examples/Bitmap_015.cpp b/docs/examples/Bitmap_015.cpp
index 0127aa6..a3663b1 100644
--- a/docs/examples/Bitmap_015.cpp
+++ b/docs/examples/Bitmap_015.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=2a688e6f0a516c0d44a826381e9d637f
-REG_FIDDLE(Bitmap_015, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_bytesPerPixel, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const char* colors[] = {"Unknown", "Alpha_8", "RGB_565", "ARGB_4444", "RGBA_8888", "RGB_888x",
                             "BGRA_8888", "RGBA_1010102", "RGB_101010x", "Gray_8", "RGBA_F16Norm",
diff --git a/docs/examples/Bitmap_016.cpp b/docs/examples/Bitmap_016.cpp
index 4efe927..1c78217 100644
--- a/docs/examples/Bitmap_016.cpp
+++ b/docs/examples/Bitmap_016.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=03a9e08082a23a98de17c3e24871d61a
-REG_FIDDLE(Bitmap_016, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_rowBytesAsPixels, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     for (int rowBytes : { 4, 5, 6, 7, 8} ) {
diff --git a/docs/examples/Bitmap_017.cpp b/docs/examples/Bitmap_017.cpp
index bc2d2e0..8c10e1b 100644
--- a/docs/examples/Bitmap_017.cpp
+++ b/docs/examples/Bitmap_017.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=56ede4b7d45c15d5936f81ac3d74f070
-REG_FIDDLE(Bitmap_017, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_shiftPerPixel, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const char* colors[] = {"Unknown", "Alpha_8", "RGB_565", "ARGB_4444", "RGBA_8888", "RGB_888x",
                             "BGRA_8888", "RGBA_1010102", "RGB_101010x", "Gray_8", "RGBA_F16Norm",
diff --git a/docs/examples/Bitmap_018.cpp b/docs/examples/Bitmap_018.cpp
index 9233ae2..6964d1d 100644
--- a/docs/examples/Bitmap_018.cpp
+++ b/docs/examples/Bitmap_018.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a3762c2722b56ba55e42689c527f146c
-REG_FIDDLE(Bitmap_018, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_empty, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     for (int width : { 0, 2 } ) {
diff --git a/docs/examples/Bitmap_019.cpp b/docs/examples/Bitmap_019.cpp
index 01ca915..9d6c3eb 100644
--- a/docs/examples/Bitmap_019.cpp
+++ b/docs/examples/Bitmap_019.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=211ec89418011aa6e54aa2cc9567e003
-REG_FIDDLE(Bitmap_019, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_isNull, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     SkDebugf("empty bitmap does %shave pixels\n", bitmap.isNull() ? "not " : "");
diff --git a/docs/examples/Bitmap_020.cpp b/docs/examples/Bitmap_020.cpp
index ce68d3f..c113dcf 100644
--- a/docs/examples/Bitmap_020.cpp
+++ b/docs/examples/Bitmap_020.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=daacf43394ce4045a362a48b5774deed
-REG_FIDDLE(Bitmap_020, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_drawsNothing, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     for (int w : { 0, 8 } ) {
diff --git a/docs/examples/Bitmap_021.cpp b/docs/examples/Bitmap_021.cpp
index a006212..2ac1b5c 100644
--- a/docs/examples/Bitmap_021.cpp
+++ b/docs/examples/Bitmap_021.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a654fd0b73f424859ae6c95e03f55099
-REG_FIDDLE(Bitmap_021, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_rowBytes, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     for (int rowBytes : { 2, 8 } ) {
diff --git a/docs/examples/Bitmap_022.cpp b/docs/examples/Bitmap_022.cpp
index 1c53d59..ff2b142 100644
--- a/docs/examples/Bitmap_022.cpp
+++ b/docs/examples/Bitmap_022.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=af3adcbea7b58bf90298ca5e0ea93030
-REG_FIDDLE(Bitmap_022, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_setAlphaType, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const char* colors[] = { "Unknown", "Alpha_8", "RGB_565", "ARGB_4444", "RGBA_8888", "RGB_888x",
                              "BGRA_8888", "RGBA_1010102", "RGB_101010x", "Gray_8", "RGBA_F16Norm",
diff --git a/docs/examples/Bitmap_023.cpp b/docs/examples/Bitmap_023.cpp
index 1c00991..25c041b 100644
--- a/docs/examples/Bitmap_023.cpp
+++ b/docs/examples/Bitmap_023.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e006bb05cf74ec8d2b3d6adeb5dba11b
-REG_FIDDLE(Bitmap_023, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_getPixels, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     bitmap.setInfo(SkImageInfo::MakeN32(4, 4, kPremul_SkAlphaType));
diff --git a/docs/examples/Bitmap_024.cpp b/docs/examples/Bitmap_024.cpp
index ffa91bb..84850bc 100644
--- a/docs/examples/Bitmap_024.cpp
+++ b/docs/examples/Bitmap_024.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=165c8f208829fc0908e8a50da60c0076
-REG_FIDDLE(Bitmap_024, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_computeByteSize, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     for (int width : { 1, 1000, 1000000 } ) {
diff --git a/docs/examples/Bitmap_025.cpp b/docs/examples/Bitmap_025.cpp
index 75b0c8a..2b238c9 100644
--- a/docs/examples/Bitmap_025.cpp
+++ b/docs/examples/Bitmap_025.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=db61fdcd382342ee88ea1b4f27c27b95
-REG_FIDDLE(Bitmap_025, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_isImmutable, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap original;
     SkImageInfo info = SkImageInfo::Make(25, 35, kRGBA_8888_SkColorType, kOpaque_SkAlphaType);
diff --git a/docs/examples/Bitmap_026.cpp b/docs/examples/Bitmap_026.cpp
index 6da97c1..4bf741f 100644
--- a/docs/examples/Bitmap_026.cpp
+++ b/docs/examples/Bitmap_026.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9210060d1f4ca46e1375496237902ef3
-REG_FIDDLE(Bitmap_026, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_setImmutable, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     bitmap.setInfo(SkImageInfo::MakeN32(4, 4, kPremul_SkAlphaType));
diff --git a/docs/examples/Bitmap_027.cpp b/docs/examples/Bitmap_027.cpp
index 8908daf..796937f 100644
--- a/docs/examples/Bitmap_027.cpp
+++ b/docs/examples/Bitmap_027.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5e76b68bb46d54315eb0c12d83bd6949
-REG_FIDDLE(Bitmap_027, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_isOpaque, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const int height = 2;
     const int width = 2;
diff --git a/docs/examples/Bitmap_028.cpp b/docs/examples/Bitmap_028.cpp
index 517cfc5..7f2a2ed 100644
--- a/docs/examples/Bitmap_028.cpp
+++ b/docs/examples/Bitmap_028.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=23c4543ac6cdd0e8fe762816a0dc2e03
-REG_FIDDLE(Bitmap_028, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_isVolatile, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap original;
     SkImageInfo info = SkImageInfo::Make(25, 35, kRGBA_8888_SkColorType, kOpaque_SkAlphaType);
diff --git a/docs/examples/Bitmap_029.cpp b/docs/examples/Bitmap_029.cpp
index 91494cf..0a9b9f6 100644
--- a/docs/examples/Bitmap_029.cpp
+++ b/docs/examples/Bitmap_029.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e8627a4df659b896402f89a91326618f
-REG_FIDDLE(Bitmap_029, 256, 20, false, 0) {
+REG_FIDDLE(Bitmap_setIsVolatile, 256, 20, false, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     bitmap.setInfo(SkImageInfo::Make(1, 1, kRGBA_8888_SkColorType, kOpaque_SkAlphaType));
diff --git a/docs/examples/Bitmap_030.cpp b/docs/examples/Bitmap_030.cpp
index a333412..623cd26 100644
--- a/docs/examples/Bitmap_030.cpp
+++ b/docs/examples/Bitmap_030.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=52ccaeda67924373c5b55a2b89fe314d
-REG_FIDDLE(Bitmap_030, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_reset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     bitmap.setInfo(SkImageInfo::Make(1, 1, kRGBA_8888_SkColorType, kOpaque_SkAlphaType));
diff --git a/docs/examples/Bitmap_031.cpp b/docs/examples/Bitmap_031.cpp
index 98cb453..d92fba1 100644
--- a/docs/examples/Bitmap_031.cpp
+++ b/docs/examples/Bitmap_031.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9df1baa17658fbd0c419780f26fd854f
-REG_FIDDLE(Bitmap_031, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_ComputeIsOpaque, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     bitmap.setInfo(SkImageInfo::Make(2, 2, kN32_SkColorType, kPremul_SkAlphaType));
diff --git a/docs/examples/Bitmap_032.cpp b/docs/examples/Bitmap_032.cpp
index 2d423e4..4f37db7 100644
--- a/docs/examples/Bitmap_032.cpp
+++ b/docs/examples/Bitmap_032.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=2431ebc7e7d1e91e6d9daafd0f7a478f
-REG_FIDDLE(Bitmap_032, 256, 160, false, 3) {
+REG_FIDDLE(Bitmap_getBounds, 256, 160, false, 3) {
 void draw(SkCanvas* canvas) {
     SkRect bounds;
     source.getBounds(&bounds);
diff --git a/docs/examples/Bitmap_033.cpp b/docs/examples/Bitmap_033.cpp
index c402714..e66603d 100644
--- a/docs/examples/Bitmap_033.cpp
+++ b/docs/examples/Bitmap_033.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0c45da35172bc0a529b2faecddae62a2
-REG_FIDDLE(Bitmap_033, 256, 256, false, 3) {
+REG_FIDDLE(Bitmap_getBounds_2, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     SkIRect bounds;
     source.getBounds(&bounds);
diff --git a/docs/examples/Bitmap_034.cpp b/docs/examples/Bitmap_034.cpp
index ea7b030..9b66dde 100644
--- a/docs/examples/Bitmap_034.cpp
+++ b/docs/examples/Bitmap_034.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3e9126152ff1cc592aef6facbcb5fc96
-REG_FIDDLE(Bitmap_034, 256, 64, false, 4) {
+REG_FIDDLE(Bitmap_bounds, 256, 64, false, 4) {
 void draw(SkCanvas* canvas) {
     canvas->scale(.5f, .5f);
     SkIRect bounds = source.bounds();
diff --git a/docs/examples/Bitmap_035.cpp b/docs/examples/Bitmap_035.cpp
index 421dcf4..2027a8d 100644
--- a/docs/examples/Bitmap_035.cpp
+++ b/docs/examples/Bitmap_035.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=647056bcc12c27fb4413f212f33a2898
-REG_FIDDLE(Bitmap_035, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_dimensions, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     bitmap.setInfo(SkImageInfo::MakeN32(33, 55, kOpaque_SkAlphaType));
diff --git a/docs/examples/Bitmap_036.cpp b/docs/examples/Bitmap_036.cpp
index f2c8cfd..18a69b1 100644
--- a/docs/examples/Bitmap_036.cpp
+++ b/docs/examples/Bitmap_036.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d6dd0b425aa550f21b938a18c2e1a981
-REG_FIDDLE(Bitmap_036, 256, 256, true, 3) {
+REG_FIDDLE(Bitmap_getSubset, 256, 256, true, 3) {
 void draw(SkCanvas* canvas) {
     SkIRect bounds;
     source.getBounds(&bounds);
diff --git a/docs/examples/Bitmap_037.cpp b/docs/examples/Bitmap_037.cpp
index 2c600d3..8ebae8f 100644
--- a/docs/examples/Bitmap_037.cpp
+++ b/docs/examples/Bitmap_037.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=599ab64d0aea005498176249bbfb64eb
-REG_FIDDLE(Bitmap_037, 256, 96, false, 0) {
+REG_FIDDLE(Bitmap_setInfo, 256, 96, false, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     bitmap.setInfo(SkImageInfo::MakeN32(44, 16, kOpaque_SkAlphaType));
diff --git a/docs/examples/Bitmap_038.cpp b/docs/examples/Bitmap_038.cpp
index 5c4990c..4cc5e9c 100644
--- a/docs/examples/Bitmap_038.cpp
+++ b/docs/examples/Bitmap_038.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f1d1880d38e0aea4cefd3e11745e8a09
-REG_FIDDLE(Bitmap_038, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_tryAllocPixelsFlags, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     if (!bitmap.tryAllocPixelsFlags(SkImageInfo::MakeN32(10000, 10000, kOpaque_SkAlphaType),
diff --git a/docs/examples/Bitmap_039.cpp b/docs/examples/Bitmap_039.cpp
index b9d6c15..1cdc39b 100644
--- a/docs/examples/Bitmap_039.cpp
+++ b/docs/examples/Bitmap_039.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=737e721c7d9e0f367d25521a1b823b9d
-REG_FIDDLE(Bitmap_039, 256, 128, false, 0) {
+REG_FIDDLE(Bitmap_allocPixelsFlags, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     bitmap.allocPixelsFlags(SkImageInfo::MakeN32(44, 16, kPremul_SkAlphaType),
diff --git a/docs/examples/Bitmap_040.cpp b/docs/examples/Bitmap_040.cpp
index 56f58ce..c831d89 100644
--- a/docs/examples/Bitmap_040.cpp
+++ b/docs/examples/Bitmap_040.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=34479d5aa23ce9f5e334b0786c9edb22
-REG_FIDDLE(Bitmap_040, 256, 256, false, 3) {
+REG_FIDDLE(Bitmap_tryAllocPixels, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     SkImageInfo info = SkImageInfo::Make(64, 256, kGray_8_SkColorType, kOpaque_SkAlphaType);
diff --git a/docs/examples/Bitmap_041.cpp b/docs/examples/Bitmap_041.cpp
index 336646b..806edd7 100644
--- a/docs/examples/Bitmap_041.cpp
+++ b/docs/examples/Bitmap_041.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=555c0f62f96602a9dcd459badcd005e0
-REG_FIDDLE(Bitmap_041, 256, 256, false, 3) {
+REG_FIDDLE(Bitmap_allocPixels, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     SkImageInfo info = SkImageInfo::Make(256, 64, kGray_8_SkColorType, kOpaque_SkAlphaType);
diff --git a/docs/examples/Bitmap_042.cpp b/docs/examples/Bitmap_042.cpp
index 342e073..0732ba4 100644
--- a/docs/examples/Bitmap_042.cpp
+++ b/docs/examples/Bitmap_042.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=7ef3d043c4c5885649e591dd7dca92ff
-REG_FIDDLE(Bitmap_042, 256, 256, false, 3) {
+REG_FIDDLE(Bitmap_tryAllocPixels_2, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     if (bitmap.tryAllocPixels(SkImageInfo::Make(64, 64, kGray_8_SkColorType, kOpaque_SkAlphaType))) {
diff --git a/docs/examples/Bitmap_043.cpp b/docs/examples/Bitmap_043.cpp
index 32c8035..947774a 100644
--- a/docs/examples/Bitmap_043.cpp
+++ b/docs/examples/Bitmap_043.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=91f474a11a2112cd5c88c40a9015048d
-REG_FIDDLE(Bitmap_043, 256, 256, false, 4) {
+REG_FIDDLE(Bitmap_allocPixels_2, 256, 256, false, 4) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     bitmap.allocPixels(SkImageInfo::Make(64, 64, kGray_8_SkColorType, kOpaque_SkAlphaType));
diff --git a/docs/examples/Bitmap_044.cpp b/docs/examples/Bitmap_044.cpp
index dca595d..af93741 100644
--- a/docs/examples/Bitmap_044.cpp
+++ b/docs/examples/Bitmap_044.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a2b1e0910f37066f15ae56368775a6d8
-REG_FIDDLE(Bitmap_044, 256, 160, false, 0) {
+REG_FIDDLE(Bitmap_tryAllocN32Pixels, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     if (bitmap.tryAllocN32Pixels(80, 80)) {
diff --git a/docs/examples/Bitmap_045.cpp b/docs/examples/Bitmap_045.cpp
index f61a667..f569401 100644
--- a/docs/examples/Bitmap_045.cpp
+++ b/docs/examples/Bitmap_045.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c717491f9251604724c9cbde7088ec20
-REG_FIDDLE(Bitmap_045, 256, 256, false, 0) {
+REG_FIDDLE(Bitmap_allocN32Pixels, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkRandom random;
     SkBitmap bitmap;
diff --git a/docs/examples/Bitmap_046.cpp b/docs/examples/Bitmap_046.cpp
index 792cdb1..2cb5bca 100644
--- a/docs/examples/Bitmap_046.cpp
+++ b/docs/examples/Bitmap_046.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8c4f7bf73fffa1a812ee8e88e44e639c
-REG_FIDDLE(Bitmap_046, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_installPixels, 256, 256, true, 0) {
 static void releaseProc(void* addr, void* ) {
     SkDebugf("releaseProc called\n");
     delete[] (uint32_t*) addr;
diff --git a/docs/examples/Bitmap_047.cpp b/docs/examples/Bitmap_047.cpp
index f58d1fb..21e3d53 100644
--- a/docs/examples/Bitmap_047.cpp
+++ b/docs/examples/Bitmap_047.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a7e04447b2081010c50d7920e80a6bb2
-REG_FIDDLE(Bitmap_047, 256, 256, false, 0) {
+REG_FIDDLE(Bitmap_installPixels_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
    SkRandom random;
    SkBitmap bitmap;
diff --git a/docs/examples/Bitmap_048.cpp b/docs/examples/Bitmap_048.cpp
index 928e0bf..6ae41d0 100644
--- a/docs/examples/Bitmap_048.cpp
+++ b/docs/examples/Bitmap_048.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6e2a8c9358b34aebd2ec586815fe9d3a
-REG_FIDDLE(Bitmap_048, 256, 64, false, 0) {
+REG_FIDDLE(Bitmap_installPixels_3, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     uint8_t storage[][5] = {{ 0xCA, 0xDA, 0xCA, 0xC9, 0xA3 },
                             { 0xAC, 0xA8, 0x89, 0x47, 0x87 },
diff --git a/docs/examples/Bitmap_049.cpp b/docs/examples/Bitmap_049.cpp
index 5ed9d2c..5f72c28 100644
--- a/docs/examples/Bitmap_049.cpp
+++ b/docs/examples/Bitmap_049.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f0db16e06c9a1436917c8179f8c1718f
-REG_FIDDLE(Bitmap_049, 256, 50, false, 0) {
+REG_FIDDLE(Bitmap_setPixels, 256, 50, false, 0) {
 void draw(SkCanvas* canvas) {
     uint8_t set1[5] = { 0xCA, 0xDA, 0xCA, 0xC9, 0xA3 };
     uint8_t set2[5] = { 0xAC, 0xA8, 0x89, 0x47, 0x87 };
diff --git a/docs/examples/Bitmap_050.cpp b/docs/examples/Bitmap_050.cpp
index e03dfa0..85d22e2 100644
--- a/docs/examples/Bitmap_050.cpp
+++ b/docs/examples/Bitmap_050.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=720e4c053fae9e929ab6518b47e49370
-REG_FIDDLE(Bitmap_050, 256, 50, false, 0) {
+REG_FIDDLE(Bitmap_tryAllocPixels_3, 256, 50, false, 0) {
 void draw(SkCanvas* canvas) {
     uint8_t set1[5] = { 0xCA, 0xDA, 0xCA, 0xC9, 0xA3 };
     SkBitmap bitmap;
diff --git a/docs/examples/Bitmap_051.cpp b/docs/examples/Bitmap_051.cpp
index 1a859cb..eae1055 100644
--- a/docs/examples/Bitmap_051.cpp
+++ b/docs/examples/Bitmap_051.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1219b38c788bf270fb20f8cd2d78cff8
-REG_FIDDLE(Bitmap_051, 256, 50, false, 0) {
+REG_FIDDLE(Bitmap_allocPixels_3, 256, 50, false, 0) {
 void draw(SkCanvas* canvas) {
     uint8_t set1[5] = { 0xCA, 0xDA, 0xCA, 0xC9, 0xA3 };
     uint8_t set2[5] = { 0xAC, 0xA8, 0x89, 0x47, 0x87 };
diff --git a/docs/examples/Bitmap_052.cpp b/docs/examples/Bitmap_052.cpp
index 54e29cb..e8155ba 100644
--- a/docs/examples/Bitmap_052.cpp
+++ b/docs/examples/Bitmap_052.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=eb6f861ca1839146d26e40d56c2a001c
-REG_FIDDLE(Bitmap_052, 256, 100, false, 0) {
+REG_FIDDLE(Bitmap_tryAllocPixels_4, 256, 100, false, 0) {
 class LargePixelRef : public SkPixelRef {
 public:
     LargePixelRef(const SkImageInfo& info, char* storage, size_t rowBytes)
diff --git a/docs/examples/Bitmap_053.cpp b/docs/examples/Bitmap_053.cpp
index b622ecf..8ac116c 100644
--- a/docs/examples/Bitmap_053.cpp
+++ b/docs/examples/Bitmap_053.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1b2800d23c9ea249b45c2c21a34b6d14
-REG_FIDDLE(Bitmap_053, 256, 32, false, 0) {
+REG_FIDDLE(Bitmap_allocPixels_4, 256, 32, false, 0) {
 class TinyAllocator : public SkBitmap::Allocator {
 public:
     bool allocPixelRef(SkBitmap* bitmap) override {
diff --git a/docs/examples/Bitmap_054.cpp b/docs/examples/Bitmap_054.cpp
index d47ed99..cdf53a3 100644
--- a/docs/examples/Bitmap_054.cpp
+++ b/docs/examples/Bitmap_054.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5db2d30870a7cc45f28e22578d1880c3
-REG_FIDDLE(Bitmap_054, 256, 256, true, 3) {
+REG_FIDDLE(Bitmap_pixelRef, 256, 256, true, 3) {
 void draw(SkCanvas* canvas) {
     SkBitmap subset;
     source.extractSubset(&subset, SkIRect::MakeXYWH(32, 64, 128, 256));
diff --git a/docs/examples/Bitmap_055.cpp b/docs/examples/Bitmap_055.cpp
index 0e97e3d..ff0d154 100644
--- a/docs/examples/Bitmap_055.cpp
+++ b/docs/examples/Bitmap_055.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6d31686c6c0829c70f284ae716526d6a
-REG_FIDDLE(Bitmap_055, 256, 256, true, 3) {
+REG_FIDDLE(Bitmap_pixelRefOrigin, 256, 256, true, 3) {
 void draw(SkCanvas* canvas) {
     SkBitmap subset;
     source.extractSubset(&subset, SkIRect::MakeXYWH(32, 64, 128, 256));
diff --git a/docs/examples/Bitmap_056.cpp b/docs/examples/Bitmap_056.cpp
index 07a8838..a8fb7c6 100644
--- a/docs/examples/Bitmap_056.cpp
+++ b/docs/examples/Bitmap_056.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f98cc0451c6e77a8833d261c9a484c5f
-REG_FIDDLE(Bitmap_056, 256, 140, false, 5) {
+REG_FIDDLE(Bitmap_setPixelRef, 256, 140, false, 5) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     bitmap.setInfo(SkImageInfo::Make(source.width() - 5, source.height() - 5,
diff --git a/docs/examples/Bitmap_057.cpp b/docs/examples/Bitmap_057.cpp
index 9296ede..04277d0 100644
--- a/docs/examples/Bitmap_057.cpp
+++ b/docs/examples/Bitmap_057.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e89c78ca992e2e789ed50944fe68f920
-REG_FIDDLE(Bitmap_057, 256, 160, false, 5) {
+REG_FIDDLE(Bitmap_readyToDraw, 256, 160, false, 5) {
 void draw(SkCanvas* canvas) {
     if (source.readyToDraw()) {
         canvas->drawBitmap(source, 10, 10);
diff --git a/docs/examples/Bitmap_058.cpp b/docs/examples/Bitmap_058.cpp
index 8822e2e..674a352 100644
--- a/docs/examples/Bitmap_058.cpp
+++ b/docs/examples/Bitmap_058.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=db9dd91e0207c3941c09538555817b4b
-REG_FIDDLE(Bitmap_058, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_getGenerationID, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     SkDebugf("empty id %u\n", bitmap.getGenerationID());
diff --git a/docs/examples/Bitmap_059.cpp b/docs/examples/Bitmap_059.cpp
index 88e81fd..c70a567 100644
--- a/docs/examples/Bitmap_059.cpp
+++ b/docs/examples/Bitmap_059.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8f463ed17b0ed4fb9c503a0ec71706f9
-REG_FIDDLE(Bitmap_059, 256, 20, false, 0) {
+REG_FIDDLE(Bitmap_notifyPixelsChanged, 256, 20, false, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     bitmap.setInfo(SkImageInfo::Make(1, 1, kRGBA_8888_SkColorType, kOpaque_SkAlphaType));
diff --git a/docs/examples/Bitmap_060.cpp b/docs/examples/Bitmap_060.cpp
index 9b1d363..3d1462a 100644
--- a/docs/examples/Bitmap_060.cpp
+++ b/docs/examples/Bitmap_060.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=418928dbfffa9eb00c8225530f44baf5
-REG_FIDDLE(Bitmap_060, 256, 20, false, 0) {
+REG_FIDDLE(Bitmap_eraseColor, 256, 20, false, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     bitmap.allocPixels(SkImageInfo::MakeN32(1, 1, kOpaque_SkAlphaType));
diff --git a/docs/examples/Bitmap_061.cpp b/docs/examples/Bitmap_061.cpp
index 61a1dcb..ac46cd4 100644
--- a/docs/examples/Bitmap_061.cpp
+++ b/docs/examples/Bitmap_061.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=67277b0a1003f340473a35982533561c
-REG_FIDDLE(Bitmap_061, 256, 80, false, 0) {
+REG_FIDDLE(Bitmap_eraseARGB, 256, 80, false, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     bitmap.allocPixels(SkImageInfo::MakeN32(1, 1, kPremul_SkAlphaType));
diff --git a/docs/examples/Bitmap_062.cpp b/docs/examples/Bitmap_062.cpp
index 2aa7c2b..28a0abc2 100644
--- a/docs/examples/Bitmap_062.cpp
+++ b/docs/examples/Bitmap_062.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=2c5c4230ccd2861a5d15b7cd2764ab6e
-REG_FIDDLE(Bitmap_062, 256, 70, false, 0) {
+REG_FIDDLE(Bitmap_erase, 256, 70, false, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     bitmap.allocPixels(SkImageInfo::MakeN32(2, 2, kPremul_SkAlphaType));
diff --git a/docs/examples/Bitmap_063.cpp b/docs/examples/Bitmap_063.cpp
index 7726729..2ae727b 100644
--- a/docs/examples/Bitmap_063.cpp
+++ b/docs/examples/Bitmap_063.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=193d1f6d8a43b7a8e9f27ba21de38617
-REG_FIDDLE(Bitmap_063, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_getColor, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const int w = 4;
     const int h = 4;
diff --git a/docs/examples/Bitmap_064.cpp b/docs/examples/Bitmap_064.cpp
index 204c83f..1443209 100644
--- a/docs/examples/Bitmap_064.cpp
+++ b/docs/examples/Bitmap_064.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ffcefb2344cd38c3b99f69cfe6d64a17
-REG_FIDDLE(Bitmap_064, 256, 256, true, 3) {
+REG_FIDDLE(Bitmap_getAddr, 256, 256, true, 3) {
 void draw(SkCanvas* canvas) {
     char* row0 = (char* ) source.getAddr(0, 0);
     char* row1 = (char* ) source.getAddr(0, 1);
diff --git a/docs/examples/Bitmap_065.cpp b/docs/examples/Bitmap_065.cpp
index 84f23c7..77d64dc 100644
--- a/docs/examples/Bitmap_065.cpp
+++ b/docs/examples/Bitmap_065.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=837a2bcc9fb9ce617a3420956cefc64a
-REG_FIDDLE(Bitmap_065, 256, 256, true, 3) {
+REG_FIDDLE(Bitmap_getAddr32, 256, 256, true, 3) {
 void draw(SkCanvas* canvas) {
     uint32_t* row0 = source.getAddr32(0, 0);
     uint32_t* row1 = source.getAddr32(0, 1);
diff --git a/docs/examples/Bitmap_066.cpp b/docs/examples/Bitmap_066.cpp
index 855639e..207d0a1 100644
--- a/docs/examples/Bitmap_066.cpp
+++ b/docs/examples/Bitmap_066.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=53e00899ef2e00e2096daf7a07d9b059
-REG_FIDDLE(Bitmap_066, 256, 256, true, 3) {
+REG_FIDDLE(Bitmap_getAddr16, 256, 256, true, 3) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap16;
     SkImageInfo dstInfo = SkImageInfo::Make(source.width(), source.height(), kARGB_4444_SkColorType,
diff --git a/docs/examples/Bitmap_067.cpp b/docs/examples/Bitmap_067.cpp
index f01eb9a..c1b188c 100644
--- a/docs/examples/Bitmap_067.cpp
+++ b/docs/examples/Bitmap_067.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=cb9a08e8ff779b6a1cf8bb54f3883aaf
-REG_FIDDLE(Bitmap_067, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_getAddr8, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     const int width = 8;
diff --git a/docs/examples/Bitmap_068.cpp b/docs/examples/Bitmap_068.cpp
index 7510b85..70dd398 100644
--- a/docs/examples/Bitmap_068.cpp
+++ b/docs/examples/Bitmap_068.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=304148c50c91490bfd58e9222342419c
-REG_FIDDLE(Bitmap_068, 256, 256, true, 3) {
+REG_FIDDLE(Bitmap_extractSubset, 256, 256, true, 3) {
 void draw(SkCanvas* canvas) {
     SkIRect bounds, s;
     source.getBounds(&bounds);
diff --git a/docs/examples/Bitmap_069.cpp b/docs/examples/Bitmap_069.cpp
index 7da8c49..ac63ad0 100644
--- a/docs/examples/Bitmap_069.cpp
+++ b/docs/examples/Bitmap_069.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b2cbbbbcffb618865d8aae3bc04b2a62
-REG_FIDDLE(Bitmap_069, 256, 128, false, 0) {
+REG_FIDDLE(Bitmap_readPixels, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     const int width = 256;
     const int height = 64;
diff --git a/docs/examples/Bitmap_070.cpp b/docs/examples/Bitmap_070.cpp
index c912d11..b40ce0d 100644
--- a/docs/examples/Bitmap_070.cpp
+++ b/docs/examples/Bitmap_070.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e9f70cbc9827097449a386ec7a8a8188
-REG_FIDDLE(Bitmap_070, 256, 256, false, 3) {
+REG_FIDDLE(Bitmap_readPixels_2, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     std::vector<int32_t> srcPixels;
     srcPixels.resize(source.height() * source.rowBytes());
diff --git a/docs/examples/Bitmap_071.cpp b/docs/examples/Bitmap_071.cpp
index db806fd..a284926 100644
--- a/docs/examples/Bitmap_071.cpp
+++ b/docs/examples/Bitmap_071.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4590fbf052659d6e629fbfd827081ae5
-REG_FIDDLE(Bitmap_071, 256, 128, false, 3) {
+REG_FIDDLE(Bitmap_readPixels_3, 256, 128, false, 3) {
 void draw(SkCanvas* canvas) {
     std::vector<int32_t> srcPixels;
     srcPixels.resize(source.height() * source.width() * 8);
diff --git a/docs/examples/Bitmap_072.cpp b/docs/examples/Bitmap_072.cpp
index 371535b..0caa52b 100644
--- a/docs/examples/Bitmap_072.cpp
+++ b/docs/examples/Bitmap_072.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9b3133a6673d2514d166398adbe1f9f4
-REG_FIDDLE(Bitmap_072, 256, 256, false, 3) {
+REG_FIDDLE(Bitmap_writePixels, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     std::vector<int32_t> srcPixels;
     int width = image->width();
diff --git a/docs/examples/Bitmap_073.cpp b/docs/examples/Bitmap_073.cpp
index 1a0efce..29fcf94 100644
--- a/docs/examples/Bitmap_073.cpp
+++ b/docs/examples/Bitmap_073.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=faa5dfa466f6e16c07c124d971f32679
-REG_FIDDLE(Bitmap_073, 256, 80, false, 0) {
+REG_FIDDLE(Bitmap_writePixels_2, 256, 80, false, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     bitmap.allocPixels(SkImageInfo::MakeN32Premul(2, 2));
diff --git a/docs/examples/Bitmap_074.cpp b/docs/examples/Bitmap_074.cpp
index 4e65ed8..805540a 100644
--- a/docs/examples/Bitmap_074.cpp
+++ b/docs/examples/Bitmap_074.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ab6577df079e6c70511cf2bfc6447b44
-REG_FIDDLE(Bitmap_074, 256, 100, false, 0) {
+REG_FIDDLE(Bitmap_extractAlpha, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap alpha, bitmap;
     bitmap.allocN32Pixels(100, 100);
diff --git a/docs/examples/Bitmap_075.cpp b/docs/examples/Bitmap_075.cpp
index a57ffc0..d4a0459 100644
--- a/docs/examples/Bitmap_075.cpp
+++ b/docs/examples/Bitmap_075.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=092739b4cd5d732a27c07ced8ef45f01
-REG_FIDDLE(Bitmap_075, 256, 160, false, 0) {
+REG_FIDDLE(Bitmap_extractAlpha_2, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
     auto radiusToSigma = [](SkScalar radius) -> SkScalar {
          static const SkScalar kBLUR_SIGMA_SCALE = 0.57735f;
diff --git a/docs/examples/Bitmap_076.cpp b/docs/examples/Bitmap_076.cpp
index 5751fd2..c6b1b61 100644
--- a/docs/examples/Bitmap_076.cpp
+++ b/docs/examples/Bitmap_076.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=cd7543fa8c9f3cede46dc2d72eb8c4bd
-REG_FIDDLE(Bitmap_076, 256, 128, false, 0) {
+REG_FIDDLE(Bitmap_extractAlpha_3, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap alpha, bitmap;
     bitmap.allocN32Pixels(100, 100);
diff --git a/docs/examples/Bitmap_077.cpp b/docs/examples/Bitmap_077.cpp
index 53f8590f..957e9b9 100644
--- a/docs/examples/Bitmap_077.cpp
+++ b/docs/examples/Bitmap_077.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0cc2c6a0dffa61a88711534bd3d43b40
-REG_FIDDLE(Bitmap_077, 256, 256, true, 0) {
+REG_FIDDLE(Bitmap_peekPixels, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     bitmap.allocPixels(SkImageInfo::MakeN32Premul(6, 11));
diff --git a/docs/examples/BlendMode_000.cpp b/docs/examples/BlendMode_000.cpp
index 8dab5e9..62cdd56 100644
--- a/docs/examples/BlendMode_000.cpp
+++ b/docs/examples/BlendMode_000.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a9b56a26ca469bab9ab10e16f62fb2e2
-REG_FIDDLE(BlendMode_000, 256, 256, false, 0) {
+REG_FIDDLE(Clear, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     canvas->saveLayer(nullptr, nullptr);
     canvas->drawColor(SK_ColorYELLOW, SkBlendMode::kClear);
diff --git a/docs/examples/BlendMode_001.cpp b/docs/examples/BlendMode_001.cpp
index 5bcf294..50d26f3 100644
--- a/docs/examples/BlendMode_001.cpp
+++ b/docs/examples/BlendMode_001.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0fc85dd916cc1a5896d36c80b9847391
-REG_FIDDLE(BlendMode_001, 256, 256, false, 3) {
+REG_FIDDLE(Src, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     canvas->drawImage(image, 0, 0);
     canvas->clipRect({50, 50, 200, 200});
diff --git a/docs/examples/BlendMode_002.cpp b/docs/examples/BlendMode_002.cpp
index 726a38c..2b5899a 100644
--- a/docs/examples/BlendMode_002.cpp
+++ b/docs/examples/BlendMode_002.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=35915a2273be1076f00f2e47998ce808
-REG_FIDDLE(BlendMode_002, 256, 256, false, 3) {
+REG_FIDDLE(Dst, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     SkRSXform xforms[] = { { .5f, 0, 0, 0 }, {0, .5f, 125, 128 } };
     SkRect tex[] = { { 0, 0, 250, 250 }, { 0, 0, 250, 250 } };
diff --git a/docs/examples/BlendMode_003.cpp b/docs/examples/BlendMode_003.cpp
index b301f8d..1381150 100644
--- a/docs/examples/BlendMode_003.cpp
+++ b/docs/examples/BlendMode_003.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=2ea9c149964a06cdb4929158cb4f15f8
-REG_FIDDLE(BlendMode_003, 256, 256, false, 0) {
+REG_FIDDLE(Src_Over, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkColor colors[] = { SK_ColorRED, SK_ColorBLUE };
     SkPoint horz[] = { { 0, 0 }, { 256, 0 } };
diff --git a/docs/examples/BlendMode_004.cpp b/docs/examples/BlendMode_004.cpp
index 09b7b8e..36ea783 100644
--- a/docs/examples/BlendMode_004.cpp
+++ b/docs/examples/BlendMode_004.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=10dbb4d97902956ef5f5f8562f65119e
-REG_FIDDLE(BlendMode_004, 256, 256, false, 0) {
+REG_FIDDLE(Dst_Over, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkColor colors[] = { SK_ColorRED, SK_ColorBLUE };
     SkPoint horz[] = { { 0, 0 }, { 256, 0 } };
diff --git a/docs/examples/BlendMode_005.cpp b/docs/examples/BlendMode_005.cpp
index bb3d86a..48ecd4f 100644
--- a/docs/examples/BlendMode_005.cpp
+++ b/docs/examples/BlendMode_005.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b0833c18fe8b0eeaab9bd6d2160d272f
-REG_FIDDLE(BlendMode_005, 256, 256, false, 0) {
+REG_FIDDLE(Src_In, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkColor colors[] = { SK_ColorRED, SK_ColorBLUE };
     SkPoint horz[] = { { 0, 0 }, { 256, 0 } };
diff --git a/docs/examples/BlendMode_006.cpp b/docs/examples/BlendMode_006.cpp
index 4021b1b..e6d9c83 100644
--- a/docs/examples/BlendMode_006.cpp
+++ b/docs/examples/BlendMode_006.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a5eeba05ccf6097a5d110a9d64f97c25
-REG_FIDDLE(BlendMode_006, 256, 256, false, 0) {
+REG_FIDDLE(Dst_In, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkColor colors[] = { SK_ColorRED, SK_ColorBLUE };
     SkPoint horz[] = { { 0, 0 }, { 256, 0 } };
diff --git a/docs/examples/BlendMode_007.cpp b/docs/examples/BlendMode_007.cpp
index 750a12e..69833e2 100644
--- a/docs/examples/BlendMode_007.cpp
+++ b/docs/examples/BlendMode_007.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ccc1e74226e0c9eacbc21f1eed017b84
-REG_FIDDLE(BlendMode_007, 256, 256, false, 0) {
+REG_FIDDLE(Src_Out, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkColor colors[] = { SK_ColorRED, SK_ColorBLUE };
     SkPoint horz[] = { { 0, 0 }, { 256, 0 } };
diff --git a/docs/examples/BlendMode_008.cpp b/docs/examples/BlendMode_008.cpp
index f894638..4717281 100644
--- a/docs/examples/BlendMode_008.cpp
+++ b/docs/examples/BlendMode_008.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b9a894c9accfc5d94081bbd77d5d790a
-REG_FIDDLE(BlendMode_008, 256, 256, false, 0) {
+REG_FIDDLE(Dst_Out, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkColor colors[] = { SK_ColorRED, SK_ColorBLUE };
     SkPoint horz[] = { { 0, 0 }, { 256, 0 } };
diff --git a/docs/examples/BlendMode_009.cpp b/docs/examples/BlendMode_009.cpp
index 0a70cea..6fd7582 100644
--- a/docs/examples/BlendMode_009.cpp
+++ b/docs/examples/BlendMode_009.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a13148977bfc985934a92752c83a2041
-REG_FIDDLE(BlendMode_009, 256, 256, false, 0) {
+REG_FIDDLE(Src_Atop, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkColor colors[] = { SK_ColorRED, SK_ColorBLUE };
     SkPoint horz[] = { { 0, 0 }, { 256, 0 } };
diff --git a/docs/examples/BlendMode_010.cpp b/docs/examples/BlendMode_010.cpp
index 16cc52b..0061e27 100644
--- a/docs/examples/BlendMode_010.cpp
+++ b/docs/examples/BlendMode_010.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1955856d45773a4fd914fcc1f813222f
-REG_FIDDLE(BlendMode_010, 256, 256, false, 0) {
+REG_FIDDLE(Dst_Atop, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkColor colors[] = { SK_ColorRED, SK_ColorBLUE };
     SkPoint horz[] = { { 0, 0 }, { 256, 0 } };
diff --git a/docs/examples/BlendMode_011.cpp b/docs/examples/BlendMode_011.cpp
index b244334..8b2a49e 100644
--- a/docs/examples/BlendMode_011.cpp
+++ b/docs/examples/BlendMode_011.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=29db2c7493d9098b8a086ddbe30dd6d6
-REG_FIDDLE(BlendMode_011, 256, 256, false, 0) {
+REG_FIDDLE(Xor, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setBlendMode(SkBlendMode::kXor);
diff --git a/docs/examples/BlendMode_012.cpp b/docs/examples/BlendMode_012.cpp
index a385f84..c47c94f 100644
--- a/docs/examples/BlendMode_012.cpp
+++ b/docs/examples/BlendMode_012.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=05383441e510d54008402e128fc8ad2b
-REG_FIDDLE(BlendMode_012, 256, 256, false, 0) {
+REG_FIDDLE(Plus, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     canvas->drawColor(SK_ColorBLACK);
     SkPaint paint;
diff --git a/docs/examples/BlendMode_013.cpp b/docs/examples/BlendMode_013.cpp
index 2bf998b..ba7807c 100644
--- a/docs/examples/BlendMode_013.cpp
+++ b/docs/examples/BlendMode_013.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3fdac2b2f48bd227d2e74234c260bc8e
-REG_FIDDLE(BlendMode_013, 256, 256, false, 0) {
+REG_FIDDLE(Modulate, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     auto drawSquare = [=](int dx, int dy, SkBlendMode mode, const char* label) -> void {
         const SkColor colors[] = { SK_ColorBLACK, SK_ColorWHITE };
diff --git a/docs/examples/BlendMode_014.cpp b/docs/examples/BlendMode_014.cpp
index 793bf17..ca21fad 100644
--- a/docs/examples/BlendMode_014.cpp
+++ b/docs/examples/BlendMode_014.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b7b42965927788d853f449f08ddf46de
-REG_FIDDLE(BlendMode_014, 256, 256, false, 0) {
+REG_FIDDLE(Screen, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkColor colors[] = { SK_ColorRED, SK_ColorBLUE };
     SkPoint horz[] = { { 0, 0 }, { 256, 0 } };
diff --git a/docs/examples/BlendMode_015.cpp b/docs/examples/BlendMode_015.cpp
index 846360e..ec74ffe 100644
--- a/docs/examples/BlendMode_015.cpp
+++ b/docs/examples/BlendMode_015.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=03bf042201de02d6d131938ccd3172eb
-REG_FIDDLE(BlendMode_015, 256, 256, false, 0) {
+REG_FIDDLE(Overlay, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkColor colors[] = { SK_ColorRED, SK_ColorBLUE };
     SkPoint horz[] = { { 0, 0 }, { 256, 0 } };
diff --git a/docs/examples/BlendMode_016.cpp b/docs/examples/BlendMode_016.cpp
index 4bf8b23..2e2a258 100644
--- a/docs/examples/BlendMode_016.cpp
+++ b/docs/examples/BlendMode_016.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=23c974d2759f523ca2f4a78ae86855c3
-REG_FIDDLE(BlendMode_016, 256, 256, false, 3) {
+REG_FIDDLE(Darken, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     canvas->drawImage(image, 0, 0);
     SkColor colors[] = { SK_ColorWHITE, SK_ColorBLACK };
diff --git a/docs/examples/BlendMode_017.cpp b/docs/examples/BlendMode_017.cpp
index 5965f87..cebe7f6 100644
--- a/docs/examples/BlendMode_017.cpp
+++ b/docs/examples/BlendMode_017.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=95cb08b8c8db3af3b2c9ad56ae7d6bc1
-REG_FIDDLE(BlendMode_017, 256, 256, false, 3) {
+REG_FIDDLE(Lighten, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     canvas->drawImage(image, 0, 0);
     SkColor colors[] = { SK_ColorBLACK, SK_ColorWHITE };
diff --git a/docs/examples/BlendMode_018.cpp b/docs/examples/BlendMode_018.cpp
index ccac6a3..0d12c1f 100644
--- a/docs/examples/BlendMode_018.cpp
+++ b/docs/examples/BlendMode_018.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=280ad6267a7d2d77b6d2c4531c6fc0bf
-REG_FIDDLE(BlendMode_018, 256, 256, false, 3) {
+REG_FIDDLE(Color_Dodge, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     canvas->drawImage(image, 0, 0);
     canvas->clipRect({128, 0, 256, 256});
diff --git a/docs/examples/BlendMode_019.cpp b/docs/examples/BlendMode_019.cpp
index e2d78f2..74a37d6 100644
--- a/docs/examples/BlendMode_019.cpp
+++ b/docs/examples/BlendMode_019.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3eeef529375d8083ae0d615789d55e89
-REG_FIDDLE(BlendMode_019, 256, 256, false, 3) {
+REG_FIDDLE(Color_Burn, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     canvas->drawImage(image, 0, 0);
     canvas->clipRect({128, 0, 256, 256});
diff --git a/docs/examples/BlendMode_020.cpp b/docs/examples/BlendMode_020.cpp
index a62b6ba..13f981c 100644
--- a/docs/examples/BlendMode_020.cpp
+++ b/docs/examples/BlendMode_020.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ac2fe555e2196e15863ea4ce74db3d54
-REG_FIDDLE(BlendMode_020, 256, 256, false, 3) {
+REG_FIDDLE(Hard_Light, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     canvas->drawImage(image, 0, 0);
     const SkColor colors[] = { 0xFFFFFFFF, 0x00000000 };
diff --git a/docs/examples/BlendMode_021.cpp b/docs/examples/BlendMode_021.cpp
index 343a23a..a73de75 100644
--- a/docs/examples/BlendMode_021.cpp
+++ b/docs/examples/BlendMode_021.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ac93f30dff13f8a8bb31398de370863b
-REG_FIDDLE(BlendMode_021, 256, 256, false, 3) {
+REG_FIDDLE(Soft_Light, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     const SkColor colors[] = { 0xFFFFFFFF, 0x3FFFFFFF };
     SkPaint paint;
diff --git a/docs/examples/BlendMode_022.cpp b/docs/examples/BlendMode_022.cpp
index 90acf16..3b08cb0 100644
--- a/docs/examples/BlendMode_022.cpp
+++ b/docs/examples/BlendMode_022.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=52d2c8d1b9b428de4477b4caa1543a3d
-REG_FIDDLE(BlendMode_022, 256, 256, false, 5) {
+REG_FIDDLE(Difference, 256, 256, false, 5) {
 void draw(SkCanvas* canvas) {
     canvas->drawImage(image, 0, 0);
     canvas->drawImage(image, 128, 0);
diff --git a/docs/examples/BlendMode_023.cpp b/docs/examples/BlendMode_023.cpp
index 3e6a0fd..2e8b35c 100644
--- a/docs/examples/BlendMode_023.cpp
+++ b/docs/examples/BlendMode_023.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a544ee1c67c7c557a9e54d5e99f94bb6
-REG_FIDDLE(BlendMode_023, 256, 256, false, 5) {
+REG_FIDDLE(Exclusion, 256, 256, false, 5) {
 void draw(SkCanvas* canvas) {
     canvas->drawImage(image, 0, 0);
     canvas->drawImage(image, 128, 0);
diff --git a/docs/examples/BlendMode_024.cpp b/docs/examples/BlendMode_024.cpp
index e99c802..07d5f3b 100644
--- a/docs/examples/BlendMode_024.cpp
+++ b/docs/examples/BlendMode_024.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=eb29c896f008dfbef09e16b85114fc3a
-REG_FIDDLE(BlendMode_024, 256, 256, false, 5) {
+REG_FIDDLE(Multiply, 256, 256, false, 5) {
 void draw(SkCanvas* canvas) {
     canvas->drawImage(image, 0, 0);
     canvas->drawImage(image, 128, 0);
diff --git a/docs/examples/BlendMode_025.cpp b/docs/examples/BlendMode_025.cpp
index a5ee489..39556ca 100644
--- a/docs/examples/BlendMode_025.cpp
+++ b/docs/examples/BlendMode_025.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=41e45570d682397d3b8ff2f51bd9c574
-REG_FIDDLE(BlendMode_025, 256, 256, false, 3) {
+REG_FIDDLE(Hue, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     canvas->drawImage(image, 0, 0);
     canvas->drawColor(0xFF00FF00, SkBlendMode::kHue);
diff --git a/docs/examples/BlendMode_026.cpp b/docs/examples/BlendMode_026.cpp
index c47986a..c3bbf8c 100644
--- a/docs/examples/BlendMode_026.cpp
+++ b/docs/examples/BlendMode_026.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a48698975d236573cef512f94a7e360b
-REG_FIDDLE(BlendMode_026, 256, 256, false, 3) {
+REG_FIDDLE(Saturation, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     canvas->drawImage(image, 0, 0);
     canvas->drawColor(0xFF00FF00, SkBlendMode::kSaturation);
diff --git a/docs/examples/BlendMode_027.cpp b/docs/examples/BlendMode_027.cpp
index 0ed6a1a..6584833 100644
--- a/docs/examples/BlendMode_027.cpp
+++ b/docs/examples/BlendMode_027.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5d7c6e23a34ca9bf3ba8cda4cdc94cc4
-REG_FIDDLE(BlendMode_027, 256, 256, false, 3) {
+REG_FIDDLE(Color, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     canvas->drawImage(image, 0, 0);
     canvas->drawColor(0xFF00FF00, SkBlendMode::kColor);
diff --git a/docs/examples/BlendMode_028.cpp b/docs/examples/BlendMode_028.cpp
index 280df28..e3fad9c 100644
--- a/docs/examples/BlendMode_028.cpp
+++ b/docs/examples/BlendMode_028.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=7d42fe34ae20dd9e12c39dc3950e9989
-REG_FIDDLE(BlendMode_028, 256, 256, false, 3) {
+REG_FIDDLE(Luminosity, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     canvas->drawImage(image, 0, 0);
     canvas->drawColor(0xFF00FF00, SkBlendMode::kLuminosity);
diff --git a/docs/examples/BlendMode_029.cpp b/docs/examples/BlendMode_029.cpp
index cc91036..a12dd83 100644
--- a/docs/examples/BlendMode_029.cpp
+++ b/docs/examples/BlendMode_029.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3996f4994bf4e90b4cd86524c1f9f1a6
-REG_FIDDLE(BlendMode_029, 256, 256, true, 0) {
+REG_FIDDLE(BlendMode_Name, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkDebugf("default blend: SkBlendMode::k%s\n", SkBlendMode_Name(SkPaint().getBlendMode()));
 }
diff --git a/docs/examples/Canvas_000.cpp b/docs/examples/Canvas_000.cpp
index f11b0fd..8b4dbd3 100644
--- a/docs/examples/Canvas_000.cpp
+++ b/docs/examples/Canvas_000.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=525285073aae7e53eb8f454a398f880c
-REG_FIDDLE(Canvas_000, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_MakeRasterDirect, 256, 256, true, 0) {
 void draw(SkCanvas* ) {
     SkImageInfo info = SkImageInfo::MakeN32Premul(3, 3);  // device aligned, 32 bpp, Premultiplied
     const size_t minRowBytes = info.minRowBytes();  // bytes used by one bitmap row
diff --git a/docs/examples/Canvas_001.cpp b/docs/examples/Canvas_001.cpp
index 7d66118..27313fe 100644
--- a/docs/examples/Canvas_001.cpp
+++ b/docs/examples/Canvas_001.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=87f55e62ec4c3535e1a5d0f1415b20c6
-REG_FIDDLE(Canvas_001, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_MakeRasterDirectN32, 256, 256, true, 0) {
 void draw(SkCanvas* ) {
     const int width = 3;
     const int height = 3;
diff --git a/docs/examples/Canvas_002.cpp b/docs/examples/Canvas_002.cpp
index 253b4f7..9cf17fa 100644
--- a/docs/examples/Canvas_002.cpp
+++ b/docs/examples/Canvas_002.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4a00e6589e862fde5be532f4b6e316ce
-REG_FIDDLE(Canvas_002, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_empty_constructor, 256, 256, true, 0) {
 static void check_for_rotated_ctm(const SkCanvas* canvas) {
     const SkMatrix& matrix = canvas->getTotalMatrix();
     SkDebugf("rect stays rect is %s\n", matrix.rectStaysRect() ? "true" : "false");
diff --git a/docs/examples/Canvas_003.cpp b/docs/examples/Canvas_003.cpp
index 88b5571..ffc6756 100644
--- a/docs/examples/Canvas_003.cpp
+++ b/docs/examples/Canvas_003.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ce6a5ef2df447970b4453489d9d67930
-REG_FIDDLE(Canvas_003, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_int_int_const_SkSurfaceProps_star, 256, 256, true, 0) {
 void draw(SkCanvas* ) {
     SkCanvas canvas(10, 20);  // 10 units wide, 20 units high
     canvas.clipRect(SkRect::MakeXYWH(30, 40, 5, 10));  // clip is outside canvas' device
diff --git a/docs/examples/Canvas_004.cpp b/docs/examples/Canvas_004.cpp
index 9c8dd97..7812e41 100644
--- a/docs/examples/Canvas_004.cpp
+++ b/docs/examples/Canvas_004.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=dd92db963af190e849894038f39b598a
-REG_FIDDLE(Canvas_004, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_copy_const_SkBitmap, 256, 256, true, 0) {
 void draw(SkCanvas* ) {
     SkBitmap bitmap;
     // create a bitmap 5 wide and 11 high
diff --git a/docs/examples/Canvas_005.cpp b/docs/examples/Canvas_005.cpp
index 67b6e1b..7e4da71 100644
--- a/docs/examples/Canvas_005.cpp
+++ b/docs/examples/Canvas_005.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c26cfae4c42cb445240335cc12a50235
-REG_FIDDLE(Canvas_005, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_const_SkBitmap_const_SkSurfaceProps, 256, 256, true, 0) {
 void draw(SkCanvas* ) {
     SkBitmap bitmap;
     // create a bitmap 5 wide and 11 high
diff --git a/docs/examples/Canvas_006.cpp b/docs/examples/Canvas_006.cpp
index f7b2678..4b6dc87 100644
--- a/docs/examples/Canvas_006.cpp
+++ b/docs/examples/Canvas_006.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b7bc91ff16c9b9351b2a127f35394b82
-REG_FIDDLE(Canvas_006, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_destructor, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     bitmap.allocPixels(SkImageInfo::MakeN32Premul(200, 200));
diff --git a/docs/examples/Canvas_008.cpp b/docs/examples/Canvas_008.cpp
index 35031c1..35070ae 100644
--- a/docs/examples/Canvas_008.cpp
+++ b/docs/examples/Canvas_008.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d93389d971f8084c4ccc7a66e4e157ee
-REG_FIDDLE(Canvas_008, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_imageInfo, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkCanvas emptyCanvas;
     SkImageInfo canvasInfo = emptyCanvas.imageInfo();
diff --git a/docs/examples/Canvas_009.cpp b/docs/examples/Canvas_009.cpp
index 981539c..85b9256 100644
--- a/docs/examples/Canvas_009.cpp
+++ b/docs/examples/Canvas_009.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0fbf2dedc2619bbfbf173c9e3bc1a508
-REG_FIDDLE(Canvas_009, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_getProps, 256, 256, true, 0) {
 void draw(SkCanvas* ) {
     SkBitmap bitmap;
     bitmap.allocN32Pixels(1, 1);
diff --git a/docs/examples/Canvas_010.cpp b/docs/examples/Canvas_010.cpp
index 75772dc..400033d 100644
--- a/docs/examples/Canvas_010.cpp
+++ b/docs/examples/Canvas_010.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=374e245d91cd729eca48fd20e631fdf3
-REG_FIDDLE(Canvas_010, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_getBaseLayerSize, 256, 256, true, 0) {
 void draw(SkCanvas* ) {
     SkBitmap bitmap;
     bitmap.allocPixels(SkImageInfo::MakeN32Premul(20, 30));
diff --git a/docs/examples/Canvas_011.cpp b/docs/examples/Canvas_011.cpp
index 25bb09b..ddf56f5 100644
--- a/docs/examples/Canvas_011.cpp
+++ b/docs/examples/Canvas_011.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1ce28351444b41ab2b8e3128a4b9b9c2
-REG_FIDDLE(Canvas_011, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_makeSurface, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     sk_sp<SkSurface> surface = SkSurface::MakeRasterN32Premul(5, 6);
     SkCanvas* smallCanvas = surface->getCanvas();
diff --git a/docs/examples/Canvas_012.cpp b/docs/examples/Canvas_012.cpp
index ccccaa3..c993b15 100644
--- a/docs/examples/Canvas_012.cpp
+++ b/docs/examples/Canvas_012.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c4ea949e5fa5a0630dcb6b0204bd498f
-REG_FIDDLE(Canvas_012, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_getGrContext, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     if (canvas->getGrContext()) {
          canvas->clear(SK_ColorRED);
diff --git a/docs/examples/Canvas_013.cpp b/docs/examples/Canvas_013.cpp
index 1c3f8e3..3266ae1 100644
--- a/docs/examples/Canvas_013.cpp
+++ b/docs/examples/Canvas_013.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=38d0d6ca9bea146d31bcbec197856359
-REG_FIDDLE(Canvas_013, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_accessTopLayerPixels_a, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     if (canvas->accessTopLayerPixels(nullptr, nullptr)) {
          canvas->clear(SK_ColorRED);
diff --git a/docs/examples/Canvas_014.cpp b/docs/examples/Canvas_014.cpp
index a0519e0..e23f316 100644
--- a/docs/examples/Canvas_014.cpp
+++ b/docs/examples/Canvas_014.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a7ac9c21bbabcdeeca00f72a61cd0f3e
-REG_FIDDLE(Canvas_014, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_accessTopLayerPixels_b, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
   SkPaint paint;
   SkFont font(nullptr, 100);
diff --git a/docs/examples/Canvas_015.cpp b/docs/examples/Canvas_015.cpp
index e40b257..93ab5fc 100644
--- a/docs/examples/Canvas_015.cpp
+++ b/docs/examples/Canvas_015.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4486d0c0b22ad2931db130f42da4c80c
-REG_FIDDLE(Canvas_015, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_accessTopRasterHandle, 256, 256, true, 0) {
 static void DeleteCallback(void*, void* context) {
     delete (char*) context;
 }
diff --git a/docs/examples/Canvas_016.cpp b/docs/examples/Canvas_016.cpp
index c3f4b78..d57ff7f 100644
--- a/docs/examples/Canvas_016.cpp
+++ b/docs/examples/Canvas_016.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e9411d676d1fa13b46331abe9e14ad3e
-REG_FIDDLE(Canvas_016, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_peekPixels, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPixmap pixmap;
     if (canvas->peekPixels(&pixmap)) {
diff --git a/docs/examples/Canvas_017.cpp b/docs/examples/Canvas_017.cpp
index c5112dd..74110d0 100644
--- a/docs/examples/Canvas_017.cpp
+++ b/docs/examples/Canvas_017.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=102d014d7f753db2a9b9ee08893aaf11
-REG_FIDDLE(Canvas_017, 64, 64, false, 0) {
+REG_FIDDLE(Canvas_readPixels_a, 64, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     canvas->clear(SK_ColorBLUE);
     SkPaint paint;
diff --git a/docs/examples/Canvas_018.cpp b/docs/examples/Canvas_018.cpp
index e122a52..a1ddd35 100644
--- a/docs/examples/Canvas_018.cpp
+++ b/docs/examples/Canvas_018.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=481e990e923a0ed34654f4361b94f096
-REG_FIDDLE(Canvas_018, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_readPixels_b, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     canvas->clear(0x8055aaff);
     for (SkAlphaType alphaType : { kPremul_SkAlphaType, kUnpremul_SkAlphaType } ) {
diff --git a/docs/examples/Canvas_019.cpp b/docs/examples/Canvas_019.cpp
index b86a8ca..877473f 100644
--- a/docs/examples/Canvas_019.cpp
+++ b/docs/examples/Canvas_019.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=85f199032943b6483722c34a91c4e20f
-REG_FIDDLE(Canvas_019, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_readPixels_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     canvas->clear(0x8055aaff);
     uint32_t pixels[1] = { 0 };
diff --git a/docs/examples/Canvas_020.cpp b/docs/examples/Canvas_020.cpp
index 8585399..0c96279 100644
--- a/docs/examples/Canvas_020.cpp
+++ b/docs/examples/Canvas_020.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=af6dec8ef974aa67bf102f29915bcd6a
-REG_FIDDLE(Canvas_020, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_readPixels_3, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     canvas->clear(0x8055aaff);
     SkBitmap bitmap;
diff --git a/docs/examples/Canvas_021.cpp b/docs/examples/Canvas_021.cpp
index 849411f..75f22de 100644
--- a/docs/examples/Canvas_021.cpp
+++ b/docs/examples/Canvas_021.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=29b98ebf58aa9fd1edfaabf9f4490b3a
-REG_FIDDLE(Canvas_021, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_writePixels, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkImageInfo imageInfo = SkImageInfo::MakeN32(256, 1, kPremul_SkAlphaType);
     for (int y = 0; y < 256; ++y) {
diff --git a/docs/examples/Canvas_022.cpp b/docs/examples/Canvas_022.cpp
index 453dd93..83d3f51 100644
--- a/docs/examples/Canvas_022.cpp
+++ b/docs/examples/Canvas_022.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8b128e067881f9251357653692fa28da
-REG_FIDDLE(Canvas_022, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_writePixels_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkImageInfo imageInfo = SkImageInfo::MakeN32Premul(2, 2);
     SkBitmap bitmap;
diff --git a/docs/examples/Canvas_023.cpp b/docs/examples/Canvas_023.cpp
index 559ebe5..f1be0f6 100644
--- a/docs/examples/Canvas_023.cpp
+++ b/docs/examples/Canvas_023.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=bb1dbfdca3aedf716beb6f07e2aab065
-REG_FIDDLE(Canvas_023, 256, 160, false, 0) {
+REG_FIDDLE(State_Stack_a, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     canvas->save();                             // records stack depth to restore
diff --git a/docs/examples/Canvas_024.cpp b/docs/examples/Canvas_024.cpp
index 4e51502..83710fa 100644
--- a/docs/examples/Canvas_024.cpp
+++ b/docs/examples/Canvas_024.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9f563a2d60aa31d4b26742e5aa17aa4e
-REG_FIDDLE(Canvas_024, 256, 128, false, 0) {
+REG_FIDDLE(State_Stack_b, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     canvas->clipRect(SkRect::MakeWH(100, 100));
     canvas->clear(SK_ColorRED);
diff --git a/docs/examples/Canvas_025.cpp b/docs/examples/Canvas_025.cpp
index d80e94d..660117b 100644
--- a/docs/examples/Canvas_025.cpp
+++ b/docs/examples/Canvas_025.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e477dce358a9ba3b0aa1bf33b8a376de
-REG_FIDDLE(Canvas_025, 256, 100, false, 0) {
+REG_FIDDLE(Canvas_save, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkRect rect = { 0, 0, 25, 25 };
diff --git a/docs/examples/Canvas_026.cpp b/docs/examples/Canvas_026.cpp
index 696b5ff..3ed4a4f 100644
--- a/docs/examples/Canvas_026.cpp
+++ b/docs/examples/Canvas_026.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e78471212a67f2f4fd39496e17a30d17
-REG_FIDDLE(Canvas_026, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_restore, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkCanvas simple;
     SkDebugf("depth = %d\n", simple.getSaveCount());
diff --git a/docs/examples/Canvas_027.cpp b/docs/examples/Canvas_027.cpp
index 19e5401..a8f6891 100644
--- a/docs/examples/Canvas_027.cpp
+++ b/docs/examples/Canvas_027.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=005f2b207e078baac596681924fe591e
-REG_FIDDLE(Canvas_027, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_getSaveCount, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkCanvas simple;
     SkDebugf("depth = %d\n", simple.getSaveCount());
diff --git a/docs/examples/Canvas_028.cpp b/docs/examples/Canvas_028.cpp
index 454f37d..7112c00 100644
--- a/docs/examples/Canvas_028.cpp
+++ b/docs/examples/Canvas_028.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9ed0d56436e114c7097fd49eed1aea47
-REG_FIDDLE(Canvas_028, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_restoreToCount, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkDebugf("depth = %d\n", canvas->getSaveCount());
     canvas->save();
diff --git a/docs/examples/Canvas_029.cpp b/docs/examples/Canvas_029.cpp
index 782aff6..3f4616d 100644
--- a/docs/examples/Canvas_029.cpp
+++ b/docs/examples/Canvas_029.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=42318b18d403e17e07a541652da91ee2
-REG_FIDDLE(Canvas_029, 256, 128, false, 0) {
+REG_FIDDLE(Canvas_saveLayer, 256, 128, false, 0) {
 #include "SkBlurImageFilter.h"
 
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_030.cpp b/docs/examples/Canvas_030.cpp
index 94c66ab..a6ae460 100644
--- a/docs/examples/Canvas_030.cpp
+++ b/docs/examples/Canvas_030.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a17aec3aa4909527be039e26a7eda694
-REG_FIDDLE(Canvas_030, 256, 128, false, 0) {
+REG_FIDDLE(Canvas_saveLayer_2, 256, 128, false, 0) {
 #include "SkBlurImageFilter.h"
 
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_031.cpp b/docs/examples/Canvas_031.cpp
index 33d6e55..32d11e3 100644
--- a/docs/examples/Canvas_031.cpp
+++ b/docs/examples/Canvas_031.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8460bf8b013f46c67e0bd96e13451aff
-REG_FIDDLE(Canvas_031, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_saveLayerPreserveLCDTextRequests, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Canvas_032.cpp b/docs/examples/Canvas_032.cpp
index 34e0913..ab563a4 100644
--- a/docs/examples/Canvas_032.cpp
+++ b/docs/examples/Canvas_032.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8ab88d86fb438856cc48d6e2f08a6e24
-REG_FIDDLE(Canvas_032, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_saveLayerAlpha, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setColor(SK_ColorRED);
diff --git a/docs/examples/Canvas_033.cpp b/docs/examples/Canvas_033.cpp
index 4bea2d5..9955295 100644
--- a/docs/examples/Canvas_033.cpp
+++ b/docs/examples/Canvas_033.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=05db6a937225e8e31ae3481173d25dae
-REG_FIDDLE(Canvas_033, 256, 160, false, 0) {
+REG_FIDDLE(Canvas_kInitWithPrevious_SaveLayerFlag, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint redPaint, bluePaint, scalePaint;
     redPaint.setColor(SK_ColorRED);
diff --git a/docs/examples/Canvas_034.cpp b/docs/examples/Canvas_034.cpp
index 0b7aeda..b842348 100644
--- a/docs/examples/Canvas_034.cpp
+++ b/docs/examples/Canvas_034.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ee8c0b120234e27364f8c9a786cf8f89
-REG_FIDDLE(Canvas_034, 256, 160, false, 0) {
+REG_FIDDLE(Canvas_SaveLayerRec, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint redPaint, bluePaint;
     redPaint.setAntiAlias(true);
diff --git a/docs/examples/Canvas_035.cpp b/docs/examples/Canvas_035.cpp
index 1416ec7..b80834c 100644
--- a/docs/examples/Canvas_035.cpp
+++ b/docs/examples/Canvas_035.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b5cea1eed80a0eb04ddbab3f36dff73f
-REG_FIDDLE(Canvas_035, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_SaveLayerRec_SaveLayerRec, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkCanvas::SaveLayerRec rec1;
     rec1.fSaveLayerFlags = SkCanvas::kPreserveLCDText_SaveLayerFlag;
diff --git a/docs/examples/Canvas_036.cpp b/docs/examples/Canvas_036.cpp
index 173303d..9da2199 100644
--- a/docs/examples/Canvas_036.cpp
+++ b/docs/examples/Canvas_036.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=027f920259888fc19591ea9a90d92873
-REG_FIDDLE(Canvas_036, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkCanvas::SaveLayerRec rec1;
     SkCanvas::SaveLayerRec rec2(nullptr, nullptr);
diff --git a/docs/examples/Canvas_037.cpp b/docs/examples/Canvas_037.cpp
index cc511b4..bb014d7 100644
--- a/docs/examples/Canvas_037.cpp
+++ b/docs/examples/Canvas_037.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9b7fa2fe855642ffff6538829db15328
-REG_FIDDLE(Canvas_037, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkCanvas::SaveLayerRec rec1;
     SkCanvas::SaveLayerRec rec2(nullptr, nullptr, nullptr, 0);
diff --git a/docs/examples/Canvas_038.cpp b/docs/examples/Canvas_038.cpp
index e3b26ba..16ae0de 100644
--- a/docs/examples/Canvas_038.cpp
+++ b/docs/examples/Canvas_038.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=7d3751e82d1b6ec328ffa3d6f48ca831
-REG_FIDDLE(Canvas_038, 256, 256, false, 3) {
+REG_FIDDLE(Canvas_saveLayer_3, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     // sk_sp<SkImage> image = GetResourceAsImage("images/mandrill_256.png");
     canvas->drawImage(image, 0, 0, nullptr);
diff --git a/docs/examples/Canvas_039.cpp b/docs/examples/Canvas_039.cpp
index 58549a3..e6dfd47 100644
--- a/docs/examples/Canvas_039.cpp
+++ b/docs/examples/Canvas_039.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=eb93d5fa66a5f7a10f4f9210494d7222
-REG_FIDDLE(Canvas_039, 256, 128, false, 0) {
+REG_FIDDLE(Canvas_translate, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint filledPaint;
     SkPaint outlinePaint;
diff --git a/docs/examples/Canvas_040.cpp b/docs/examples/Canvas_040.cpp
index 128dfa2..8bf1a51 100644
--- a/docs/examples/Canvas_040.cpp
+++ b/docs/examples/Canvas_040.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=7d0d801ef13c6c6da51e840c22ac15b0
-REG_FIDDLE(Canvas_040, 256, 160, false, 0) {
+REG_FIDDLE(Canvas_scale, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkRect rect = { 10, 20, 60, 120 };
diff --git a/docs/examples/Canvas_041.cpp b/docs/examples/Canvas_041.cpp
index 3d44c7f..428a6b9 100644
--- a/docs/examples/Canvas_041.cpp
+++ b/docs/examples/Canvas_041.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=963789ac8498d4e505748ab3b15cdaa5
-REG_FIDDLE(Canvas_041, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_rotate, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setStyle(SkPaint::kStroke_Style);
diff --git a/docs/examples/Canvas_042.cpp b/docs/examples/Canvas_042.cpp
index b052bfc..2c96215 100644
--- a/docs/examples/Canvas_042.cpp
+++ b/docs/examples/Canvas_042.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=bcf5baea1c66a957d5ffd7b54bbbfeff
-REG_FIDDLE(Canvas_042, 256, 192, false, 0) {
+REG_FIDDLE(Canvas_rotate_2, 256, 192, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkFont font(nullptr, 96);
diff --git a/docs/examples/Canvas_043.cpp b/docs/examples/Canvas_043.cpp
index 5e2e99d..486dd5f 100644
--- a/docs/examples/Canvas_043.cpp
+++ b/docs/examples/Canvas_043.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=2e2acc21d7774df7e0940a30ad2ca99e
-REG_FIDDLE(Canvas_043, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_skew, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkFont font(nullptr, 128);
diff --git a/docs/examples/Canvas_044.cpp b/docs/examples/Canvas_044.cpp
index f5a2f56..d687832 100644
--- a/docs/examples/Canvas_044.cpp
+++ b/docs/examples/Canvas_044.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8f6818b25a92a88638ad99b2dd293f61
-REG_FIDDLE(Canvas_044, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_concat, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkFont font(nullptr, 80);
diff --git a/docs/examples/Canvas_045.cpp b/docs/examples/Canvas_045.cpp
index 4b3abea..2e3cf69 100644
--- a/docs/examples/Canvas_045.cpp
+++ b/docs/examples/Canvas_045.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=24b9cf7e6f9a08394e1e07413bd8733a
-REG_FIDDLE(Canvas_045, 256, 128, false, 0) {
+REG_FIDDLE(Canvas_setMatrix, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkFont font;
diff --git a/docs/examples/Canvas_046.cpp b/docs/examples/Canvas_046.cpp
index 30c9916..a69ce0c 100644
--- a/docs/examples/Canvas_046.cpp
+++ b/docs/examples/Canvas_046.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=412afffdf4682baa503a4e2e99201967
-REG_FIDDLE(Canvas_046, 256, 128, false, 0) {
+REG_FIDDLE(Canvas_resetMatrix, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkFont font;
diff --git a/docs/examples/Canvas_047.cpp b/docs/examples/Canvas_047.cpp
index 67f1c51..965c08e 100644
--- a/docs/examples/Canvas_047.cpp
+++ b/docs/examples/Canvas_047.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c0d5fa544759704768f47cac91ae3832
-REG_FIDDLE(Canvas_047, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_getTotalMatrix, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkDebugf("isIdentity %s\n", canvas->getTotalMatrix().isIdentity() ? "true" : "false");
 }
diff --git a/docs/examples/Canvas_048.cpp b/docs/examples/Canvas_048.cpp
index aa16384..1c1b9af 100644
--- a/docs/examples/Canvas_048.cpp
+++ b/docs/examples/Canvas_048.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=862cc026601a41a58df49c0b9f0d7777
-REG_FIDDLE(Canvas_048, 256, 90, false, 0) {
+REG_FIDDLE(Clip, 256, 90, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint redPaint, scalePaint;
     redPaint.setAntiAlias(true);
diff --git a/docs/examples/Canvas_049.cpp b/docs/examples/Canvas_049.cpp
index 8c7cf65..0397fcb 100644
--- a/docs/examples/Canvas_049.cpp
+++ b/docs/examples/Canvas_049.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6a614faa0fbcf19958b5559c19b02d0f
-REG_FIDDLE(Canvas_049, 256, 128, false, 0) {
+REG_FIDDLE(Canvas_clipRect, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     canvas->rotate(10);
     SkPaint paint;
diff --git a/docs/examples/Canvas_050.cpp b/docs/examples/Canvas_050.cpp
index ce57d54..490c640 100644
--- a/docs/examples/Canvas_050.cpp
+++ b/docs/examples/Canvas_050.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=13bbc5fa5597a6cd4d704b419dbc66d9
-REG_FIDDLE(Canvas_050, 280, 192, false, 0) {
+REG_FIDDLE(Canvas_clipRect_2, 280, 192, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     for (SkClipOp op: { SkClipOp::kIntersect, SkClipOp::kDifference } ) {
diff --git a/docs/examples/Canvas_051.cpp b/docs/examples/Canvas_051.cpp
index 5976312..fe34c28 100644
--- a/docs/examples/Canvas_051.cpp
+++ b/docs/examples/Canvas_051.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1d4e0632c97e42692775d834fe10aa99
-REG_FIDDLE(Canvas_051, 256, 133, false, 0) {
+REG_FIDDLE(Canvas_clipRect_3, 256, 133, false, 0) {
 void draw(SkCanvas* canvas) {
     canvas->clear(SK_ColorWHITE);
     SkPaint paint;
diff --git a/docs/examples/Canvas_052.cpp b/docs/examples/Canvas_052.cpp
index f35a4e6..2a09fe2 100644
--- a/docs/examples/Canvas_052.cpp
+++ b/docs/examples/Canvas_052.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=182ef48ab5e04ba3578496fda8d9fa36
-REG_FIDDLE(Canvas_052, 256, 128, false, 0) {
+REG_FIDDLE(Canvas_clipRRect, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     canvas->clear(SK_ColorWHITE);
     SkPaint paint;
diff --git a/docs/examples/Canvas_053.cpp b/docs/examples/Canvas_053.cpp
index 450172b..6af4930 100644
--- a/docs/examples/Canvas_053.cpp
+++ b/docs/examples/Canvas_053.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ef6ae2eaae6761130ce38065d0364abd
-REG_FIDDLE(Canvas_053, 256, 128, false, 0) {
+REG_FIDDLE(Canvas_clipRRect_2, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setColor(0x8055aaff);
diff --git a/docs/examples/Canvas_054.cpp b/docs/examples/Canvas_054.cpp
index e7e1d50..8688c24 100644
--- a/docs/examples/Canvas_054.cpp
+++ b/docs/examples/Canvas_054.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f583114580b2176fe3e75b0994476a84
-REG_FIDDLE(Canvas_054, 256, 128, false, 0) {
+REG_FIDDLE(Canvas_clipRRect_3, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Canvas_055.cpp b/docs/examples/Canvas_055.cpp
index ac1a3f4..ab43bb0 100644
--- a/docs/examples/Canvas_055.cpp
+++ b/docs/examples/Canvas_055.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ee47ae6b813bfaa55e1a7b7c053ed60d
-REG_FIDDLE(Canvas_055, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_clipPath, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Canvas_056.cpp b/docs/examples/Canvas_056.cpp
index 432de66..e74ca27 100644
--- a/docs/examples/Canvas_056.cpp
+++ b/docs/examples/Canvas_056.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=7856755c1bf8431c286c734b353345ad
-REG_FIDDLE(Canvas_056, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_clipPath_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Canvas_057.cpp b/docs/examples/Canvas_057.cpp
index ade1fda..8952c6a 100644
--- a/docs/examples/Canvas_057.cpp
+++ b/docs/examples/Canvas_057.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=187a7ae77a8176e417181411988534b6
-REG_FIDDLE(Canvas_057, 256, 212, false, 0) {
+REG_FIDDLE(Canvas_clipPath_3, 256, 212, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Canvas_058.cpp b/docs/examples/Canvas_058.cpp
index 15d7f92..8b90021 100644
--- a/docs/examples/Canvas_058.cpp
+++ b/docs/examples/Canvas_058.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=7bb57c0e456c5fda2c2cca4abb68b19e
-REG_FIDDLE(Canvas_058, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_clipRegion, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Canvas_059.cpp b/docs/examples/Canvas_059.cpp
index 1a8c606..f863ba9 100644
--- a/docs/examples/Canvas_059.cpp
+++ b/docs/examples/Canvas_059.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=cfe4016241074477809dd45435be9cf4
-REG_FIDDLE(Canvas_059, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_quickReject, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect testRect = {30, 30, 120, 129 };
     SkRect clipRect = {30, 130, 120, 230 };
diff --git a/docs/examples/Canvas_060.cpp b/docs/examples/Canvas_060.cpp
index 6d682ef..3f69c03 100644
--- a/docs/examples/Canvas_060.cpp
+++ b/docs/examples/Canvas_060.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=56dcd14f943aea6f7d7aafe0de7e6c25
-REG_FIDDLE(Canvas_060, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_quickReject_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPoint testPoints[] = {{30,  30}, {120,  30}, {120, 129} };
     SkPoint clipPoints[] = {{30, 130}, {120, 130}, {120, 230} };
diff --git a/docs/examples/Canvas_061.cpp b/docs/examples/Canvas_061.cpp
index f78d530..922aa0f 100644
--- a/docs/examples/Canvas_061.cpp
+++ b/docs/examples/Canvas_061.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=7f60cb030d3f9b2473adbe3e34b19d91
-REG_FIDDLE(Canvas_061, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_getLocalClipBounds, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkCanvas local(256, 256);
     canvas = &local;
diff --git a/docs/examples/Canvas_062.cpp b/docs/examples/Canvas_062.cpp
index 76a94c0..1cd37c0 100644
--- a/docs/examples/Canvas_062.cpp
+++ b/docs/examples/Canvas_062.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=85496614e90c66b020f8a70db8d06f4a
-REG_FIDDLE(Canvas_062, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_getLocalClipBounds_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkCanvas local(256, 256);
     canvas = &local;
diff --git a/docs/examples/Canvas_063.cpp b/docs/examples/Canvas_063.cpp
index 8968963..6783ef5 100644
--- a/docs/examples/Canvas_063.cpp
+++ b/docs/examples/Canvas_063.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=556832ac5711af662a98c21c547185e9
-REG_FIDDLE(Canvas_063, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_getDeviceClipBounds, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkCanvas device(256, 256);
     canvas = &device;
diff --git a/docs/examples/Canvas_064.cpp b/docs/examples/Canvas_064.cpp
index 4a0e625..5fd67c6 100644
--- a/docs/examples/Canvas_064.cpp
+++ b/docs/examples/Canvas_064.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6abb99f849a1f0e33e1dedc00d1c4f7a
-REG_FIDDLE(Canvas_064, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_getDeviceClipBounds_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect bounds;
     SkDebugf("device bounds empty = %s\n", canvas->getDeviceClipBounds(&bounds)
diff --git a/docs/examples/Canvas_065.cpp b/docs/examples/Canvas_065.cpp
index 81cdb27..a6dfc48 100644
--- a/docs/examples/Canvas_065.cpp
+++ b/docs/examples/Canvas_065.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9cf94fead1e6b17d836c704b4eac269a
-REG_FIDDLE(Canvas_065, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_drawColor, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     canvas->drawColor(SK_ColorRED);
     canvas->clipRect(SkRect::MakeWH(150, 150));
diff --git a/docs/examples/Canvas_066.cpp b/docs/examples/Canvas_066.cpp
index fe465c5..733c24e 100644
--- a/docs/examples/Canvas_066.cpp
+++ b/docs/examples/Canvas_066.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8c4499e322f10153dcd9b0b9806233b9
-REG_FIDDLE(Canvas_066, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_clear, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     canvas->save();
     canvas->clipRect(SkRect::MakeWH(256, 128));
diff --git a/docs/examples/Canvas_067.cpp b/docs/examples/Canvas_067.cpp
index fd58d3b..2968ceb 100644
--- a/docs/examples/Canvas_067.cpp
+++ b/docs/examples/Canvas_067.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1cd076b9b1a7c976cdca72b93c4f42dd
-REG_FIDDLE(Canvas_067, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_drawPaint, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkColor     colors[] = { SK_ColorRED, SK_ColorGREEN, SK_ColorBLUE };
     SkScalar    pos[] = { 0, SK_Scalar1/2, SK_Scalar1 };
diff --git a/docs/examples/Canvas_068.cpp b/docs/examples/Canvas_068.cpp
index 94af004..398fafa 100644
--- a/docs/examples/Canvas_068.cpp
+++ b/docs/examples/Canvas_068.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=292b4b2008961b6f612434d3121fc4ce
-REG_FIDDLE(Canvas_068, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_PointMode, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
   SkPaint paint;
   paint.setStyle(SkPaint::kStroke_Style);
diff --git a/docs/examples/Canvas_069.cpp b/docs/examples/Canvas_069.cpp
index ff1a3ec..5de4426 100644
--- a/docs/examples/Canvas_069.cpp
+++ b/docs/examples/Canvas_069.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=635d54b4716e226e93dfbc21ad40e77d
-REG_FIDDLE(Canvas_069, 256, 200, false, 0) {
+REG_FIDDLE(Canvas_drawPoints, 256, 200, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Canvas_070.cpp b/docs/examples/Canvas_070.cpp
index cbf6d9a..47c50b5 100644
--- a/docs/examples/Canvas_070.cpp
+++ b/docs/examples/Canvas_070.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3476b553e7b547b604a3f6969f02d933
-REG_FIDDLE(Canvas_070, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_drawPoint, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
   SkPaint paint;
   paint.setAntiAlias(true);
diff --git a/docs/examples/Canvas_071.cpp b/docs/examples/Canvas_071.cpp
index c19018c..8fa5e74 100644
--- a/docs/examples/Canvas_071.cpp
+++ b/docs/examples/Canvas_071.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1a0a839061c69d870acca2bcfbdf1a41
-REG_FIDDLE(Canvas_071, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_drawPoint_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
   SkPaint paint;
   paint.setAntiAlias(true);
diff --git a/docs/examples/Canvas_072.cpp b/docs/examples/Canvas_072.cpp
index fcf1b0e..72d2ed7 100644
--- a/docs/examples/Canvas_072.cpp
+++ b/docs/examples/Canvas_072.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d10ee4a265f278d02afe11ad889b293b
-REG_FIDDLE(Canvas_072, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_drawLine, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Canvas_073.cpp b/docs/examples/Canvas_073.cpp
index 8a0af8f..1c47f59 100644
--- a/docs/examples/Canvas_073.cpp
+++ b/docs/examples/Canvas_073.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f8525816cb596dde1a3855446792c8e0
-REG_FIDDLE(Canvas_073, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_drawLine_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Canvas_074.cpp b/docs/examples/Canvas_074.cpp
index 1b488bc..afb88f5 100644
--- a/docs/examples/Canvas_074.cpp
+++ b/docs/examples/Canvas_074.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=871b0da9b4a23de11ae7a772ce14aed3
-REG_FIDDLE(Canvas_074, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_drawRect, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPoint rectPts[] = { {64, 48}, {192, 160} };
     SkPaint paint;
diff --git a/docs/examples/Canvas_075.cpp b/docs/examples/Canvas_075.cpp
index bc4a4d0..2d7a57c 100644
--- a/docs/examples/Canvas_075.cpp
+++ b/docs/examples/Canvas_075.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d3d8ca584134560750b1efa4a4c6e138
-REG_FIDDLE(Canvas_075, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_drawIRect, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect rect = { 64, 48, 192, 160 };
     SkPaint paint;
diff --git a/docs/examples/Canvas_076.cpp b/docs/examples/Canvas_076.cpp
index 37e8cb6..a312ff2 100644
--- a/docs/examples/Canvas_076.cpp
+++ b/docs/examples/Canvas_076.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=80309e0deca0f8add616cec7bec634ca
-REG_FIDDLE(Canvas_076, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_drawRegion, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkRegion region;
     region.op( 10, 10, 50, 50, SkRegion::kUnion_Op);
diff --git a/docs/examples/Canvas_077.cpp b/docs/examples/Canvas_077.cpp
index f2bf141..a98b44c 100644
--- a/docs/examples/Canvas_077.cpp
+++ b/docs/examples/Canvas_077.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8b6b86f8a022811cd29a9c6ab771df12
-REG_FIDDLE(Canvas_077, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_drawOval, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     canvas->clear(0xFF3f5f9f);
     SkColor  kColor1 = SkColorSetARGB(0xff, 0xff, 0x7f, 0);
diff --git a/docs/examples/Canvas_078.cpp b/docs/examples/Canvas_078.cpp
index 8b89197..99d6143 100644
--- a/docs/examples/Canvas_078.cpp
+++ b/docs/examples/Canvas_078.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=90fed1bb11efb43aada94113338c63d8
-REG_FIDDLE(Canvas_078, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_drawRRect, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Canvas_079.cpp b/docs/examples/Canvas_079.cpp
index 54e5ac2..0079023 100644
--- a/docs/examples/Canvas_079.cpp
+++ b/docs/examples/Canvas_079.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=02e33141f13da2f19aef7feb7117b541
-REG_FIDDLE(Canvas_079, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_drawDRRect_a, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
    SkRRect outer = SkRRect::MakeRect({20, 40, 210, 200});
    SkRRect inner = SkRRect::MakeOval({60, 70, 170, 160});
diff --git a/docs/examples/Canvas_080.cpp b/docs/examples/Canvas_080.cpp
index 9f8a904..33306e5 100644
--- a/docs/examples/Canvas_080.cpp
+++ b/docs/examples/Canvas_080.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=30823cb4edf884d330285ea161664931
-REG_FIDDLE(Canvas_080, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_drawDRRect_b, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
    SkRRect outer = SkRRect::MakeRect({20, 40, 210, 200});
    SkRRect inner = SkRRect::MakeRectXY({60, 70, 170, 160}, 10, 10);
diff --git a/docs/examples/Canvas_081.cpp b/docs/examples/Canvas_081.cpp
index b966a80..da5c462 100644
--- a/docs/examples/Canvas_081.cpp
+++ b/docs/examples/Canvas_081.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=841229e25ca9dfb68bd0dc4dfff356eb
-REG_FIDDLE(Canvas_081, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_drawCircle, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Canvas_082.cpp b/docs/examples/Canvas_082.cpp
index f5709ff..1e4b4ce 100644
--- a/docs/examples/Canvas_082.cpp
+++ b/docs/examples/Canvas_082.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9303ffae45ddd0b0a1f93d816a1762f4
-REG_FIDDLE(Canvas_082, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_drawCircle_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Canvas_083.cpp b/docs/examples/Canvas_083.cpp
index 5dae8b9..a969e7b 100644
--- a/docs/examples/Canvas_083.cpp
+++ b/docs/examples/Canvas_083.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=11f0fbe7b30d776913c2e7c92c02ff57
-REG_FIDDLE(Canvas_083, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_drawArc_a, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Canvas_084.cpp b/docs/examples/Canvas_084.cpp
index b815006..bcd3968 100644
--- a/docs/examples/Canvas_084.cpp
+++ b/docs/examples/Canvas_084.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e91dbe45974489b8962c815017b7914f
-REG_FIDDLE(Canvas_084, 256, 64, false, 0) {
+REG_FIDDLE(Canvas_drawArc_b, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Canvas_085.cpp b/docs/examples/Canvas_085.cpp
index 1b664c5..edbd598 100644
--- a/docs/examples/Canvas_085.cpp
+++ b/docs/examples/Canvas_085.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=199fe818c09026c114e165bff166a39f
-REG_FIDDLE(Canvas_085, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_drawRoundRect, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkVector radii[] = { {0, 20}, {10, 10}, {10, 20}, {10, 40} };
     SkPaint paint;
diff --git a/docs/examples/Canvas_086.cpp b/docs/examples/Canvas_086.cpp
index 3e4f97d..6d07815 100644
--- a/docs/examples/Canvas_086.cpp
+++ b/docs/examples/Canvas_086.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=fe2294131f422b8d6752f6a880f98ad9
-REG_FIDDLE(Canvas_086, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_drawPath, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path;
     path.moveTo(20, 20);
diff --git a/docs/examples/Canvas_087.cpp b/docs/examples/Canvas_087.cpp
index 3af5ae4..f11c80c 100644
--- a/docs/examples/Canvas_087.cpp
+++ b/docs/examples/Canvas_087.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=185746dc0faa6f1df30c4afe098646ff
-REG_FIDDLE(Canvas_087, 256, 64, false, 4) {
+REG_FIDDLE(Canvas_drawImage, 256, 64, false, 4) {
 void draw(SkCanvas* canvas) {
    // sk_sp<SkImage> image;
    SkImage* imagePtr = image.get();
diff --git a/docs/examples/Canvas_088.cpp b/docs/examples/Canvas_088.cpp
index bc8f3b2..63c7514 100644
--- a/docs/examples/Canvas_088.cpp
+++ b/docs/examples/Canvas_088.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a4e877e891b1be5faa2b7fd07f673a10
-REG_FIDDLE(Canvas_088, 256, 64, false, 4) {
+REG_FIDDLE(Canvas_drawImage_2, 256, 64, false, 4) {
 void draw(SkCanvas* canvas) {
    // sk_sp<SkImage> image;
    canvas->drawImage(image, 0, 0);
diff --git a/docs/examples/Canvas_089.cpp b/docs/examples/Canvas_089.cpp
index 9a70556..1218216 100644
--- a/docs/examples/Canvas_089.cpp
+++ b/docs/examples/Canvas_089.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5df49d1f4da37275a1f10ef7f1a749f0
-REG_FIDDLE(Canvas_089, 256, 64, false, 0) {
+REG_FIDDLE(Canvas_SrcRectConstraint, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap redBorder;
     redBorder.allocPixels(SkImageInfo::MakeN32Premul(4, 4));
diff --git a/docs/examples/Canvas_090.cpp b/docs/examples/Canvas_090.cpp
index ffa1f55..f2648bd 100644
--- a/docs/examples/Canvas_090.cpp
+++ b/docs/examples/Canvas_090.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=bfd18e9cac896cdf94c9f154ccf94be8
-REG_FIDDLE(Canvas_090, 256, 64, false, 0) {
+REG_FIDDLE(Canvas_drawImageRect, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     uint32_t pixels[][4] = {
             { 0xFFFF0000, 0xFFFF0000, 0xFFFF0000, 0xFFFF0000 },
diff --git a/docs/examples/Canvas_091.cpp b/docs/examples/Canvas_091.cpp
index f921d52..f7daec0 100644
--- a/docs/examples/Canvas_091.cpp
+++ b/docs/examples/Canvas_091.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=7f92cd5c9b9f4b1ac3cd933b08037bfe
-REG_FIDDLE(Canvas_091, 256, 256, false, 4) {
+REG_FIDDLE(Canvas_drawImageRect_2, 256, 256, false, 4) {
 void draw(SkCanvas* canvas) {
     // sk_sp<SkImage> image;
     for (auto i : { 1, 2, 4, 8 } ) {
diff --git a/docs/examples/Canvas_092.cpp b/docs/examples/Canvas_092.cpp
index b5d24c8..904b6c7 100644
--- a/docs/examples/Canvas_092.cpp
+++ b/docs/examples/Canvas_092.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3cf8fb639fef99993cafc064d550c739
-REG_FIDDLE(Canvas_092, 256, 256, false, 4) {
+REG_FIDDLE(Canvas_drawImageRect_3, 256, 256, false, 4) {
 void draw(SkCanvas* canvas) {
     // sk_sp<SkImage> image;
     for (auto i : { 20, 40, 80, 160 } ) {
diff --git a/docs/examples/Canvas_093.cpp b/docs/examples/Canvas_093.cpp
index 7e388c8..38c8cd4 100644
--- a/docs/examples/Canvas_093.cpp
+++ b/docs/examples/Canvas_093.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d4b35a9d24c32c042bd1f529b8de3c0d
-REG_FIDDLE(Canvas_093, 256, 64, false, 0) {
+REG_FIDDLE(Canvas_drawImageRect_4, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     uint32_t pixels[][2] = { { SK_ColorBLACK, SK_ColorWHITE },
                              { SK_ColorWHITE, SK_ColorBLACK } };
diff --git a/docs/examples/Canvas_094.cpp b/docs/examples/Canvas_094.cpp
index 2c25302..7e48fcd 100644
--- a/docs/examples/Canvas_094.cpp
+++ b/docs/examples/Canvas_094.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d307e7e1237f39fb54d80723e5449857
-REG_FIDDLE(Canvas_094, 256, 64, false, 0) {
+REG_FIDDLE(Canvas_drawImageRect_5, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     uint32_t pixels[][2] = { { 0x00000000, 0x55555555},
                              { 0xAAAAAAAA, 0xFFFFFFFF} };
diff --git a/docs/examples/Canvas_095.cpp b/docs/examples/Canvas_095.cpp
index 4f5a475..7f0e8a3 100644
--- a/docs/examples/Canvas_095.cpp
+++ b/docs/examples/Canvas_095.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3a47ef94cb70144455f80333d8653e6c
-REG_FIDDLE(Canvas_095, 256, 64, false, 0) {
+REG_FIDDLE(Canvas_drawImageRect_6, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     uint32_t pixels[][2] = { { 0x00000000, 0x55550000},
                              { 0xAAAA0000, 0xFFFF0000} };
diff --git a/docs/examples/Canvas_096.cpp b/docs/examples/Canvas_096.cpp
deleted file mode 100644
index 6b8f02f..0000000
--- a/docs/examples/Canvas_096.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=4f153cf1d0dbe1a95acf5badeec14dae
-REG_FIDDLE(Canvas_096, 256, 128, false, 0) {
-void draw(SkCanvas* canvas) {
-    SkIRect center = { 20, 10, 50, 40 };
-    SkBitmap bitmap;
-    bitmap.allocPixels(SkImageInfo::MakeN32Premul(60, 60));
-    SkCanvas bitCanvas(bitmap);
-    SkPaint paint;
-    SkColor gray = 0xFF000000;
-    int left = 0;
-    for (auto right: { center.fLeft, center.fRight, bitmap.width() } ) {
-        int top = 0;
-        for (auto bottom: { center.fTop, center.fBottom, bitmap.height() } ) {
-            paint.setColor(gray);
-            bitCanvas.drawIRect(SkIRect::MakeLTRB(left, top, right, bottom), paint);
-            gray += 0x001f1f1f;
-            top = bottom;
-        }
-        left = right;
-    }
-    sk_sp<SkImage> image = SkImage::MakeFromBitmap(bitmap);
-    SkImage* imagePtr = image.get();
-    for (auto dest: { 20, 30, 40, 60, 90 } ) {
-        canvas->drawImageNine(imagePtr, center, SkRect::MakeWH(dest, dest), nullptr);
-        canvas->translate(dest + 4, 0);
-    }
-}
-}  // END FIDDLE
diff --git a/docs/examples/Canvas_097.cpp b/docs/examples/Canvas_097.cpp
index 3aa922c..eaa9f0d 100644
--- a/docs/examples/Canvas_097.cpp
+++ b/docs/examples/Canvas_097.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d597d9af8d17fd93e634dd12017058e2
-REG_FIDDLE(Canvas_097, 256, 128, false, 0) {
+REG_FIDDLE(Canvas_drawImageNine_2, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect center = { 20, 10, 50, 40 };
     SkBitmap bitmap;
diff --git a/docs/examples/Canvas_098.cpp b/docs/examples/Canvas_098.cpp
index c119af6..b21c09e 100644
--- a/docs/examples/Canvas_098.cpp
+++ b/docs/examples/Canvas_098.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4a521be1f850058541e136a808c65e78
-REG_FIDDLE(Canvas_098, 256, 64, false, 0) {
+REG_FIDDLE(Canvas_drawBitmap, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     uint8_t pixels[][8] = { { 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00},
                             { 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00},
diff --git a/docs/examples/Canvas_099.cpp b/docs/examples/Canvas_099.cpp
index ad6db01..ae78fa9 100644
--- a/docs/examples/Canvas_099.cpp
+++ b/docs/examples/Canvas_099.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=7d04932f2a259cc70d6e45cd25a6feb6
-REG_FIDDLE(Canvas_099, 256, 64, false, 0) {
+REG_FIDDLE(Canvas_drawBitmapRect, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     uint8_t pixels[][8] = { { 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00},
                             { 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00},
diff --git a/docs/examples/Canvas_100.cpp b/docs/examples/Canvas_100.cpp
index 0f5ecb0..1eda940 100644
--- a/docs/examples/Canvas_100.cpp
+++ b/docs/examples/Canvas_100.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0a3c6d2459566e58cee7d4910655ee21
-REG_FIDDLE(Canvas_100, 256, 64, false, 0) {
+REG_FIDDLE(Canvas_drawBitmapRect_2, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     uint8_t pixels[][8] = { { 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00},
                             { 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00},
diff --git a/docs/examples/Canvas_101.cpp b/docs/examples/Canvas_101.cpp
index 88b2e58..07bf4ac 100644
--- a/docs/examples/Canvas_101.cpp
+++ b/docs/examples/Canvas_101.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=bdbeac3c97f60a63987b1cc8e1f1e91e
-REG_FIDDLE(Canvas_101, 256, 64, false, 0) {
+REG_FIDDLE(Canvas_drawBitmapRect_3, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     uint32_t pixels[][2] = { { 0x00000000, 0x55550000},
                              { 0xAAAA0000, 0xFFFF0000} };
diff --git a/docs/examples/Canvas_102.cpp b/docs/examples/Canvas_102.cpp
index 8570852..e6d7bc3 100644
--- a/docs/examples/Canvas_102.cpp
+++ b/docs/examples/Canvas_102.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e99e7be0d8f67dfacbecf85df585433d
-REG_FIDDLE(Canvas_102, 256, 128, false, 0) {
+REG_FIDDLE(Canvas_drawBitmapNine, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect center = { 20, 10, 50, 40 };
     SkBitmap bitmap;
diff --git a/docs/examples/Canvas_103.cpp b/docs/examples/Canvas_103.cpp
index 79ab1a9..6ab2254 100644
--- a/docs/examples/Canvas_103.cpp
+++ b/docs/examples/Canvas_103.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c5bfa944e17ba4a4400dc799f032069c
-REG_FIDDLE(Canvas_103, 256, 128, false, 0) {
+REG_FIDDLE(Canvas_drawBitmapLattice, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect center = { 20, 10, 50, 40 };
     SkBitmap bitmap;
diff --git a/docs/examples/Canvas_104.cpp b/docs/examples/Canvas_104.cpp
index 5e21f43..e3a365e 100644
--- a/docs/examples/Canvas_104.cpp
+++ b/docs/examples/Canvas_104.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4f153cf1d0dbe1a95acf5badeec14dae
-REG_FIDDLE(Canvas_104, 256, 128, false, 0) {
+REG_FIDDLE(Canvas_drawImageNine, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect center = { 20, 10, 50, 40 };
     SkBitmap bitmap;
diff --git a/docs/examples/Canvas_105.cpp b/docs/examples/Canvas_105.cpp
index 5078d79..46d7665 100644
--- a/docs/examples/Canvas_105.cpp
+++ b/docs/examples/Canvas_105.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=55f5e59350622c5e2834d1c85789f732
-REG_FIDDLE(Canvas_105, 256, 200, false, 0) {
+REG_FIDDLE(Canvas_drawText, 256, 200, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkFont font;
diff --git a/docs/examples/Canvas_106.cpp b/docs/examples/Canvas_106.cpp
index e772e0f..510f4aa 100644
--- a/docs/examples/Canvas_106.cpp
+++ b/docs/examples/Canvas_106.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=85442cf8d0bce6b5a777853bc36a4dc4
-REG_FIDDLE(Canvas_106, 256, 48, false, 0) {
+REG_FIDDLE(Canvas_drawString, 256, 48, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkFont font;
diff --git a/docs/examples/Canvas_107.cpp b/docs/examples/Canvas_107.cpp
index dc2ce26..f09a6c3 100644
--- a/docs/examples/Canvas_107.cpp
+++ b/docs/examples/Canvas_107.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=435178c09feb3bfec5e35d983609a013
-REG_FIDDLE(Canvas_107, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_drawString_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkString string("a small hello");
diff --git a/docs/examples/Canvas_108.cpp b/docs/examples/Canvas_108.cpp
index cce8a80..0ca581e 100644
--- a/docs/examples/Canvas_108.cpp
+++ b/docs/examples/Canvas_108.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=bf0b2402533a23b6392e0676b7a8414c
-REG_FIDDLE(Canvas_108, 256, 120, false, 0) {
+REG_FIDDLE(Canvas_drawPosText, 256, 120, false, 0) {
 void draw(SkCanvas* canvas) {
   const char hello[] = "HeLLo!";
   const SkPoint pos[] = { {40, 100}, {82, 95}, {115, 110}, {130, 95}, {145, 85},
diff --git a/docs/examples/Canvas_109.cpp b/docs/examples/Canvas_109.cpp
index 7fe4214..e72adce 100644
--- a/docs/examples/Canvas_109.cpp
+++ b/docs/examples/Canvas_109.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=95c6a7ef82993a8d2add676080e9438a
-REG_FIDDLE(Canvas_109, 256, 40, false, 0) {
+REG_FIDDLE(Canvas_drawPosTextH, 256, 40, false, 0) {
 void draw(SkCanvas* canvas) {
     SkScalar xpos[] = { 20, 40, 80, 160 };
     SkPaint paint;
diff --git a/docs/examples/Canvas_110.cpp b/docs/examples/Canvas_110.cpp
index b3aa944..d1e1d06 100644
--- a/docs/examples/Canvas_110.cpp
+++ b/docs/examples/Canvas_110.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=935c8f8b9782d297a73d7186f6ef7945
-REG_FIDDLE(Canvas_110, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_drawTextRSXform, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     const int iterations = 26;
     SkRSXform transforms[iterations];
diff --git a/docs/examples/Canvas_111.cpp b/docs/examples/Canvas_111.cpp
index 0594843..50588ce 100644
--- a/docs/examples/Canvas_111.cpp
+++ b/docs/examples/Canvas_111.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=005502b502c1282cb8d306d6c8d998fb
-REG_FIDDLE(Canvas_111, 256, 120, false, 0) {
+REG_FIDDLE(Canvas_drawTextBlob, 256, 120, false, 0) {
 void draw(SkCanvas* canvas) {
     SkTextBlobBuilder textBlobBuilder;
     const char bunny[] = "/(^x^)\\";
diff --git a/docs/examples/Canvas_112.cpp b/docs/examples/Canvas_112.cpp
index ebde973..c8fe857 100644
--- a/docs/examples/Canvas_112.cpp
+++ b/docs/examples/Canvas_112.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1cae21e7b63b24de3eca0bbd9be1936b
-REG_FIDDLE(Canvas_112, 256, 120, false, 0) {
+REG_FIDDLE(Canvas_drawTextBlob_2, 256, 120, false, 0) {
 void draw(SkCanvas* canvas) {
     SkTextBlobBuilder textBlobBuilder;
     SkFont font;
diff --git a/docs/examples/Canvas_113.cpp b/docs/examples/Canvas_113.cpp
deleted file mode 100644
index 01aed9f..0000000
--- a/docs/examples/Canvas_113.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=83918a23fcffd47f59a1ef662c85a24c
-REG_FIDDLE(Canvas_113, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    SkPictureRecorder recorder;
-    SkCanvas* recordingCanvas = recorder.beginRecording(50, 50);
-    for (auto color : { SK_ColorRED, SK_ColorBLUE, 0xff007f00 } ) {
-        SkPaint paint;
-        paint.setColor(color);
-        recordingCanvas->drawRect({10, 10, 30, 40}, paint);
-        recordingCanvas->translate(10, 10);
-        recordingCanvas->scale(1.2f, 1.4f);
-    }
-    sk_sp<SkPicture> playback = recorder.finishRecordingAsPicture();
-    canvas->drawPicture(playback);
-    canvas->scale(2, 2);
-    canvas->translate(50, 0);
-    canvas->drawPicture(playback);
-}
-}  // END FIDDLE
diff --git a/docs/examples/Canvas_114.cpp b/docs/examples/Canvas_114.cpp
index 6c4c9f3..97e58c1 100644
--- a/docs/examples/Canvas_114.cpp
+++ b/docs/examples/Canvas_114.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=83918a23fcffd47f59a1ef662c85a24c
-REG_FIDDLE(Canvas_114, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_drawPicture_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPictureRecorder recorder;
     SkCanvas* recordingCanvas = recorder.beginRecording(50, 50);
diff --git a/docs/examples/Canvas_115.cpp b/docs/examples/Canvas_115.cpp
index a40c744..df76070 100644
--- a/docs/examples/Canvas_115.cpp
+++ b/docs/examples/Canvas_115.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=759e4e5bac680838added8f70884dcdc
-REG_FIDDLE(Canvas_115, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_drawPicture_3, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkPictureRecorder recorder;
diff --git a/docs/examples/Canvas_116.cpp b/docs/examples/Canvas_116.cpp
index 63e13d8..f1520d5 100644
--- a/docs/examples/Canvas_116.cpp
+++ b/docs/examples/Canvas_116.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c4ff59439dd2fc871925d4eeb0c84ca1
-REG_FIDDLE(Canvas_116, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_drawPicture_4, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkPictureRecorder recorder;
diff --git a/docs/examples/Canvas_117.cpp b/docs/examples/Canvas_117.cpp
index 862ef5c..d79d85c 100644
--- a/docs/examples/Canvas_117.cpp
+++ b/docs/examples/Canvas_117.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f48b22eaad1bb7adcc3faaa321754af6
-REG_FIDDLE(Canvas_117, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_drawVertices, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkPoint points[] = { { 0, 0 }, { 250, 0 }, { 100, 100 }, { 0, 250 } };
diff --git a/docs/examples/Canvas_118.cpp b/docs/examples/Canvas_118.cpp
index c0c913f..81d6583 100644
--- a/docs/examples/Canvas_118.cpp
+++ b/docs/examples/Canvas_118.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e8bdae9bea3227758989028424fcac3d
-REG_FIDDLE(Canvas_118, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_drawVertices_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkPoint points[] = { { 0, 0 }, { 250, 0 }, { 100, 100 }, { 0, 250 } };
diff --git a/docs/examples/Canvas_119.cpp b/docs/examples/Canvas_119.cpp
index a064649..504baf5 100644
--- a/docs/examples/Canvas_119.cpp
+++ b/docs/examples/Canvas_119.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=accb545d67984ced168f5be6ab824795
-REG_FIDDLE(Canvas_119, 256, 256, false, 5) {
+REG_FIDDLE(Canvas_drawPatch, 256, 256, false, 5) {
 void draw(SkCanvas* canvas) {
     // SkBitmap source = cmbkygk;
     SkPaint paint;
diff --git a/docs/examples/Canvas_120.cpp b/docs/examples/Canvas_120.cpp
index 9676064..f7a1cc1 100644
--- a/docs/examples/Canvas_120.cpp
+++ b/docs/examples/Canvas_120.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4e8b7409531c9211a2afcf632005a38c
-REG_FIDDLE(Canvas_120, 256, 256, false, 0) {
+REG_FIDDLE(Canvas_drawPatch_2_a, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Canvas_121.cpp b/docs/examples/Canvas_121.cpp
index 673ad1b..3e77d7a 100644
--- a/docs/examples/Canvas_121.cpp
+++ b/docs/examples/Canvas_121.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3412c2a16cb529af0e04878d264451f2
-REG_FIDDLE(Canvas_121, 256, 256, false, 6) {
+REG_FIDDLE(Canvas_drawPatch_2_b, 256, 256, false, 6) {
 void draw(SkCanvas* canvas) {
     // SkBitmap source = checkerboard;
     SkPaint paint;
diff --git a/docs/examples/Canvas_122.cpp b/docs/examples/Canvas_122.cpp
index 0922438..dcb64b1 100644
--- a/docs/examples/Canvas_122.cpp
+++ b/docs/examples/Canvas_122.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1df575f9b8132306ce0552a2554ed132
-REG_FIDDLE(Canvas_122, 256, 256, false, 3) {
+REG_FIDDLE(Canvas_drawAtlas, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
   // SkBitmap source = mandrill;
   SkRSXform xforms[] = { { .5f, 0, 0, 0 }, {0, .5f, 200, 100 } };
diff --git a/docs/examples/Canvas_123.cpp b/docs/examples/Canvas_123.cpp
index e320ccb..ccae9f3 100644
--- a/docs/examples/Canvas_123.cpp
+++ b/docs/examples/Canvas_123.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0e66a8f230a8d531bcef9f5ebdc5aac1
-REG_FIDDLE(Canvas_123, 256, 256, false, 3) {
+REG_FIDDLE(Canvas_drawAtlas_2, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
   // SkBitmap source = mandrill;
   SkRSXform xforms[] = { { .5f, 0, 0, 0 }, {0, .5f, 200, 100 } };
diff --git a/docs/examples/Canvas_124.cpp b/docs/examples/Canvas_124.cpp
index 775736d..0cd31af 100644
--- a/docs/examples/Canvas_124.cpp
+++ b/docs/examples/Canvas_124.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8dc0d0fdeab20bbc21cac6874ddbefcd
-REG_FIDDLE(Canvas_124, 256, 256, false, 3) {
+REG_FIDDLE(Canvas_drawAtlas_3, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
   // sk_sp<SkImage> image = mandrill;
   SkRSXform xforms[] = { { .5f, 0, 0, 0 }, {0, .5f, 200, 100 } };
diff --git a/docs/examples/Canvas_125.cpp b/docs/examples/Canvas_125.cpp
index 509e849..33ce86e 100644
--- a/docs/examples/Canvas_125.cpp
+++ b/docs/examples/Canvas_125.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c093c2b14bd3e6171ede7cd4049d9b57
-REG_FIDDLE(Canvas_125, 256, 256, false, 3) {
+REG_FIDDLE(Canvas_drawAtlas_4, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
   // sk_sp<SkImage> image = mandrill;
   SkRSXform xforms[] = { { 1, 0, 0, 0 }, {0, 1, 300, 100 } };
diff --git a/docs/examples/Canvas_126.cpp b/docs/examples/Canvas_126.cpp
index bdef217..4e05c27 100644
--- a/docs/examples/Canvas_126.cpp
+++ b/docs/examples/Canvas_126.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3a4dfcd08838866b5cfc0d82489195ba
-REG_FIDDLE(Canvas_126, 256, 100, false, 0) {
+REG_FIDDLE(Canvas_drawDrawable, 256, 100, false, 0) {
 struct MyDrawable : public SkDrawable {
     SkRect onGetBounds() override { return SkRect::MakeWH(50, 100);  }
     void onDraw(SkCanvas* canvas) override {
diff --git a/docs/examples/Canvas_127.cpp b/docs/examples/Canvas_127.cpp
index b9b379f..b450b65 100644
--- a/docs/examples/Canvas_127.cpp
+++ b/docs/examples/Canvas_127.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1bdc07ad3b154c89b771722c2fcaee3f
-REG_FIDDLE(Canvas_127, 256, 100, false, 0) {
+REG_FIDDLE(Canvas_drawDrawable_2, 256, 100, false, 0) {
 struct MyDrawable : public SkDrawable {
     SkRect onGetBounds() override { return SkRect::MakeWH(50, 100);  }
     void onDraw(SkCanvas* canvas) override {
diff --git a/docs/examples/Canvas_128.cpp b/docs/examples/Canvas_128.cpp
index c6ac7bf..6c58391 100644
--- a/docs/examples/Canvas_128.cpp
+++ b/docs/examples/Canvas_128.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=00b430bd80d740e19c6d020a940f56d5
-REG_FIDDLE(Canvas_128, 256, 1, false, 0) {
+REG_FIDDLE(Canvas_drawAnnotation_2, 256, 1, false, 0) {
 void draw(SkCanvas* canvas) {
     const char text[] = "Click this link!";
     SkRect bounds;
diff --git a/docs/examples/Canvas_130.cpp b/docs/examples/Canvas_130.cpp
index 1c3fe19..af2b185 100644
--- a/docs/examples/Canvas_130.cpp
+++ b/docs/examples/Canvas_130.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f106f146a58c8604308d4d8d7086d2f5
-REG_FIDDLE(Canvas_130, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_isClipEmpty, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkDebugf("clip is%s empty\n", canvas->isClipEmpty() ? "" : " not");
     SkPath path;
diff --git a/docs/examples/Canvas_131.cpp b/docs/examples/Canvas_131.cpp
index b3cb84f..21fc246 100644
--- a/docs/examples/Canvas_131.cpp
+++ b/docs/examples/Canvas_131.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9894bfb476c78a8f6c8f49fbbca3d50d
-REG_FIDDLE(Canvas_131, 256, 256, true, 0) {
+REG_FIDDLE(Canvas_isClipRect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkDebugf("clip is%s rect\n", canvas->isClipRect() ? "" : " not");
     canvas->clipRect({0, 0, 0, 0});
diff --git a/docs/examples/Color4f_000.cpp b/docs/examples/Color4f_000.cpp
index 57c954a..46d4d13 100644
--- a/docs/examples/Color4f_000.cpp
+++ b/docs/examples/Color4f_000.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e5b34bcb7f80f2ed890cdacaa059db0d
-REG_FIDDLE(Color4f_000, 256, 256, true, 0) {
+REG_FIDDLE(RGBA4f_equal1_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkColor4f colorRed = { 1, 0, 0, 1 };
     SkColor4f colorNamedRed = SkColor4f::FromColor(SK_ColorRED);
diff --git a/docs/examples/Color4f_001.cpp b/docs/examples/Color4f_001.cpp
index e8b744f..311ddec 100644
--- a/docs/examples/Color4f_001.cpp
+++ b/docs/examples/Color4f_001.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=82f1a9b4c2b27aa547061786d1f33dab
-REG_FIDDLE(Color4f_001, 256, 256, true, 0) {
+REG_FIDDLE(RGBA4f_notequal1_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkColor4f colorGray = { .5, .5, .5, 1 };
     SkColor4f colorNamedGray = SkColor4f::FromColor(SK_ColorGRAY);
diff --git a/docs/examples/Color4f_002.cpp b/docs/examples/Color4f_002.cpp
index 763b3d4..28d66fa 100644
--- a/docs/examples/Color4f_002.cpp
+++ b/docs/examples/Color4f_002.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=229057023515224358a36acf15508cf6
-REG_FIDDLE(Color4f_002, 256, 256, true, 0) {
+REG_FIDDLE(RGBA4f_vec, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkColor4f color = SkColor4f::FromColor(0x884488CC);
     SkDebugf("red=%g green=%g blue=%g alpha=%g\n", color.fR, color.fG, color.fB, color.fA);
diff --git a/docs/examples/Color4f_003.cpp b/docs/examples/Color4f_003.cpp
index 2995871..366e262 100644
--- a/docs/examples/Color4f_003.cpp
+++ b/docs/examples/Color4f_003.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=7420bf0a7cae5c6577c4c4a4613e7e7e
-REG_FIDDLE(Color4f_003, 256, 256, true, 0) {
+REG_FIDDLE(RGBA4f_vec_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkColor4f color = SkColor4f::FromColor(0x884488CC);
     SkDebugf("red=%g green=%g blue=%g alpha=%g\n", color.fR, color.fG, color.fB, color.fA);
diff --git a/docs/examples/Color4f_004.cpp b/docs/examples/Color4f_004.cpp
index a1d7db0..412c19e 100644
--- a/docs/examples/Color4f_004.cpp
+++ b/docs/examples/Color4f_004.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=33b029064e8d1928e42a587c953d0e4e
-REG_FIDDLE(Color4f_004, 256, 256, true, 0) {
+REG_FIDDLE(RGBA4f_FromColor, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     uint8_t red = 77, green = 101, blue = 153, alpha = 43;
     SkColor argb = SkColorSetARGB(alpha, red, green, blue);
diff --git a/docs/examples/Color4f_005.cpp b/docs/examples/Color4f_005.cpp
index d169a22..b78b323 100644
--- a/docs/examples/Color4f_005.cpp
+++ b/docs/examples/Color4f_005.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=edc5fd18d961f7607d2bcbf7f7d427e5
-REG_FIDDLE(Color4f_005, 256, 256, true, 0) {
+REG_FIDDLE(RGBA4f_toSkColor, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     float red = 0.07f, green = 0.13f, blue = 0.32f, alpha = 0.17f;
     SkColor4f color4f = { red, green, blue, alpha };
diff --git a/docs/examples/Color_000.cpp b/docs/examples/Color_000.cpp
index 2717d39..f0f60a0 100644
--- a/docs/examples/Color_000.cpp
+++ b/docs/examples/Color_000.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=35888f0869e01a6e03b5b93bba563734
-REG_FIDDLE(Color_000, 256, 256, false, 0) {
+REG_FIDDLE(ColorSetARGB, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     canvas->drawColor(SK_ColorRED);
     canvas->clipRect(SkRect::MakeWH(150, 150));
diff --git a/docs/examples/Color_001.cpp b/docs/examples/Color_001.cpp
index 32851f1..c68ed6a 100644
--- a/docs/examples/Color_001.cpp
+++ b/docs/examples/Color_001.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=dad12dd912197cd5edd789ac0801bf8a
-REG_FIDDLE(Color_001, 256, 256, false, 0) {
+REG_FIDDLE(ColorSetRGB, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     canvas->drawColor(SK_ColorRED);
     canvas->clipRect(SkRect::MakeWH(150, 150));
diff --git a/docs/examples/Color_002.cpp b/docs/examples/Color_002.cpp
index 9c33491..230df7e 100644
--- a/docs/examples/Color_002.cpp
+++ b/docs/examples/Color_002.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=896ce0316b489608a95af5439ca2aab1
-REG_FIDDLE(Color_002, 256, 256, false, 0) {
+REG_FIDDLE(ColorGetA, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setColor(SK_ColorRED);
diff --git a/docs/examples/Color_003.cpp b/docs/examples/Color_003.cpp
index 1dc93f9..d2d3299 100644
--- a/docs/examples/Color_003.cpp
+++ b/docs/examples/Color_003.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d6da38577f189eaa6d9df75f6c3ed252
-REG_FIDDLE(Color_003, 256, 256, false, 3) {
+REG_FIDDLE(ColorGetR, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     canvas->drawBitmap(source, 0, 0);
     SkPaint bgPaint;
diff --git a/docs/examples/Color_004.cpp b/docs/examples/Color_004.cpp
index 5b91273..45c26f4 100644
--- a/docs/examples/Color_004.cpp
+++ b/docs/examples/Color_004.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=535d38b2c019299d915170f7b03d5fea
-REG_FIDDLE(Color_004, 256, 256, false, 3) {
+REG_FIDDLE(ColorGetG, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     canvas->drawBitmap(source, 0, 0);
     SkPaint bgPaint;
diff --git a/docs/examples/Color_005.cpp b/docs/examples/Color_005.cpp
index c00d4c0..ef7641d 100644
--- a/docs/examples/Color_005.cpp
+++ b/docs/examples/Color_005.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9ee27675284faea375611dc88123a2c5
-REG_FIDDLE(Color_005, 256, 256, false, 3) {
+REG_FIDDLE(ColorGetB, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     canvas->drawBitmap(source, 0, 0);
     SkPaint bgPaint;
diff --git a/docs/examples/Color_006.cpp b/docs/examples/Color_006.cpp
index 58f1858..496d5c7 100644
--- a/docs/examples/Color_006.cpp
+++ b/docs/examples/Color_006.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=18f6f376f771f5ffa56d5e5b2ebd20fb
-REG_FIDDLE(Color_006, 256, 256, false, 3) {
+REG_FIDDLE(ColorSetA, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     canvas->drawBitmap(source, 0, 0);
     for (int y = 0; y < 256; y += 16) {
diff --git a/docs/examples/Color_007.cpp b/docs/examples/Color_007.cpp
index b08ea6d..8988038 100644
--- a/docs/examples/Color_007.cpp
+++ b/docs/examples/Color_007.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=bc9c7ea424d10bbcd1e5a88770d4794e
-REG_FIDDLE(Color_007, 256, 128, false, 1) {
+REG_FIDDLE(Alpha_Constants_a, 256, 128, false, 1) {
 void draw(SkCanvas* canvas) {
     std::vector<int32_t> srcPixels;
     srcPixels.resize(source.height() * source.rowBytes());
diff --git a/docs/examples/Color_008.cpp b/docs/examples/Color_008.cpp
index 07e1831..8de18c3 100644
--- a/docs/examples/Color_008.cpp
+++ b/docs/examples/Color_008.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0424f67ebc2858e8fd04ae3367b115ff
-REG_FIDDLE(Color_008, 256, 128, false, 1) {
+REG_FIDDLE(Alpha_Constants_b, 256, 128, false, 1) {
 void draw(SkCanvas* canvas) {
     std::vector<int32_t> srcPixels;
     srcPixels.resize(source.height() * source.rowBytes());
diff --git a/docs/examples/Color_009.cpp b/docs/examples/Color_009.cpp
index 8f383c7..e46a9f2 100644
--- a/docs/examples/Color_009.cpp
+++ b/docs/examples/Color_009.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1c2e38321464818847f953ddd45cb5a1
-REG_FIDDLE(Color_009, 256, 256, false, 0) {
+REG_FIDDLE(Color_Constants_a, 256, 256, false, 0) {
 #define SKIA_COLOR_PAIR(name) "SK_Color" #name, SK_Color##name
 
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Color_010.cpp b/docs/examples/Color_010.cpp
index 89458a2..8b9ba8a 100644
--- a/docs/examples/Color_010.cpp
+++ b/docs/examples/Color_010.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9ca1e2a5b9b4c92ecf4409d0813867d6
-REG_FIDDLE(Color_010, 256, 256, false, 3) {
+REG_FIDDLE(Color_Constants_b, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     std::vector<uint32_t> srcPixels;
     constexpr int width = 256;
diff --git a/docs/examples/Color_011.cpp b/docs/examples/Color_011.cpp
index b6ce520..c3c937f 100644
--- a/docs/examples/Color_011.cpp
+++ b/docs/examples/Color_011.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6971489f28291f08e429cc6ccc73b09b
-REG_FIDDLE(Color_011, 256, 256, false, 0) {
+REG_FIDDLE(Color_Constants_c, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     std::vector<uint32_t> srcPixels;
     constexpr int width = 256;
diff --git a/docs/examples/Color_012.cpp b/docs/examples/Color_012.cpp
index e5e1601..c3aa498 100644
--- a/docs/examples/Color_012.cpp
+++ b/docs/examples/Color_012.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=fce650f997e802d4e55edf62b8437a2d
-REG_FIDDLE(Color_012, 256, 256, false, 0) {
+REG_FIDDLE(Color_Constants_d, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     std::vector<uint32_t> srcPixels;
     constexpr int width = 256;
diff --git a/docs/examples/Color_013.cpp b/docs/examples/Color_013.cpp
index ddc0a78..f081c0d 100644
--- a/docs/examples/Color_013.cpp
+++ b/docs/examples/Color_013.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4fb2da4a3d9b14ca4ac24eefb0f5126a
-REG_FIDDLE(Color_013, 256, 256, false, 3) {
+REG_FIDDLE(RGBToHSV, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     canvas->drawBitmap(source, 0, 0);
     SkPaint bgPaint;
diff --git a/docs/examples/Color_014.cpp b/docs/examples/Color_014.cpp
index 6436337..4475463 100644
--- a/docs/examples/Color_014.cpp
+++ b/docs/examples/Color_014.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1e0370f12c8aab5b84f9e824074f1e5a
-REG_FIDDLE(Color_014, 256, 256, false, 3) {
+REG_FIDDLE(ColorToHSV, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     canvas->drawBitmap(source, 0, 0);
     for (int y = 0; y < 256; ++y) {
diff --git a/docs/examples/Color_015.cpp b/docs/examples/Color_015.cpp
index 6b55948..cf53bc2 100644
--- a/docs/examples/Color_015.cpp
+++ b/docs/examples/Color_015.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=311a59931ac340b90f202cd6ac399a0a
-REG_FIDDLE(Color_015, 256, 256, false, 3) {
+REG_FIDDLE(HSVToColor, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     canvas->drawBitmap(source, 0, 0);
     for (int y = 0; y < 256; ++y) {
diff --git a/docs/examples/Color_016.cpp b/docs/examples/Color_016.cpp
index 3df3f73..3ecd8c2 100644
--- a/docs/examples/Color_016.cpp
+++ b/docs/examples/Color_016.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d355a17547908cdbc2c38720974b5d11
-REG_FIDDLE(Color_016, 256, 256, false, 3) {
+REG_FIDDLE(HSVToColor_2, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     canvas->drawBitmap(source, 0, 0);
     for (int y = 0; y < 256; ++y) {
diff --git a/docs/examples/Color_017.cpp b/docs/examples/Color_017.cpp
index 6dfd7c1..8462943 100644
--- a/docs/examples/Color_017.cpp
+++ b/docs/examples/Color_017.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=756345484fd48ca0ea7b6cec350f73b8
-REG_FIDDLE(Color_017, 300, 128, false, 0) {
+REG_FIDDLE(PreMultiplyARGB, 300, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPMColor premultiplied = SkPreMultiplyARGB(160, 128, 160, 192);
     canvas->drawString("Unpremultiplied:", 20, 20, SkPaint());
diff --git a/docs/examples/Color_018.cpp b/docs/examples/Color_018.cpp
index 81d0f04..000ff6f 100644
--- a/docs/examples/Color_018.cpp
+++ b/docs/examples/Color_018.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0bcc0f86a2aefc899f3500503dce6968
-REG_FIDDLE(Color_018, 300, 128, false, 0) {
+REG_FIDDLE(PreMultiplyColor, 300, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkColor unpremultiplied = SkColorSetARGB(160, 128, 160, 192);
     SkPMColor premultiplied = SkPreMultiplyColor(unpremultiplied);
diff --git a/docs/examples/Font_000.cpp b/docs/examples/Font_000.cpp
deleted file mode 100644
index 23e6339..0000000
--- a/docs/examples/Font_000.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_000, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_001.cpp b/docs/examples/Font_001.cpp
deleted file mode 100644
index 75f1299..0000000
--- a/docs/examples/Font_001.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_001, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_002.cpp b/docs/examples/Font_002.cpp
deleted file mode 100644
index 35d3eb3..0000000
--- a/docs/examples/Font_002.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_002, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_003.cpp b/docs/examples/Font_003.cpp
deleted file mode 100644
index d98e5c7..0000000
--- a/docs/examples/Font_003.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_003, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_004.cpp b/docs/examples/Font_004.cpp
deleted file mode 100644
index 08f51b9..0000000
--- a/docs/examples/Font_004.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_004, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_005.cpp b/docs/examples/Font_005.cpp
deleted file mode 100644
index 8ea371f..0000000
--- a/docs/examples/Font_005.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_005, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_006.cpp b/docs/examples/Font_006.cpp
deleted file mode 100644
index 5e0836c..0000000
--- a/docs/examples/Font_006.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_006, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_007.cpp b/docs/examples/Font_007.cpp
deleted file mode 100644
index fa2e6d3..0000000
--- a/docs/examples/Font_007.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_007, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_008.cpp b/docs/examples/Font_008.cpp
deleted file mode 100644
index 15a345a..0000000
--- a/docs/examples/Font_008.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_008, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_009.cpp b/docs/examples/Font_009.cpp
deleted file mode 100644
index bf229e0..0000000
--- a/docs/examples/Font_009.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_009, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_010.cpp b/docs/examples/Font_010.cpp
deleted file mode 100644
index c9cc4d1..0000000
--- a/docs/examples/Font_010.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_010, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_011.cpp b/docs/examples/Font_011.cpp
deleted file mode 100644
index fd367c7..0000000
--- a/docs/examples/Font_011.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_011, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_012.cpp b/docs/examples/Font_012.cpp
deleted file mode 100644
index 8aac62a..0000000
--- a/docs/examples/Font_012.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_012, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_013.cpp b/docs/examples/Font_013.cpp
deleted file mode 100644
index 728de64..0000000
--- a/docs/examples/Font_013.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_013, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_014.cpp b/docs/examples/Font_014.cpp
deleted file mode 100644
index 82b6c04..0000000
--- a/docs/examples/Font_014.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_014, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_015.cpp b/docs/examples/Font_015.cpp
deleted file mode 100644
index 25fc44f..0000000
--- a/docs/examples/Font_015.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_015, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_016.cpp b/docs/examples/Font_016.cpp
deleted file mode 100644
index 4bec9cf..0000000
--- a/docs/examples/Font_016.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_016, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_017.cpp b/docs/examples/Font_017.cpp
deleted file mode 100644
index 4650d73..0000000
--- a/docs/examples/Font_017.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_017, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_018.cpp b/docs/examples/Font_018.cpp
deleted file mode 100644
index 7dc7049..0000000
--- a/docs/examples/Font_018.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_018, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_019.cpp b/docs/examples/Font_019.cpp
deleted file mode 100644
index e2a6f96..0000000
--- a/docs/examples/Font_019.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_019, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_020.cpp b/docs/examples/Font_020.cpp
deleted file mode 100644
index d1523f7..0000000
--- a/docs/examples/Font_020.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_020, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_021.cpp b/docs/examples/Font_021.cpp
deleted file mode 100644
index 1c46e4f..0000000
--- a/docs/examples/Font_021.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_021, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_022.cpp b/docs/examples/Font_022.cpp
deleted file mode 100644
index 1930dc7..0000000
--- a/docs/examples/Font_022.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_022, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_023.cpp b/docs/examples/Font_023.cpp
deleted file mode 100644
index 58d2eb5..0000000
--- a/docs/examples/Font_023.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_023, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_024.cpp b/docs/examples/Font_024.cpp
deleted file mode 100644
index 63e5ec7..0000000
--- a/docs/examples/Font_024.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_024, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_025.cpp b/docs/examples/Font_025.cpp
deleted file mode 100644
index a9da112..0000000
--- a/docs/examples/Font_025.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_025, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_026.cpp b/docs/examples/Font_026.cpp
deleted file mode 100644
index d5f9d47..0000000
--- a/docs/examples/Font_026.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_026, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_027.cpp b/docs/examples/Font_027.cpp
deleted file mode 100644
index 7ec3e16..0000000
--- a/docs/examples/Font_027.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_027, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_028.cpp b/docs/examples/Font_028.cpp
deleted file mode 100644
index fc82a12..0000000
--- a/docs/examples/Font_028.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_028, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_029.cpp b/docs/examples/Font_029.cpp
deleted file mode 100644
index fba981a..0000000
--- a/docs/examples/Font_029.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_029, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_030.cpp b/docs/examples/Font_030.cpp
deleted file mode 100644
index ba53e69..0000000
--- a/docs/examples/Font_030.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_030, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_031.cpp b/docs/examples/Font_031.cpp
deleted file mode 100644
index d402cec..0000000
--- a/docs/examples/Font_031.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_031, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_032.cpp b/docs/examples/Font_032.cpp
deleted file mode 100644
index ba94ef2..0000000
--- a/docs/examples/Font_032.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_032, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_033.cpp b/docs/examples/Font_033.cpp
index 8b44256..d2223e6 100644
--- a/docs/examples/Font_033.cpp
+++ b/docs/examples/Font_033.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3cad18678254526be66ef162eecd1d23
-REG_FIDDLE(Font_033, 280, 128, false, 0) {
+REG_FIDDLE(Font_breakText, 280, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Font_034.cpp b/docs/examples/Font_034.cpp
deleted file mode 100644
index b0b72d9..0000000
--- a/docs/examples/Font_034.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_034, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_035.cpp b/docs/examples/Font_035.cpp
deleted file mode 100644
index e6eade1..0000000
--- a/docs/examples/Font_035.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_035, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_036.cpp b/docs/examples/Font_036.cpp
deleted file mode 100644
index 6b4f555..0000000
--- a/docs/examples/Font_036.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_036, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_037.cpp b/docs/examples/Font_037.cpp
deleted file mode 100644
index 7c53560..0000000
--- a/docs/examples/Font_037.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_037, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/Font_038.cpp b/docs/examples/Font_038.cpp
deleted file mode 100644
index 8b36d3c..0000000
--- a/docs/examples/Font_038.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=882e8e0103048009a25cfc20400492f7
-REG_FIDDLE(Font_038, 256, 256, false, 0) {
-void draw(SkCanvas* canvas) {
-    // incomplete
-}
-}  // END FIDDLE
diff --git a/docs/examples/IPoint_000.cpp b/docs/examples/IPoint_000.cpp
index e454ad7..a1c3cc0 100644
--- a/docs/examples/IPoint_000.cpp
+++ b/docs/examples/IPoint_000.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e5cf5159525bd3140f288a95fe641fae
-REG_FIDDLE(IPoint_000, 256, 256, true, 0) {
+REG_FIDDLE(IPoint_Make, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIPoint pt1 = {45, 66};
     SkIPoint pt2 = SkIPoint::Make(45, 66);
diff --git a/docs/examples/IPoint_001.cpp b/docs/examples/IPoint_001.cpp
index d16b2ec..c6529f4 100644
--- a/docs/examples/IPoint_001.cpp
+++ b/docs/examples/IPoint_001.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=eed4185294f8a8216fc354e6ee6b2e3a
-REG_FIDDLE(IPoint_001, 256, 256, true, 0) {
+REG_FIDDLE(IPoint_x, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIPoint pt1 = {45, 66};
     SkDebugf("pt1.fX %c= pt1.x()\n", pt1.fX == pt1.x() ? '=' : '!');
diff --git a/docs/examples/IPoint_002.cpp b/docs/examples/IPoint_002.cpp
index d349617..28a8dbb 100644
--- a/docs/examples/IPoint_002.cpp
+++ b/docs/examples/IPoint_002.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=35c41b8ba7cebf8c9a7a8494e610e14d
-REG_FIDDLE(IPoint_002, 256, 256, true, 0) {
+REG_FIDDLE(IPoint_y, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIPoint pt1 = {45, 66};
     SkDebugf("pt1.fY %c= pt1.y()\n", pt1.fY == pt1.y() ? '=' : '!');
diff --git a/docs/examples/IPoint_003.cpp b/docs/examples/IPoint_003.cpp
index cfca3be..d0ccb30 100644
--- a/docs/examples/IPoint_003.cpp
+++ b/docs/examples/IPoint_003.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=658c1df611b4577cc7e0bb384e95737e
-REG_FIDDLE(IPoint_003, 256, 256, true, 0) {
+REG_FIDDLE(IPoint_isZero, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIPoint pt = { 0, -0};
     SkDebugf("pt.isZero() == %s\n", pt.isZero() ? "true" : "false");
diff --git a/docs/examples/IPoint_004.cpp b/docs/examples/IPoint_004.cpp
index c07b31d..caf853a 100644
--- a/docs/examples/IPoint_004.cpp
+++ b/docs/examples/IPoint_004.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=165418b5718d79d8f1682a8a0ee32ba0
-REG_FIDDLE(IPoint_004, 256, 256, true, 0) {
+REG_FIDDLE(IPoint_set, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIPoint pt1, pt2 = { SK_MinS32, SK_MaxS32 };
     pt1.set(SK_MinS32, SK_MaxS32);
diff --git a/docs/examples/IPoint_005.cpp b/docs/examples/IPoint_005.cpp
index cd4bc04..6de0b24 100644
--- a/docs/examples/IPoint_005.cpp
+++ b/docs/examples/IPoint_005.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b30d4780475d113a7fed3637af7f0db1
-REG_FIDDLE(IPoint_005, 256, 256, true, 0) {
+REG_FIDDLE(IPoint_minus_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIPoint test[] = { {0, -0}, {-1, -2},
                        { SK_MaxS32, SK_MinS32 },
diff --git a/docs/examples/IPoint_006.cpp b/docs/examples/IPoint_006.cpp
index e7e515b..5e77b08 100644
--- a/docs/examples/IPoint_006.cpp
+++ b/docs/examples/IPoint_006.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4eb2d95c9e9a66f05296e345bb68bd51
-REG_FIDDLE(IPoint_006, 256, 64, false, 0) {
+REG_FIDDLE(IPoint_addto_operator, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     auto draw_lines = [=](const SkIPoint pts[], size_t count, SkPaint& paint) -> void {
         for (size_t i = 0; i < count - 1; ++i) {
diff --git a/docs/examples/IPoint_007.cpp b/docs/examples/IPoint_007.cpp
index 16963ec..11d9280 100644
--- a/docs/examples/IPoint_007.cpp
+++ b/docs/examples/IPoint_007.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a01e533dc7ab34ed728dc4e7a5f1f0ee
-REG_FIDDLE(IPoint_007, 256, 64, false, 0) {
+REG_FIDDLE(IPoint_subtractfrom_operator, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     auto draw_lines = [=](const SkIPoint pts[], size_t count, SkPaint& paint) -> void {
         for (size_t i = 0; i < count - 1; ++i) {
diff --git a/docs/examples/IPoint_008.cpp b/docs/examples/IPoint_008.cpp
index dbecb3b..082994d 100644
--- a/docs/examples/IPoint_008.cpp
+++ b/docs/examples/IPoint_008.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=64f575d36439d5b69aaed14ffeff1cc4
-REG_FIDDLE(IPoint_008, 256, 256, true, 0) {
+REG_FIDDLE(IPoint_equals, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIPoint test[] = { {0, -0}, {-1, -2}, {SK_MaxS32, -1}, {SK_NaN32, -1} };
     for (const SkIPoint& pt : test) {
diff --git a/docs/examples/IPoint_009.cpp b/docs/examples/IPoint_009.cpp
index 3952135..92f6218 100644
--- a/docs/examples/IPoint_009.cpp
+++ b/docs/examples/IPoint_009.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=37ffe2817d720f99e6c252332ce70460
-REG_FIDDLE(IPoint_009, 256, 256, true, 0) {
+REG_FIDDLE(IPoint_equal_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIPoint test[] = { {0, -0}, {-1, -2}, {SK_MaxS32, -1}, {SK_NaN32, -1} };
     for (const SkIPoint& pt : test) {
diff --git a/docs/examples/IPoint_010.cpp b/docs/examples/IPoint_010.cpp
index cfd975a..2299481 100644
--- a/docs/examples/IPoint_010.cpp
+++ b/docs/examples/IPoint_010.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=dd89dc48dff69b53d99530b120f204bc
-REG_FIDDLE(IPoint_010, 256, 256, true, 0) {
+REG_FIDDLE(IPoint_notequal_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIPoint test[] = { {0, -0}, {-1, -2}, {SK_MaxS32, -1}, {SK_NaN32, -1} };
     for (const SkIPoint& pt : test) {
diff --git a/docs/examples/IPoint_011.cpp b/docs/examples/IPoint_011.cpp
index 3990bbc..92282e6 100644
--- a/docs/examples/IPoint_011.cpp
+++ b/docs/examples/IPoint_011.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e626e26bf557857b824aa7d03f723e0f
-REG_FIDDLE(IPoint_011, 256, 64, false, 0) {
+REG_FIDDLE(IPoint_subtract_operator, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     auto draw_lines = [=](const SkIPoint pts[], size_t count, SkPaint& paint) -> void {
         for (size_t i = 0; i < count - 1; ++i) {
diff --git a/docs/examples/IPoint_012.cpp b/docs/examples/IPoint_012.cpp
index 7176db6..2cd012d 100644
--- a/docs/examples/IPoint_012.cpp
+++ b/docs/examples/IPoint_012.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=63f4cba971c6d8434595906f865b5a29
-REG_FIDDLE(IPoint_012, 256, 128, false, 0) {
+REG_FIDDLE(IPoint_add_operator, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     auto draw_lines = [=](const SkIPoint pts[], size_t count, SkPaint& paint) -> void {
         for (size_t i = 0; i < count - 1; ++i) {
diff --git a/docs/examples/IRect_000.cpp b/docs/examples/IRect_000.cpp
index 6941bdc..877063e 100644
--- a/docs/examples/IRect_000.cpp
+++ b/docs/examples/IRect_000.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0ade3971c1d2616564992e286966ec8a
-REG_FIDDLE(IRect_000, 256, 256, true, 0) {
+REG_FIDDLE(IRect_MakeEmpty, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect rect = SkIRect::MakeEmpty();
     SkDebugf("MakeEmpty isEmpty: %s\n", rect.isEmpty() ? "true" : "false");
diff --git a/docs/examples/IRect_001.cpp b/docs/examples/IRect_001.cpp
index 56520ba..9e44136 100644
--- a/docs/examples/IRect_001.cpp
+++ b/docs/examples/IRect_001.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e36827a1a6ae2b1c26e7a8a08f325a07
-REG_FIDDLE(IRect_001, 256, 256, true, 0) {
+REG_FIDDLE(IRect_MakeWH, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect rect1 = SkIRect::MakeWH(25, 35);
     SkIRect rect2 = SkIRect::MakeSize({25, 35});
diff --git a/docs/examples/IRect_002.cpp b/docs/examples/IRect_002.cpp
index 69b5321..12b4efd 100644
--- a/docs/examples/IRect_002.cpp
+++ b/docs/examples/IRect_002.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c6586ff8d24869c780169b0d19c75df6
-REG_FIDDLE(IRect_002, 256, 256, true, 0) {
+REG_FIDDLE(IRect_MakeSize, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkSize size = {25.5f, 35.5f};
     SkIRect rect = SkIRect::MakeSize(size.toRound());
diff --git a/docs/examples/IRect_003.cpp b/docs/examples/IRect_003.cpp
index 92fdaa2..417081f 100644
--- a/docs/examples/IRect_003.cpp
+++ b/docs/examples/IRect_003.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ec1473b700c594f2df9749a12a06b89b
-REG_FIDDLE(IRect_003, 256, 256, true, 0) {
+REG_FIDDLE(IRect_MakeLTRB, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect rect = SkIRect::MakeLTRB(5, 35, 15, 25);
     SkDebugf("rect: %d, %d, %d, %d  isEmpty: %s\n", rect.left(), rect.top(), rect.right(),
diff --git a/docs/examples/IRect_004.cpp b/docs/examples/IRect_004.cpp
index 72fb980..45cf195 100644
--- a/docs/examples/IRect_004.cpp
+++ b/docs/examples/IRect_004.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=598ee14350bd1d961cae6b36fa3df17e
-REG_FIDDLE(IRect_004, 256, 256, true, 0) {
+REG_FIDDLE(IRect_MakeXYWH, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect rect = SkIRect::MakeXYWH(5, 35, -15, 25);
     SkDebugf("rect: %d, %d, %d, %d  isEmpty: %s\n", rect.left(), rect.top(), rect.right(),
diff --git a/docs/examples/IRect_005.cpp b/docs/examples/IRect_005.cpp
index 9cae9c5..325ba21 100644
--- a/docs/examples/IRect_005.cpp
+++ b/docs/examples/IRect_005.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=caf38ea4431bc246ba198f6a8c2b0f01
-REG_FIDDLE(IRect_005, 256, 256, true, 0) {
+REG_FIDDLE(IRect_left, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect unsorted = { 15, 5, 10, 25 };
     SkDebugf("unsorted.fLeft: %d unsorted.left(): %d\n", unsorted.fLeft, unsorted.left());
diff --git a/docs/examples/IRect_006.cpp b/docs/examples/IRect_006.cpp
index c21356c..fe75a08 100644
--- a/docs/examples/IRect_006.cpp
+++ b/docs/examples/IRect_006.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=cbec1ae6530e95943775450b1d11f19e
-REG_FIDDLE(IRect_006, 256, 256, true, 0) {
+REG_FIDDLE(IRect_top, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect unsorted = { 15, 25, 10, 5 };
     SkDebugf("unsorted.fTop: %d unsorted.top(): %d\n", unsorted.fTop, unsorted.top());
diff --git a/docs/examples/IRect_007.cpp b/docs/examples/IRect_007.cpp
index ec10f3b..36fa738 100644
--- a/docs/examples/IRect_007.cpp
+++ b/docs/examples/IRect_007.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=97e210976f1ee0387b30c70635cf114f
-REG_FIDDLE(IRect_007, 256, 256, true, 0) {
+REG_FIDDLE(IRect_right, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect unsorted = { 15, 25, 10, 5 };
     SkDebugf("unsorted.fRight: %d unsorted.right(): %d\n", unsorted.fRight, unsorted.right());
diff --git a/docs/examples/IRect_008.cpp b/docs/examples/IRect_008.cpp
index 162b2b8..ef7ed72 100644
--- a/docs/examples/IRect_008.cpp
+++ b/docs/examples/IRect_008.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c32afebc296054a181621648a184b8e3
-REG_FIDDLE(IRect_008, 256, 256, true, 0) {
+REG_FIDDLE(IRect_bottom, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect unsorted = { 15, 25, 10, 5 };
     SkDebugf("unsorted.fBottom: %d unsorted.bottom(): %d\n", unsorted.fBottom, unsorted.bottom());
diff --git a/docs/examples/IRect_009.cpp b/docs/examples/IRect_009.cpp
index 7c46dca..106842c 100644
--- a/docs/examples/IRect_009.cpp
+++ b/docs/examples/IRect_009.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=2a59cbfd1330a0db520d6ebb2b7c68c7
-REG_FIDDLE(IRect_009, 256, 256, true, 0) {
+REG_FIDDLE(IRect_x, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect unsorted = { 15, 5, 10, 25 };
     SkDebugf("unsorted.fLeft: %d unsorted.x(): %d\n", unsorted.fLeft, unsorted.x());
diff --git a/docs/examples/IRect_010.cpp b/docs/examples/IRect_010.cpp
index 7962761..710623a 100644
--- a/docs/examples/IRect_010.cpp
+++ b/docs/examples/IRect_010.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6ea461e71f7fc80605818fbf493caa63
-REG_FIDDLE(IRect_010, 256, 256, true, 0) {
+REG_FIDDLE(IRect_y, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect unsorted = { 15, 25, 10, 5 };
     SkDebugf("unsorted.fTop: %d unsorted.y(): %d\n", unsorted.fTop, unsorted.y());
diff --git a/docs/examples/IRect_011.cpp b/docs/examples/IRect_011.cpp
index 4769848..820e5cb 100644
--- a/docs/examples/IRect_011.cpp
+++ b/docs/examples/IRect_011.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4acfbe051805940210c8916a94794142
-REG_FIDDLE(IRect_011, 256, 256, true, 0) {
+REG_FIDDLE(IRect_width, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect unsorted = { 15, 25, 10, 5 };
     SkDebugf("unsorted width: %d\n", unsorted.width());
diff --git a/docs/examples/IRect_012.cpp b/docs/examples/IRect_012.cpp
index 98dccee..c027438 100644
--- a/docs/examples/IRect_012.cpp
+++ b/docs/examples/IRect_012.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=63977f97999bbd6eecfdcc7575d75492
-REG_FIDDLE(IRect_012, 256, 256, true, 0) {
+REG_FIDDLE(IRect_width64, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect large = { -2147483647, 1, 2147483644, 2 };
     SkDebugf("width: %d width64: %lld\n", large.width(), large.width64());
diff --git a/docs/examples/IRect_013.cpp b/docs/examples/IRect_013.cpp
index adfc509..bedecb2 100644
--- a/docs/examples/IRect_013.cpp
+++ b/docs/examples/IRect_013.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0175bae87fafcd9433ae661574695586
-REG_FIDDLE(IRect_013, 256, 256, true, 0) {
+REG_FIDDLE(IRect_height, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect unsorted = { 15, 25, 10, 20 };
     SkDebugf("unsorted height: %d\n", unsorted.height());
diff --git a/docs/examples/IRect_014.cpp b/docs/examples/IRect_014.cpp
index 1bf700b..eab2d3c 100644
--- a/docs/examples/IRect_014.cpp
+++ b/docs/examples/IRect_014.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=02dd98716e54bbd8c2f0ff23b7ef98cf
-REG_FIDDLE(IRect_014, 256, 256, true, 0) {
+REG_FIDDLE(IRect_height64, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect large = { 1, -2147483647, 2, 2147483644 };
     SkDebugf("height: %d height64: %lld\n", large.height(), large.height64());
diff --git a/docs/examples/IRect_015.cpp b/docs/examples/IRect_015.cpp
index d0138f5..3954609 100644
--- a/docs/examples/IRect_015.cpp
+++ b/docs/examples/IRect_015.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8b3224641cb3053a7b8a5798b6cd1cf6
-REG_FIDDLE(IRect_015, 256, 256, true, 0) {
+REG_FIDDLE(IRect_size, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* prefix, const SkIRect& rect) -> void {
         SkISize size = rect.size();
diff --git a/docs/examples/IRect_016.cpp b/docs/examples/IRect_016.cpp
index a0b5d02..27dd212 100644
--- a/docs/examples/IRect_016.cpp
+++ b/docs/examples/IRect_016.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=edaad064b6de249b7a7c768dfa000adc
-REG_FIDDLE(IRect_016, 256, 256, true, 0) {
+REG_FIDDLE(IRect_isEmpty, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect tests[] = {{20, 40, 10, 50}, {20, 40, 20, 50}};
     for (auto rect : tests) {
diff --git a/docs/examples/IRect_017.cpp b/docs/examples/IRect_017.cpp
index a2c2a41..02e7972 100644
--- a/docs/examples/IRect_017.cpp
+++ b/docs/examples/IRect_017.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=eb905faa1084ccab3ad0605df4c27ea4
-REG_FIDDLE(IRect_017, 256, 256, true, 0) {
+REG_FIDDLE(IRect_isEmpty64, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect tests[] = {{20, 40, 10, 50}, {20, 40, 20, 50}};
     for (auto rect : tests) {
diff --git a/docs/examples/IRect_018.cpp b/docs/examples/IRect_018.cpp
index 2c9bd89..2e2168e 100644
--- a/docs/examples/IRect_018.cpp
+++ b/docs/examples/IRect_018.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=bd8f028d9051062816c9116fea4237b2
-REG_FIDDLE(IRect_018, 256, 256, true, 0) {
+REG_FIDDLE(IRect_equal_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect test = {0, 0, 2, 2};
     SkIRect sorted = test.makeSorted();
diff --git a/docs/examples/IRect_019.cpp b/docs/examples/IRect_019.cpp
index 144a4b4..25b6bea 100644
--- a/docs/examples/IRect_019.cpp
+++ b/docs/examples/IRect_019.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6c4acd8aa203f632b7d85cae672abf4d
-REG_FIDDLE(IRect_019, 256, 256, true, 0) {
+REG_FIDDLE(IRect_notequal_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect test = {2, 2, 0, 0};
     SkIRect sorted = test.makeSorted();
diff --git a/docs/examples/IRect_020.cpp b/docs/examples/IRect_020.cpp
index a42cf95..ddbafdd 100644
--- a/docs/examples/IRect_020.cpp
+++ b/docs/examples/IRect_020.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=94039c3cc9e911c8ab2993d56fd06210
-REG_FIDDLE(IRect_020, 256, 256, true, 0) {
+REG_FIDDLE(IRect_setEmpty, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect rect = {3, 4, 1, 2};
     for (int i = 0; i < 2; ++i) {
diff --git a/docs/examples/IRect_021.cpp b/docs/examples/IRect_021.cpp
index 094ec31..ba9b815 100644
--- a/docs/examples/IRect_021.cpp
+++ b/docs/examples/IRect_021.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1912c37076b7f3bf6aebfa167e971bec
-REG_FIDDLE(IRect_021, 256, 256, true, 0) {
+REG_FIDDLE(IRect_set, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect rect1 = {3, 4, 1, 2};
     SkDebugf("rect1: {%d, %d, %d, %d}\n", rect1.fLeft, rect1.fTop, rect1.fRight, rect1.fBottom);
diff --git a/docs/examples/IRect_022.cpp b/docs/examples/IRect_022.cpp
index 8a4a284..c55bec5 100644
--- a/docs/examples/IRect_022.cpp
+++ b/docs/examples/IRect_022.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ead6bdcf2ae77ec19a1c5a96f5b31af8
-REG_FIDDLE(IRect_022, 256, 256, true, 0) {
+REG_FIDDLE(IRect_setLTRB, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect rect1 = {3, 4, 1, 2};
     SkDebugf("rect1: {%d, %d, %d, %d}\n", rect1.fLeft, rect1.fTop, rect1.fRight, rect1.fBottom);
diff --git a/docs/examples/IRect_023.cpp b/docs/examples/IRect_023.cpp
index 5ab3100..ccd6ceb 100644
--- a/docs/examples/IRect_023.cpp
+++ b/docs/examples/IRect_023.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0e1db8c86678c004e504f47641b44b17
-REG_FIDDLE(IRect_023, 256, 256, true, 0) {
+REG_FIDDLE(IRect_setXYWH, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect rect;
     rect.setXYWH(5, 35, -15, 25);
diff --git a/docs/examples/IRect_024.cpp b/docs/examples/IRect_024.cpp
index 6faab14..5d1bd3e 100644
--- a/docs/examples/IRect_024.cpp
+++ b/docs/examples/IRect_024.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=737c747df07ddf392c05970440de0927
-REG_FIDDLE(IRect_024, 256, 256, true, 0) {
+REG_FIDDLE(IRect_makeOffset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect rect = { 10, 50, 20, 60 };
     SkDebugf("rect: %d, %d, %d, %d  isEmpty: %s\n", rect.left(), rect.top(), rect.right(),
diff --git a/docs/examples/IRect_025.cpp b/docs/examples/IRect_025.cpp
index 07c19be..f15b0db 100644
--- a/docs/examples/IRect_025.cpp
+++ b/docs/examples/IRect_025.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1db94b2c76e0a7a71856532335fa56b6
-REG_FIDDLE(IRect_025, 256, 256, true, 0) {
+REG_FIDDLE(IRect_makeInset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect rect = { 10, 50, 20, 60 };
     SkDebugf("rect: %d, %d, %d, %d  isEmpty: %s\n", rect.left(), rect.top(), rect.right(),
diff --git a/docs/examples/IRect_026.cpp b/docs/examples/IRect_026.cpp
index 09d1e6c..c585202 100644
--- a/docs/examples/IRect_026.cpp
+++ b/docs/examples/IRect_026.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=240e2953e3455c08f6d89255feff8416
-REG_FIDDLE(IRect_026, 256, 256, true, 0) {
+REG_FIDDLE(IRect_makeOutset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect rect = { 10, 50, 20, 60 };
     SkDebugf("rect: %d, %d, %d, %d  isEmpty: %s\n", rect.left(), rect.top(), rect.right(),
diff --git a/docs/examples/IRect_027.cpp b/docs/examples/IRect_027.cpp
index cfb1e94..d261351 100644
--- a/docs/examples/IRect_027.cpp
+++ b/docs/examples/IRect_027.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=77e633b2174ffae923c038b303418b50
-REG_FIDDLE(IRect_027, 256, 256, true, 0) {
+REG_FIDDLE(IRect_offset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect rect = { 10, 14, 50, 73 };
     rect.offset(5, 13);
diff --git a/docs/examples/IRect_028.cpp b/docs/examples/IRect_028.cpp
index 202ef37..0742206 100644
--- a/docs/examples/IRect_028.cpp
+++ b/docs/examples/IRect_028.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=31a4c575499e76def651eb65994876f0
-REG_FIDDLE(IRect_028, 256, 256, true, 0) {
+REG_FIDDLE(IRect_offset_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect rect = { 10, 14, 50, 73 };
     rect.offset({5, 13});
diff --git a/docs/examples/IRect_029.cpp b/docs/examples/IRect_029.cpp
index 1e7777b..22ec0bf 100644
--- a/docs/examples/IRect_029.cpp
+++ b/docs/examples/IRect_029.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a2734ff23b35653956a3002e5c29ff91
-REG_FIDDLE(IRect_029, 256, 256, true, 0) {
+REG_FIDDLE(IRect_offsetTo, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect rect = { 10, 14, 50, 73 };
     rect.offsetTo(15, 27);
diff --git a/docs/examples/IRect_030.cpp b/docs/examples/IRect_030.cpp
index 4c0cbca..45f2f92 100644
--- a/docs/examples/IRect_030.cpp
+++ b/docs/examples/IRect_030.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9debaded1aa8bdf5077a4de0b3015b8f
-REG_FIDDLE(IRect_030, 256, 256, true, 0) {
+REG_FIDDLE(IRect_inset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect rect = { 10, 14, 50, 73 };
     rect.inset(5, 13);
diff --git a/docs/examples/IRect_031.cpp b/docs/examples/IRect_031.cpp
index bd4d7f7..de08251 100644
--- a/docs/examples/IRect_031.cpp
+++ b/docs/examples/IRect_031.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3fc62ca29428195f33a3a02b3eb74e4f
-REG_FIDDLE(IRect_031, 256, 256, true, 0) {
+REG_FIDDLE(IRect_outset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect rect = { 10, 14, 50, 73 };
     rect.outset(5, 13);
diff --git a/docs/examples/IRect_032.cpp b/docs/examples/IRect_032.cpp
index c086571..e624c52 100644
--- a/docs/examples/IRect_032.cpp
+++ b/docs/examples/IRect_032.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8dc91284493dd012cca3d0ce4c66bda4
-REG_FIDDLE(IRect_032, 256, 256, true, 0) {
+REG_FIDDLE(IRect_adjust, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect rect = { 8, 11, 19, 22 };
     rect.adjust(2, -1, 1, -2);
diff --git a/docs/examples/IRect_033.cpp b/docs/examples/IRect_033.cpp
index 13b17d1..885c8e6 100644
--- a/docs/examples/IRect_033.cpp
+++ b/docs/examples/IRect_033.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a7958a4e0668f5cf805a8e78eb57f51d
-REG_FIDDLE(IRect_033, 256, 256, true, 0) {
+REG_FIDDLE(IRect_contains, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect rect = { 30, 50, 40, 60 };
     SkIPoint pts[] = { { 30, 50}, { 40, 50}, { 30, 60} };
diff --git a/docs/examples/IRect_034.cpp b/docs/examples/IRect_034.cpp
index 794d4b3..359b994 100644
--- a/docs/examples/IRect_034.cpp
+++ b/docs/examples/IRect_034.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=eae55f284818d9965ec5834747d14a48
-REG_FIDDLE(IRect_034, 256, 256, true, 0) {
+REG_FIDDLE(IRect_contains_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect rect = { 30, 50, 40, 60 };
     SkIRect tests[] = { { 30, 50, 31, 51}, { 39, 49, 40, 50}, { 29, 59, 30, 60} };
diff --git a/docs/examples/IRect_035.cpp b/docs/examples/IRect_035.cpp
index 0c4cb4f..800c435 100644
--- a/docs/examples/IRect_035.cpp
+++ b/docs/examples/IRect_035.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ee0185db622602b4eb19583c2f42c734
-REG_FIDDLE(IRect_035, 256, 256, true, 0) {
+REG_FIDDLE(IRect_contains_3, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect rect = { 30, 50, 40, 60 };
     SkIRect tests[] = { { 30, 50, 31, 51}, { 39, 49, 40, 50}, { 29, 59, 30, 60} };
diff --git a/docs/examples/IRect_036.cpp b/docs/examples/IRect_036.cpp
index 64cc462..0a6d3f9 100644
--- a/docs/examples/IRect_036.cpp
+++ b/docs/examples/IRect_036.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=acbd79ffb304f332e4b38ef18e19663e
-REG_FIDDLE(IRect_036, 256, 256, true, 0) {
+REG_FIDDLE(IRect_contains_4, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect rect = { 30, 50, 40, 60 };
     SkRect tests[] = { { 30, 50, 31, 51}, { 39, 49, 40, 50}, { 29, 59, 30, 60} };
diff --git a/docs/examples/IRect_037.cpp b/docs/examples/IRect_037.cpp
index cb6ab2f..223ad75 100644
--- a/docs/examples/IRect_037.cpp
+++ b/docs/examples/IRect_037.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=fef2a36bee224e92500199fa9d3cbb8b
-REG_FIDDLE(IRect_037, 256, 256, true, 0) {
+REG_FIDDLE(IRect_containsNoEmptyCheck, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect rect = { 30, 50, 40, 60 };
     SkIRect tests[] = { { 30, 50, 31, 51}, { 39, 49, 40, 50}, { 29, 59, 30, 60} };
diff --git a/docs/examples/IRect_038.cpp b/docs/examples/IRect_038.cpp
index 4faaf27..0da1a3a 100644
--- a/docs/examples/IRect_038.cpp
+++ b/docs/examples/IRect_038.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8f91f58001d9c10420eb146fbc169af4
-REG_FIDDLE(IRect_038, 256, 256, true, 0) {
+REG_FIDDLE(IRect_containsNoEmptyCheck_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect rect = { 30, 50, 40, 60 };
     SkIRect tests[] = { { 30, 50, 31, 51}, { 39, 49, 40, 50}, { 29, 59, 30, 60} };
diff --git a/docs/examples/IRect_039.cpp b/docs/examples/IRect_039.cpp
index 29a7d16..ae09f44 100644
--- a/docs/examples/IRect_039.cpp
+++ b/docs/examples/IRect_039.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ea233f5d5d1ae0e76fc6f2eb371c927a
-REG_FIDDLE(IRect_039, 256, 256, true, 0) {
+REG_FIDDLE(IRect_intersect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect leftRect =  { 10, 40, 50, 80 };
     SkIRect rightRect = { 30, 60, 70, 90 };
diff --git a/docs/examples/IRect_040.cpp b/docs/examples/IRect_040.cpp
index f65c06a..41506eb 100644
--- a/docs/examples/IRect_040.cpp
+++ b/docs/examples/IRect_040.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b2db0573aacf99ca52776c5522459d02
-REG_FIDDLE(IRect_040, 256, 256, true, 0) {
+REG_FIDDLE(IRect_intersect_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect result;
     bool intersected = result.intersect({ 10, 40, 50, 80 }, { 30, 60, 70, 90 });
diff --git a/docs/examples/IRect_041.cpp b/docs/examples/IRect_041.cpp
index 901d569..896c817 100644
--- a/docs/examples/IRect_041.cpp
+++ b/docs/examples/IRect_041.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d35fbc9fdea71df8b8a12fd3da50d11c
-REG_FIDDLE(IRect_041, 256, 256, true, 0) {
+REG_FIDDLE(IRect_intersectNoEmptyCheck, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect result;
     if (result.intersectNoEmptyCheck({ 10, 40, 50, 80 }, { 30, 60, 70, 90 })) {
diff --git a/docs/examples/IRect_042.cpp b/docs/examples/IRect_042.cpp
index 609964e..78ac267 100644
--- a/docs/examples/IRect_042.cpp
+++ b/docs/examples/IRect_042.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=200422990eded2f754ab9893118f2645
-REG_FIDDLE(IRect_042, 256, 256, true, 0) {
+REG_FIDDLE(IRect_intersect_3, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect leftRect =  { 10, 40, 50, 80 };
     SkDebugf("%s intersection: ", leftRect.intersect(30, 60, 70, 90) ? "" : "no ");
diff --git a/docs/examples/IRect_043.cpp b/docs/examples/IRect_043.cpp
index 299df66..51ccbbf 100644
--- a/docs/examples/IRect_043.cpp
+++ b/docs/examples/IRect_043.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0c67cf8981389efc7108369fb9b7976b
-REG_FIDDLE(IRect_043, 256, 256, true, 0) {
+REG_FIDDLE(IRect_Intersects, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkDebugf("%s intersection", SkIRect::Intersects({10, 40, 50, 80}, {30, 60, 70, 90}) ? "" : "no ");
 }
diff --git a/docs/examples/IRect_044.cpp b/docs/examples/IRect_044.cpp
index 5aafdd3..8e69061 100644
--- a/docs/examples/IRect_044.cpp
+++ b/docs/examples/IRect_044.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=dba234d15162fb5b26e1a96529ca6a2a
-REG_FIDDLE(IRect_044, 256, 256, true, 0) {
+REG_FIDDLE(IRect_IntersectsNoEmptyCheck, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkDebugf("%s intersection", SkIRect::IntersectsNoEmptyCheck(
             {10, 40, 50, 80}, {30, 60, 70, 90}) ? "" : "no ");
diff --git a/docs/examples/IRect_045.cpp b/docs/examples/IRect_045.cpp
index 0d1ea1f..60e8a3f 100644
--- a/docs/examples/IRect_045.cpp
+++ b/docs/examples/IRect_045.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c00ef06289d21db70340e465690e0e08
-REG_FIDDLE(IRect_045, 256, 256, true, 0) {
+REG_FIDDLE(IRect_join, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect rect = { 10, 20, 15, 25};
     rect.join(50, 60, 55, 65);
diff --git a/docs/examples/IRect_046.cpp b/docs/examples/IRect_046.cpp
index 55e03c0..052b541 100644
--- a/docs/examples/IRect_046.cpp
+++ b/docs/examples/IRect_046.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=75fd81c1d3512e63890d085593018876
-REG_FIDDLE(IRect_046, 256, 256, true, 0) {
+REG_FIDDLE(IRect_join_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect rect = { 10, 20, 15, 25};
     rect.join({50, 60, 55, 65});
diff --git a/docs/examples/IRect_047.cpp b/docs/examples/IRect_047.cpp
index a5892ab..6c5c515 100644
--- a/docs/examples/IRect_047.cpp
+++ b/docs/examples/IRect_047.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=fa12547fcfd4c1aef3db1a1f6aae0fe4
-REG_FIDDLE(IRect_047, 256, 256, true, 0) {
+REG_FIDDLE(IRect_sort, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect rect = { 30, 50, 20, 10 };
     SkDebugf("rect: %d, %d, %d, %d\n", rect.fLeft, rect.fTop, rect.fRight, rect.fBottom);
diff --git a/docs/examples/IRect_048.cpp b/docs/examples/IRect_048.cpp
index 69633de..c8cc096 100644
--- a/docs/examples/IRect_048.cpp
+++ b/docs/examples/IRect_048.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=de89926c374aa16427916900b89a3441
-REG_FIDDLE(IRect_048, 256, 256, true, 0) {
+REG_FIDDLE(IRect_makeSorted, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect rect = { 30, 50, 20, 10 };
     SkDebugf("rect: %d, %d, %d, %d\n", rect.fLeft, rect.fTop, rect.fRight, rect.fBottom);
diff --git a/docs/examples/IRect_049.cpp b/docs/examples/IRect_049.cpp
index 14f1917..b59a35a 100644
--- a/docs/examples/IRect_049.cpp
+++ b/docs/examples/IRect_049.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=65e0b9b52e907902630577941fb3ed6d
-REG_FIDDLE(IRect_049, 256, 256, true, 0) {
+REG_FIDDLE(IRect_EmptyIRect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const SkIRect& rect = SkIRect::EmptyIRect();
     SkDebugf("rect: %d, %d, %d, %d\n", rect.fLeft, rect.fTop, rect.fRight, rect.fBottom);
diff --git a/docs/examples/ImageInfo_000.cpp b/docs/examples/ImageInfo_000.cpp
index 9591910..92fb99f 100644
--- a/docs/examples/ImageInfo_000.cpp
+++ b/docs/examples/ImageInfo_000.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=79146a1a41d58d22582fdc567c6ffe4e
-REG_FIDDLE(ImageInfo_000, 256, 64, false, 0) {
+REG_FIDDLE(Alpha_Type_Opaque, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPMColor color = SkPreMultiplyARGB(255, 50, 100, 150);
     SkString s;
diff --git a/docs/examples/ImageInfo_001.cpp b/docs/examples/ImageInfo_001.cpp
index 9b63150..ae3bb5f 100644
--- a/docs/examples/ImageInfo_001.cpp
+++ b/docs/examples/ImageInfo_001.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ad696b39c915803d566e96896ec3a36c
-REG_FIDDLE(ImageInfo_001, 256, 64, false, 0) {
+REG_FIDDLE(Alpha_Type_Premul, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPMColor color = SkPreMultiplyARGB(150, 50, 100, 150);
     SkString s;
diff --git a/docs/examples/ImageInfo_002.cpp b/docs/examples/ImageInfo_002.cpp
index c80bb14..37a4f60 100644
--- a/docs/examples/ImageInfo_002.cpp
+++ b/docs/examples/ImageInfo_002.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b8216a9e5ff5bc61a0e46eba7d36307b
-REG_FIDDLE(ImageInfo_002, 256, 64, false, 0) {
+REG_FIDDLE(Alpha_Type_Unpremul, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     SkColor color = SkColorSetARGB(150, 50, 100, 255);
     SkString s;
diff --git a/docs/examples/ImageInfo_003.cpp b/docs/examples/ImageInfo_003.cpp
index b530ca2..49b5c22 100644
--- a/docs/examples/ImageInfo_003.cpp
+++ b/docs/examples/ImageInfo_003.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=21ae21e4ce53d2018e042dd457997300
-REG_FIDDLE(ImageInfo_003, 256, 64, false, 0) {
+REG_FIDDLE(Color_Type_Alpha_8, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     canvas->scale(16, 16);
     SkBitmap bitmap;
diff --git a/docs/examples/ImageInfo_004.cpp b/docs/examples/ImageInfo_004.cpp
index 58e263d..8cbcfdf 100644
--- a/docs/examples/ImageInfo_004.cpp
+++ b/docs/examples/ImageInfo_004.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=7e7c46bb4572e21e13529ff364eb0a9c
-REG_FIDDLE(ImageInfo_004, 256, 96, false, 0) {
+REG_FIDDLE(Color_Type_RGB_565, 256, 96, false, 0) {
 void draw(SkCanvas* canvas) {
     canvas->scale(16, 16);
     SkBitmap bitmap;
diff --git a/docs/examples/ImageInfo_005.cpp b/docs/examples/ImageInfo_005.cpp
index 4278eaf..3c4f3f3 100644
--- a/docs/examples/ImageInfo_005.cpp
+++ b/docs/examples/ImageInfo_005.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=33a360c3404ac21db801943336843d8e
-REG_FIDDLE(ImageInfo_005, 256, 96, false, 0) {
+REG_FIDDLE(Color_Type_ARGB_4444, 256, 96, false, 0) {
 void draw(SkCanvas* canvas) {
     canvas->scale(16, 16);
     SkBitmap bitmap;
diff --git a/docs/examples/ImageInfo_006.cpp b/docs/examples/ImageInfo_006.cpp
index 740b9a1..d598cd8 100644
--- a/docs/examples/ImageInfo_006.cpp
+++ b/docs/examples/ImageInfo_006.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=947922a19d59893fe7f9d9ee1954379b
-REG_FIDDLE(ImageInfo_006, 256, 96, false, 0) {
+REG_FIDDLE(Color_Type_RGBA_8888, 256, 96, false, 0) {
 void draw(SkCanvas* canvas) {
     canvas->scale(16, 16);
     SkBitmap bitmap;
diff --git a/docs/examples/ImageInfo_007.cpp b/docs/examples/ImageInfo_007.cpp
index dd21616..04adc46 100644
--- a/docs/examples/ImageInfo_007.cpp
+++ b/docs/examples/ImageInfo_007.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4260d6cc15db2c60c07f6fdc8d9ae425
-REG_FIDDLE(ImageInfo_007, 256, 96, false, 0) {
+REG_FIDDLE(Color_Type_RGB_888, 256, 96, false, 0) {
 void draw(SkCanvas* canvas) {
     canvas->scale(16, 16);
     SkBitmap bitmap;
diff --git a/docs/examples/ImageInfo_008.cpp b/docs/examples/ImageInfo_008.cpp
index f8a6b58..94ff42e 100644
--- a/docs/examples/ImageInfo_008.cpp
+++ b/docs/examples/ImageInfo_008.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=945ce5344fce5470f8604b2e06e9f9ae
-REG_FIDDLE(ImageInfo_008, 256, 96, false, 0) {
+REG_FIDDLE(Color_Type_BGRA_8888, 256, 96, false, 0) {
 void draw(SkCanvas* canvas) {
     canvas->scale(16, 16);
     SkBitmap bitmap;
diff --git a/docs/examples/ImageInfo_009.cpp b/docs/examples/ImageInfo_009.cpp
index e36509f..4244d6f 100644
--- a/docs/examples/ImageInfo_009.cpp
+++ b/docs/examples/ImageInfo_009.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1282dc1127ce1b0061544619ae4de0f0
-REG_FIDDLE(ImageInfo_009, 256, 96, false, 0) {
+REG_FIDDLE(Color_Type_RGBA_1010102, 256, 96, false, 0) {
 void draw(SkCanvas* canvas) {
     canvas->scale(16, 16);
     SkBitmap bitmap;
diff --git a/docs/examples/ImageInfo_010.cpp b/docs/examples/ImageInfo_010.cpp
index fbcc19a..deea7bb 100644
--- a/docs/examples/ImageInfo_010.cpp
+++ b/docs/examples/ImageInfo_010.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=92f81aa0459230459600a01e79ccff29
-REG_FIDDLE(ImageInfo_010, 256, 96, false, 0) {
+REG_FIDDLE(Color_Type_RGB_101010, 256, 96, false, 0) {
 void draw(SkCanvas* canvas) {
     canvas->scale(16, 16);
     SkBitmap bitmap;
diff --git a/docs/examples/ImageInfo_011.cpp b/docs/examples/ImageInfo_011.cpp
index 0d54ca4..3f493be 100644
--- a/docs/examples/ImageInfo_011.cpp
+++ b/docs/examples/ImageInfo_011.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=93da0eb0b6722a4f33dc7dae094abf0b
-REG_FIDDLE(ImageInfo_011, 256, 64, false, 0) {
+REG_FIDDLE(Color_Type_Gray_8, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     canvas->scale(16, 16);
     SkBitmap bitmap;
diff --git a/docs/examples/ImageInfo_012.cpp b/docs/examples/ImageInfo_012.cpp
index 0ab5ee3..e89aa62 100644
--- a/docs/examples/ImageInfo_012.cpp
+++ b/docs/examples/ImageInfo_012.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=dd81527bbdf5eaae7dd21ac04ab84f9e
-REG_FIDDLE(ImageInfo_012, 256, 96, false, 0) {
+REG_FIDDLE(Color_Type_RGBA_F16, 256, 96, false, 0) {
 union FloatUIntUnion {
     uint32_t fUInt;
     float    fFloat;
diff --git a/docs/examples/ImageInfo_013.cpp b/docs/examples/ImageInfo_013.cpp
index 88c2c26..dc3c71b 100644
--- a/docs/examples/ImageInfo_013.cpp
+++ b/docs/examples/ImageInfo_013.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=09ef49d07cb7005ba3e34d5ea53896f5
-REG_FIDDLE(ImageInfo_013, 256, 192, false, 0) {
+REG_FIDDLE(ColorTypeBytesPerPixel, 256, 192, false, 0) {
 void draw(SkCanvas* canvas) {
     const char* colors[] = { "Unknown", "Alpha_8", "RGB_565", "ARGB_4444", "RGBA_8888", "RGB_888x",
                              "BGRA_8888", "RGBA_1010102", "RGB_101010x", "Gray_8", "RGBA_F16Norm",
diff --git a/docs/examples/ImageInfo_014.cpp b/docs/examples/ImageInfo_014.cpp
index b77f235..322e118 100644
--- a/docs/examples/ImageInfo_014.cpp
+++ b/docs/examples/ImageInfo_014.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9b3eb5aaa0dfea9feee54e7650fa5446
-REG_FIDDLE(ImageInfo_014, 256, 192, false, 0) {
+REG_FIDDLE(ColorTypeIsAlwaysOpaque, 256, 192, false, 0) {
 void draw(SkCanvas* canvas) {
     const char* colors[] = { "Unknown", "Alpha_8", "RGB_565", "ARGB_4444", "RGBA_8888", "RGB_888x",
                              "BGRA_8888", "RGBA_1010102", "RGB_101010x", "Gray_8", "RGBA_F16Norm",
diff --git a/docs/examples/ImageInfo_015.cpp b/docs/examples/ImageInfo_015.cpp
index 9048824..d85ef88 100644
--- a/docs/examples/ImageInfo_015.cpp
+++ b/docs/examples/ImageInfo_015.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=befac1c29ed21507d367e4d824383a04
-REG_FIDDLE(ImageInfo_015, 256, 640, false, 0) {
+REG_FIDDLE(ColorTypeValidateAlphaType, 256, 640, false, 0) {
 void draw(SkCanvas* canvas) {
     const char* colors[] = { "Unknown", "Alpha_8", "RGB_565", "ARGB_4444", "RGBA_8888", "RGB_888x",
                              "BGRA_8888", "RGBA_1010102", "RGB_101010x", "Gray_8", "RGBA_F16Norm",
diff --git a/docs/examples/ImageInfo_016.cpp b/docs/examples/ImageInfo_016.cpp
index b26855c..afdcb4f 100644
--- a/docs/examples/ImageInfo_016.cpp
+++ b/docs/examples/ImageInfo_016.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f206f698e7a8db3d84334c26b1a702dc
-REG_FIDDLE(ImageInfo_016, 256, 32, false, 0) {
+REG_FIDDLE(ImageInfo_empty_constructor, 256, 32, false, 0) {
 void draw(SkCanvas* canvas) {
     SkImageInfo imageInfo;
     size_t rowBytes;
diff --git a/docs/examples/ImageInfo_017.cpp b/docs/examples/ImageInfo_017.cpp
index 6f19b5e..4fe45a6 100644
--- a/docs/examples/ImageInfo_017.cpp
+++ b/docs/examples/ImageInfo_017.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9f47f9c2a99473f5b1113db48096d586
-REG_FIDDLE(ImageInfo_017, 256, 48, false, 0) {
+REG_FIDDLE(ImageInfo_Make, 256, 48, false, 0) {
 void draw(SkCanvas* canvas) {
     uint8_t storage[][5] = {{ 0xCA, 0xDA, 0xCA, 0xC9, 0xA3 },
                             { 0xAC, 0xA8, 0x89, 0xA7, 0x87 },
diff --git a/docs/examples/ImageInfo_018.cpp b/docs/examples/ImageInfo_018.cpp
index c6f081a..c7c7647 100644
--- a/docs/examples/ImageInfo_018.cpp
+++ b/docs/examples/ImageInfo_018.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=78cea0c4cac205b61ad6f6c982cbd888
-REG_FIDDLE(ImageInfo_018, 256, 128, false, 0) {
+REG_FIDDLE(ImageInfo_MakeN32, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     bitmap.allocPixels(SkImageInfo::MakeN32(16, 16, kPremul_SkAlphaType));
diff --git a/docs/examples/ImageInfo_019.cpp b/docs/examples/ImageInfo_019.cpp
index fe4e74e..978b1a1 100644
--- a/docs/examples/ImageInfo_019.cpp
+++ b/docs/examples/ImageInfo_019.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=de418ccb42471d1589508ef3955f8c53
-REG_FIDDLE(ImageInfo_019, 256, 128, false, 0) {
+REG_FIDDLE(ImageInfo_MakeS32, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     const int width = 256;
     const int height = 32;
diff --git a/docs/examples/ImageInfo_020.cpp b/docs/examples/ImageInfo_020.cpp
index 87c6f76..12bae3e 100644
--- a/docs/examples/ImageInfo_020.cpp
+++ b/docs/examples/ImageInfo_020.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=525650a67e19fdd8ca9f72b7eda65174
-REG_FIDDLE(ImageInfo_020, 256, 128, false, 0) {
+REG_FIDDLE(ImageInfo_MakeN32Premul, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     bitmap.allocPixels(SkImageInfo::MakeN32Premul(18, 18));
diff --git a/docs/examples/ImageInfo_021.cpp b/docs/examples/ImageInfo_021.cpp
index f16bf20..369aee2 100644
--- a/docs/examples/ImageInfo_021.cpp
+++ b/docs/examples/ImageInfo_021.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b9026d7f39029756bd7cab9542c64f4e
-REG_FIDDLE(ImageInfo_021, 256, 128, false, 0) {
+REG_FIDDLE(ImageInfo_MakeN32Premul_2, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     bitmap.allocPixels(SkImageInfo::MakeN32Premul({18, 18}));
diff --git a/docs/examples/ImageInfo_022.cpp b/docs/examples/ImageInfo_022.cpp
index 1d6e025..2dd462b 100644
--- a/docs/examples/ImageInfo_022.cpp
+++ b/docs/examples/ImageInfo_022.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=547388991687b8e10d482d8b1c82777d
-REG_FIDDLE(ImageInfo_022, 256, 64, false, 0) {
+REG_FIDDLE(ImageInfo_MakeA8, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     uint8_t pixels[][8] = { { 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00},
                             { 0x00, 0x7f, 0xff, 0x3f, 0x3f, 0x7f, 0x3f, 0x00},
diff --git a/docs/examples/ImageInfo_023.cpp b/docs/examples/ImageInfo_023.cpp
index 8d3cc5c..6db4bff 100644
--- a/docs/examples/ImageInfo_023.cpp
+++ b/docs/examples/ImageInfo_023.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=75f13a78b28b08c72baf32b7d868de1c
-REG_FIDDLE(ImageInfo_023, 384, 32, false, 0) {
+REG_FIDDLE(ImageInfo_MakeUnknown, 384, 32, false, 0) {
 void draw(SkCanvas* canvas) {
     SkImageInfo info;  // default constructor
     SkString string;
diff --git a/docs/examples/ImageInfo_024.cpp b/docs/examples/ImageInfo_024.cpp
index 1eb2b66..df6c4ff 100644
--- a/docs/examples/ImageInfo_024.cpp
+++ b/docs/examples/ImageInfo_024.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a1af7696ae0cdd6f379546dd1f211b7a
-REG_FIDDLE(ImageInfo_024, 384, 32, false, 0) {
+REG_FIDDLE(ImageInfo_MakeUnknown_2, 384, 32, false, 0) {
 void draw(SkCanvas* canvas) {
     SkImageInfo info;  // default constructor
     SkString string;
diff --git a/docs/examples/ImageInfo_025.cpp b/docs/examples/ImageInfo_025.cpp
index 69aad08..4f8fe39 100644
--- a/docs/examples/ImageInfo_025.cpp
+++ b/docs/examples/ImageInfo_025.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e2491817695290d0218be77f091b8460
-REG_FIDDLE(ImageInfo_025, 256, 96, false, 4) {
+REG_FIDDLE(ImageInfo_width, 256, 96, false, 4) {
 void draw(SkCanvas* canvas) {
     canvas->translate(10, 10);
     canvas->drawBitmap(source, 0, 0);
diff --git a/docs/examples/ImageInfo_026.cpp b/docs/examples/ImageInfo_026.cpp
index 019fc3a..1b28ef7 100644
--- a/docs/examples/ImageInfo_026.cpp
+++ b/docs/examples/ImageInfo_026.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=72c35baaeddca1d912edf93d19429c8e
-REG_FIDDLE(ImageInfo_026, 256, 96, false, 4) {
+REG_FIDDLE(ImageInfo_height, 256, 96, false, 4) {
 void draw(SkCanvas* canvas) {
     canvas->translate(10, 20);
     canvas->drawBitmap(source, 0, 0);
diff --git a/docs/examples/ImageInfo_027.cpp b/docs/examples/ImageInfo_027.cpp
index a7e96ca..753e089 100644
--- a/docs/examples/ImageInfo_027.cpp
+++ b/docs/examples/ImageInfo_027.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=06ecc3ce7f35cc7f930cbc2a662e3105
-REG_FIDDLE(ImageInfo_027, 256, 256, true, 0) {
+REG_FIDDLE(ImageInfo_colorType, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const char* colors[] = {"Unknown", "Alpha_8", "RGB_565", "ARGB_4444", "RGBA_8888", "RGB_888x",
                             "BGRA_8888", "RGBA_1010102", "RGB_101010x", "Gray_8", "RGBA_F16Norm",
diff --git a/docs/examples/ImageInfo_028.cpp b/docs/examples/ImageInfo_028.cpp
index 6d7acd2..f7c140f 100644
--- a/docs/examples/ImageInfo_028.cpp
+++ b/docs/examples/ImageInfo_028.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5c1d2499a4056b6cff38c1cf924158a1
-REG_FIDDLE(ImageInfo_028, 256, 256, true, 0) {
+REG_FIDDLE(ImageInfo_alphaType, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const char* alphas[] = {"Unknown", "Opaque", "Premul", "Unpremul"};
     SkImageInfo info = SkImageInfo::MakeA8(16, 32);
diff --git a/docs/examples/ImageInfo_029.cpp b/docs/examples/ImageInfo_029.cpp
index c4c9189..bcb1e8b 100644
--- a/docs/examples/ImageInfo_029.cpp
+++ b/docs/examples/ImageInfo_029.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5602b816d7cf75e3851274ef36a4c10f
-REG_FIDDLE(ImageInfo_029, 256, 256, true, 0) {
+REG_FIDDLE(ImageInfo_colorSpace, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkImageInfo info = SkImageInfo::MakeN32(16, 32, kPremul_SkAlphaType,
             SkColorSpace::MakeSRGBLinear());
diff --git a/docs/examples/ImageInfo_030.cpp b/docs/examples/ImageInfo_030.cpp
index e342ae6..c575e11 100644
--- a/docs/examples/ImageInfo_030.cpp
+++ b/docs/examples/ImageInfo_030.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=33f65524736736fd91802b4198ba6fa8
-REG_FIDDLE(ImageInfo_030, 256, 256, true, 0) {
+REG_FIDDLE(ImageInfo_refColorSpace, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkImageInfo info1 = SkImageInfo::MakeN32(16, 32, kPremul_SkAlphaType,
             SkColorSpace::MakeSRGBLinear());
diff --git a/docs/examples/ImageInfo_031.cpp b/docs/examples/ImageInfo_031.cpp
index 4929b86..f4180ab 100644
--- a/docs/examples/ImageInfo_031.cpp
+++ b/docs/examples/ImageInfo_031.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b8757200da5be0b43763cf79feb681a7
-REG_FIDDLE(ImageInfo_031, 256, 256, true, 0) {
+REG_FIDDLE(ImageInfo_isEmpty, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     for (int width : { 0, 2 } ) {
         for (int height : { 0, 2 } ) {
diff --git a/docs/examples/ImageInfo_032.cpp b/docs/examples/ImageInfo_032.cpp
index fa13092..fb66406 100644
--- a/docs/examples/ImageInfo_032.cpp
+++ b/docs/examples/ImageInfo_032.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e9bd4f02b6cfb3ac864cb7fee7d7299c
-REG_FIDDLE(ImageInfo_032, 256, 256, true, 0) {
+REG_FIDDLE(ImageInfo_isOpaque, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const int height = 2;
     const int width = 2;
diff --git a/docs/examples/ImageInfo_033.cpp b/docs/examples/ImageInfo_033.cpp
index b7dda33..d9cf3eb 100644
--- a/docs/examples/ImageInfo_033.cpp
+++ b/docs/examples/ImageInfo_033.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d5547cd2b302822aa85b7b0ae3f48458
-REG_FIDDLE(ImageInfo_033, 256, 256, true, 0) {
+REG_FIDDLE(ImageInfo_dimensions, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const int height = 2;
     const int width = 2;
diff --git a/docs/examples/ImageInfo_034.cpp b/docs/examples/ImageInfo_034.cpp
index cf7954b..2e6a382 100644
--- a/docs/examples/ImageInfo_034.cpp
+++ b/docs/examples/ImageInfo_034.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a818be8945cd0c18f99ffe53e90afa48
-REG_FIDDLE(ImageInfo_034, 256, 64, false, 4) {
+REG_FIDDLE(ImageInfo_bounds, 256, 64, false, 4) {
 void draw(SkCanvas* canvas) {
     canvas->scale(.5f, .5f);
     SkImageInfo imageInfo = source.info();
diff --git a/docs/examples/ImageInfo_035.cpp b/docs/examples/ImageInfo_035.cpp
index d4a5099..831f254 100644
--- a/docs/examples/ImageInfo_035.cpp
+++ b/docs/examples/ImageInfo_035.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=22df72732e898a11773fbfe07388a546
-REG_FIDDLE(ImageInfo_035, 256, 144, false, 0) {
+REG_FIDDLE(ImageInfo_gammaCloseToSRGB, 256, 144, false, 0) {
 void draw(SkCanvas* canvas) {
     const int width = 256;
     const int height = 64;
diff --git a/docs/examples/ImageInfo_036.cpp b/docs/examples/ImageInfo_036.cpp
index f86c157..68ab049 100644
--- a/docs/examples/ImageInfo_036.cpp
+++ b/docs/examples/ImageInfo_036.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=cd203a3f9c5fb68272f21f302dd54fbc
-REG_FIDDLE(ImageInfo_036, 256, 144, false, 3) {
+REG_FIDDLE(ImageInfo_makeWH, 256, 144, false, 3) {
 void draw(SkCanvas* canvas) {
     SkImageInfo canvasImageInfo = canvas->imageInfo();
     SkRect canvasBounds = SkRect::Make(canvasImageInfo.bounds());
diff --git a/docs/examples/ImageInfo_037.cpp b/docs/examples/ImageInfo_037.cpp
index e75e23d..7dc4f87 100644
--- a/docs/examples/ImageInfo_037.cpp
+++ b/docs/examples/ImageInfo_037.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e72db006f1bea26feceaef8727ff9818
-REG_FIDDLE(ImageInfo_037, 256, 256, false, 3) {
+REG_FIDDLE(ImageInfo_makeAlphaType, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     const int width = 256;
     const int height = 128;
diff --git a/docs/examples/ImageInfo_038.cpp b/docs/examples/ImageInfo_038.cpp
index ea2d76c..a93dd18 100644
--- a/docs/examples/ImageInfo_038.cpp
+++ b/docs/examples/ImageInfo_038.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3ac267b08b12dc83c95f91d8dd5d70ee
-REG_FIDDLE(ImageInfo_038, 256, 256, false, 0) {
+REG_FIDDLE(ImageInfo_makeColorType, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     const int width = 256;
     const int height = 128;
diff --git a/docs/examples/ImageInfo_039.cpp b/docs/examples/ImageInfo_039.cpp
index 7e90937..ad4b1e0 100644
--- a/docs/examples/ImageInfo_039.cpp
+++ b/docs/examples/ImageInfo_039.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=fe3c5a755d3dde29bba058a583f18901
-REG_FIDDLE(ImageInfo_039, 256, 224, false, 0) {
+REG_FIDDLE(ImageInfo_makeColorSpace, 256, 224, false, 0) {
 void draw(SkCanvas* canvas) {
     const int width = 256;
     const int height = 64;
diff --git a/docs/examples/ImageInfo_040.cpp b/docs/examples/ImageInfo_040.cpp
index 26497ca..f22eef5 100644
--- a/docs/examples/ImageInfo_040.cpp
+++ b/docs/examples/ImageInfo_040.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9b6de4a07b2316228e9340e5a3b82134
-REG_FIDDLE(ImageInfo_040, 256, 256, true, 0) {
+REG_FIDDLE(ImageInfo_bytesPerPixel, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const char* colors[] = {"Unknown", "Alpha_8", "RGB_565", "ARGB_4444", "RGBA_8888", "RGB_888x",
                             "BGRA_8888", "RGBA_1010102", "RGB_101010x", "Gray_8", "RGBA_F16Norm",
diff --git a/docs/examples/ImageInfo_041.cpp b/docs/examples/ImageInfo_041.cpp
index a483f73..74cf3e3 100644
--- a/docs/examples/ImageInfo_041.cpp
+++ b/docs/examples/ImageInfo_041.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e47b911f94fc629f756a829e523a2a89
-REG_FIDDLE(ImageInfo_041, 256, 256, true, 0) {
+REG_FIDDLE(ImageInfo_shiftPerPixel, 256, 256, true, 0) {
 const char* color_type(SkColorType ct) {
     switch (ct) {
         case kUnknown_SkColorType:      return "Unknown";
diff --git a/docs/examples/ImageInfo_042.cpp b/docs/examples/ImageInfo_042.cpp
index 284e238..b50bcd9 100644
--- a/docs/examples/ImageInfo_042.cpp
+++ b/docs/examples/ImageInfo_042.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4b5d3904476726a39f1c3e276d6b6ba7
-REG_FIDDLE(ImageInfo_042, 256, 256, true, 0) {
+REG_FIDDLE(ImageInfo_minRowBytes64, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     for (int shift = 24; shift < 32; ++shift) {
         int width = 1 << shift;
diff --git a/docs/examples/ImageInfo_043.cpp b/docs/examples/ImageInfo_043.cpp
index f189ea7..77cdb6e 100644
--- a/docs/examples/ImageInfo_043.cpp
+++ b/docs/examples/ImageInfo_043.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=897230ecfb36095486beca324fd369f9
-REG_FIDDLE(ImageInfo_043, 256, 256, true, 0) {
+REG_FIDDLE(ImageInfo_minRowBytes, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     for (int shift = 24; shift < 32; ++shift) {
         int width = 1 << shift;
diff --git a/docs/examples/ImageInfo_044.cpp b/docs/examples/ImageInfo_044.cpp
index dcfad33..918c350 100644
--- a/docs/examples/ImageInfo_044.cpp
+++ b/docs/examples/ImageInfo_044.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=818e4e1191e39d2a642902cbf253b399
-REG_FIDDLE(ImageInfo_044, 256, 128, false, 0) {
+REG_FIDDLE(ImageInfo_computeOffset, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     uint8_t pixels[][12] = { { 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00},
                              { 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00},
diff --git a/docs/examples/ImageInfo_045.cpp b/docs/examples/ImageInfo_045.cpp
index 7a5df3d..f796732 100644
--- a/docs/examples/ImageInfo_045.cpp
+++ b/docs/examples/ImageInfo_045.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=53c212c4f2449df0b0eedbc6227b6ab7
-REG_FIDDLE(ImageInfo_045, 256, 256, true, 0) {
+REG_FIDDLE(ImageInfo_equal1_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkImageInfo info1 = SkImageInfo::Make(10, 20, kGray_8_SkColorType, kPremul_SkAlphaType);
     SkImageInfo info2 = SkImageInfo::Make(20, 10, kAlpha_8_SkColorType, kUnpremul_SkAlphaType);
diff --git a/docs/examples/ImageInfo_046.cpp b/docs/examples/ImageInfo_046.cpp
index 1eda067..2a09e30 100644
--- a/docs/examples/ImageInfo_046.cpp
+++ b/docs/examples/ImageInfo_046.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8c039fde0a476ac1aa62bf9de5d61c77
-REG_FIDDLE(ImageInfo_046, 256, 256, true, 0) {
+REG_FIDDLE(ImageInfo_notequal1_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkImageInfo info1 = SkImageInfo::Make(10, 20, kGray_8_SkColorType, kPremul_SkAlphaType);
     SkImageInfo info2 = SkImageInfo::Make(20, 10, kAlpha_8_SkColorType, kUnpremul_SkAlphaType);
diff --git a/docs/examples/ImageInfo_047.cpp b/docs/examples/ImageInfo_047.cpp
index 7075ff2..3f9a9d4 100644
--- a/docs/examples/ImageInfo_047.cpp
+++ b/docs/examples/ImageInfo_047.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9def507d2295f7051effd0c83bb04436
-REG_FIDDLE(ImageInfo_047, 256, 130, false, 0) {
+REG_FIDDLE(ImageInfo_computeByteSize, 256, 130, false, 0) {
 void draw(SkCanvas* canvas) {
     SkImageInfo info = SkImageInfo::MakeN32Premul(2, 2);
     const size_t size = info.computeByteSize(100000);
diff --git a/docs/examples/ImageInfo_048.cpp b/docs/examples/ImageInfo_048.cpp
index 3d5fde7..b5a0931 100644
--- a/docs/examples/ImageInfo_048.cpp
+++ b/docs/examples/ImageInfo_048.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=fc18640fdde437cb35338aed7c68d399
-REG_FIDDLE(ImageInfo_048, 256, 130, false, 0) {
+REG_FIDDLE(ImageInfo_computeMinByteSize, 256, 130, false, 0) {
 void draw(SkCanvas* canvas) {
     SkImageInfo info = SkImageInfo::MakeN32Premul(2, 2);
     const size_t size = info.computeMinByteSize();
diff --git a/docs/examples/ImageInfo_049.cpp b/docs/examples/ImageInfo_049.cpp
index be9451f..d993c71 100644
--- a/docs/examples/ImageInfo_049.cpp
+++ b/docs/examples/ImageInfo_049.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6a63dfdd62ab77ff57783af8c33d7b78
-REG_FIDDLE(ImageInfo_049, 256, 256, true, 0) {
+REG_FIDDLE(ImageInfo_ByteSizeOverflowed, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     if (sizeof(size_t) == 8) {
         SkImageInfo info = SkImageInfo::MakeN32Premul(2, 1000000000);
diff --git a/docs/examples/ImageInfo_050.cpp b/docs/examples/ImageInfo_050.cpp
index 6d974cf..e145e56 100644
--- a/docs/examples/ImageInfo_050.cpp
+++ b/docs/examples/ImageInfo_050.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c6b0f6a3f493cb08d9abcdefe12de245
-REG_FIDDLE(ImageInfo_050, 256, 256, true, 0) {
+REG_FIDDLE(ImageInfo_validRowBytes, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkImageInfo info = SkImageInfo::MakeN32Premul(16, 8);
     for (size_t rowBytes = 60; rowBytes < 72; rowBytes += sizeof(SkPMColor)) {
diff --git a/docs/examples/ImageInfo_051.cpp b/docs/examples/ImageInfo_051.cpp
index 5adf7ba..d0bbc66 100644
--- a/docs/examples/ImageInfo_051.cpp
+++ b/docs/examples/ImageInfo_051.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ab7e73786805c936de386b6c1ebe1f13
-REG_FIDDLE(ImageInfo_051, 256, 256, true, 0) {
+REG_FIDDLE(ImageInfo_reset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkImageInfo info = SkImageInfo::MakeN32Premul(16, 8);
     SkImageInfo copy = info;
diff --git a/docs/examples/Image_000.cpp b/docs/examples/Image_000.cpp
index 79f5e25..2a1c005 100644
--- a/docs/examples/Image_000.cpp
+++ b/docs/examples/Image_000.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=513afec5795a9504ebf6af5373d16b6b
-REG_FIDDLE(Image_000, 256, 50, false, 0) {
+REG_FIDDLE(Image_MakeRasterCopy, 256, 50, false, 0) {
 void draw(SkCanvas* canvas) {
     uint8_t storage[][5] = {{ 0xCA, 0xDA, 0xCA, 0xC9, 0xA3 },
                             { 0xAC, 0xA8, 0x89, 0xA7, 0x87 },
diff --git a/docs/examples/Image_001.cpp b/docs/examples/Image_001.cpp
index 12b3d0a..286df83 100644
--- a/docs/examples/Image_001.cpp
+++ b/docs/examples/Image_001.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=22e7ce79ab2fe94252d23319f2258127
-REG_FIDDLE(Image_001, 256, 256, false, 3) {
+REG_FIDDLE(Image_MakeRasterData, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     size_t rowBytes = image->width() * SkColorTypeBytesPerPixel(kRGBA_8888_SkColorType);
     sk_sp<SkData> data = SkData::MakeUninitialized(rowBytes * image->height());
diff --git a/docs/examples/Image_002.cpp b/docs/examples/Image_002.cpp
index be5ae12..23e905f 100644
--- a/docs/examples/Image_002.cpp
+++ b/docs/examples/Image_002.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=275356b65d18c8868f4434137350cddc
-REG_FIDDLE(Image_002, 256, 256, true, 0) {
+REG_FIDDLE(Image_MakeFromRaster, 256, 256, true, 0) {
 static void releaseProc(const void* pixels, SkImage::ReleaseContext context) {
      int* countPtr = static_cast<int*>(context);
      *countPtr += 1;
diff --git a/docs/examples/Image_003.cpp b/docs/examples/Image_003.cpp
index 2047a7f..83d9d61 100644
--- a/docs/examples/Image_003.cpp
+++ b/docs/examples/Image_003.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=cf2cf53321e4e6a77c2841bfbc0ef707
-REG_FIDDLE(Image_003, 256, 50, false, 0) {
+REG_FIDDLE(Image_MakeFromBitmap, 256, 50, false, 0) {
 void draw(SkCanvas* canvas) {
     uint8_t storage[][5] = {{ 0xCA, 0xDA, 0xCA, 0xC9, 0xA3 },
                             { 0xAC, 0xA8, 0x89, 0xA7, 0x87 },
diff --git a/docs/examples/Image_004.cpp b/docs/examples/Image_004.cpp
index 820e552..f8908ea 100644
--- a/docs/examples/Image_004.cpp
+++ b/docs/examples/Image_004.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c2fec0746f88ca34d7dce59dd9bdef9e
-REG_FIDDLE(Image_004, 256, 128, false, 0) {
+REG_FIDDLE(Image_MakeFromGenerator, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPictureRecorder recorder;
     recorder.beginRecording(100, 100)->drawColor(SK_ColorRED);
diff --git a/docs/examples/Image_005.cpp b/docs/examples/Image_005.cpp
index dfd4988..7c8f0ca 100644
--- a/docs/examples/Image_005.cpp
+++ b/docs/examples/Image_005.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=894f732ed6409b1f392bc5481421d0e9
-REG_FIDDLE(Image_005, 256, 256, false, 3) {
+REG_FIDDLE(Image_MakeFromEncoded, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     int x = 0;
     for (int quality : { 100, 50, 10, 1} ) {
diff --git a/docs/examples/Image_006.cpp b/docs/examples/Image_006.cpp
index 3868f1d..064736e 100644
--- a/docs/examples/Image_006.cpp
+++ b/docs/examples/Image_006.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=94e9296c53bad074bf2a48ff885dac13
-REG_FIDDLE(Image_006, 256, 128, false, 3) {
+REG_FIDDLE(Image_MakeFromTexture, 256, 128, false, 3) {
 void draw(SkCanvas* canvas) {
     GrContext* context = canvas->getGrContext();
     if (!context) {
diff --git a/docs/examples/Image_007.cpp b/docs/examples/Image_007.cpp
index c5dd725..8cf3324 100644
--- a/docs/examples/Image_007.cpp
+++ b/docs/examples/Image_007.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=2b1e46354d823dbb53fa6af570135329
-REG_FIDDLE(Image_007, 256, 256, false, 4) {
+REG_FIDDLE(Image_MakeFromTexture_2, 256, 256, false, 4) {
 void draw(SkCanvas* canvas) {
     GrContext* context = canvas->getGrContext();
     if (!context) {
diff --git a/docs/examples/Image_008.cpp b/docs/examples/Image_008.cpp
index b699954..bed9eaf 100644
--- a/docs/examples/Image_008.cpp
+++ b/docs/examples/Image_008.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=069c7b116479e3ca46f953f07dcbdd36
-REG_FIDDLE(Image_008, 256, 64, false, 4) {
+REG_FIDDLE(Image_MakeCrossContextFromEncoded, 256, 64, false, 4) {
 void draw(SkCanvas* canvas) {
     GrContext* context = canvas->getGrContext();
     sk_sp<SkData> encodedData = image->encodeToData(SkEncodedImageFormat::kJPEG, 100);
diff --git a/docs/examples/Image_009.cpp b/docs/examples/Image_009.cpp
index 73c0202..edbecdd 100644
--- a/docs/examples/Image_009.cpp
+++ b/docs/examples/Image_009.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=45bca8747b8f49b5be34b520897ef048
-REG_FIDDLE(Image_009, 256, 64, false, 4) {
+REG_FIDDLE(Image_MakeCrossContextFromPixmap, 256, 64, false, 4) {
 void draw(SkCanvas* canvas) {
     GrContext* context = canvas->getGrContext();
     SkPixmap pixmap;
diff --git a/docs/examples/Image_010.cpp b/docs/examples/Image_010.cpp
index 6e7db6c..6c6a5c0 100644
--- a/docs/examples/Image_010.cpp
+++ b/docs/examples/Image_010.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b034517e39394b7543f06ec885e36d7d
-REG_FIDDLE(Image_010, 256, 256, false, 5) {
+REG_FIDDLE(Image_MakeFromAdoptedTexture, 256, 256, false, 5) {
 void draw(SkCanvas* canvas) {
     if (!canvas->getGrContext()) {
         return;
diff --git a/docs/examples/Image_011.cpp b/docs/examples/Image_011.cpp
index d3ce9c6..c39cfc5 100644
--- a/docs/examples/Image_011.cpp
+++ b/docs/examples/Image_011.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4aa2879b9e44dfd6648995326d2c4dcf
-REG_FIDDLE(Image_011, 256, 256, false, 0) {
+REG_FIDDLE(Image_MakeFromPicture, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkPictureRecorder recorder;
diff --git a/docs/examples/Image_012.cpp b/docs/examples/Image_012.cpp
index 66d5e72..22fb5bb 100644
--- a/docs/examples/Image_012.cpp
+++ b/docs/examples/Image_012.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9aec65fc252ffc9982fa8867433eca18
-REG_FIDDLE(Image_012, 256, 96, false, 4) {
+REG_FIDDLE(Image_width, 256, 96, false, 4) {
 void draw(SkCanvas* canvas) {
     canvas->translate(10, 10);
     canvas->drawImage(image, 0, 0);
diff --git a/docs/examples/Image_013.cpp b/docs/examples/Image_013.cpp
index 1bf1df9..5564045 100644
--- a/docs/examples/Image_013.cpp
+++ b/docs/examples/Image_013.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a4f53a0b6ac85e7bc3887245b728530d
-REG_FIDDLE(Image_013, 256, 96, false, 4) {
+REG_FIDDLE(Image_height, 256, 96, false, 4) {
 void draw(SkCanvas* canvas) {
     canvas->translate(10, 10);
     canvas->drawImage(image, 0, 0);
diff --git a/docs/examples/Image_014.cpp b/docs/examples/Image_014.cpp
index 4dd2810..06d29ed 100644
--- a/docs/examples/Image_014.cpp
+++ b/docs/examples/Image_014.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=96b4bc43b3667df9ba9e2dafb770d33c
-REG_FIDDLE(Image_014, 256, 256, true, 4) {
+REG_FIDDLE(Image_dimensions, 256, 256, true, 4) {
 void draw(SkCanvas* canvas) {
     SkISize dimensions = image->dimensions();
     SkIRect bounds = image->bounds();
diff --git a/docs/examples/Image_015.cpp b/docs/examples/Image_015.cpp
index 5892c42..ddd72c2 100644
--- a/docs/examples/Image_015.cpp
+++ b/docs/examples/Image_015.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c204b38b3fc08914b0a634aa4eaec894
-REG_FIDDLE(Image_015, 256, 128, false, 4) {
+REG_FIDDLE(Image_bounds, 256, 128, false, 4) {
 void draw(SkCanvas* canvas) {
     SkIRect bounds = image->bounds();
     for (int x : { 0, bounds.width() } ) {
diff --git a/docs/examples/Image_016.cpp b/docs/examples/Image_016.cpp
index db02f21..f63aba5 100644
--- a/docs/examples/Image_016.cpp
+++ b/docs/examples/Image_016.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d70194c9c51e700335f95de91846d023
-REG_FIDDLE(Image_016, 256, 156, false, 5) {
+REG_FIDDLE(Image_uniqueID, 256, 156, false, 5) {
 void draw(SkCanvas* canvas) {
     sk_sp<SkImage> subset = image->makeSubset({10, 20, 90, 100});
     canvas->drawImage(image, 0, 0);
diff --git a/docs/examples/Image_017.cpp b/docs/examples/Image_017.cpp
index b4de0f0..f662615 100644
--- a/docs/examples/Image_017.cpp
+++ b/docs/examples/Image_017.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1b9f1f05026ceb14ccb6926a13cdaa83
-REG_FIDDLE(Image_017, 256, 96, false, 4) {
+REG_FIDDLE(Image_alphaType, 256, 96, false, 4) {
 void draw(SkCanvas* canvas) {
     const char* alphaTypeStr[] = { "Unknown", "Opaque", "Premul", "Unpremul" };
     SkAlphaType alphaType = image->alphaType();
diff --git a/docs/examples/Image_018.cpp b/docs/examples/Image_018.cpp
index 35e4b47..395d749 100644
--- a/docs/examples/Image_018.cpp
+++ b/docs/examples/Image_018.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=50396fad4a128f58e400ca00fe09711f
-REG_FIDDLE(Image_018, 256, 96, false, 4) {
+REG_FIDDLE(Image_colorType, 256, 96, false, 4) {
 void draw(SkCanvas* canvas) {
     const char* colors[] = { "Unknown", "Alpha_8", "RGB_565", "ARGB_4444", "RGBA_8888", "RGB_888x",
                              "BGRA_8888", "RGBA_1010102", "RGB_101010x", "Gray_8", "RGBA_F16Norm",
diff --git a/docs/examples/Image_019.cpp b/docs/examples/Image_019.cpp
index fbf2afd..4d40af0 100644
--- a/docs/examples/Image_019.cpp
+++ b/docs/examples/Image_019.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4468d573f42af6f5e234be10a5453bb2
-REG_FIDDLE(Image_019, 256, 256, false, 3) {
+REG_FIDDLE(Image_colorSpace, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     SkPixmap pixmap;
     source.peekPixels(&pixmap);
diff --git a/docs/examples/Image_020.cpp b/docs/examples/Image_020.cpp
index 7b224e8..b8a9061 100644
--- a/docs/examples/Image_020.cpp
+++ b/docs/examples/Image_020.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=59b2078ebfbda8736a57c0486ae33332
-REG_FIDDLE(Image_020, 256, 256, false, 3) {
+REG_FIDDLE(Image_refColorSpace, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     SkPixmap pixmap;
     source.peekPixels(&pixmap);
diff --git a/docs/examples/Image_021.cpp b/docs/examples/Image_021.cpp
index 7bce5cf..3f69c62 100644
--- a/docs/examples/Image_021.cpp
+++ b/docs/examples/Image_021.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=50762c73b8ea91959c5a7b68fbf1062d
-REG_FIDDLE(Image_021, 256, 256, true, 0) {
+REG_FIDDLE(Image_isAlphaOnly, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     uint8_t pmColors = 0;
     sk_sp<SkImage> image = SkImage::MakeRasterCopy({SkImageInfo::MakeA8(1, 1), &pmColors, 1});
diff --git a/docs/examples/Image_022.cpp b/docs/examples/Image_022.cpp
index 414f53d..1261582 100644
--- a/docs/examples/Image_022.cpp
+++ b/docs/examples/Image_022.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e3340460003b74ee286d625e68589d65
-REG_FIDDLE(Image_022, 256, 256, true, 0) {
+REG_FIDDLE(Image_isOpaque, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto check_isopaque = [](const SkImageInfo& imageInfo) -> void {
         auto surface(SkSurface::MakeRaster(imageInfo));
diff --git a/docs/examples/Image_023.cpp b/docs/examples/Image_023.cpp
index fa9ae3c..383c871 100644
--- a/docs/examples/Image_023.cpp
+++ b/docs/examples/Image_023.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1c6de6fe72b00b5be970f5f718363449
-REG_FIDDLE(Image_023, 256, 256, false, 4) {
+REG_FIDDLE(Image_makeShader, 256, 256, false, 4) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     matrix.setRotate(45);
diff --git a/docs/examples/Image_024.cpp b/docs/examples/Image_024.cpp
index d9d4864..6559726 100644
--- a/docs/examples/Image_024.cpp
+++ b/docs/examples/Image_024.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=10172fca71b9dbdcade772513ffeb27e
-REG_FIDDLE(Image_024, 256, 256, false, 5) {
+REG_FIDDLE(Image_makeShader_2, 256, 256, false, 5) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     matrix.setRotate(45);
diff --git a/docs/examples/Image_025.cpp b/docs/examples/Image_025.cpp
index 308e878..44bf916 100644
--- a/docs/examples/Image_025.cpp
+++ b/docs/examples/Image_025.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=900c0eab8dfdecd8301ed5be95887f8e
-REG_FIDDLE(Image_025, 256, 256, true, 0) {
+REG_FIDDLE(Image_peekPixels, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     bitmap.allocPixels(SkImageInfo::MakeN32Premul(12, 11));
diff --git a/docs/examples/Image_026.cpp b/docs/examples/Image_026.cpp
index 273d8c4..9726f57 100644
--- a/docs/examples/Image_026.cpp
+++ b/docs/examples/Image_026.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9cf5c62a3d2243e6577ae563f360ea9d
-REG_FIDDLE(Image_026, 256, 256, false, 5) {
+REG_FIDDLE(Image_isTextureBacked, 256, 256, false, 5) {
 void draw(SkCanvas* canvas) {
     auto drawImage = [=](sk_sp<SkImage> image, const char* label) -> void {
         if (nullptr == image) {
diff --git a/docs/examples/Image_027.cpp b/docs/examples/Image_027.cpp
index 57c679c..a4b2f1f 100644
--- a/docs/examples/Image_027.cpp
+++ b/docs/examples/Image_027.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=afc62f38aebc56af8e425297ec67dd37
-REG_FIDDLE(Image_027, 256, 256, false, 5) {
+REG_FIDDLE(Image_isValid, 256, 256, false, 5) {
 void draw(SkCanvas* canvas) {
     auto drawImage = [=](sk_sp<SkImage> image, const char* label) -> void {
         if (nullptr == image) {
diff --git a/docs/examples/Image_028.cpp b/docs/examples/Image_028.cpp
index 3e4ba41..35cf7c2 100644
--- a/docs/examples/Image_028.cpp
+++ b/docs/examples/Image_028.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d093aad721261f421c4bef4a296aab48
-REG_FIDDLE(Image_028, 256, 256, false, 3) {
+REG_FIDDLE(Image_getBackendTexture, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     GrContext* grContext = canvas->getGrContext();
     if (!grContext) {
diff --git a/docs/examples/Image_029.cpp b/docs/examples/Image_029.cpp
index c4c2cee..c41c861 100644
--- a/docs/examples/Image_029.cpp
+++ b/docs/examples/Image_029.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8aa8ca63dff4641dfc6ea8a3c555d59c
-REG_FIDDLE(Image_029, 256, 256, false, 3) {
+REG_FIDDLE(Image_readPixels, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     canvas->scale(.5f, .5f);
     const int width = 32;
diff --git a/docs/examples/Image_030.cpp b/docs/examples/Image_030.cpp
index 87772ce..cfc38a1 100644
--- a/docs/examples/Image_030.cpp
+++ b/docs/examples/Image_030.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b77a73c4baa63a4a8e2a4fdd96144d0b
-REG_FIDDLE(Image_030, 256, 256, false, 3) {
+REG_FIDDLE(Image_readPixels_2, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     std::vector<int32_t> srcPixels;
     int rowBytes = image->width() * 4;
diff --git a/docs/examples/Image_031.cpp b/docs/examples/Image_031.cpp
index f513feb..ab4b0fb 100644
--- a/docs/examples/Image_031.cpp
+++ b/docs/examples/Image_031.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5949c9a63610cae30019e5b1899ee38f
-REG_FIDDLE(Image_031, 256, 128, false, 3) {
+REG_FIDDLE(Image_scalePixels, 256, 128, false, 3) {
 void draw(SkCanvas* canvas) {
     std::vector<int32_t> srcPixels;
     int quarterWidth = image->width() / 16;
diff --git a/docs/examples/Image_032.cpp b/docs/examples/Image_032.cpp
index 425a5eb..e4992f1 100644
--- a/docs/examples/Image_032.cpp
+++ b/docs/examples/Image_032.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=7a3bf8851bb7160e4e49c48f8c09639d
-REG_FIDDLE(Image_032, 256, 256, false, 3) {
+REG_FIDDLE(Image_encodeToData, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     canvas->scale(4, 4);
     SkIRect subset = {0, 0, 16, 64};
diff --git a/docs/examples/Image_033.cpp b/docs/examples/Image_033.cpp
index 9a50e2a..e97babc 100644
--- a/docs/examples/Image_033.cpp
+++ b/docs/examples/Image_033.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=30cee813f6aa476b0a9c8a24283e53a3
-REG_FIDDLE(Image_033, 256, 256, false, 3) {
+REG_FIDDLE(Image_encodeToData_2, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     canvas->scale(4, 4);
     SkIRect subset = {136, 32, 200, 96};
diff --git a/docs/examples/Image_034.cpp b/docs/examples/Image_034.cpp
index 5fa78f2..df3d537 100644
--- a/docs/examples/Image_034.cpp
+++ b/docs/examples/Image_034.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=80856fe921ce36f8d5a32d8672bccbfc
-REG_FIDDLE(Image_034, 256, 256, false, 3) {
+REG_FIDDLE(Image_refEncodedData, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     struct {
         const char* name;
diff --git a/docs/examples/Image_035.cpp b/docs/examples/Image_035.cpp
index dc3ad6c..6faa552 100644
--- a/docs/examples/Image_035.cpp
+++ b/docs/examples/Image_035.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=889e495ce3e3b3bacc96e8230932331c
-REG_FIDDLE(Image_035, 256, 256, false, 3) {
+REG_FIDDLE(Image_makeSubset, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     canvas->scale(.5f, .5f);
     const int width = 64;
diff --git a/docs/examples/Image_036.cpp b/docs/examples/Image_036.cpp
index a6d0280..c5bcb5e 100644
--- a/docs/examples/Image_036.cpp
+++ b/docs/examples/Image_036.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=eeec9e07e604b44d0208899a2fe5bef5
-REG_FIDDLE(Image_036, 256, 256, false, 5) {
+REG_FIDDLE(Image_makeTextureImage, 256, 256, false, 5) {
 void draw(SkCanvas* canvas) {
     auto drawImage = [=](sk_sp<SkImage> image, GrContext* context, const char* label) -> void {
         if (nullptr == image || nullptr == context) {
diff --git a/docs/examples/Image_037.cpp b/docs/examples/Image_037.cpp
index fd80e84..0f91222 100644
--- a/docs/examples/Image_037.cpp
+++ b/docs/examples/Image_037.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ecdbaff44a02c310ef672b7d393c6dea
-REG_FIDDLE(Image_037, 256, 256, false, 5) {
+REG_FIDDLE(Image_makeNonTextureImage, 256, 256, false, 5) {
 void draw(SkCanvas* canvas) {
     auto drawImage = [=](sk_sp<SkImage> image, const char* label) -> void {
         if (nullptr == image) {
diff --git a/docs/examples/Image_038.cpp b/docs/examples/Image_038.cpp
index 9fc438d..fa522a1 100644
--- a/docs/examples/Image_038.cpp
+++ b/docs/examples/Image_038.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=aed5f399915d40bb5d133ab586e5bac3
-REG_FIDDLE(Image_038, 256, 256, false, 5) {
+REG_FIDDLE(Image_makeRasterImage, 256, 256, false, 5) {
 void draw(SkCanvas* canvas) {
     auto drawImage = [=](sk_sp<SkImage> image, const char* label) -> void {
         if (nullptr == image) {
diff --git a/docs/examples/Image_039.cpp b/docs/examples/Image_039.cpp
index e8e9414..f9e7299 100644
--- a/docs/examples/Image_039.cpp
+++ b/docs/examples/Image_039.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=85a76163138a2720ac003691d6363938
-REG_FIDDLE(Image_039, 256, 256, false, 5) {
+REG_FIDDLE(Image_makeWithFilter, 256, 256, false, 5) {
 void draw(SkCanvas* canvas) {
     sk_sp<SkImageFilter> shadowFilter = SkDropShadowImageFilter::Make(
                 -10.0f * frame, 5.0f * frame, 3.0f, 3.0f, SK_ColorBLUE,
diff --git a/docs/examples/Image_040.cpp b/docs/examples/Image_040.cpp
index 7f8488e..b40ae5e 100644
--- a/docs/examples/Image_040.cpp
+++ b/docs/examples/Image_040.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=06aeb3cf63ffccf7b49fe556e5def351
-REG_FIDDLE(Image_040, 256, 64, false, 0) {
+REG_FIDDLE(Image_MakeBackendTextureFromSkImage, 256, 64, false, 0) {
 static sk_sp<SkImage> create_gpu_image(GrContext* grContext) {
     const SkImageInfo info = SkImageInfo::MakeN32(20, 20, kOpaque_SkAlphaType);
     auto surface(SkSurface::MakeRenderTarget(grContext, SkBudgeted::kNo, info));
diff --git a/docs/examples/Image_041.cpp b/docs/examples/Image_041.cpp
index 4431c9d..bb70305 100644
--- a/docs/examples/Image_041.cpp
+++ b/docs/examples/Image_041.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a8b8bd4bfe968e2c63085f867665227f
-REG_FIDDLE(Image_041, 256, 80, false, 0) {
+REG_FIDDLE(Image_isLazyGenerated_a, 256, 80, false, 0) {
 class TestImageGenerator : public SkImageGenerator {
 public:
     TestImageGenerator() : SkImageGenerator(SkImageInfo::MakeN32Premul(10, 10)) {}
diff --git a/docs/examples/Image_042.cpp b/docs/examples/Image_042.cpp
index f3c040c..faf5119 100644
--- a/docs/examples/Image_042.cpp
+++ b/docs/examples/Image_042.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f031c2a53f6a57833dc0127e674553da
-REG_FIDDLE(Image_042, 256, 256, false, 5) {
+REG_FIDDLE(Image_isLazyGenerated_b, 256, 256, false, 5) {
 void draw(SkCanvas* canvas) {
     auto drawImage = [=](sk_sp<SkImage> image, const char* label) -> void {
         if (nullptr == image) {
diff --git a/docs/examples/Image_043.cpp b/docs/examples/Image_043.cpp
index bbab4a3..1ff619f 100644
--- a/docs/examples/Image_043.cpp
+++ b/docs/examples/Image_043.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=dbf5f75c1275a3013672f896767140fb
-REG_FIDDLE(Image_043, 256, 256, false, 5) {
+REG_FIDDLE(Image_makeColorSpace, 256, 256, false, 5) {
 void draw(SkCanvas* canvas) {
     sk_sp<SkColorSpace> normalColorSpace = SkColorSpace::MakeRGB(
              SkColorSpace::kSRGB_RenderTargetGamma, SkColorSpace::kSRGB_Gamut);
diff --git a/docs/examples/Matrix_000.cpp b/docs/examples/Matrix_000.cpp
index ec41e41..cd6f014 100644
--- a/docs/examples/Matrix_000.cpp
+++ b/docs/examples/Matrix_000.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=7ff17718111df6d6f95381d8a8f1b389
-REG_FIDDLE(Matrix_000, 256, 256, false, 4) {
+REG_FIDDLE(Matrix_MakeScale, 256, 256, false, 4) {
 void draw(SkCanvas* canvas) {
     canvas->concat(SkMatrix::MakeScale(4, 3));
     canvas->drawBitmap(source, 0, 0);
diff --git a/docs/examples/Matrix_001.cpp b/docs/examples/Matrix_001.cpp
index 99dba42..b2cb0b6 100644
--- a/docs/examples/Matrix_001.cpp
+++ b/docs/examples/Matrix_001.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=2956aeb50fa862cdb13995e1e56a4bc8
-REG_FIDDLE(Matrix_001, 256, 256, false, 4) {
+REG_FIDDLE(Matrix_MakeScale_2, 256, 256, false, 4) {
 void draw(SkCanvas* canvas) {
     canvas->concat(SkMatrix::MakeScale(4));
     canvas->drawBitmap(source, 0, 0);
diff --git a/docs/examples/Matrix_002.cpp b/docs/examples/Matrix_002.cpp
index 7a6fe22..4a7bc72 100644
--- a/docs/examples/Matrix_002.cpp
+++ b/docs/examples/Matrix_002.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b2479df0d9cf296ff64ac31e36684557
-REG_FIDDLE(Matrix_002, 256, 256, false, 4) {
+REG_FIDDLE(Matrix_MakeTrans, 256, 256, false, 4) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix = SkMatrix::MakeTrans(64, 48);
     for (int i = 0; i < 4; ++i) {
diff --git a/docs/examples/Matrix_003.cpp b/docs/examples/Matrix_003.cpp
index 9709cde..bf68a0a 100644
--- a/docs/examples/Matrix_003.cpp
+++ b/docs/examples/Matrix_003.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6bad83b64de9266e323c29d550e04188
-REG_FIDDLE(Matrix_003, 256, 256, false, 0) {
+REG_FIDDLE(Matrix_MakeAll, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint p;
     p.setAntiAlias(true);
diff --git a/docs/examples/Matrix_004.cpp b/docs/examples/Matrix_004.cpp
index ad8f1c5..35ea2e2 100644
--- a/docs/examples/Matrix_004.cpp
+++ b/docs/examples/Matrix_004.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ba19b36df8cd78586f3dff54e2d4c093
-REG_FIDDLE(Matrix_004, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_TypeMask, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* prefix, const SkMatrix& matrix) -> void {
         SkString typeMask;
diff --git a/docs/examples/Matrix_005.cpp b/docs/examples/Matrix_005.cpp
index 940cd68..77c427e 100644
--- a/docs/examples/Matrix_005.cpp
+++ b/docs/examples/Matrix_005.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8e45fe2dd52731bb2d4318686257e1d7
-REG_FIDDLE(Matrix_005, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_getType, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     matrix.setAll(1, 0, 0,   0, 1, 0,    0, 0, 1);
diff --git a/docs/examples/Matrix_006.cpp b/docs/examples/Matrix_006.cpp
index ae7a68f..a838050 100644
--- a/docs/examples/Matrix_006.cpp
+++ b/docs/examples/Matrix_006.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=780ab376325b3cfa889ea26c0769ec11
-REG_FIDDLE(Matrix_006, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_isIdentity, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     matrix.setAll(1, 0, 0,   0, 1, 0,    0, 0, 1);
diff --git a/docs/examples/Matrix_007.cpp b/docs/examples/Matrix_007.cpp
index 0b33783..3f5168f 100644
--- a/docs/examples/Matrix_007.cpp
+++ b/docs/examples/Matrix_007.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6287e29674a487eb94174992d45b9a34
-REG_FIDDLE(Matrix_007, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_isScaleTranslate, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     for (SkScalar scaleX : { 1, 2 } ) {
diff --git a/docs/examples/Matrix_008.cpp b/docs/examples/Matrix_008.cpp
index 3a231d9..bca84ce 100644
--- a/docs/examples/Matrix_008.cpp
+++ b/docs/examples/Matrix_008.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=73ac71a8a30841873577c11c6c9b38ee
-REG_FIDDLE(Matrix_008, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_isTranslate, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     for (SkScalar scaleX : { 1, 2 } ) {
diff --git a/docs/examples/Matrix_009.cpp b/docs/examples/Matrix_009.cpp
index b178cf5..b558738 100644
--- a/docs/examples/Matrix_009.cpp
+++ b/docs/examples/Matrix_009.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ce5319c036c9b5086da8a0009fe409f8
-REG_FIDDLE(Matrix_009, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_rectStaysRect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     for (SkScalar angle: { 0, 90, 180, 270 } ) {
diff --git a/docs/examples/Matrix_010.cpp b/docs/examples/Matrix_010.cpp
index e33c48a..a31fd79 100644
--- a/docs/examples/Matrix_010.cpp
+++ b/docs/examples/Matrix_010.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=7a234c96608fb7cb8135b9940b0b15f7
-REG_FIDDLE(Matrix_010, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_preservesAxisAlignment, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     for (SkScalar angle: { 0, 90, 180, 270 } ) {
diff --git a/docs/examples/Matrix_011.cpp b/docs/examples/Matrix_011.cpp
index a511336..6a167be 100644
--- a/docs/examples/Matrix_011.cpp
+++ b/docs/examples/Matrix_011.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=688123908c733169bbbfaf11f41ecff6
-REG_FIDDLE(Matrix_011, 256, 256, false, 4) {
+REG_FIDDLE(Matrix_hasPerspective, 256, 256, false, 4) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     SkPoint bitmapBounds[4], perspect[4] = {{50, 10}, {180, 40}, {236, 176}, {10, 206}};
diff --git a/docs/examples/Matrix_012.cpp b/docs/examples/Matrix_012.cpp
index 8b2619b..cc96df0 100644
--- a/docs/examples/Matrix_012.cpp
+++ b/docs/examples/Matrix_012.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8b37f4ae7fec1756433c0f984175fb14
-REG_FIDDLE(Matrix_012, 256, 256, false, 0) {
+REG_FIDDLE(Matrix_isSimilarity, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint p;
     p.setAntiAlias(true);
diff --git a/docs/examples/Matrix_013.cpp b/docs/examples/Matrix_013.cpp
index 11c21db..0c71d38 100644
--- a/docs/examples/Matrix_013.cpp
+++ b/docs/examples/Matrix_013.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b9becf0dc24a9f00726e24a81fb72f16
-REG_FIDDLE(Matrix_013, 256, 128, false, 0) {
+REG_FIDDLE(Matrix_preservesRightAngles, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint p;
     p.setAntiAlias(true);
diff --git a/docs/examples/Matrix_014.cpp b/docs/examples/Matrix_014.cpp
index 3254caa..c75f2f4 100644
--- a/docs/examples/Matrix_014.cpp
+++ b/docs/examples/Matrix_014.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3bbf75f4748420810aa2586e3c8548d9
-REG_FIDDLE(Matrix_014, 256, 256, false, 0) {
+REG_FIDDLE(MemberIndex, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint black;
     black.setAntiAlias(true);
diff --git a/docs/examples/Matrix_015.cpp b/docs/examples/Matrix_015.cpp
index 8f2ac3c..449cb64 100644
--- a/docs/examples/Matrix_015.cpp
+++ b/docs/examples/Matrix_015.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e8740493abdf0c6341762db9cee56b89
-REG_FIDDLE(Matrix_015, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_array_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     matrix.setScale(42, 24);
diff --git a/docs/examples/Matrix_016.cpp b/docs/examples/Matrix_016.cpp
index 60048ed..d6fd779 100644
--- a/docs/examples/Matrix_016.cpp
+++ b/docs/examples/Matrix_016.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f5ed382bd04fa7d50b2398cce2fca23a
-REG_FIDDLE(Matrix_016, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_get, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     matrix.setSkew(42, 24);
diff --git a/docs/examples/Matrix_017.cpp b/docs/examples/Matrix_017.cpp
index 1022447..6bb19e3 100644
--- a/docs/examples/Matrix_017.cpp
+++ b/docs/examples/Matrix_017.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ab746d9be63975041ae8e50cba84dc3d
-REG_FIDDLE(Matrix_017, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_getScaleX, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     matrix.setScale(42, 24);
diff --git a/docs/examples/Matrix_018.cpp b/docs/examples/Matrix_018.cpp
index 75d82fa..64941bf 100644
--- a/docs/examples/Matrix_018.cpp
+++ b/docs/examples/Matrix_018.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=708b1a548a2f8661b2ab570782fbc751
-REG_FIDDLE(Matrix_018, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_getScaleY, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     matrix.setScale(42, 24);
diff --git a/docs/examples/Matrix_019.cpp b/docs/examples/Matrix_019.cpp
index 0c68722..e3dc404 100644
--- a/docs/examples/Matrix_019.cpp
+++ b/docs/examples/Matrix_019.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6be5704506d029ffc91ba03b1d3e674b
-REG_FIDDLE(Matrix_019, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_getSkewY, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     matrix.setSkew(42, 24);
diff --git a/docs/examples/Matrix_020.cpp b/docs/examples/Matrix_020.cpp
index 3374713..f96209f 100644
--- a/docs/examples/Matrix_020.cpp
+++ b/docs/examples/Matrix_020.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=df3a5d3c688e7597eae1e4e07bf91ae6
-REG_FIDDLE(Matrix_020, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_getSkewX, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     matrix.setSkew(42, 24);
diff --git a/docs/examples/Matrix_021.cpp b/docs/examples/Matrix_021.cpp
index a2def0b..a239fec 100644
--- a/docs/examples/Matrix_021.cpp
+++ b/docs/examples/Matrix_021.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6236f7f2b91aff977a66ba2ee2558ca4
-REG_FIDDLE(Matrix_021, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_getTranslateX, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     matrix.setTranslate(42, 24);
diff --git a/docs/examples/Matrix_022.cpp b/docs/examples/Matrix_022.cpp
index 2cacf70..105f21f 100644
--- a/docs/examples/Matrix_022.cpp
+++ b/docs/examples/Matrix_022.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=08464e32d22421d2b254c71a84545ef5
-REG_FIDDLE(Matrix_022, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_getTranslateY, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     matrix.setTranslate(42, 24);
diff --git a/docs/examples/Matrix_023.cpp b/docs/examples/Matrix_023.cpp
index 1c91079..fcd7d8a 100644
--- a/docs/examples/Matrix_023.cpp
+++ b/docs/examples/Matrix_023.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a0f5bf4b55e8c33bfda29bf67e34306f
-REG_FIDDLE(Matrix_023, 256, 256, false, 0) {
+REG_FIDDLE(Matrix_getPerspX, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix m;
     m.setIdentity();
diff --git a/docs/examples/Matrix_024.cpp b/docs/examples/Matrix_024.cpp
index 6c25677..135ce15 100644
--- a/docs/examples/Matrix_024.cpp
+++ b/docs/examples/Matrix_024.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=424a00a73675dbd99ad20feb0267442b
-REG_FIDDLE(Matrix_024, 256, 256, false, 0) {
+REG_FIDDLE(Matrix_getPerspY, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix m;
     m.setIdentity();
diff --git a/docs/examples/Matrix_025.cpp b/docs/examples/Matrix_025.cpp
deleted file mode 100644
index 1a38f5b..0000000
--- a/docs/examples/Matrix_025.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=f4365ef332f51f7fd25040e0771ba9a2
-REG_FIDDLE(Matrix_025, 256, 256, true, 0) {
-void draw(SkCanvas* canvas) {
-    SkMatrix matrix;
-    matrix.setIdentity();
-    SkDebugf("with identity matrix: x = %g\n", matrix.mapXY(24, 42).fX);
-    SkScalar& skewRef = matrix[SkMatrix::kMSkewX];
-    skewRef = 0;
-    SkDebugf("after skew x mod:     x = %g\n", matrix.mapXY(24, 42).fX);
-    skewRef = 1;
-    SkDebugf("after 2nd skew x mod: x = %g\n", matrix.mapXY(24, 42).fX);
-    matrix.dirtyMatrixTypeCache();
-    SkDebugf("after dirty cache:    x = %g\n", matrix.mapXY(24, 42).fX);
-}
-}  // END FIDDLE
diff --git a/docs/examples/Matrix_026.cpp b/docs/examples/Matrix_026.cpp
index 90b6744..aa4bb2a 100644
--- a/docs/examples/Matrix_026.cpp
+++ b/docs/examples/Matrix_026.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1d400a92ca826cc89bcb88ea051f28c8
-REG_FIDDLE(Matrix_026, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_set, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     matrix.setIdentity();
diff --git a/docs/examples/Matrix_027.cpp b/docs/examples/Matrix_027.cpp
index 036476c..00075fe 100644
--- a/docs/examples/Matrix_027.cpp
+++ b/docs/examples/Matrix_027.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a39dfed98c3c3c3a56be9ad59fe4e21e
-REG_FIDDLE(Matrix_027, 256, 64, false, 0) {
+REG_FIDDLE(Matrix_setScaleX, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Matrix_028.cpp b/docs/examples/Matrix_028.cpp
index 10ce3bb..ca03684 100644
--- a/docs/examples/Matrix_028.cpp
+++ b/docs/examples/Matrix_028.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f040c6dd85a02e94eaca00d5c2832604
-REG_FIDDLE(Matrix_028, 256, 192, false, 0) {
+REG_FIDDLE(Matrix_setScaleY, 256, 192, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Matrix_029.cpp b/docs/examples/Matrix_029.cpp
index 69d0679..44d3822 100644
--- a/docs/examples/Matrix_029.cpp
+++ b/docs/examples/Matrix_029.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b418d15df9829aefcc6aca93a37428bb
-REG_FIDDLE(Matrix_029, 256, 96, false, 0) {
+REG_FIDDLE(Matrix_setSkewY, 256, 96, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Matrix_030.cpp b/docs/examples/Matrix_030.cpp
index 2f82a86..ad540e8 100644
--- a/docs/examples/Matrix_030.cpp
+++ b/docs/examples/Matrix_030.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c7177a6fbc1545be95a5ebca87e0cd0d
-REG_FIDDLE(Matrix_030, 256, 64, false, 0) {
+REG_FIDDLE(Matrix_setSkewX, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Matrix_031.cpp b/docs/examples/Matrix_031.cpp
index 7426973..4b88683 100644
--- a/docs/examples/Matrix_031.cpp
+++ b/docs/examples/Matrix_031.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a18bc2e3607ac3a8e438bcb61fb13130
-REG_FIDDLE(Matrix_031, 256, 48, false, 0) {
+REG_FIDDLE(Matrix_setTranslateX, 256, 48, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Matrix_032.cpp b/docs/examples/Matrix_032.cpp
index c94da6c..f00035c 100644
--- a/docs/examples/Matrix_032.cpp
+++ b/docs/examples/Matrix_032.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=34e3c70a72b836abf7f4858d35eecc98
-REG_FIDDLE(Matrix_032, 256, 64, false, 0) {
+REG_FIDDLE(Matrix_setTranslateY, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Matrix_033.cpp b/docs/examples/Matrix_033.cpp
index 932065f..f1b352f 100644
--- a/docs/examples/Matrix_033.cpp
+++ b/docs/examples/Matrix_033.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=830a9e4e4bb93d25afd83b2fea63929e
-REG_FIDDLE(Matrix_033, 256, 256, false, 4) {
+REG_FIDDLE(Matrix_setPerspX, 256, 256, false, 4) {
 void draw(SkCanvas* canvas) {
     for (SkScalar perspX : { -.003f, 0.f, .003f, .012f } ) {
         SkMatrix matrix;
diff --git a/docs/examples/Matrix_034.cpp b/docs/examples/Matrix_034.cpp
index 275cdfe..b0d74c6 100644
--- a/docs/examples/Matrix_034.cpp
+++ b/docs/examples/Matrix_034.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=aeb258b7922c1a11b698b00f562182ec
-REG_FIDDLE(Matrix_034, 256, 256, false, 4) {
+REG_FIDDLE(Matrix_setPerspY, 256, 256, false, 4) {
 void draw(SkCanvas* canvas) {
     for (SkScalar perspX : { -.003f, 0.f, .003f, .012f } ) {
         SkMatrix matrix;
diff --git a/docs/examples/Matrix_035.cpp b/docs/examples/Matrix_035.cpp
index 8151080..46559b3 100644
--- a/docs/examples/Matrix_035.cpp
+++ b/docs/examples/Matrix_035.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=95ccfc2a89ce593e6b7a9f992a844bc0
-REG_FIDDLE(Matrix_035, 256, 128, false, 0) {
+REG_FIDDLE(Matrix_setAll, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint p;
     p.setAntiAlias(true);
diff --git a/docs/examples/Matrix_036.cpp b/docs/examples/Matrix_036.cpp
index 8c2959c..95df291 100644
--- a/docs/examples/Matrix_036.cpp
+++ b/docs/examples/Matrix_036.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=379fc375e011050b54ed9df83c0996a7
-REG_FIDDLE(Matrix_036, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_get9, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix = SkMatrix::MakeRectToRect({0, 0, 1, 1}, {3, 4, 7, 9},
                                                SkMatrix::kFill_ScaleToFit);
diff --git a/docs/examples/Matrix_037.cpp b/docs/examples/Matrix_037.cpp
index d9e65cb..b020a7c 100644
--- a/docs/examples/Matrix_037.cpp
+++ b/docs/examples/Matrix_037.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ec5de0d23e5fe28ba7628625d1402e85
-REG_FIDDLE(Matrix_037, 256, 256, false, 4) {
+REG_FIDDLE(Matrix_set9, 256, 256, false, 4) {
 void draw(SkCanvas* canvas) {
     SkMatrix m;
     SkScalar buffer[9] = {4, 0, 3,    0, 5, 4,     0, 0, 1};
diff --git a/docs/examples/Matrix_038.cpp b/docs/examples/Matrix_038.cpp
index 16b8c88..2ef3676 100644
--- a/docs/examples/Matrix_038.cpp
+++ b/docs/examples/Matrix_038.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ca94f7922bc37ef03bbc51ad70536fcf
-REG_FIDDLE(Matrix_038, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_reset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix m;
     m.reset();
diff --git a/docs/examples/Matrix_039.cpp b/docs/examples/Matrix_039.cpp
index 9b3ab43..0c69d88 100644
--- a/docs/examples/Matrix_039.cpp
+++ b/docs/examples/Matrix_039.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3979c865bb482e6ef1fafc71e56bbb91
-REG_FIDDLE(Matrix_039, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_setIdentity, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix m;
     m.setIdentity();
diff --git a/docs/examples/Matrix_040.cpp b/docs/examples/Matrix_040.cpp
index f808fbc..5a63ae0 100644
--- a/docs/examples/Matrix_040.cpp
+++ b/docs/examples/Matrix_040.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=63ca62985741b1bccb5e8b9cf734874e
-REG_FIDDLE(Matrix_040, 256, 64, false, 0) {
+REG_FIDDLE(Matrix_setTranslate, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Matrix_041.cpp b/docs/examples/Matrix_041.cpp
index 53a6afb..3be2426 100644
--- a/docs/examples/Matrix_041.cpp
+++ b/docs/examples/Matrix_041.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ccfc734aff2ddea0b097c83f5621de5e
-REG_FIDDLE(Matrix_041, 256, 64, false, 0) {
+REG_FIDDLE(Matrix_setTranslate_2, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Matrix_042.cpp b/docs/examples/Matrix_042.cpp
index 506037b..d01f269 100644
--- a/docs/examples/Matrix_042.cpp
+++ b/docs/examples/Matrix_042.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4565a0792058178c88e0a129a87272d6
-REG_FIDDLE(Matrix_042, 256, 128, false, 0) {
+REG_FIDDLE(Matrix_setScale, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint p;
     p.setAntiAlias(true);
diff --git a/docs/examples/Matrix_043.cpp b/docs/examples/Matrix_043.cpp
index ec67714..cd49107 100644
--- a/docs/examples/Matrix_043.cpp
+++ b/docs/examples/Matrix_043.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1579d0cc109c26e69f66f73abd35fb0e
-REG_FIDDLE(Matrix_043, 256, 128, false, 0) {
+REG_FIDDLE(Matrix_setScale_2, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint p;
     p.setAntiAlias(true);
diff --git a/docs/examples/Matrix_044.cpp b/docs/examples/Matrix_044.cpp
index 211c756..c5456f0 100644
--- a/docs/examples/Matrix_044.cpp
+++ b/docs/examples/Matrix_044.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8c28db3add9cd0177225088f6df6bbb5
-REG_FIDDLE(Matrix_044, 256, 128, false, 0) {
+REG_FIDDLE(Matrix_setRotate, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setColor(SK_ColorGRAY);
diff --git a/docs/examples/Matrix_045.cpp b/docs/examples/Matrix_045.cpp
index a16b7e3..7c18b64 100644
--- a/docs/examples/Matrix_045.cpp
+++ b/docs/examples/Matrix_045.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=93efb9d191bf1b9710c173513e014d6c
-REG_FIDDLE(Matrix_045, 256, 128, false, 0) {
+REG_FIDDLE(Matrix_setRotate_2, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setColor(SK_ColorGRAY);
diff --git a/docs/examples/Matrix_046.cpp b/docs/examples/Matrix_046.cpp
index b3542f1..67de59d 100644
--- a/docs/examples/Matrix_046.cpp
+++ b/docs/examples/Matrix_046.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=187e1d9228e2e4341ef820bd77b6fda9
-REG_FIDDLE(Matrix_046, 256, 128, false, 0) {
+REG_FIDDLE(Matrix_setSinCos, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setColor(SK_ColorGRAY);
diff --git a/docs/examples/Matrix_047.cpp b/docs/examples/Matrix_047.cpp
index 4ac3dfd..e5eea65 100644
--- a/docs/examples/Matrix_047.cpp
+++ b/docs/examples/Matrix_047.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e37a94a53c959951b059fcd624639ef6
-REG_FIDDLE(Matrix_047, 256, 128, false, 0) {
+REG_FIDDLE(Matrix_setSinCos_2, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setColor(SK_ColorGRAY);
diff --git a/docs/examples/Matrix_048.cpp b/docs/examples/Matrix_048.cpp
index 420ff2e..2168953 100644
--- a/docs/examples/Matrix_048.cpp
+++ b/docs/examples/Matrix_048.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c3f5faddca466f78278b32b88fd5f5eb
-REG_FIDDLE(Matrix_048, 256, 128, false, 0) {
+REG_FIDDLE(Matrix_setRSXform, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setColor(SK_ColorGRAY);
diff --git a/docs/examples/Matrix_049.cpp b/docs/examples/Matrix_049.cpp
index 62a59ed..2942ab8 100644
--- a/docs/examples/Matrix_049.cpp
+++ b/docs/examples/Matrix_049.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=55e0431adc6c5b1987ebb8123cc10342
-REG_FIDDLE(Matrix_049, 256, 256, false, 0) {
+REG_FIDDLE(Matrix_setSkew, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint p;
     p.setAntiAlias(true);
diff --git a/docs/examples/Matrix_050.cpp b/docs/examples/Matrix_050.cpp
index 84b49c2..146fd32 100644
--- a/docs/examples/Matrix_050.cpp
+++ b/docs/examples/Matrix_050.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=05be7844e9afdd7b9bfc31c5423a70a2
-REG_FIDDLE(Matrix_050, 256, 256, false, 0) {
+REG_FIDDLE(Matrix_setSkew_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint p;
     p.setAntiAlias(true);
diff --git a/docs/examples/Matrix_051.cpp b/docs/examples/Matrix_051.cpp
index 55e521b..779b60d 100644
--- a/docs/examples/Matrix_051.cpp
+++ b/docs/examples/Matrix_051.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0381a10ac69bdefdf9d15b47cbb9fefe
-REG_FIDDLE(Matrix_051, 256, 256, false, 3) {
+REG_FIDDLE(Matrix_setConcat, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix, matrix2;
     SkPoint bitmapBounds[4], perspect[4] = {{50, 10}, {180, 40}, {236, 176}, {10, 206}};
diff --git a/docs/examples/Matrix_052.cpp b/docs/examples/Matrix_052.cpp
index 030eda3..2d6902e 100644
--- a/docs/examples/Matrix_052.cpp
+++ b/docs/examples/Matrix_052.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f75a9b629aa6c51ed888f8799b5ba5f7
-REG_FIDDLE(Matrix_052, 256, 160, false, 0) {
+REG_FIDDLE(Matrix_preTranslate, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Matrix_053.cpp b/docs/examples/Matrix_053.cpp
index 0a8f531..ace6b20 100644
--- a/docs/examples/Matrix_053.cpp
+++ b/docs/examples/Matrix_053.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=2531f8d1e05d7b6dc22f3efcd2fb84e4
-REG_FIDDLE(Matrix_053, 256, 256, false, 3) {
+REG_FIDDLE(Matrix_preScale, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     SkPoint bitmapBounds[4], perspect[4] = {{50, 10}, {180, 40}, {236, 176}, {10, 206}};
diff --git a/docs/examples/Matrix_054.cpp b/docs/examples/Matrix_054.cpp
index 59eb544..ec86d64 100644
--- a/docs/examples/Matrix_054.cpp
+++ b/docs/examples/Matrix_054.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3edbdea8e43d06086abf33ec4a9b415b
-REG_FIDDLE(Matrix_054, 256, 256, false, 3) {
+REG_FIDDLE(Matrix_preScale_2, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     SkPoint bitmapBounds[4], perspect[4] = {{50, 10}, {180, 40}, {236, 176}, {10, 206}};
diff --git a/docs/examples/Matrix_055.cpp b/docs/examples/Matrix_055.cpp
index e23e121..f456313 100644
--- a/docs/examples/Matrix_055.cpp
+++ b/docs/examples/Matrix_055.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a70bb18d67c06a20ab514e7a47924e5a
-REG_FIDDLE(Matrix_055, 256, 256, false, 3) {
+REG_FIDDLE(Matrix_preRotate, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     SkPoint bitmapBounds[4], perspect[4] = {{50, 10}, {180, 40}, {236, 176}, {10, 206}};
diff --git a/docs/examples/Matrix_056.cpp b/docs/examples/Matrix_056.cpp
index 3596084..c134411 100644
--- a/docs/examples/Matrix_056.cpp
+++ b/docs/examples/Matrix_056.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5acd49bd931c79a808dd6c7cc0e92f72
-REG_FIDDLE(Matrix_056, 256, 256, false, 3) {
+REG_FIDDLE(Matrix_preRotate_2, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     SkPoint bitmapBounds[4], perspect[4] = {{50, 10}, {180, 40}, {236, 176}, {10, 206}};
diff --git a/docs/examples/Matrix_057.cpp b/docs/examples/Matrix_057.cpp
index 53502d2..1dd38f9 100644
--- a/docs/examples/Matrix_057.cpp
+++ b/docs/examples/Matrix_057.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=199a18ad61d702664ce6df1d7037aa48
-REG_FIDDLE(Matrix_057, 256, 256, false, 3) {
+REG_FIDDLE(Matrix_preSkew, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     SkPoint bitmapBounds[4], perspect[4] = {{50, 10}, {180, 40}, {236, 176}, {10, 206}};
diff --git a/docs/examples/Matrix_058.cpp b/docs/examples/Matrix_058.cpp
index ca1c3ee..1987ea2 100644
--- a/docs/examples/Matrix_058.cpp
+++ b/docs/examples/Matrix_058.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e100c543869fe8fd516ba69de79444ba
-REG_FIDDLE(Matrix_058, 256, 256, false, 3) {
+REG_FIDDLE(Matrix_preSkew_2, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     SkPoint bitmapBounds[4], perspect[4] = {{50, 10}, {180, 40}, {236, 176}, {10, 206}};
diff --git a/docs/examples/Matrix_059.cpp b/docs/examples/Matrix_059.cpp
index fa0de10..dada66d 100644
--- a/docs/examples/Matrix_059.cpp
+++ b/docs/examples/Matrix_059.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b07e62298e7b0ab5683db199faffceb2
-REG_FIDDLE(Matrix_059, 256, 256, false, 3) {
+REG_FIDDLE(Matrix_preConcat, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix, matrix2;
     SkPoint bitmapBounds[4], perspect[4] = {{50, 10}, {180, 40}, {236, 176}, {10, 206}};
diff --git a/docs/examples/Matrix_060.cpp b/docs/examples/Matrix_060.cpp
index 3541681..a26177b 100644
--- a/docs/examples/Matrix_060.cpp
+++ b/docs/examples/Matrix_060.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f5144ef4bd7cea294fad2f756ed335af
-REG_FIDDLE(Matrix_060, 256, 160, false, 0) {
+REG_FIDDLE(Matrix_postTranslate, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Matrix_061.cpp b/docs/examples/Matrix_061.cpp
index acba60b..9ade784 100644
--- a/docs/examples/Matrix_061.cpp
+++ b/docs/examples/Matrix_061.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ed3aa18ba0ea95c85cc49aa3829fe384
-REG_FIDDLE(Matrix_061, 256, 256, false, 3) {
+REG_FIDDLE(Matrix_postScale, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     SkPoint bitmapBounds[4], perspect[4] = {{50, 10}, {180, 40}, {236, 176}, {10, 206}};
diff --git a/docs/examples/Matrix_062.cpp b/docs/examples/Matrix_062.cpp
index e54a66f..70b6054 100644
--- a/docs/examples/Matrix_062.cpp
+++ b/docs/examples/Matrix_062.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1931017698766a67d3a26423453b8095
-REG_FIDDLE(Matrix_062, 256, 256, false, 3) {
+REG_FIDDLE(Matrix_postScale_2, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     SkPoint bitmapBounds[4], perspect[4] = {{50, 10}, {180, 40}, {236, 176}, {10, 206}};
diff --git a/docs/examples/Matrix_064.cpp b/docs/examples/Matrix_064.cpp
index 90c0c8b..e3a75c8 100644
--- a/docs/examples/Matrix_064.cpp
+++ b/docs/examples/Matrix_064.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e09194ee48a81e7b375ade473d340f0d
-REG_FIDDLE(Matrix_064, 256, 256, false, 3) {
+REG_FIDDLE(Matrix_postRotate, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     SkPoint bitmapBounds[4], perspect[4] = {{50, 10}, {180, 40}, {236, 176}, {10, 206}};
diff --git a/docs/examples/Matrix_065.cpp b/docs/examples/Matrix_065.cpp
index ec3ed3f..0c30702 100644
--- a/docs/examples/Matrix_065.cpp
+++ b/docs/examples/Matrix_065.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=52e4c53e26971af5576b30de60fa70c2
-REG_FIDDLE(Matrix_065, 256, 256, false, 3) {
+REG_FIDDLE(Matrix_postRotate_2, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     SkPoint bitmapBounds[4], perspect[4] = {{50, 10}, {180, 40}, {236, 176}, {10, 206}};
diff --git a/docs/examples/Matrix_066.cpp b/docs/examples/Matrix_066.cpp
index 3c4d96a..077f650 100644
--- a/docs/examples/Matrix_066.cpp
+++ b/docs/examples/Matrix_066.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8c34ae3a2b7e2742bb969819737365ec
-REG_FIDDLE(Matrix_066, 256, 256, false, 3) {
+REG_FIDDLE(Matrix_postSkew, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     SkPoint bitmapBounds[4], perspect[4] = {{50, 10}, {180, 40}, {236, 176}, {10, 206}};
diff --git a/docs/examples/Matrix_067.cpp b/docs/examples/Matrix_067.cpp
index 548e9bf..149d505 100644
--- a/docs/examples/Matrix_067.cpp
+++ b/docs/examples/Matrix_067.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3aa2603225dff72ac53dd359f897f494
-REG_FIDDLE(Matrix_067, 256, 256, false, 3) {
+REG_FIDDLE(Matrix_postSkew_2, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     SkPoint bitmapBounds[4], perspect[4] = {{50, 10}, {180, 40}, {236, 176}, {10, 206}};
diff --git a/docs/examples/Matrix_068.cpp b/docs/examples/Matrix_068.cpp
index 5967b5a..efb8f9a 100644
--- a/docs/examples/Matrix_068.cpp
+++ b/docs/examples/Matrix_068.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e4226c55d9bdbc119264bd372b2b9835
-REG_FIDDLE(Matrix_068, 256, 64, false, 3) {
+REG_FIDDLE(Matrix_postConcat, 256, 64, false, 3) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     SkPoint bitmapBounds[4], perspect[4] = {{50, 10}, {180, 40}, {236, 176}, {10, 206}};
diff --git a/docs/examples/Matrix_069.cpp b/docs/examples/Matrix_069.cpp
index e2b975a..ad8dced 100644
--- a/docs/examples/Matrix_069.cpp
+++ b/docs/examples/Matrix_069.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=17c3070b31b700ea8f52e48af9a66b6e
-REG_FIDDLE(Matrix_069, 256, 256, false, 0) {
+REG_FIDDLE(Matrix_ScaleToFit, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     const char* labels[] = { "Fill", "Start", "Center", "End" };
     SkRect rects[] = {{5, 5, 59, 59}, {5, 74, 59, 108}, {10, 123, 44, 172}, {10, 187, 54, 231}};
diff --git a/docs/examples/Matrix_070.cpp b/docs/examples/Matrix_070.cpp
index 7be4f29..0fcb13a 100644
--- a/docs/examples/Matrix_070.cpp
+++ b/docs/examples/Matrix_070.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=69cdea599dcaaec35efcb24403f4287b
-REG_FIDDLE(Matrix_070, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_setRectToRect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const SkRect srcs[] = { {0, 0, 0, 0}, {1, 2, 3, 4} };
     const SkRect dsts[] = { {0, 0, 0, 0}, {5, 6, 8, 9} };
diff --git a/docs/examples/Matrix_071.cpp b/docs/examples/Matrix_071.cpp
index 117613d..4adb674 100644
--- a/docs/examples/Matrix_071.cpp
+++ b/docs/examples/Matrix_071.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a1d6a6721b39350f81021f71a1b93208
-REG_FIDDLE(Matrix_071, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_MakeRectToRect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const SkRect srcs[] = { {0, 0, 0, 0}, {1, 2, 3, 4} };
     const SkRect dsts[] = { {0, 0, 0, 0}, {5, 6, 8, 9} };
diff --git a/docs/examples/Matrix_072.cpp b/docs/examples/Matrix_072.cpp
index a878ce4..66f28db 100644
--- a/docs/examples/Matrix_072.cpp
+++ b/docs/examples/Matrix_072.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c851d1313e8909aaea4f0591699fdb7b
-REG_FIDDLE(Matrix_072, 256, 256, false, 0) {
+REG_FIDDLE(Matrix_setPolyToPoly, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     const SkPoint src[] = { { 0, 0}, {30,   0}, {30, -30}, { 0, -30} };
     const SkPoint dst[] = { {50, 0}, {80, -10}, {90, -30}, {60, -40} };
diff --git a/docs/examples/Matrix_073.cpp b/docs/examples/Matrix_073.cpp
index 881eae4..b682e66 100644
--- a/docs/examples/Matrix_073.cpp
+++ b/docs/examples/Matrix_073.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0e03cd9f154603ed4b21ca56d69dae44
-REG_FIDDLE(Matrix_073, 256, 128, false, 0) {
+REG_FIDDLE(Matrix_invert, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     const SkPoint src[] = { { 10, 120}, {120, 120}, {120, 10}, {  10, 10} };
     const SkPoint dst[] = { {150, 120}, {200, 100}, {240, 30}, { 130, 40} };
diff --git a/docs/examples/Matrix_074.cpp b/docs/examples/Matrix_074.cpp
index 2fd8d5b..81a7378 100644
--- a/docs/examples/Matrix_074.cpp
+++ b/docs/examples/Matrix_074.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e10adbd0bcc940c5d4d872db0e78e892
-REG_FIDDLE(Matrix_074, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_SetAffineIdentity, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkScalar affine[6];
     SkMatrix::SetAffineIdentity(affine);
diff --git a/docs/examples/Matrix_075.cpp b/docs/examples/Matrix_075.cpp
index b8cff70..ae57aee 100644
--- a/docs/examples/Matrix_075.cpp
+++ b/docs/examples/Matrix_075.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3325bdf82bd86d9fbc4199f248afa82c
-REG_FIDDLE(Matrix_075, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_asAffine, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     matrix.setAll(2, 3, 4, 5, 6, 7, 0, 0, 1);
diff --git a/docs/examples/Matrix_076.cpp b/docs/examples/Matrix_076.cpp
index 9d4e242..aaa50e1 100644
--- a/docs/examples/Matrix_076.cpp
+++ b/docs/examples/Matrix_076.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f5b6d371c4d65e5b5ac6eebdd4b237d8
-REG_FIDDLE(Matrix_076, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_setAffine, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     matrix.setAll(2, 3, 4, 5, 6, 7, 0, 0, 1);
diff --git a/docs/examples/Matrix_077.cpp b/docs/examples/Matrix_077.cpp
index 95319cc..c38d271 100644
--- a/docs/examples/Matrix_077.cpp
+++ b/docs/examples/Matrix_077.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f99dcb00296d0c56b6c0e178e94b3534
-REG_FIDDLE(Matrix_077, 256, 256, false, 0) {
+REG_FIDDLE(Matrix_mapPoints, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     matrix.reset();
diff --git a/docs/examples/Matrix_078.cpp b/docs/examples/Matrix_078.cpp
index 4fec899..a295976 100644
--- a/docs/examples/Matrix_078.cpp
+++ b/docs/examples/Matrix_078.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=428ca171ae3bd0d3f992458ac598b97b
-REG_FIDDLE(Matrix_078, 256, 256, false, 0) {
+REG_FIDDLE(Matrix_mapPoints_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     matrix.setRotate(35, 128, 128);
diff --git a/docs/examples/Matrix_079.cpp b/docs/examples/Matrix_079.cpp
index e67a7e7..bd10507 100644
--- a/docs/examples/Matrix_079.cpp
+++ b/docs/examples/Matrix_079.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d56f93e4bc763c7ba4914321ed07a8b5
-REG_FIDDLE(Matrix_079, 256, 256, false, 0) {
+REG_FIDDLE(Matrix_mapHomogeneousPoints, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPoint3 src[] = {{3, 3, 1}, {8, 2, 2}, {5, 0, 4}, {0, 1, 3},
                       {3, 7, 1}, {8, 6, 2}, {5, 4, 4}, {0, 5, 3}};
diff --git a/docs/examples/Matrix_080.cpp b/docs/examples/Matrix_080.cpp
index f321aec..76097f4 100644
--- a/docs/examples/Matrix_080.cpp
+++ b/docs/examples/Matrix_080.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9e50185d502dc6903783679a84106089
-REG_FIDDLE(Matrix_080, 256, 256, false, 0) {
+REG_FIDDLE(Matrix_mapXY, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Matrix_081.cpp b/docs/examples/Matrix_081.cpp
index d8822d2..2173bd4 100644
--- a/docs/examples/Matrix_081.cpp
+++ b/docs/examples/Matrix_081.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b1ead09c67a177ab8eace12b061610a7
-REG_FIDDLE(Matrix_081, 256, 256, false, 4) {
+REG_FIDDLE(Matrix_mapXY_2, 256, 256, false, 4) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     SkPoint bitmapBounds[4], perspect[4] = {{50, 10}, {180, 40}, {236, 176}, {30, 206}};
diff --git a/docs/examples/Matrix_082.cpp b/docs/examples/Matrix_082.cpp
index 831b809..78ba1ce 100644
--- a/docs/examples/Matrix_082.cpp
+++ b/docs/examples/Matrix_082.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=918a9778c3d7d5cb306692784399f6dc
-REG_FIDDLE(Matrix_082, 256, 256, false, 0) {
+REG_FIDDLE(Matrix_mapVectors, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Matrix_083.cpp b/docs/examples/Matrix_083.cpp
index 76389a8..503cd46 100644
--- a/docs/examples/Matrix_083.cpp
+++ b/docs/examples/Matrix_083.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5754501a00a1323e76353fb53153e939
-REG_FIDDLE(Matrix_083, 256, 256, false, 0) {
+REG_FIDDLE(Matrix_mapVectors_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Matrix_084.cpp b/docs/examples/Matrix_084.cpp
index 783acfb..2425d64 100644
--- a/docs/examples/Matrix_084.cpp
+++ b/docs/examples/Matrix_084.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=aed143fc6cd0bce4ed029b98d1e61f2d
-REG_FIDDLE(Matrix_084, 256, 256, false, 0) {
+REG_FIDDLE(Matrix_mapVector, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setColor(SK_ColorGREEN);
diff --git a/docs/examples/Matrix_085.cpp b/docs/examples/Matrix_085.cpp
index b446949..1ca8e7b 100644
--- a/docs/examples/Matrix_085.cpp
+++ b/docs/examples/Matrix_085.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8bf1518db3f369696cd3065b541a8bd7
-REG_FIDDLE(Matrix_085, 256, 256, false, 0) {
+REG_FIDDLE(Matrix_mapVector_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setColor(SK_ColorGREEN);
diff --git a/docs/examples/Matrix_086.cpp b/docs/examples/Matrix_086.cpp
index 2f8c379..3f27d98 100644
--- a/docs/examples/Matrix_086.cpp
+++ b/docs/examples/Matrix_086.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=dbcf928b035a31ca69c99392e2e2cca9
-REG_FIDDLE(Matrix_086, 256, 256, false, 0) {
+REG_FIDDLE(Matrix_mapRect, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Matrix_087.cpp b/docs/examples/Matrix_087.cpp
index 1ca0069..c713935 100644
--- a/docs/examples/Matrix_087.cpp
+++ b/docs/examples/Matrix_087.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5fafd0bd23d1ed37425b970b4a3c6cc9
-REG_FIDDLE(Matrix_087, 256, 256, false, 0) {
+REG_FIDDLE(Matrix_mapRect_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Matrix_088.cpp b/docs/examples/Matrix_088.cpp
index d05d0c5..57d5f25 100644
--- a/docs/examples/Matrix_088.cpp
+++ b/docs/examples/Matrix_088.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3b7b1f884437ab450f986234e4aec27f
-REG_FIDDLE(Matrix_088, 256, 256, false, 0) {
+REG_FIDDLE(Matrix_mapRect_3, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect{110, 50, 180, 100};
     SkMatrix matrix;
diff --git a/docs/examples/Matrix_089.cpp b/docs/examples/Matrix_089.cpp
index 465b8de..b388cfb 100644
--- a/docs/examples/Matrix_089.cpp
+++ b/docs/examples/Matrix_089.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c69cd2a590b5733c3cbc92cb9ceed3f5
-REG_FIDDLE(Matrix_089, 256, 192, false, 0) {
+REG_FIDDLE(Matrix_mapRectToQuad, 256, 192, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Matrix_090.cpp b/docs/examples/Matrix_090.cpp
index 5d78aa2..685af6c 100644
--- a/docs/examples/Matrix_090.cpp
+++ b/docs/examples/Matrix_090.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=62bc26989c2b4c2a54d516596a71dd97
-REG_FIDDLE(Matrix_090, 256, 256, false, 0) {
+REG_FIDDLE(Matrix_mapRectScaleTranslate, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkMatrix matrix;
diff --git a/docs/examples/Matrix_091.cpp b/docs/examples/Matrix_091.cpp
index 7ba6495..0690449 100644
--- a/docs/examples/Matrix_091.cpp
+++ b/docs/examples/Matrix_091.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6d6f2082fcf59d9f02bfb1758b87db69
-REG_FIDDLE(Matrix_091, 256, 256, false, 0) {
+REG_FIDDLE(Matrix_mapRadius, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Matrix_092.cpp b/docs/examples/Matrix_092.cpp
index 65369ef..7d746a5 100644
--- a/docs/examples/Matrix_092.cpp
+++ b/docs/examples/Matrix_092.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ab57b232acef69f26de9cb23d23c8a1a
-REG_FIDDLE(Matrix_092, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_isFixedStepInX, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     for (SkScalar px : { 0.0f, 0.1f } ) {
diff --git a/docs/examples/Matrix_093.cpp b/docs/examples/Matrix_093.cpp
index 84914fb..be68cb5 100644
--- a/docs/examples/Matrix_093.cpp
+++ b/docs/examples/Matrix_093.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=fad6b92b21b1e1deeae61978cec2d232
-REG_FIDDLE(Matrix_093, 256, 256, false, 3) {
+REG_FIDDLE(Matrix_fixedStepInX, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     const SkPoint center = { 128, 128 };
diff --git a/docs/examples/Matrix_094.cpp b/docs/examples/Matrix_094.cpp
index 71030f2..80ceaeb 100644
--- a/docs/examples/Matrix_094.cpp
+++ b/docs/examples/Matrix_094.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=39016b3cfc6bbabb09348a53822ce508
-REG_FIDDLE(Matrix_094, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_cheapEqualTo, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* prefix, const SkMatrix& a, const SkMatrix& b) -> void {
         SkDebugf("%s: a %c= b a.cheapEqualTo(b): %s\n", prefix,
diff --git a/docs/examples/Matrix_095.cpp b/docs/examples/Matrix_095.cpp
index c9b8f79..6890ee3 100644
--- a/docs/examples/Matrix_095.cpp
+++ b/docs/examples/Matrix_095.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3902859150b0f0c4aeb1f25d00434baa
-REG_FIDDLE(Matrix_095, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_equal_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* prefix, const SkMatrix& a, const SkMatrix& b) -> void {
         SkDebugf("%s: a %c= b a.cheapEqualTo(b): %s\n", prefix,
diff --git a/docs/examples/Matrix_096.cpp b/docs/examples/Matrix_096.cpp
index 94eaf40..f242bd1 100644
--- a/docs/examples/Matrix_096.cpp
+++ b/docs/examples/Matrix_096.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=088ab41f877599f980a99523749b0afd
-REG_FIDDLE(Matrix_096, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_notequal_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* prefix, const SkMatrix& a, const SkMatrix& b) -> void {
         SkDebugf("%s: a %c= b a.cheapEqualTo(b): %s\n", prefix,
diff --git a/docs/examples/Matrix_097.cpp b/docs/examples/Matrix_097.cpp
index 4756336..77a1ef8 100644
--- a/docs/examples/Matrix_097.cpp
+++ b/docs/examples/Matrix_097.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8d72a4818e5a9188348f6c08ab5d8a40
-REG_FIDDLE(Matrix_097, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_dump, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     matrix.setRotate(45);
diff --git a/docs/examples/Matrix_098.cpp b/docs/examples/Matrix_098.cpp
index 6459cf3..35397d3 100644
--- a/docs/examples/Matrix_098.cpp
+++ b/docs/examples/Matrix_098.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1d6f67904c88a806c3731879e9af4ae5
-REG_FIDDLE(Matrix_098, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_getMinScale, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     matrix.setScale(42, 24);
diff --git a/docs/examples/Matrix_099.cpp b/docs/examples/Matrix_099.cpp
index e9c6061..fc4cc5f 100644
--- a/docs/examples/Matrix_099.cpp
+++ b/docs/examples/Matrix_099.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3fee4364929899649cf9efc37897e964
-REG_FIDDLE(Matrix_099, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_getMaxScale, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     matrix.setScale(42, 24);
diff --git a/docs/examples/Matrix_100.cpp b/docs/examples/Matrix_100.cpp
index a9190a3..5f2e5fd 100644
--- a/docs/examples/Matrix_100.cpp
+++ b/docs/examples/Matrix_100.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=13adba0ecf5f82247cf051b4fa4d8a9c
-REG_FIDDLE(Matrix_100, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_getMinMaxScales, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     matrix.setAll(1, 0, 0,  0, 1, 0,   0, 0, 0);
diff --git a/docs/examples/Matrix_101.cpp b/docs/examples/Matrix_101.cpp
index de87d8f..7f7ca5b 100644
--- a/docs/examples/Matrix_101.cpp
+++ b/docs/examples/Matrix_101.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=139b874da0a3ede1f3df88119085c0aa
-REG_FIDDLE(Matrix_101, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_decomposeScale, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     matrix.setRotate(90 * SK_Scalar1);
diff --git a/docs/examples/Matrix_102.cpp b/docs/examples/Matrix_102.cpp
index d888fc3..d379219 100644
--- a/docs/examples/Matrix_102.cpp
+++ b/docs/examples/Matrix_102.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d961d91020f19037204a8c3fd8cb1060
-REG_FIDDLE(Matrix_102, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_I, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix m1, m2, m3;
     m1.reset();
diff --git a/docs/examples/Matrix_103.cpp b/docs/examples/Matrix_103.cpp
index 32705a3..29cbfd1 100644
--- a/docs/examples/Matrix_103.cpp
+++ b/docs/examples/Matrix_103.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=af0b72360c1c7a25b4754bfa47011dd5
-REG_FIDDLE(Matrix_103, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_InvalidMatrix, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkDebugf("scaleX %g\n", SkMatrix::InvalidMatrix().getScaleX());
 }
diff --git a/docs/examples/Matrix_104.cpp b/docs/examples/Matrix_104.cpp
index 25dfda1..ca11a31 100644
--- a/docs/examples/Matrix_104.cpp
+++ b/docs/examples/Matrix_104.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6b4562c7052da94f3d5b2412dca41946
-REG_FIDDLE(Matrix_104, 256, 64, false, 4) {
+REG_FIDDLE(Matrix_Concat, 256, 64, false, 4) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix, matrix2;
     SkPoint bitmapBounds[4], perspect[4] = {{50, 10}, {180, 40}, {236, 176}, {10, 206}};
diff --git a/docs/examples/Matrix_105.cpp b/docs/examples/Matrix_105.cpp
index bb6cc1a..f536170 100644
--- a/docs/examples/Matrix_105.cpp
+++ b/docs/examples/Matrix_105.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f4365ef332f51f7fd25040e0771ba9a2
-REG_FIDDLE(Matrix_105, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_dirtyMatrixTypeCache, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     matrix.setIdentity();
diff --git a/docs/examples/Matrix_106.cpp b/docs/examples/Matrix_106.cpp
index 927ea28..ddb9f0c 100644
--- a/docs/examples/Matrix_106.cpp
+++ b/docs/examples/Matrix_106.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=fed43797f13796529cb6731385d6f8f3
-REG_FIDDLE(Matrix_106, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_setScaleTranslate, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix;
     matrix.setScaleTranslate(1, 2, 3, 4);
diff --git a/docs/examples/Matrix_107.cpp b/docs/examples/Matrix_107.cpp
index a9dbb93..6cc8dd1 100644
--- a/docs/examples/Matrix_107.cpp
+++ b/docs/examples/Matrix_107.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=bc6c6f6a5df770287120d87f81b922eb
-REG_FIDDLE(Matrix_107, 256, 256, true, 0) {
+REG_FIDDLE(Matrix_isFinite, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkMatrix matrix = SkMatrix::MakeTrans(SK_ScalarNaN, 0);
     matrix.dump();
diff --git a/docs/examples/Paint_000.cpp b/docs/examples/Paint_000.cpp
index 721ccd3..c4fc87d 100644
--- a/docs/examples/Paint_000.cpp
+++ b/docs/examples/Paint_000.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c4b2186d85c142a481298f7144295ffd
-REG_FIDDLE(Paint_000, 256, 1, false, 0) {
+REG_FIDDLE(Paint_empty_constructor, 256, 1, false, 0) {
 void draw(SkCanvas* canvas) {
     #ifndef SkUserConfig_DEFINED
     #define SkUserConfig_DEFINED
diff --git a/docs/examples/Paint_001.cpp b/docs/examples/Paint_001.cpp
index 164d7a2..2319e87 100644
--- a/docs/examples/Paint_001.cpp
+++ b/docs/examples/Paint_001.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b99971ad0ef243d617925289d963b62d
-REG_FIDDLE(Paint_001, 256, 256, true, 0) {
+REG_FIDDLE(Paint_copy_const_SkPaint, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint1;
     paint1.setColor(SK_ColorRED);
diff --git a/docs/examples/Paint_002.cpp b/docs/examples/Paint_002.cpp
index 041f0ed..556b28c 100644
--- a/docs/examples/Paint_002.cpp
+++ b/docs/examples/Paint_002.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8ed1488a503cd5282b86a51614aa90b1
-REG_FIDDLE(Paint_002, 256, 256, true, 0) {
+REG_FIDDLE(Paint_move_SkPaint, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     float intervals[] = { 5, 5 };
diff --git a/docs/examples/Paint_003.cpp b/docs/examples/Paint_003.cpp
index 0ee293b..c641983 100644
--- a/docs/examples/Paint_003.cpp
+++ b/docs/examples/Paint_003.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ef269937ade7e7353635121d9a64f9f7
-REG_FIDDLE(Paint_003, 256, 256, true, 0) {
+REG_FIDDLE(Paint_reset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint1, paint2;
     paint1.setColor(SK_ColorRED);
diff --git a/docs/examples/Paint_004.cpp b/docs/examples/Paint_004.cpp
index 883e59d..fe1b399 100644
--- a/docs/examples/Paint_004.cpp
+++ b/docs/examples/Paint_004.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b476a9088f80dece176ed577807d3992
-REG_FIDDLE(Paint_004, 256, 256, true, 0) {
+REG_FIDDLE(Paint_copy_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint1, paint2;
     paint1.setColor(SK_ColorRED);
diff --git a/docs/examples/Paint_005.cpp b/docs/examples/Paint_005.cpp
index 9c2cf69..4b6894f 100644
--- a/docs/examples/Paint_005.cpp
+++ b/docs/examples/Paint_005.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9fb7459b097d713f5f1fe5675afe14f5
-REG_FIDDLE(Paint_005, 256, 256, true, 0) {
+REG_FIDDLE(Paint_move_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint1, paint2;
     paint1.setColor(SK_ColorRED);
diff --git a/docs/examples/Paint_006.cpp b/docs/examples/Paint_006.cpp
index f6f7d9e..23df823 100644
--- a/docs/examples/Paint_006.cpp
+++ b/docs/examples/Paint_006.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=7481a948e34672720337a631830586dd
-REG_FIDDLE(Paint_006, 256, 256, true, 0) {
+REG_FIDDLE(Paint_equal_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint1, paint2;
     paint1.setColor(SK_ColorRED);
diff --git a/docs/examples/Paint_007.cpp b/docs/examples/Paint_007.cpp
index 077ab6b..73a289a 100644
--- a/docs/examples/Paint_007.cpp
+++ b/docs/examples/Paint_007.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b6c8484b1187f555b435ad5369833be4
-REG_FIDDLE(Paint_007, 256, 256, true, 0) {
+REG_FIDDLE(Paint_notequal_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint1, paint2;
     paint1.setColor(SK_ColorRED);
diff --git a/docs/examples/Paint_008.cpp b/docs/examples/Paint_008.cpp
index 34e57f6..ccc5d6d 100644
--- a/docs/examples/Paint_008.cpp
+++ b/docs/examples/Paint_008.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=7f7e1b701361912b344f90ae6b530393
-REG_FIDDLE(Paint_008, 256, 256, true, 0) {
+REG_FIDDLE(Paint_getHash, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint1, paint2;
     paint1.setColor(SK_ColorRED);
diff --git a/docs/examples/Paint_009.cpp b/docs/examples/Paint_009.cpp
index 18d75d5..0c8c521 100644
--- a/docs/examples/Paint_009.cpp
+++ b/docs/examples/Paint_009.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=bb179ec5698ec1398ff18f3657ab73f7
-REG_FIDDLE(Paint_009, 256, 256, true, 0) {
+REG_FIDDLE(Paint_setHinting, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint1, paint2;
     paint2.setHinting(SkFontHinting::kNormal);
diff --git a/docs/examples/Paint_010.cpp b/docs/examples/Paint_010.cpp
index 84e20b8..d67a632 100644
--- a/docs/examples/Paint_010.cpp
+++ b/docs/examples/Paint_010.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b56b70c7ea2453c41bfa58b626953bed
-REG_FIDDLE(Paint_010, 256, 256, true, 0) {
+REG_FIDDLE(Paint_getHinting, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkDebugf("SkFontHinting::kNormal %c= paint.getHinting()\n",
diff --git a/docs/examples/Paint_011.cpp b/docs/examples/Paint_011.cpp
index 74b7092..9929196 100644
--- a/docs/examples/Paint_011.cpp
+++ b/docs/examples/Paint_011.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8a3f8c309533388b01aa66e1267f322d
-REG_FIDDLE(Paint_011, 256, 256, true, 0) {
+REG_FIDDLE(Paint_getFlags, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Paint_012.cpp b/docs/examples/Paint_012.cpp
index e07904d..db4b227 100644
--- a/docs/examples/Paint_012.cpp
+++ b/docs/examples/Paint_012.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=54baed3f6bc4b9c31ba664e27767fdc7
-REG_FIDDLE(Paint_012, 256, 256, true, 0) {
+REG_FIDDLE(Paint_setFlags, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setFlags((uint32_t) (SkPaint::kAntiAlias_Flag | SkPaint::kDither_Flag));
diff --git a/docs/examples/Paint_013.cpp b/docs/examples/Paint_013.cpp
index 81df60e..16387d9 100644
--- a/docs/examples/Paint_013.cpp
+++ b/docs/examples/Paint_013.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a6575a49467ce8d28bb01cc7638fa04d
-REG_FIDDLE(Paint_013, 512, 256, false, 0) {
+REG_FIDDLE(Anti_Alias, 512, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     bitmap.allocN32Pixels(50, 50);
diff --git a/docs/examples/Paint_014.cpp b/docs/examples/Paint_014.cpp
index eb9a134..0c9ecd7 100644
--- a/docs/examples/Paint_014.cpp
+++ b/docs/examples/Paint_014.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d7d5f4f7da7acd5104a652f490c6f7b8
-REG_FIDDLE(Paint_014, 256, 256, true, 0) {
+REG_FIDDLE(Paint_isAntiAlias, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkDebugf("paint.isAntiAlias() %c= !!(paint.getFlags() & SkPaint::kAntiAlias_Flag)\n",
diff --git a/docs/examples/Paint_015.cpp b/docs/examples/Paint_015.cpp
index 760fd53..3519e7e 100644
--- a/docs/examples/Paint_015.cpp
+++ b/docs/examples/Paint_015.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c2ff148374d01cbef845b223e725905c
-REG_FIDDLE(Paint_015, 256, 256, true, 0) {
+REG_FIDDLE(Paint_setAntiAlias, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint1, paint2;
     paint1.setAntiAlias(true);
diff --git a/docs/examples/Paint_016.cpp b/docs/examples/Paint_016.cpp
index 892f7f6..2587848 100644
--- a/docs/examples/Paint_016.cpp
+++ b/docs/examples/Paint_016.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8b26507690b71462f44642b911890bbf
-REG_FIDDLE(Paint_016, 256, 256, false, 0) {
+REG_FIDDLE(Dither_a, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bm16;
     bm16.allocPixels(SkImageInfo::Make(32, 32, kRGB_565_SkColorType, kOpaque_SkAlphaType));
diff --git a/docs/examples/Paint_017.cpp b/docs/examples/Paint_017.cpp
index 0fe47e1..1313bc5 100644
--- a/docs/examples/Paint_017.cpp
+++ b/docs/examples/Paint_017.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=76d4d4a7931a48495e4d5f54e073be53
-REG_FIDDLE(Paint_017, 256, 256, false, 0) {
+REG_FIDDLE(Dither_b, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     canvas->clear(0);
     SkBitmap bm32;
diff --git a/docs/examples/Paint_018.cpp b/docs/examples/Paint_018.cpp
index fc94d59..8de4a6c 100644
--- a/docs/examples/Paint_018.cpp
+++ b/docs/examples/Paint_018.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f4ce93f6c5e7335436a985377fd980c0
-REG_FIDDLE(Paint_018, 256, 256, true, 0) {
+REG_FIDDLE(Paint_isDither, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkDebugf("paint.isDither() %c= !!(paint.getFlags() & SkPaint::kDither_Flag)\n",
diff --git a/docs/examples/Paint_019.cpp b/docs/examples/Paint_019.cpp
index 8371e78..093a506 100644
--- a/docs/examples/Paint_019.cpp
+++ b/docs/examples/Paint_019.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=69b7162e8324d9239dd02dd9ada2bdff
-REG_FIDDLE(Paint_019, 256, 256, true, 0) {
+REG_FIDDLE(Paint_setDither, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint1, paint2;
     paint1.setDither(true);
diff --git a/docs/examples/Paint_020.cpp b/docs/examples/Paint_020.cpp
index 8517d11..5a3c0f0 100644
--- a/docs/examples/Paint_020.cpp
+++ b/docs/examples/Paint_020.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4606ae1be792d6bc46d496432f050ee9
-REG_FIDDLE(Paint_020, 256, 256, false, 0) {
+REG_FIDDLE(Device_Text, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     bitmap.allocN32Pixels(24, 33);
diff --git a/docs/examples/Paint_021.cpp b/docs/examples/Paint_021.cpp
index f5a31cd..25c0432 100644
--- a/docs/examples/Paint_021.cpp
+++ b/docs/examples/Paint_021.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=2890ad644f980637837e6fcb386fb462
-REG_FIDDLE(Paint_021, 256, 128, false, 0) {
+REG_FIDDLE(Paint_isLinearText, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Paint_022.cpp b/docs/examples/Paint_022.cpp
index a027542..18469fe 100644
--- a/docs/examples/Paint_022.cpp
+++ b/docs/examples/Paint_022.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c93bb912f3bddfb4d96d3ad70ada552b
-REG_FIDDLE(Paint_022, 256, 128, false, 0) {
+REG_FIDDLE(Paint_setLinearText, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Paint_023.cpp b/docs/examples/Paint_023.cpp
index d7763e5..a55546c 100644
--- a/docs/examples/Paint_023.cpp
+++ b/docs/examples/Paint_023.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=abe9afc0932e2199324ae6cbb396e67c
-REG_FIDDLE(Paint_023, 256, 256, true, 0) {
+REG_FIDDLE(Paint_isSubpixelText, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkDebugf("paint.isSubpixelText() %c= !!(paint.getFlags() & SkPaint::kSubpixelText_Flag)\n",
diff --git a/docs/examples/Paint_024.cpp b/docs/examples/Paint_024.cpp
index 38c6c78..28e324b 100644
--- a/docs/examples/Paint_024.cpp
+++ b/docs/examples/Paint_024.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a77bbc1a4e3be9a8ab0f842f877c5ee4
-REG_FIDDLE(Paint_024, 256, 256, true, 0) {
+REG_FIDDLE(Paint_setSubpixelText, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint1, paint2;
     paint1.setSubpixelText(true);
diff --git a/docs/examples/Paint_025.cpp b/docs/examples/Paint_025.cpp
index 7965028..a139270 100644
--- a/docs/examples/Paint_025.cpp
+++ b/docs/examples/Paint_025.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=68e1fd95dd2fd06a333899d2bd2396b9
-REG_FIDDLE(Paint_025, 256, 256, true, 0) {
+REG_FIDDLE(Paint_isLCDRenderText, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkDebugf("paint.isLCDRenderText() %c= !!(paint.getFlags() & SkPaint::kLCDRenderText_Flag)\n",
diff --git a/docs/examples/Paint_026.cpp b/docs/examples/Paint_026.cpp
index cfc1c4f..cbbbacf 100644
--- a/docs/examples/Paint_026.cpp
+++ b/docs/examples/Paint_026.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=50dedf8450159571a3edaf4f0050defe
-REG_FIDDLE(Paint_026, 256, 256, true, 0) {
+REG_FIDDLE(Paint_setLCDRenderText, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint1, paint2;
     paint1.setLCDRenderText(true);
diff --git a/docs/examples/Paint_027.cpp b/docs/examples/Paint_027.cpp
index ec902f5..9390151 100644
--- a/docs/examples/Paint_027.cpp
+++ b/docs/examples/Paint_027.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=eba10b27b790e87183ae451b3fc5c4b1
-REG_FIDDLE(Paint_027, 256, 256, true, 0) {
+REG_FIDDLE(Paint_isEmbeddedBitmapText, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkDebugf("paint.isEmbeddedBitmapText() %c="
diff --git a/docs/examples/Paint_028.cpp b/docs/examples/Paint_028.cpp
index eaf8925..35683b5 100644
--- a/docs/examples/Paint_028.cpp
+++ b/docs/examples/Paint_028.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=246dffdd93a484ba4ad7ecf71198a5d4
-REG_FIDDLE(Paint_028, 256, 256, true, 0) {
+REG_FIDDLE(Paint_setEmbeddedBitmapText, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint1, paint2;
     paint1.setEmbeddedBitmapText(true);
diff --git a/docs/examples/Paint_029.cpp b/docs/examples/Paint_029.cpp
index 55fcde7..682e886 100644
--- a/docs/examples/Paint_029.cpp
+++ b/docs/examples/Paint_029.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=aa4781afbe3b90e7ef56a287e5b9ce1e
-REG_FIDDLE(Paint_029, 256, 256, true, 0) {
+REG_FIDDLE(Paint_isAutohinted, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     for (auto forceAutoHinting : { false, true} ) {
diff --git a/docs/examples/Paint_030.cpp b/docs/examples/Paint_030.cpp
index 4cbfaf2..d55f15d 100644
--- a/docs/examples/Paint_030.cpp
+++ b/docs/examples/Paint_030.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4e185306d7de9390fe8445eed0139309
-REG_FIDDLE(Paint_030, 256, 256, false, 0) {
+REG_FIDDLE(Paint_setAutohinted, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Paint_031.cpp b/docs/examples/Paint_031.cpp
index 5bc3168..37b0e51 100644
--- a/docs/examples/Paint_031.cpp
+++ b/docs/examples/Paint_031.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e811f4829a2daaaeaad3795504a7e02a
-REG_FIDDLE(Paint_031, 256, 128, false, 0) {
+REG_FIDDLE(Fake_Bold, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Paint_032.cpp b/docs/examples/Paint_032.cpp
index 29bff63..a851e44 100644
--- a/docs/examples/Paint_032.cpp
+++ b/docs/examples/Paint_032.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f54d1f85b16073b80b9eef2e1a1d151d
-REG_FIDDLE(Paint_032, 256, 256, true, 0) {
+REG_FIDDLE(Paint_isFakeBoldText, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkDebugf("paint.isFakeBoldText() %c= !!(paint.getFlags() & SkPaint::kFakeBoldText_Flag)\n",
diff --git a/docs/examples/Paint_033.cpp b/docs/examples/Paint_033.cpp
index 264adc6..3015573 100644
--- a/docs/examples/Paint_033.cpp
+++ b/docs/examples/Paint_033.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=594d47858eb11028cb626515a520910a
-REG_FIDDLE(Paint_033, 256, 256, true, 0) {
+REG_FIDDLE(Paint_setFakeBoldText, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint1, paint2;
     paint1.setFakeBoldText(true);
diff --git a/docs/examples/Paint_034.cpp b/docs/examples/Paint_034.cpp
index 5820f01..c6c80df 100644
--- a/docs/examples/Paint_034.cpp
+++ b/docs/examples/Paint_034.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=69369cff2f5b145a6f616092513266a0
-REG_FIDDLE(Paint_034, 256, 256, false, 3) {
+REG_FIDDLE(Filter_Quality_Methods, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     canvas->scale(.2f, .2f);
diff --git a/docs/examples/Paint_035.cpp b/docs/examples/Paint_035.cpp
index c264a95..990ac83 100644
--- a/docs/examples/Paint_035.cpp
+++ b/docs/examples/Paint_035.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d4ca1f23809b6835c4ba46ea98a86900
-REG_FIDDLE(Paint_035, 256, 256, true, 0) {
+REG_FIDDLE(Paint_getFilterQuality, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkDebugf("kNone_SkFilterQuality %c= paint.getFilterQuality()\n",
diff --git a/docs/examples/Paint_036.cpp b/docs/examples/Paint_036.cpp
index fa09234..0946595 100644
--- a/docs/examples/Paint_036.cpp
+++ b/docs/examples/Paint_036.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e4288fabf24ee60b645e8bb6ea0afadf
-REG_FIDDLE(Paint_036, 256, 256, true, 0) {
+REG_FIDDLE(Paint_setFilterQuality, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setFilterQuality(kHigh_SkFilterQuality);
diff --git a/docs/examples/Paint_037.cpp b/docs/examples/Paint_037.cpp
index 5ecfff5..5545839 100644
--- a/docs/examples/Paint_037.cpp
+++ b/docs/examples/Paint_037.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=214b559d75c65a7bef6ef4be1f860053
-REG_FIDDLE(Paint_037, 256, 128, false, 0) {
+REG_FIDDLE(Color_Methods, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setColor(0x8000FF00);  // transparent green
diff --git a/docs/examples/Paint_038.cpp b/docs/examples/Paint_038.cpp
index 7d821ea..831b4a1 100644
--- a/docs/examples/Paint_038.cpp
+++ b/docs/examples/Paint_038.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=72d41f890203109a41f589a7403acae9
-REG_FIDDLE(Paint_038, 256, 256, true, 0) {
+REG_FIDDLE(Paint_getColor, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setColor(SK_ColorYELLOW);
diff --git a/docs/examples/Paint_039.cpp b/docs/examples/Paint_039.cpp
index 2aaced0..c7e4fa9 100644
--- a/docs/examples/Paint_039.cpp
+++ b/docs/examples/Paint_039.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8512ea2176f36e8f1aeef311ff228790
-REG_FIDDLE(Paint_039, 256, 256, true, 0) {
+REG_FIDDLE(Paint_getColor4f, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setColor(SK_ColorYELLOW);
diff --git a/docs/examples/Paint_040.cpp b/docs/examples/Paint_040.cpp
index 8a4406d..f0d770a 100644
--- a/docs/examples/Paint_040.cpp
+++ b/docs/examples/Paint_040.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6e70f18300bd676a3c056ceb6b62f8df
-REG_FIDDLE(Paint_040, 256, 256, true, 0) {
+REG_FIDDLE(Paint_setColor, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint green1, green2;
     unsigned a = 255;
diff --git a/docs/examples/Paint_041.cpp b/docs/examples/Paint_041.cpp
index 7ce0ca6..601d3bb 100644
--- a/docs/examples/Paint_041.cpp
+++ b/docs/examples/Paint_041.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=fa60859e3d03bdc117a05b32e093a8f1
-REG_FIDDLE(Paint_041, 256, 256, true, 0) {
+REG_FIDDLE(Paint_setColor4f, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint green1, green2;
     green1.setColor4f({0, 1, 0, 1}, nullptr);  // R=0 G=1 B=0 A=1
diff --git a/docs/examples/Paint_042.cpp b/docs/examples/Paint_042.cpp
index 1a144dc..14f07b5 100644
--- a/docs/examples/Paint_042.cpp
+++ b/docs/examples/Paint_042.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9a85bb62fe3d877b18fb7f952c4fa7f7
-REG_FIDDLE(Paint_042, 256, 256, true, 0) {
+REG_FIDDLE(Paint_getAlpha, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkDebugf("255 %c= paint.getAlpha()\n", 255 == paint.getAlpha() ? '=' : '!');
diff --git a/docs/examples/Paint_043.cpp b/docs/examples/Paint_043.cpp
index 138fe60..fb4782e 100644
--- a/docs/examples/Paint_043.cpp
+++ b/docs/examples/Paint_043.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6ddc0360512dfb9947e75c17e6a8103d
-REG_FIDDLE(Paint_043, 256, 256, true, 0) {
+REG_FIDDLE(Paint_setAlpha, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setColor(0x00112233);
diff --git a/docs/examples/Paint_044.cpp b/docs/examples/Paint_044.cpp
index 0a826fd..703f0ff 100644
--- a/docs/examples/Paint_044.cpp
+++ b/docs/examples/Paint_044.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=cb62e4755789ed32f7120dc55984959d
-REG_FIDDLE(Paint_044, 256, 256, true, 0) {
+REG_FIDDLE(Paint_setARGB, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint transRed1, transRed2;
     transRed1.setARGB(255 / 2, 255, 0, 0);
diff --git a/docs/examples/Paint_045.cpp b/docs/examples/Paint_045.cpp
index d445b06..9fcaa43c 100644
--- a/docs/examples/Paint_045.cpp
+++ b/docs/examples/Paint_045.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1c5e18c3c0102d2dac86a78ba8c8ce01
-REG_FIDDLE(Paint_045, 256, 256, true, 0) {
+REG_FIDDLE(Paint_getStyle, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkDebugf("SkPaint::kFill_Style %c= paint.getStyle()\n",
diff --git a/docs/examples/Paint_046.cpp b/docs/examples/Paint_046.cpp
index 2657797..05c24a9 100644
--- a/docs/examples/Paint_046.cpp
+++ b/docs/examples/Paint_046.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c7bb6248e4735b8d1a32d02fba40d344
-REG_FIDDLE(Paint_046, 256, 256, false, 0) {
+REG_FIDDLE(Paint_setStyle, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setStrokeWidth(5);
diff --git a/docs/examples/Paint_047.cpp b/docs/examples/Paint_047.cpp
index 6ed1fb2..f16d343 100644
--- a/docs/examples/Paint_047.cpp
+++ b/docs/examples/Paint_047.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5112c7209a19e035c61cef33a624a652
-REG_FIDDLE(Paint_047, 256, 170, false, 0) {
+REG_FIDDLE(Stroke_Width, 256, 170, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     for (bool antialias : { false, true }) {
diff --git a/docs/examples/Paint_048.cpp b/docs/examples/Paint_048.cpp
index 476e5c6..a8c672e 100644
--- a/docs/examples/Paint_048.cpp
+++ b/docs/examples/Paint_048.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=99aa73f64df8bbf06e656cd891a81b9e
-REG_FIDDLE(Paint_048, 256, 256, true, 0) {
+REG_FIDDLE(Paint_getStrokeWidth, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkDebugf("0 %c= paint.getStrokeWidth()\n", 0 == paint.getStrokeWidth() ? '=' : '!');
diff --git a/docs/examples/Paint_049.cpp b/docs/examples/Paint_049.cpp
index 73e6103..de99d49 100644
--- a/docs/examples/Paint_049.cpp
+++ b/docs/examples/Paint_049.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0c4446c0870b5c7b5a2efe77ff92afb8
-REG_FIDDLE(Paint_049, 256, 256, true, 0) {
+REG_FIDDLE(Paint_setStrokeWidth, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setStrokeWidth(5);
diff --git a/docs/examples/Paint_050.cpp b/docs/examples/Paint_050.cpp
index 1cdc48c..88c1229 100644
--- a/docs/examples/Paint_050.cpp
+++ b/docs/examples/Paint_050.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5de2de0f00354e59074a9bb1a42d5a63
-REG_FIDDLE(Paint_050, 384, 170, false, 0) {
+REG_FIDDLE(Miter_Limit, 384, 170, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPoint pts[] = {{ 10, 50 }, { 110, 80 }, { 10, 110 }};
     SkVector v[] = { pts[0] - pts[1], pts[2] - pts[1] };
diff --git a/docs/examples/Paint_051.cpp b/docs/examples/Paint_051.cpp
index 91f92a4..77c09bd 100644
--- a/docs/examples/Paint_051.cpp
+++ b/docs/examples/Paint_051.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=50da74a43b725f07a914df588c867d36
-REG_FIDDLE(Paint_051, 256, 256, true, 0) {
+REG_FIDDLE(Paint_getStrokeMiter, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkDebugf("default miter limit == %g\n", paint.getStrokeMiter());
diff --git a/docs/examples/Paint_052.cpp b/docs/examples/Paint_052.cpp
index 931be17..4fed994 100644
--- a/docs/examples/Paint_052.cpp
+++ b/docs/examples/Paint_052.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=700b284dbc97785c6a9c9636088713ad
-REG_FIDDLE(Paint_052, 256, 256, true, 0) {
+REG_FIDDLE(Paint_setStrokeMiter, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setStrokeMiter(8);
diff --git a/docs/examples/Paint_054.cpp b/docs/examples/Paint_054.cpp
index 2bca248..37823b3 100644
--- a/docs/examples/Paint_054.cpp
+++ b/docs/examples/Paint_054.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=aabf9baee8e026fae36fca30e955512b
-REG_FIDDLE(Paint_054, 256, 256, true, 0) {
+REG_FIDDLE(Paint_getStrokeCap, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkDebugf("kButt_Cap %c= default stroke cap\n",
diff --git a/docs/examples/Paint_055.cpp b/docs/examples/Paint_055.cpp
index 6f9efbe..385d045 100644
--- a/docs/examples/Paint_055.cpp
+++ b/docs/examples/Paint_055.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=de83fbd848a4625345b4b87a6e55d98a
-REG_FIDDLE(Paint_055, 256, 256, true, 0) {
+REG_FIDDLE(Paint_setStrokeCap_a, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setStrokeCap(SkPaint::kRound_Cap);
diff --git a/docs/examples/Paint_056.cpp b/docs/examples/Paint_056.cpp
index b4388bb..8dd4c53 100644
--- a/docs/examples/Paint_056.cpp
+++ b/docs/examples/Paint_056.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=917c44b504d3f9308571fd3835d90a0d
-REG_FIDDLE(Paint_056, 256, 200, false, 0) {
+REG_FIDDLE(Paint_setStrokeCap_b, 256, 200, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setStyle(SkPaint::kStroke_Style);
diff --git a/docs/examples/Paint_058.cpp b/docs/examples/Paint_058.cpp
index 01e43c4..9f925f7 100644
--- a/docs/examples/Paint_058.cpp
+++ b/docs/examples/Paint_058.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=31bf751d0a8ddf176b871810820d8199
-REG_FIDDLE(Paint_058, 256, 256, true, 0) {
+REG_FIDDLE(Paint_getStrokeJoin, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkDebugf("kMiter_Join %c= default stroke join\n",
diff --git a/docs/examples/Paint_059.cpp b/docs/examples/Paint_059.cpp
index 7f606eb..151239f 100644
--- a/docs/examples/Paint_059.cpp
+++ b/docs/examples/Paint_059.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=48d963ad4286eddf680f9c511eb6da91
-REG_FIDDLE(Paint_059, 256, 256, true, 0) {
+REG_FIDDLE(Paint_setStrokeJoin, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setStrokeJoin(SkPaint::kMiter_Join);
diff --git a/docs/examples/Paint_060.cpp b/docs/examples/Paint_060.cpp
index 880dc79..b6f6f30 100644
--- a/docs/examples/Paint_060.cpp
+++ b/docs/examples/Paint_060.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=cedd6233848198e1fca4d1e14816baaf
-REG_FIDDLE(Paint_060, 256, 192, false, 0) {
+REG_FIDDLE(Paint_getFillPath, 256, 192, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint strokePaint;
     strokePaint.setAntiAlias(true);
diff --git a/docs/examples/Paint_061.cpp b/docs/examples/Paint_061.cpp
index 3b783ea..093d0cf 100644
--- a/docs/examples/Paint_061.cpp
+++ b/docs/examples/Paint_061.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e6d8ca0cc17e0b475bd54dd995825468
-REG_FIDDLE(Paint_061, 256, 128, false, 0) {
+REG_FIDDLE(Paint_getFillPath_2, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setStyle(SkPaint::kStroke_Style);
diff --git a/docs/examples/Paint_062.cpp b/docs/examples/Paint_062.cpp
index 4e265ab..c4a07ea 100644
--- a/docs/examples/Paint_062.cpp
+++ b/docs/examples/Paint_062.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c015dc2010c15e1c00b4f7330232b0f7
-REG_FIDDLE(Paint_062, 256, 256, false, 0) {
+REG_FIDDLE(Shader_Methods_a, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
    SkPaint paint;
    SkPoint center = { 50, 50 };
diff --git a/docs/examples/Paint_063.cpp b/docs/examples/Paint_063.cpp
index 6d267bd..9500078 100644
--- a/docs/examples/Paint_063.cpp
+++ b/docs/examples/Paint_063.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=fe80fd80b98a20823db7fb9a077243c7
-REG_FIDDLE(Paint_063, 256, 256, false, 0) {
+REG_FIDDLE(Shader_Methods_b, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
    SkPaint paint;
    SkBitmap bitmap;
diff --git a/docs/examples/Paint_064.cpp b/docs/examples/Paint_064.cpp
index 649a137..2122640 100644
--- a/docs/examples/Paint_064.cpp
+++ b/docs/examples/Paint_064.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=09f15b9fd88882850da2d235eb86292f
-REG_FIDDLE(Paint_064, 256, 256, true, 0) {
+REG_FIDDLE(Paint_getShader, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
    SkPaint paint;
    SkDebugf("nullptr %c= shader\n", paint.getShader() ? '!' : '=');
diff --git a/docs/examples/Paint_065.cpp b/docs/examples/Paint_065.cpp
index 7ed2d3b..7e3235c 100644
--- a/docs/examples/Paint_065.cpp
+++ b/docs/examples/Paint_065.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=53da0295972a418cbc9607bbb17feaa8
-REG_FIDDLE(Paint_065, 256, 256, true, 0) {
+REG_FIDDLE(Paint_refShader, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
    SkPaint paint1, paint2;
    paint1.setShader(SkShader::MakeEmptyShader());
diff --git a/docs/examples/Paint_066.cpp b/docs/examples/Paint_066.cpp
index 7ae55f3..ac15b04 100644
--- a/docs/examples/Paint_066.cpp
+++ b/docs/examples/Paint_066.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=77e64d5bae9b1ba037fd99252bb4aa58
-REG_FIDDLE(Paint_066, 256, 64, false, 0) {
+REG_FIDDLE(Paint_setShader, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setColor(SK_ColorBLUE);
diff --git a/docs/examples/Paint_067.cpp b/docs/examples/Paint_067.cpp
index 20a61be..96bf2dc 100644
--- a/docs/examples/Paint_067.cpp
+++ b/docs/examples/Paint_067.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5abde56ca2f89a18b8e231abd1b57c56
-REG_FIDDLE(Paint_067, 256, 128, false, 0) {
+REG_FIDDLE(Color_Filter_Methods, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setColorFilter(SkColorMatrixFilter::MakeLightingFilter(0xFFFFFF, 0xFF0000));
diff --git a/docs/examples/Paint_068.cpp b/docs/examples/Paint_068.cpp
index bd8d7d0..0194872 100644
--- a/docs/examples/Paint_068.cpp
+++ b/docs/examples/Paint_068.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=093bdc627d6b59002670fd290931f6c9
-REG_FIDDLE(Paint_068, 256, 256, true, 0) {
+REG_FIDDLE(Paint_getColorFilter, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
    SkPaint paint;
    SkDebugf("nullptr %c= color filter\n", paint.getColorFilter() ? '!' : '=');
diff --git a/docs/examples/Paint_069.cpp b/docs/examples/Paint_069.cpp
index 59bb757..951d05c 100644
--- a/docs/examples/Paint_069.cpp
+++ b/docs/examples/Paint_069.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b588c95fa4c86ddbc4b0546762f08297
-REG_FIDDLE(Paint_069, 256, 256, true, 0) {
+REG_FIDDLE(Paint_refColorFilter, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint1, paint2;
     paint1.setColorFilter(SkColorFilter::MakeModeFilter(0xFFFF0000, SkBlendMode::kSrcATop));
diff --git a/docs/examples/Paint_070.cpp b/docs/examples/Paint_070.cpp
index eeac356..e7d5992 100644
--- a/docs/examples/Paint_070.cpp
+++ b/docs/examples/Paint_070.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c7b786dc9b3501cd0eaba47494b6fa31
-REG_FIDDLE(Paint_070, 256, 64, false, 0) {
+REG_FIDDLE(Paint_setColorFilter, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
    SkPaint paint;
    paint.setColorFilter(SkColorFilter::MakeModeFilter(SK_ColorLTGRAY, SkBlendMode::kSrcIn));
diff --git a/docs/examples/Paint_071.cpp b/docs/examples/Paint_071.cpp
index 94769e7..a0ba2ce 100644
--- a/docs/examples/Paint_071.cpp
+++ b/docs/examples/Paint_071.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=73092d4d06faecea3c204d852a4dd8a8
-REG_FIDDLE(Paint_071, 256, 256, false, 0) {
+REG_FIDDLE(Blend_Mode_Methods, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint normal, blender;
     normal.setColor(0xFF58a889);
diff --git a/docs/examples/Paint_072.cpp b/docs/examples/Paint_072.cpp
index 398df14..f87a4bc 100644
--- a/docs/examples/Paint_072.cpp
+++ b/docs/examples/Paint_072.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a1e059c8f6740fa2044cc64152b39dda
-REG_FIDDLE(Paint_072, 256, 256, true, 0) {
+REG_FIDDLE(Paint_getBlendMode, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
    SkPaint paint;
    SkDebugf("kSrcOver %c= getBlendMode\n",
diff --git a/docs/examples/Paint_073.cpp b/docs/examples/Paint_073.cpp
deleted file mode 100644
index fa05574..0000000
--- a/docs/examples/Paint_073.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=257c9473db7a2b3a0fb2b9e2431e59a6
-REG_FIDDLE(Paint_073, 256, 256, true, 0) {
-void draw(SkCanvas* canvas) {
-   SkPaint paint;
-   SkDebugf("isSrcOver %c= true\n", paint.isSrcOver() ? '=' : '!');
-   paint.setBlendMode(SkBlendMode::kSrc);
-   SkDebugf("isSrcOver %c= true\n", paint.isSrcOver() ? '=' : '!');
-}
-}  // END FIDDLE
diff --git a/docs/examples/Paint_074.cpp b/docs/examples/Paint_074.cpp
index e8f8d6a..dbaebf8 100644
--- a/docs/examples/Paint_074.cpp
+++ b/docs/examples/Paint_074.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=257c9473db7a2b3a0fb2b9e2431e59a6
-REG_FIDDLE(Paint_074, 256, 256, true, 0) {
+REG_FIDDLE(Paint_setBlendMode, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
    SkPaint paint;
    SkDebugf("isSrcOver %c= true\n", paint.isSrcOver() ? '=' : '!');
diff --git a/docs/examples/Paint_075.cpp b/docs/examples/Paint_075.cpp
index b430bf0..ed0b396 100644
--- a/docs/examples/Paint_075.cpp
+++ b/docs/examples/Paint_075.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8cf5684b187d60f09e11c4a48993ea39
-REG_FIDDLE(Paint_075, 256, 160, false, 0) {
+REG_FIDDLE(Path_Effect_Methods, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setStyle(SkPaint::kStroke_Style);
diff --git a/docs/examples/Paint_076.cpp b/docs/examples/Paint_076.cpp
index 58d04f9..d5f1acd 100644
--- a/docs/examples/Paint_076.cpp
+++ b/docs/examples/Paint_076.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=211a1b14bfa6c4332082c8eab4fbc5fd
-REG_FIDDLE(Paint_076, 256, 256, true, 0) {
+REG_FIDDLE(Paint_getPathEffect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
    SkPaint paint;
    SkDebugf("nullptr %c= path effect\n", paint.getPathEffect() ? '!' : '=');
diff --git a/docs/examples/Paint_077.cpp b/docs/examples/Paint_077.cpp
index e4aed13..0f85d93 100644
--- a/docs/examples/Paint_077.cpp
+++ b/docs/examples/Paint_077.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f56039b94c702c2704c8c5100e623aca
-REG_FIDDLE(Paint_077, 256, 256, true, 0) {
+REG_FIDDLE(Paint_refPathEffect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint1, paint2;
     SkScalar intervals[] = {1, 2};
diff --git a/docs/examples/Paint_078.cpp b/docs/examples/Paint_078.cpp
index 1dfadf4..d3071c1 100644
--- a/docs/examples/Paint_078.cpp
+++ b/docs/examples/Paint_078.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=52dd55074ca0b7d520d04e750ca2a0d7
-REG_FIDDLE(Paint_078, 256, 256, false, 0) {
+REG_FIDDLE(Paint_setPathEffect, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setPathEffect(SkDiscretePathEffect::Make(3, 5));
diff --git a/docs/examples/Paint_079.cpp b/docs/examples/Paint_079.cpp
index dbac604..8702c6a 100644
--- a/docs/examples/Paint_079.cpp
+++ b/docs/examples/Paint_079.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=55d7b9d482ac8e17a6153f555a8adb8d
-REG_FIDDLE(Paint_079, 256, 256, false, 0) {
+REG_FIDDLE(Mask_Filter_Methods, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setMaskFilter(SkMaskFilter::MakeBlur(kSolid_SkBlurStyle, 3));
diff --git a/docs/examples/Paint_080.cpp b/docs/examples/Paint_080.cpp
index 062f261..97f3fef 100644
--- a/docs/examples/Paint_080.cpp
+++ b/docs/examples/Paint_080.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5ac4b31371726da87bb7390b385e9fee
-REG_FIDDLE(Paint_080, 256, 256, true, 0) {
+REG_FIDDLE(Paint_getMaskFilter, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
    SkPaint paint;
    SkDebugf("nullptr %c= mask filter\n", paint.getMaskFilter() ? '!' : '=');
diff --git a/docs/examples/Paint_081.cpp b/docs/examples/Paint_081.cpp
index 2d5e215..371370b 100644
--- a/docs/examples/Paint_081.cpp
+++ b/docs/examples/Paint_081.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=084b0dc3cebd78718c651d58f257f799
-REG_FIDDLE(Paint_081, 256, 256, true, 0) {
+REG_FIDDLE(Paint_refMaskFilter, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint1, paint2;
     paint1.setMaskFilter(SkMaskFilter::MakeBlur(kNormal_SkBlurStyle, 1));
diff --git a/docs/examples/Paint_082.cpp b/docs/examples/Paint_082.cpp
index 5870a93..a53bf5f 100644
--- a/docs/examples/Paint_082.cpp
+++ b/docs/examples/Paint_082.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a993831c40f3e134f809134e3b74e4a6
-REG_FIDDLE(Paint_082, 256, 256, false, 0) {
+REG_FIDDLE(Paint_setMaskFilter, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setStyle(SkPaint::kStroke_Style);
diff --git a/docs/examples/Paint_083.cpp b/docs/examples/Paint_083.cpp
index 93314e5..7ec9530 100644
--- a/docs/examples/Paint_083.cpp
+++ b/docs/examples/Paint_083.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1a7a5062725139760962582f599f1b97
-REG_FIDDLE(Paint_083, 256, 100, false, 0) {
+REG_FIDDLE(Typeface_Methods, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTypeface(SkTypeface::MakeFromName(nullptr, SkFontStyle()));
diff --git a/docs/examples/Paint_084.cpp b/docs/examples/Paint_084.cpp
index 369ba3b..6491632 100644
--- a/docs/examples/Paint_084.cpp
+++ b/docs/examples/Paint_084.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5ce718e5a184baaac80e7098d7dad67b
-REG_FIDDLE(Paint_084, 256, 256, true, 0) {
+REG_FIDDLE(Paint_getTypeface, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
    SkPaint paint;
    SkDebugf("nullptr %c= typeface\n", paint.getTypeface() ? '!' : '=');
diff --git a/docs/examples/Paint_085.cpp b/docs/examples/Paint_085.cpp
index 69fb155..8f114ff 100644
--- a/docs/examples/Paint_085.cpp
+++ b/docs/examples/Paint_085.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8b5aa7e555a0dc31be69db7cadf471a1
-REG_FIDDLE(Paint_085, 256, 256, true, 0) {
+REG_FIDDLE(Paint_refTypeface, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
    SkPaint paint1, paint2;
    paint1.setTypeface(SkTypeface::MakeFromName("monospace",
diff --git a/docs/examples/Paint_086.cpp b/docs/examples/Paint_086.cpp
index b1427ee..70ab45b 100644
--- a/docs/examples/Paint_086.cpp
+++ b/docs/examples/Paint_086.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0e6fbb7773cd925b274552f4cd1abef2
-REG_FIDDLE(Paint_086, 256, 64, false, 0) {
+REG_FIDDLE(Paint_setTypeface, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTypeface(SkTypeface::MakeFromName("monospace", SkFontStyle()));
diff --git a/docs/examples/Paint_087.cpp b/docs/examples/Paint_087.cpp
index 9b769ad..ec17e4b 100644
--- a/docs/examples/Paint_087.cpp
+++ b/docs/examples/Paint_087.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ece04ee3d3761e3425f37c8f06f054c1
-REG_FIDDLE(Paint_087, 256, 256, false, 0) {
+REG_FIDDLE(Image_Filter_Methods, 256, 256, false, 0) {
 #include "SkBlurImageFilter.h"
 
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_088.cpp b/docs/examples/Paint_088.cpp
index 8efd014..1112d28 100644
--- a/docs/examples/Paint_088.cpp
+++ b/docs/examples/Paint_088.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c11f8eaa1dd149bc18db21e23ce26904
-REG_FIDDLE(Paint_088, 256, 256, true, 0) {
+REG_FIDDLE(Paint_getImageFilter, 256, 256, true, 0) {
 #include "SkBlurImageFilter.h"
 
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_089.cpp b/docs/examples/Paint_089.cpp
index 40e8ac9..c73aec3 100644
--- a/docs/examples/Paint_089.cpp
+++ b/docs/examples/Paint_089.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=13f09088b569251547107d14ae989dc1
-REG_FIDDLE(Paint_089, 256, 256, true, 0) {
+REG_FIDDLE(Paint_refImageFilter, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint1, paint2;
     paint1.setImageFilter(SkOffsetImageFilter::Make(25, 25, nullptr));
diff --git a/docs/examples/Paint_090.cpp b/docs/examples/Paint_090.cpp
index b027df5..5d0ce21 100644
--- a/docs/examples/Paint_090.cpp
+++ b/docs/examples/Paint_090.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6679d6e4ec632715ee03e68391bd7f9a
-REG_FIDDLE(Paint_090, 256, 160, false, 0) {
+REG_FIDDLE(Paint_setImageFilter, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
     SkBitmap bitmap;
     bitmap.allocN32Pixels(100, 100);
diff --git a/docs/examples/Paint_091.cpp b/docs/examples/Paint_091.cpp
index cfcc748..aca8e4b 100644
--- a/docs/examples/Paint_091.cpp
+++ b/docs/examples/Paint_091.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=84ec12a36e50df5ac565cc7a75ffbe9f
-REG_FIDDLE(Paint_091, 256, 128, false, 0) {
+REG_FIDDLE(Draw_Looper_Methods, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkLayerDrawLooper::LayerInfo info;
     info.fPaintBits = (SkLayerDrawLooper::BitFlags) SkLayerDrawLooper::kColorFilter_Bit;
diff --git a/docs/examples/Paint_092.cpp b/docs/examples/Paint_092.cpp
index 408422f..fb578c4 100644
--- a/docs/examples/Paint_092.cpp
+++ b/docs/examples/Paint_092.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=af4c5acc7a91e7f23c2af48018903ad4
-REG_FIDDLE(Paint_092, 256, 256, true, 0) {
+REG_FIDDLE(Paint_getDrawLooper, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
    SkPaint paint;
    SkDebugf("nullptr %c= draw looper\n", paint.getDrawLooper() ? '!' : '=');
diff --git a/docs/examples/Paint_093.cpp b/docs/examples/Paint_093.cpp
index 3093275..71bf029 100644
--- a/docs/examples/Paint_093.cpp
+++ b/docs/examples/Paint_093.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=2a3782c33f04ed17a725d0e449c6f7c3
-REG_FIDDLE(Paint_093, 256, 256, true, 0) {
+REG_FIDDLE(Paint_refDrawLooper, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint1, paint2;
     SkLayerDrawLooper::Builder looperBuilder;
diff --git a/docs/examples/Paint_094.cpp b/docs/examples/Paint_094.cpp
index db39fd6..612312c 100644
--- a/docs/examples/Paint_094.cpp
+++ b/docs/examples/Paint_094.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=bf10f838b330f0a3a3266d42ea68a638
-REG_FIDDLE(Paint_094, 256, 128, false, 0) {
+REG_FIDDLE(Paint_setDrawLooper, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setDrawLooper(SkBlurDrawLooper::Make(0x7FFF0000, 4, -5, -10));
diff --git a/docs/examples/Paint_095.cpp b/docs/examples/Paint_095.cpp
index 0d6f600..4fa50ac 100644
--- a/docs/examples/Paint_095.cpp
+++ b/docs/examples/Paint_095.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=91c9a3e498bb9412e4522a95d076ed5f
-REG_FIDDLE(Paint_095, 256, 135, false, 0) {
+REG_FIDDLE(Text_Size, 256, 135, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     canvas->drawString("12 point", 10, 20, paint);
diff --git a/docs/examples/Paint_096.cpp b/docs/examples/Paint_096.cpp
index 4a3b2f0..9a85a17 100644
--- a/docs/examples/Paint_096.cpp
+++ b/docs/examples/Paint_096.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=983e2a71ba72d4ba8c945420040b8f1c
-REG_FIDDLE(Paint_096, 256, 256, true, 0) {
+REG_FIDDLE(Paint_getTextSize, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkDebugf("12 %c= default text size\n", 12 == paint.getTextSize() ? '=' : '!');
diff --git a/docs/examples/Paint_097.cpp b/docs/examples/Paint_097.cpp
index d25d44d..31fa3ca 100644
--- a/docs/examples/Paint_097.cpp
+++ b/docs/examples/Paint_097.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6510c9e2f57b83c47e67829e7a68d493
-REG_FIDDLE(Paint_097, 256, 256, true, 0) {
+REG_FIDDLE(Paint_setTextSize, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkDebugf("12 %c= text size\n", 12 == paint.getTextSize() ? '=' : '!');
diff --git a/docs/examples/Paint_098.cpp b/docs/examples/Paint_098.cpp
index 4a3c7f9..b103bc4 100644
--- a/docs/examples/Paint_098.cpp
+++ b/docs/examples/Paint_098.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d13d787c1e36f515319fc998411c1d91
-REG_FIDDLE(Paint_098, 256, 128, false, 0) {
+REG_FIDDLE(Text_Scale_X, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Paint_099.cpp b/docs/examples/Paint_099.cpp
index 5fc1117..c8b4d94 100644
--- a/docs/examples/Paint_099.cpp
+++ b/docs/examples/Paint_099.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5dc8e58f6910cb8e4de9ed60f888188b
-REG_FIDDLE(Paint_099, 256, 256, true, 0) {
+REG_FIDDLE(Paint_getTextScaleX, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkDebugf("1 %c= default text scale x\n", 1 == paint.getTextScaleX() ? '=' : '!');
diff --git a/docs/examples/Paint_100.cpp b/docs/examples/Paint_100.cpp
index 683f21b..41af1f2 100644
--- a/docs/examples/Paint_100.cpp
+++ b/docs/examples/Paint_100.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a75bbdb8bb866b125c4c1dd5e967d470
-REG_FIDDLE(Paint_100, 256, 256, true, 0) {
+REG_FIDDLE(Paint_setTextScaleX, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTextScaleX(0.f / 0.f);
diff --git a/docs/examples/Paint_101.cpp b/docs/examples/Paint_101.cpp
index 6ca7eba..a16ab1a 100644
--- a/docs/examples/Paint_101.cpp
+++ b/docs/examples/Paint_101.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=aff208b0aab265f273045b27e683c17c
-REG_FIDDLE(Paint_101, 256, 128, false, 0) {
+REG_FIDDLE(Text_Skew_X, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Paint_102.cpp b/docs/examples/Paint_102.cpp
index 3d16133..8e0b72d 100644
--- a/docs/examples/Paint_102.cpp
+++ b/docs/examples/Paint_102.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=11c10f466dae0d1639dbb9f6a0040218
-REG_FIDDLE(Paint_102, 256, 256, true, 0) {
+REG_FIDDLE(Paint_getTextSkewX, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkDebugf("0 %c= default text skew x\n", 0 == paint.getTextSkewX() ? '=' : '!');
diff --git a/docs/examples/Paint_103.cpp b/docs/examples/Paint_103.cpp
index bc18d6c..25e5a0b 100644
--- a/docs/examples/Paint_103.cpp
+++ b/docs/examples/Paint_103.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6bd705a6e0c5f8ee24f302fe531bfabc
-REG_FIDDLE(Paint_103, 256, 256, true, 0) {
+REG_FIDDLE(Paint_setTextSkewX, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTextScaleX(1.f / 0.f);
diff --git a/docs/examples/Paint_104.cpp b/docs/examples/Paint_104.cpp
index 1eccff6..ef4b438 100644
--- a/docs/examples/Paint_104.cpp
+++ b/docs/examples/Paint_104.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=767fa4e7b6300e16a419f9881f0f9d3d
-REG_FIDDLE(Paint_104, 256, 128, false, 0) {
+REG_FIDDLE(Text_Encoding, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     const char hello8[] = "Hello" "\xE2" "\x98" "\xBA";
diff --git a/docs/examples/Paint_105.cpp b/docs/examples/Paint_105.cpp
index e5f5c7c..6bae086 100644
--- a/docs/examples/Paint_105.cpp
+++ b/docs/examples/Paint_105.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0d21e968e9a4c78c902ae3ef494941a0
-REG_FIDDLE(Paint_105, 256, 256, true, 0) {
+REG_FIDDLE(Paint_getTextEncoding, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkDebugf("kUTF8_SkTextEncoding %c= text encoding\n",
diff --git a/docs/examples/Paint_106.cpp b/docs/examples/Paint_106.cpp
index 0fd8de7..0cba688 100644
--- a/docs/examples/Paint_106.cpp
+++ b/docs/examples/Paint_106.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a5d1ba0dbf42afb797ffdb07647b5cb9
-REG_FIDDLE(Paint_106, 256, 256, true, 0) {
+REG_FIDDLE(Paint_setTextEncoding, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTextEncoding((SkTextEncoding) 4);
diff --git a/docs/examples/Paint_107.cpp b/docs/examples/Paint_107.cpp
index 9f68365..5cf535c 100644
--- a/docs/examples/Paint_107.cpp
+++ b/docs/examples/Paint_107.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=59d9b8249afa1c2af6186711250ce240
-REG_FIDDLE(Paint_107, 256, 128, false, 0) {
+REG_FIDDLE(Paint_getFontMetrics, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTextSize(32);
diff --git a/docs/examples/Paint_108.cpp b/docs/examples/Paint_108.cpp
index 219cfae..d46225e 100644
--- a/docs/examples/Paint_108.cpp
+++ b/docs/examples/Paint_108.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=424741e26e1b174e43087d67422ce14f
-REG_FIDDLE(Paint_108, 256, 256, true, 0) {
+REG_FIDDLE(Paint_getFontSpacing, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     for (SkScalar textSize : { 12, 18, 24, 32 } ) {
diff --git a/docs/examples/Paint_109.cpp b/docs/examples/Paint_109.cpp
index c3edc25..ca0bab1 100644
--- a/docs/examples/Paint_109.cpp
+++ b/docs/examples/Paint_109.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d11136d8a74f63009da2a7f550710823
-REG_FIDDLE(Paint_109, 256, 64, false, 0) {
+REG_FIDDLE(Paint_textToGlyphs, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     const uint8_t utf8[] = { 0x24, 0xC2, 0xA2, 0xE2, 0x82, 0xAC, 0xC2, 0xA5, 0xC2, 0xA3 };
diff --git a/docs/examples/Paint_110.cpp b/docs/examples/Paint_110.cpp
index 30a403a..b648b21 100644
--- a/docs/examples/Paint_110.cpp
+++ b/docs/examples/Paint_110.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=85436c71aab5410767fc688ab0573e09
-REG_FIDDLE(Paint_110, 256, 256, true, 0) {
+REG_FIDDLE(Paint_countText, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     const uint8_t utf8[] = { 0x24, 0xC2, 0xA2, 0xE2, 0x82, 0xAC, 0xC2, 0xA5, 0xC2, 0xA3 };
diff --git a/docs/examples/Paint_111.cpp b/docs/examples/Paint_111.cpp
index 268417c..c81b316 100644
--- a/docs/examples/Paint_111.cpp
+++ b/docs/examples/Paint_111.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6a68cb3c8b81a5976c81ee004f559247
-REG_FIDDLE(Paint_111, 256, 256, true, 0) {
+REG_FIDDLE(Paint_containsText, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     const uint16_t goodGlyph = 511;
diff --git a/docs/examples/Paint_112.cpp b/docs/examples/Paint_112.cpp
index a0e1bc4..73850d4 100644
--- a/docs/examples/Paint_112.cpp
+++ b/docs/examples/Paint_112.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=06084f609184470135a9cd9ebc5af149
-REG_FIDDLE(Paint_112, 256, 64, false, 0) {
+REG_FIDDLE(Paint_measureText, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Paint_113.cpp b/docs/examples/Paint_113.cpp
index fc66e25..c2b56d6 100644
--- a/docs/examples/Paint_113.cpp
+++ b/docs/examples/Paint_113.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f1139a5ddd17fd47c2f45f6e642cac76
-REG_FIDDLE(Paint_113, 256, 256, true, 0) {
+REG_FIDDLE(Paint_measureText_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkDebugf("default width = %g\n", paint.measureText("!", 1));
diff --git a/docs/examples/Paint_114.cpp b/docs/examples/Paint_114.cpp
index 7decce9..43e3d15 100644
--- a/docs/examples/Paint_114.cpp
+++ b/docs/examples/Paint_114.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6b9e101f49e9c2c28755c5bdcef64dfb
-REG_FIDDLE(Paint_114, 256, 160, false, 0) {
+REG_FIDDLE(Paint_getTextWidths, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Paint_115.cpp b/docs/examples/Paint_115.cpp
index 40d8309..d03146b 100644
--- a/docs/examples/Paint_115.cpp
+++ b/docs/examples/Paint_115.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=7c9e6a399f898d68026c1f0865e6f73e
-REG_FIDDLE(Paint_115, 256, 128, false, 0) {
+REG_FIDDLE(Paint_getTextPath, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTextSize(80);
diff --git a/docs/examples/Paint_116.cpp b/docs/examples/Paint_116.cpp
index c785834..df7a539 100644
--- a/docs/examples/Paint_116.cpp
+++ b/docs/examples/Paint_116.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=7f27c93472aa99a7542fb3493076f072
-REG_FIDDLE(Paint_116, 256, 85, false, 0) {
+REG_FIDDLE(Paint_getPosTextPath, 256, 85, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTextSize(80);
diff --git a/docs/examples/Paint_117.cpp b/docs/examples/Paint_117.cpp
index 8ee183c..f20f41c 100644
--- a/docs/examples/Paint_117.cpp
+++ b/docs/examples/Paint_117.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=2973b05bfbb6b4c29332c8ac4fcf3995
-REG_FIDDLE(Paint_117, 256, 256, true, 0) {
+REG_FIDDLE(Paint_nothingToDraw, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* prefix, const SkPaint& p) -> void {
         SkDebugf("%s nothing to draw: %s\n", prefix,
diff --git a/docs/examples/Path_000.cpp b/docs/examples/Path_000.cpp
index e102b7e..2af35b5 100644
--- a/docs/examples/Path_000.cpp
+++ b/docs/examples/Path_000.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=799096fdc1298aa815934a74e76570ca
-REG_FIDDLE(Path_000, 256, 256, true, 0) {
+REG_FIDDLE(Path_Verb, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path;
     path.lineTo(20, 20);
diff --git a/docs/examples/Path_001.cpp b/docs/examples/Path_001.cpp
index 5d6ccba..a6ec07d 100644
--- a/docs/examples/Path_001.cpp
+++ b/docs/examples/Path_001.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4bbae00b40ed2cfcd0007921ad693a7b
-REG_FIDDLE(Path_001, 256, 100, false, 0) {
+REG_FIDDLE(Path_Direction, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
     const SkPoint arrow[] = { {40, -5}, {45, 0}, {40, 5} };
     const SkRect rect = {10, 10, 90, 90};
diff --git a/docs/examples/Path_002.cpp b/docs/examples/Path_002.cpp
index 42465d1..47a6a93 100644
--- a/docs/examples/Path_002.cpp
+++ b/docs/examples/Path_002.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0a0026fca638d1cd75c0ab884e3ee1c6
-REG_FIDDLE(Path_002, 256, 256, true, 0) {
+REG_FIDDLE(Path_empty_constructor, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path;
     SkDebugf("path is " "%s" "empty", path.isEmpty() ? "" : "not ");
diff --git a/docs/examples/Path_003.cpp b/docs/examples/Path_003.cpp
index cd0a5c4..5442aee 100644
--- a/docs/examples/Path_003.cpp
+++ b/docs/examples/Path_003.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=647312aacd946c8a6eabaca797140432
-REG_FIDDLE(Path_003, 256, 256, true, 0) {
+REG_FIDDLE(Path_copy_const_SkPath, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path;
     path.lineTo(20, 20);
diff --git a/docs/examples/Path_004.cpp b/docs/examples/Path_004.cpp
index e459351..5209407 100644
--- a/docs/examples/Path_004.cpp
+++ b/docs/examples/Path_004.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=01ad6be9b7d15a2217daea273eb3d466
-REG_FIDDLE(Path_004, 256, 256, true, 0) {
+REG_FIDDLE(Path_destructor, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPath* path = new SkPath();
     path->lineTo(20, 20);
diff --git a/docs/examples/Path_005.cpp b/docs/examples/Path_005.cpp
index 0b25b5d..e17c609 100644
--- a/docs/examples/Path_005.cpp
+++ b/docs/examples/Path_005.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=bba288f5f77fc8e37e89d2ec08e0ac60
-REG_FIDDLE(Path_005, 256, 256, true, 0) {
+REG_FIDDLE(Path_copy_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path1;
     path1.addRect({10, 20, 30, 40});
diff --git a/docs/examples/Path_006.cpp b/docs/examples/Path_006.cpp
index f1f5eb0..b7e59ee 100644
--- a/docs/examples/Path_006.cpp
+++ b/docs/examples/Path_006.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=31883f51bb357f2ac5990d88f8b82e02
-REG_FIDDLE(Path_006, 256, 256, true, 0) {
+REG_FIDDLE(Path_equal_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* prefix, const SkPath& a, const SkPath& b) -> void {
                 SkDebugf("%s one %c= two\n", prefix, a == b ? '=' : '!');
diff --git a/docs/examples/Path_007.cpp b/docs/examples/Path_007.cpp
index 26ac1cc..f0d5c78 100644
--- a/docs/examples/Path_007.cpp
+++ b/docs/examples/Path_007.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=bbbda1cc818d96c9c0d2a06c0c48902b
-REG_FIDDLE(Path_007, 256, 256, true, 0) {
+REG_FIDDLE(Path_notequal_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* prefix, const SkPath& a, const SkPath& b) -> void {
                 SkDebugf("%s one %c= two\n", prefix, a != b ? '!' : '=');
diff --git a/docs/examples/Path_008.cpp b/docs/examples/Path_008.cpp
index 131d862..9e72687 100644
--- a/docs/examples/Path_008.cpp
+++ b/docs/examples/Path_008.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c81fc7dfaf785c3fb77209c7f2ebe5b8
-REG_FIDDLE(Path_008, 256, 256, true, 0) {
+REG_FIDDLE(Path_isInterpolatable, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path, path2;
     path.moveTo(20, 20);
diff --git a/docs/examples/Path_009.cpp b/docs/examples/Path_009.cpp
index 7bfc18c..a210601 100644
--- a/docs/examples/Path_009.cpp
+++ b/docs/examples/Path_009.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=404f11c5c9c9ca8a64822d484552a473
-REG_FIDDLE(Path_009, 256, 60, false, 0) {
+REG_FIDDLE(Path_interpolate, 256, 60, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Path_010.cpp b/docs/examples/Path_010.cpp
index 963e10a..08dadad 100644
--- a/docs/examples/Path_010.cpp
+++ b/docs/examples/Path_010.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=71fc6c069c377d808799f2453edabaf5
-REG_FIDDLE(Path_010, 256, 100, false, 0) {
+REG_FIDDLE(Path_FillType_a, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
    SkPath path;
    path.addRect({10, 10, 30, 30}, SkPath::kCW_Direction);
diff --git a/docs/examples/Path_011.cpp b/docs/examples/Path_011.cpp
index 59afb76..f6d64b3 100644
--- a/docs/examples/Path_011.cpp
+++ b/docs/examples/Path_011.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d2c33dc791cd165dcc2423226ba5b095
-REG_FIDDLE(Path_011, 256, 230, false, 0) {
+REG_FIDDLE(Path_FillType_b, 256, 230, false, 0) {
 void draw(SkCanvas* canvas) {
    SkPath path;
    path.addRect({20, 10, 80, 70}, SkPath::kCW_Direction);
diff --git a/docs/examples/Path_012.cpp b/docs/examples/Path_012.cpp
index 6c46a6e..54d3c30 100644
--- a/docs/examples/Path_012.cpp
+++ b/docs/examples/Path_012.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=019af90e778914e8a109d6305ede4fc4
-REG_FIDDLE(Path_012, 256, 256, true, 0) {
+REG_FIDDLE(Path_getFillType, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path;
     SkDebugf("default path fill type is %s\n",
diff --git a/docs/examples/Path_013.cpp b/docs/examples/Path_013.cpp
index 479ff7d..778921c 100644
--- a/docs/examples/Path_013.cpp
+++ b/docs/examples/Path_013.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b4a91cd7f50b2a0a0d1bec6d0ac823d2
-REG_FIDDLE(Path_013, 256, 64, false, 0) {
+REG_FIDDLE(Path_setFillType, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path;
     path.setFillType(SkPath::kInverseWinding_FillType);
diff --git a/docs/examples/Path_014.cpp b/docs/examples/Path_014.cpp
index a41364f..14110c6 100644
--- a/docs/examples/Path_014.cpp
+++ b/docs/examples/Path_014.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=2a2d39f5da611545caa18bbcea873ab2
-REG_FIDDLE(Path_014, 256, 256, true, 0) {
+REG_FIDDLE(Path_isInverseFillType, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path;
     SkDebugf("default path fill type is inverse: %s\n",
diff --git a/docs/examples/Path_015.cpp b/docs/examples/Path_015.cpp
index 7868d40..2b747e7 100644
--- a/docs/examples/Path_015.cpp
+++ b/docs/examples/Path_015.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=400facce23d417bc5043c5f58404afbd
-REG_FIDDLE(Path_015, 256, 100, false, 0) {
+REG_FIDDLE(Path_toggleInverseFillType, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path;
     SkPaint paint;
diff --git a/docs/examples/Path_016.cpp b/docs/examples/Path_016.cpp
index 67f9ae2..2c7bd7d 100644
--- a/docs/examples/Path_016.cpp
+++ b/docs/examples/Path_016.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ac49e8b810bd6ed5d84b4f5a3b40a0ec
-REG_FIDDLE(Path_016, 256, 256, false, 0) {
+REG_FIDDLE(Path_Convexity, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkPoint quad[] = {{70, 70}, {20, 20}, {120, 20}, {120, 120}};
diff --git a/docs/examples/Path_017.cpp b/docs/examples/Path_017.cpp
index 08d822b..b67337b 100644
--- a/docs/examples/Path_017.cpp
+++ b/docs/examples/Path_017.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a8f36f2fa90003e3691fd0da0bb0c243
-REG_FIDDLE(Path_017, 256, 256, true, 0) {
+REG_FIDDLE(Path_getConvexity, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* prefix, const SkPath& path) -> void {
         SkDebugf("%s path convexity is %s\n", prefix,
diff --git a/docs/examples/Path_018.cpp b/docs/examples/Path_018.cpp
index a71df2c..52bdb0c 100644
--- a/docs/examples/Path_018.cpp
+++ b/docs/examples/Path_018.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=111c59e9afadb940ab8f41bdc25378a4
-REG_FIDDLE(Path_018, 256, 256, true, 0) {
+REG_FIDDLE(Path_getConvexityOrUnknown, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* prefix, const SkPath& path) -> void {
         SkDebugf("%s path convexity is %s\n", prefix,
diff --git a/docs/examples/Path_019.cpp b/docs/examples/Path_019.cpp
index 8972bb2..b45a8cd 100644
--- a/docs/examples/Path_019.cpp
+++ b/docs/examples/Path_019.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=875e32b4b1cb48d739325705fc0fa42c
-REG_FIDDLE(Path_019, 256, 256, true, 0) {
+REG_FIDDLE(Path_setConvexity, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* prefix, const SkPath& path) -> void {
         SkDebugf("%s path convexity is %s\n", prefix,
diff --git a/docs/examples/Path_020.cpp b/docs/examples/Path_020.cpp
index a8b1058..19d7ee1 100644
--- a/docs/examples/Path_020.cpp
+++ b/docs/examples/Path_020.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d8be8b6e59de244e4cbf58ec9554557b
-REG_FIDDLE(Path_020, 256, 256, false, 0) {
+REG_FIDDLE(Path_isConvex, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkPoint quad[] = {{70, 70}, {20, 20}, {120, 20}, {120, 120}};
diff --git a/docs/examples/Path_021.cpp b/docs/examples/Path_021.cpp
index f813a4c..1beeaa4 100644
--- a/docs/examples/Path_021.cpp
+++ b/docs/examples/Path_021.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a51256952b183ee0f7004f2c87cbbf5b
-REG_FIDDLE(Path_021, 256, 256, false, 0) {
+REG_FIDDLE(Path_isOval, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkPath path;
diff --git a/docs/examples/Path_022.cpp b/docs/examples/Path_022.cpp
index a26864e..dca8763 100644
--- a/docs/examples/Path_022.cpp
+++ b/docs/examples/Path_022.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=2aa939b90d96aff436b145a96305132c
-REG_FIDDLE(Path_022, 256, 256, false, 0) {
+REG_FIDDLE(Path_isRRect, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkPath path;
diff --git a/docs/examples/Path_023.cpp b/docs/examples/Path_023.cpp
index 668bd70..75a3c97 100644
--- a/docs/examples/Path_023.cpp
+++ b/docs/examples/Path_023.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8cdca35d2964bbbecb93d79a13f71c65
-REG_FIDDLE(Path_023, 256, 256, true, 0) {
+REG_FIDDLE(Path_reset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path1, path2;
     path1.setFillType(SkPath::kInverseWinding_FillType);
diff --git a/docs/examples/Path_024.cpp b/docs/examples/Path_024.cpp
index 34e3c17..9990765 100644
--- a/docs/examples/Path_024.cpp
+++ b/docs/examples/Path_024.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f1fedbb89da9c2a33a91805175663012
-REG_FIDDLE(Path_024, 256, 256, true, 0) {
+REG_FIDDLE(Path_rewind, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path1, path2;
     path1.setFillType(SkPath::kInverseWinding_FillType);
diff --git a/docs/examples/Path_025.cpp b/docs/examples/Path_025.cpp
index 340f263..e965c0b 100644
--- a/docs/examples/Path_025.cpp
+++ b/docs/examples/Path_025.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0b34e6d55d11586744adeb889d2a12f4
-REG_FIDDLE(Path_025, 256, 256, true, 0) {
+REG_FIDDLE(Path_isEmpty, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* prefix, const SkPath& path) -> void {
         SkDebugf("%s path is %s" "empty\n", prefix, path.isEmpty() ? "" : "not ");
diff --git a/docs/examples/Path_026.cpp b/docs/examples/Path_026.cpp
index 32c6b28..7692daa 100644
--- a/docs/examples/Path_026.cpp
+++ b/docs/examples/Path_026.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=03b740ab94b9017800a52e30b5e7fee7
-REG_FIDDLE(Path_026, 256, 256, true, 0) {
+REG_FIDDLE(Path_isLastContourClosed, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* prefix, const SkPath& path) -> void {
         SkDebugf("%s last contour is %s" "closed\n", prefix,
diff --git a/docs/examples/Path_027.cpp b/docs/examples/Path_027.cpp
index a5430b1..2fe07b1 100644
--- a/docs/examples/Path_027.cpp
+++ b/docs/examples/Path_027.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=dd4e4dd2aaa8039b2430729c6b3af817
-REG_FIDDLE(Path_027, 256, 256, true, 0) {
+REG_FIDDLE(Path_isFinite, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* prefix, const SkPath& path) -> void {
         SkDebugf("%s path is %s" "finite\n", prefix, path.isFinite() ? "" : "not ");
diff --git a/docs/examples/Path_028.cpp b/docs/examples/Path_028.cpp
index 3290dff..e1aedbb 100644
--- a/docs/examples/Path_028.cpp
+++ b/docs/examples/Path_028.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c722ebe8ac991d77757799ce29e509e1
-REG_FIDDLE(Path_028, 256, 256, true, 0) {
+REG_FIDDLE(Path_isVolatile, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path;
     SkDebugf("volatile by default is %s\n", path.isVolatile() ? "true" : "false");
diff --git a/docs/examples/Path_029.cpp b/docs/examples/Path_029.cpp
index b33b5ee..5d02a02 100644
--- a/docs/examples/Path_029.cpp
+++ b/docs/examples/Path_029.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=2049ff5141f0c80aac497618622b28af
-REG_FIDDLE(Path_029, 50, 50, false, 0) {
+REG_FIDDLE(Path_setIsVolatile, 50, 50, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setStyle(SkPaint::kStroke_Style);
diff --git a/docs/examples/Path_030.cpp b/docs/examples/Path_030.cpp
index b8db09d..0591b91 100644
--- a/docs/examples/Path_030.cpp
+++ b/docs/examples/Path_030.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=97a031f9186ade586928563840ce9116
-REG_FIDDLE(Path_030, 256, 256, true, 0) {
+REG_FIDDLE(Path_IsLineDegenerate, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPoint points[] = { {100, 100}, {100.000001f, 100.000001f}, {100.0001f, 100.0001f} };
     for (size_t i = 0; i < SK_ARRAY_COUNT(points) - 1; ++i) {
diff --git a/docs/examples/Path_031.cpp b/docs/examples/Path_031.cpp
index 3902c48..9f5f070 100644
--- a/docs/examples/Path_031.cpp
+++ b/docs/examples/Path_031.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a2b255a7dac1926cc3a247d318d63c62
-REG_FIDDLE(Path_031, 256, 256, true, 0) {
+REG_FIDDLE(Path_IsQuadDegenerate, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const SkPath& path, bool exact) -> void {
         SkDebugf("quad (%1.8g,%1.8g), (%1.8g,%1.8g), (%1.8g,%1.8g) is %s" "degenerate, %s\n",
diff --git a/docs/examples/Path_032.cpp b/docs/examples/Path_032.cpp
index 4857606..6393337 100644
--- a/docs/examples/Path_032.cpp
+++ b/docs/examples/Path_032.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6b97099acdae80b16df0c4241f593991
-REG_FIDDLE(Path_032, 256, 256, true, 0) {
+REG_FIDDLE(Path_IsCubicDegenerate, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPoint points[] = {{1, 0}, {0, 0}, {0, 0}, {0, 0}};
     SkScalar step = 1;
diff --git a/docs/examples/Path_033.cpp b/docs/examples/Path_033.cpp
index cdc1050..00e4fa1 100644
--- a/docs/examples/Path_033.cpp
+++ b/docs/examples/Path_033.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1ad07d56e4258e041606d50cad969392
-REG_FIDDLE(Path_033, 256, 256, true, 0) {
+REG_FIDDLE(Path_isLine, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* prefix, const SkPath& path) -> void {
         SkPoint line[2];
diff --git a/docs/examples/Path_034.cpp b/docs/examples/Path_034.cpp
index 02f5e32..74d51a2 100644
--- a/docs/examples/Path_034.cpp
+++ b/docs/examples/Path_034.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9bc86efda08cbcd9c6f7c5f220294a24
-REG_FIDDLE(Path_034, 256, 256, true, 0) {
+REG_FIDDLE(Path_getPoints, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* prefix, const SkPath& path, SkPoint* points, int max) -> void {
          int count = path.getPoints(points, max);
diff --git a/docs/examples/Path_035.cpp b/docs/examples/Path_035.cpp
index d2c1922..2f792c5 100644
--- a/docs/examples/Path_035.cpp
+++ b/docs/examples/Path_035.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=bca6379ccef62cb081b10db7381deb27
-REG_FIDDLE(Path_035, 256, 256, true, 0) {
+REG_FIDDLE(Path_countPoints, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* prefix, const SkPath& path) -> void {
          SkDebugf("%s point count: %d\n", prefix, path.countPoints());
diff --git a/docs/examples/Path_036.cpp b/docs/examples/Path_036.cpp
index fcfb91b..8a39cc1 100644
--- a/docs/examples/Path_036.cpp
+++ b/docs/examples/Path_036.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=42885f1df13de109adccc5d531f62111
-REG_FIDDLE(Path_036, 256, 256, true, 0) {
+REG_FIDDLE(Path_getPoint, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path;
     path.lineTo(20, 20);
diff --git a/docs/examples/Path_037.cpp b/docs/examples/Path_037.cpp
index 5797182..67af271 100644
--- a/docs/examples/Path_037.cpp
+++ b/docs/examples/Path_037.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=af0c66aea3ef81b709664c7007f48aae
-REG_FIDDLE(Path_037, 256, 256, true, 0) {
+REG_FIDDLE(Path_countVerbs, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path;
     SkDebugf("empty verb count: %d\n", path.countVerbs());
diff --git a/docs/examples/Path_038.cpp b/docs/examples/Path_038.cpp
index 50ff065..3e3f9a5 100644
--- a/docs/examples/Path_038.cpp
+++ b/docs/examples/Path_038.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=2ec66880966a6133ddd9331ce7323438
-REG_FIDDLE(Path_038, 256, 256, true, 0) {
+REG_FIDDLE(Path_getVerbs, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* prefix, const SkPath& path, uint8_t* verbs, int max) -> void {
          int count = path.getVerbs(verbs, max);
diff --git a/docs/examples/Path_039.cpp b/docs/examples/Path_039.cpp
index f411f5c..4c111a7 100644
--- a/docs/examples/Path_039.cpp
+++ b/docs/examples/Path_039.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4c5ebee2b5039e5faefa07ae63a15467
-REG_FIDDLE(Path_039, 256, 256, true, 0) {
+REG_FIDDLE(Path_swap, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path1, path2;
     path1.addRect({10, 20, 30, 40});
diff --git a/docs/examples/Path_040.cpp b/docs/examples/Path_040.cpp
index 0581e81..98eb8e2 100644
--- a/docs/examples/Path_040.cpp
+++ b/docs/examples/Path_040.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=45c0fc3acb74fab99d544b80eadd10ad
-REG_FIDDLE(Path_040, 256, 256, true, 0) {
+REG_FIDDLE(Path_getBounds, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* prefix, const SkPath& path) -> void {
             const SkRect& bounds = path.getBounds();
diff --git a/docs/examples/Path_041.cpp b/docs/examples/Path_041.cpp
index 707e750..9ee6e90 100644
--- a/docs/examples/Path_041.cpp
+++ b/docs/examples/Path_041.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=bb761cd858e6d0ca05627262cd22ff5e
-REG_FIDDLE(Path_041, 256, 256, true, 0) {
+REG_FIDDLE(Path_updateBoundsCache, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     double times[2] = { 0, 0 };
     int N = 100;
diff --git a/docs/examples/Path_042.cpp b/docs/examples/Path_042.cpp
index 63a2e00..4a54c00 100644
--- a/docs/examples/Path_042.cpp
+++ b/docs/examples/Path_042.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9a39c56e95b19a657133b7ad1fe0cf03
-REG_FIDDLE(Path_042, 256, 256, true, 0) {
+REG_FIDDLE(Path_computeTightBounds, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* prefix, const SkPath& path) -> void {
             const SkRect& bounds = path.computeTightBounds();
diff --git a/docs/examples/Path_043.cpp b/docs/examples/Path_043.cpp
index e17b38d..549f9ee 100644
--- a/docs/examples/Path_043.cpp
+++ b/docs/examples/Path_043.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=41638d13e40fa449ece354dde5fb1941
-REG_FIDDLE(Path_043, 256, 140, false, 0) {
+REG_FIDDLE(Path_conservativelyContainsRect, 256, 140, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path;
     path.addRoundRect({10, 20, 54, 120}, 10, 20);
diff --git a/docs/examples/Path_044.cpp b/docs/examples/Path_044.cpp
index 0a09dc7..a327eb2 100644
--- a/docs/examples/Path_044.cpp
+++ b/docs/examples/Path_044.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f2260f2a170a54aef5bafe5b91c121b3
-REG_FIDDLE(Path_044, 256, 192, false, 0) {
+REG_FIDDLE(Path_incReserve, 256, 192, false, 0) {
 void draw(SkCanvas* canvas) {
     auto addPoly = [](int sides, SkScalar size, SkPath* path) -> void {
         path->moveTo(size, 0);
diff --git a/docs/examples/Path_045.cpp b/docs/examples/Path_045.cpp
index 5abd258..28ad8b6 100644
--- a/docs/examples/Path_045.cpp
+++ b/docs/examples/Path_045.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=84101d341e934a535a41ad6cf42218ce
-REG_FIDDLE(Path_045, 140, 100, false, 0) {
+REG_FIDDLE(Path_moveTo, 140, 100, false, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = { 20, 20, 120, 80 };
     SkPath path;
diff --git a/docs/examples/Path_046.cpp b/docs/examples/Path_046.cpp
index 8f442c4..4684ffd 100644
--- a/docs/examples/Path_046.cpp
+++ b/docs/examples/Path_046.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=cb8d37990f6e7df3bcc85e7240c81274
-REG_FIDDLE(Path_046, 128, 128, false, 0) {
+REG_FIDDLE(Path_moveTo_2, 128, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPoint data[][3] = {{{30,40},{60,60},{90,30}}, {{30,120},{60,100},{90,120}},
                          {{60,100},{60,40},{70,30}}, {{60,40},{50,20},{70,30}}};
diff --git a/docs/examples/Path_047.cpp b/docs/examples/Path_047.cpp
index 5c2246a..c8a739e 100644
--- a/docs/examples/Path_047.cpp
+++ b/docs/examples/Path_047.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=63e32dec4b2d8440b427f368bf8313a4
-REG_FIDDLE(Path_047, 256, 100, false, 0) {
+REG_FIDDLE(Path_rMoveTo, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path;
     path.addRect({20, 20, 80, 80}, SkPath::kCW_Direction, 2);
diff --git a/docs/examples/Path_048.cpp b/docs/examples/Path_048.cpp
index d2313a4..2a39a5d 100644
--- a/docs/examples/Path_048.cpp
+++ b/docs/examples/Path_048.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e311cdd451edacec33b50cc22a4dd5dc
-REG_FIDDLE(Path_048, 256, 100, false, 0) {
+REG_FIDDLE(Path_lineTo, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Path_049.cpp b/docs/examples/Path_049.cpp
index bb0617e..4df672b 100644
--- a/docs/examples/Path_049.cpp
+++ b/docs/examples/Path_049.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=41001546a7f7927d08e5a818bcc304f5
-REG_FIDDLE(Path_049, 256, 100, false, 0) {
+REG_FIDDLE(Path_lineTo_2, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path;
     SkVector oxo[] = {{25, 25}, {35, 35}, {25, 35}, {35, 25},
diff --git a/docs/examples/Path_050.cpp b/docs/examples/Path_050.cpp
index 24147a9..2e093fe 100644
--- a/docs/examples/Path_050.cpp
+++ b/docs/examples/Path_050.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6e0be0766b8ca320da51640326e608b3
-REG_FIDDLE(Path_050, 256, 128, false, 0) {
+REG_FIDDLE(Path_rLineTo, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Path_051.cpp b/docs/examples/Path_051.cpp
index 1a111d4..2aef63d 100644
--- a/docs/examples/Path_051.cpp
+++ b/docs/examples/Path_051.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=78ad51fa1cd33eb84a6f99061e56e067
-REG_FIDDLE(Path_051, 256, 110, false, 0) {
+REG_FIDDLE(Quad_a, 256, 110, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Path_052.cpp b/docs/examples/Path_052.cpp
index 6032f31..8c7e317 100644
--- a/docs/examples/Path_052.cpp
+++ b/docs/examples/Path_052.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4082f66a42df11bb20462b232b156bb6
-REG_FIDDLE(Path_052, 256, 160, false, 0) {
+REG_FIDDLE(Quad_b, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Path_053.cpp b/docs/examples/Path_053.cpp
index 4f00bd4..2731218 100644
--- a/docs/examples/Path_053.cpp
+++ b/docs/examples/Path_053.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=60ee3eb747474f5781b0f0dd3a17a866
-REG_FIDDLE(Path_053, 256, 256, false, 0) {
+REG_FIDDLE(Path_quadTo, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Path_054.cpp b/docs/examples/Path_054.cpp
index 877f96a..5ae718c 100644
--- a/docs/examples/Path_054.cpp
+++ b/docs/examples/Path_054.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=82621c4df8da1e589d9e627494067826
-REG_FIDDLE(Path_054, 256, 256, false, 0) {
+REG_FIDDLE(Path_quadTo_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setStyle(SkPaint::kStroke_Style);
diff --git a/docs/examples/Path_055.cpp b/docs/examples/Path_055.cpp
index 61e9c00..f686481 100644
--- a/docs/examples/Path_055.cpp
+++ b/docs/examples/Path_055.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1c1f4cdef1c572c9aa8fdf3e461191d0
-REG_FIDDLE(Path_055, 256, 256, false, 0) {
+REG_FIDDLE(Path_rQuadTo, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Path_056.cpp b/docs/examples/Path_056.cpp
index 8427f26..142d2f3 100644
--- a/docs/examples/Path_056.cpp
+++ b/docs/examples/Path_056.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=2aadded3d20dfef34d1c8abe28c7bc8d
-REG_FIDDLE(Path_056, 256, 256, true, 0) {
+REG_FIDDLE(Conic_Weight_a, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const char* verbNames[] = { "move", "line", "quad", "conic", "cubic", "close", "done" };
     const int pointCount[]  = {     1 ,     2 ,     3 ,      3 ,      4 ,      1 ,     0  };
diff --git a/docs/examples/Path_057.cpp b/docs/examples/Path_057.cpp
index 3beaf09..9785ae2 100644
--- a/docs/examples/Path_057.cpp
+++ b/docs/examples/Path_057.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e88f554efacfa9f75f270fb1c0add5b4
-REG_FIDDLE(Path_057, 256, 256, true, 0) {
+REG_FIDDLE(Conic_Weight_b, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const char* verbNames[] = { "move", "line", "quad", "conic", "cubic", "close", "done" };
     const int pointCount[]  = {     1 ,     2 ,     3 ,      3 ,      4 ,      1 ,     0  };
diff --git a/docs/examples/Path_058.cpp b/docs/examples/Path_058.cpp
index c1dc83c..fa5959e 100644
--- a/docs/examples/Path_058.cpp
+++ b/docs/examples/Path_058.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6fb11419e99297fe2fe666c296117fb9
-REG_FIDDLE(Path_058, 256, 256, true, 0) {
+REG_FIDDLE(Conic_Weight_c, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const char* verbNames[] = { "move", "line", "quad", "conic", "cubic", "close", "done" };
     const int pointCount[]  = {     1 ,     2 ,     3 ,      3 ,      4 ,      1 ,     0  };
diff --git a/docs/examples/Path_059.cpp b/docs/examples/Path_059.cpp
index f1e94bc..901d184 100644
--- a/docs/examples/Path_059.cpp
+++ b/docs/examples/Path_059.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=358d9b6060b528b0923c007420f09c13
-REG_FIDDLE(Path_059, 256, 160, false, 0) {
+REG_FIDDLE(Path_conicTo, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Path_060.cpp b/docs/examples/Path_060.cpp
index 7651dcb..4c5f5fb 100644
--- a/docs/examples/Path_060.cpp
+++ b/docs/examples/Path_060.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=22d25e03b19d5bae92118877e462361b
-REG_FIDDLE(Path_060, 256, 128, false, 0) {
+REG_FIDDLE(Path_conicTo_2, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Path_061.cpp b/docs/examples/Path_061.cpp
index b82e36f..e1a36a5 100644
--- a/docs/examples/Path_061.cpp
+++ b/docs/examples/Path_061.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3d52763e7c0e20c0b1d484a0afa622d2
-REG_FIDDLE(Path_061, 256, 140, false, 0) {
+REG_FIDDLE(Path_rConicTo, 256, 140, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Path_062.cpp b/docs/examples/Path_062.cpp
index 8f8af80..5e69b01 100644
--- a/docs/examples/Path_062.cpp
+++ b/docs/examples/Path_062.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=466445ed991d86de08587066392d654a
-REG_FIDDLE(Path_062, 256, 160, false, 0) {
+REG_FIDDLE(Cubic, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Path_063.cpp b/docs/examples/Path_063.cpp
index bf44dc4..1ac2569 100644
--- a/docs/examples/Path_063.cpp
+++ b/docs/examples/Path_063.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3e476378e3e0550ab134bbaf61112d98
-REG_FIDDLE(Path_063, 256, 256, false, 0) {
+REG_FIDDLE(Path_cubicTo, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Path_064.cpp b/docs/examples/Path_064.cpp
index 492f08b..3ea9538 100644
--- a/docs/examples/Path_064.cpp
+++ b/docs/examples/Path_064.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d38aaf12c6ff5b8d901a2201bcee5476
-REG_FIDDLE(Path_064, 256, 84, false, 0) {
+REG_FIDDLE(Path_cubicTo_2, 256, 84, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Path_065.cpp b/docs/examples/Path_065.cpp
index ffef23c..59c98dd 100644
--- a/docs/examples/Path_065.cpp
+++ b/docs/examples/Path_065.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=19f0cfc7eeba8937fe19446ec0b5f932
-REG_FIDDLE(Path_065, 256, 256, false, 0) {
+REG_FIDDLE(Path_rCubicTo, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Path_066.cpp b/docs/examples/Path_066.cpp
index 2b7b21a..16c077d 100644
--- a/docs/examples/Path_066.cpp
+++ b/docs/examples/Path_066.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5acc77eba0cb4d00bbf3a8f4db0c0aee
-REG_FIDDLE(Path_066, 256, 128, false, 0) {
+REG_FIDDLE(Arc, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkRect oval = {8, 8, 56, 56};
     SkPaint ovalPaint;
diff --git a/docs/examples/Path_067.cpp b/docs/examples/Path_067.cpp
index edd8747..c93e81d 100644
--- a/docs/examples/Path_067.cpp
+++ b/docs/examples/Path_067.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5f02890edaa10cb5e1a4243a82b6a382
-REG_FIDDLE(Path_067, 256, 200, false, 0) {
+REG_FIDDLE(Path_arcTo, 256, 200, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkPath path;
diff --git a/docs/examples/Path_068.cpp b/docs/examples/Path_068.cpp
index 3bf95c4..57163a7 100644
--- a/docs/examples/Path_068.cpp
+++ b/docs/examples/Path_068.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=386000684073fccabc224d7d6dc81cd9
-REG_FIDDLE(Path_068, 256, 226, false, 0) {
+REG_FIDDLE(Path_arcTo_2_a, 256, 226, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint tangentPaint;
     tangentPaint.setAntiAlias(true);
diff --git a/docs/examples/Path_069.cpp b/docs/examples/Path_069.cpp
index f11cfe2..145bb17 100644
--- a/docs/examples/Path_069.cpp
+++ b/docs/examples/Path_069.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=78f3c65fa900610bb52518989b547095
-REG_FIDDLE(Path_069, 256, 128, false, 0) {
+REG_FIDDLE(Path_arcTo_2_b, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint tangentPaint;
     tangentPaint.setAntiAlias(true);
diff --git a/docs/examples/Path_070.cpp b/docs/examples/Path_070.cpp
index 9b83078..2f81a2f 100644
--- a/docs/examples/Path_070.cpp
+++ b/docs/examples/Path_070.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=498360fa0a201cc5db04b1c27256358f
-REG_FIDDLE(Path_070, 256, 256, true, 0) {
+REG_FIDDLE(Path_arcTo_2_c, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path;
     path.moveTo({156, 20});
diff --git a/docs/examples/Path_071.cpp b/docs/examples/Path_071.cpp
index 5391fc4..0816c00 100644
--- a/docs/examples/Path_071.cpp
+++ b/docs/examples/Path_071.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0c056264a361579c18e5d02d3172d4d4
-REG_FIDDLE(Path_071, 256, 256, true, 0) {
+REG_FIDDLE(Path_arcTo_3, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path;
     path.moveTo({156, 20});
diff --git a/docs/examples/Path_072.cpp b/docs/examples/Path_072.cpp
index fbc20ae..5c70ead 100644
--- a/docs/examples/Path_072.cpp
+++ b/docs/examples/Path_072.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8e40c546eecd9cc213200717240898ba
-REG_FIDDLE(Path_072, 256, 160, false, 0) {
+REG_FIDDLE(Path_ArcSize, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Path_073.cpp b/docs/examples/Path_073.cpp
index fce18ec..043e72a 100644
--- a/docs/examples/Path_073.cpp
+++ b/docs/examples/Path_073.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6b6ea44f659b27918f3a6fa621bf6173
-REG_FIDDLE(Path_073, 256, 160, false, 0) {
+REG_FIDDLE(Path_arcTo_4, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Path_074.cpp b/docs/examples/Path_074.cpp
index 22f0396..89fe283 100644
--- a/docs/examples/Path_074.cpp
+++ b/docs/examples/Path_074.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3f76a1007416181a4848c1a87fc81dbd
-REG_FIDDLE(Path_074, 256, 108, false, 0) {
+REG_FIDDLE(Path_rArcTo, 256, 108, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkPath path;
diff --git a/docs/examples/Path_075.cpp b/docs/examples/Path_075.cpp
deleted file mode 100644
index 3aa835b..0000000
--- a/docs/examples/Path_075.cpp
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=3f76a1007416181a4848c1a87fc81dbd
-REG_FIDDLE(Path_075, 256, 108, false, 0) {
-void draw(SkCanvas* canvas) {
-    SkPaint paint;
-    SkPath path;
-    const SkPoint starts[] = {{20, 20}, {120, 20}, {70, 60}};
-    for (auto start : starts) {
-        path.moveTo(start.fX, start.fY);
-        path.rArcTo(20, 20, 0, SkPath::kSmall_ArcSize, SkPath::kCCW_Direction, 60, 0);
-    }
-    canvas->drawPath(path, paint);
-}
-}  // END FIDDLE
diff --git a/docs/examples/Path_076.cpp b/docs/examples/Path_076.cpp
index 1f2589d..74681ab 100644
--- a/docs/examples/Path_076.cpp
+++ b/docs/examples/Path_076.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9235f6309271d6420fa5c45dc28664c5
-REG_FIDDLE(Path_076, 256, 256, false, 0) {
+REG_FIDDLE(Path_close, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setStrokeWidth(15);
diff --git a/docs/examples/Path_077.cpp b/docs/examples/Path_077.cpp
index 2adb503..087baa1 100644
--- a/docs/examples/Path_077.cpp
+++ b/docs/examples/Path_077.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1453856a9d0c73e8192bf298c4143563
-REG_FIDDLE(Path_077, 256, 256, true, 0) {
+REG_FIDDLE(Path_IsInverseFillType, 256, 256, true, 0) {
 #define nameValue(fill) { SkPath::fill, #fill }
 
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_078.cpp b/docs/examples/Path_078.cpp
index 06be131..ef98ee0 100644
--- a/docs/examples/Path_078.cpp
+++ b/docs/examples/Path_078.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=319f6b124458dcc0f9ce4d7bbde65810
-REG_FIDDLE(Path_078, 256, 256, true, 0) {
+REG_FIDDLE(Path_ConvertToNonInverseFillType, 256, 256, true, 0) {
 #define nameValue(fill) { SkPath::fill, #fill }
 
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_079.cpp b/docs/examples/Path_079.cpp
index 57571de..46f6a88 100644
--- a/docs/examples/Path_079.cpp
+++ b/docs/examples/Path_079.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3ba94448a4ba48f926e643baeb5b1016
-REG_FIDDLE(Path_079, 256, 256, false, 0) {
+REG_FIDDLE(Path_ConvertConicToQuads, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
       SkPaint conicPaint;
       conicPaint.setAntiAlias(true);
diff --git a/docs/examples/Path_080.cpp b/docs/examples/Path_080.cpp
index f61ce5c..3e954fa 100644
--- a/docs/examples/Path_080.cpp
+++ b/docs/examples/Path_080.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=81a2aac1b8f0ff3d4c8d35ccb9149b16
-REG_FIDDLE(Path_080, 256, 256, true, 0) {
+REG_FIDDLE(Path_isRect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* prefix, const SkPath& path) -> void {
         SkRect rect;
diff --git a/docs/examples/Path_081.cpp b/docs/examples/Path_081.cpp
index 701d906..c7cc163 100644
--- a/docs/examples/Path_081.cpp
+++ b/docs/examples/Path_081.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=77e4394caf9fa083c19c21c2462efe14
-REG_FIDDLE(Path_081, 256, 256, true, 0) {
+REG_FIDDLE(Path_isNestedFillRects, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setStyle(SkPaint::kStroke_Style);
diff --git a/docs/examples/Path_082.cpp b/docs/examples/Path_082.cpp
index 02d47f7..7b37848 100644
--- a/docs/examples/Path_082.cpp
+++ b/docs/examples/Path_082.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0f841e4eaebb613b5069800567917c2d
-REG_FIDDLE(Path_082, 256, 128, false, 0) {
+REG_FIDDLE(Path_addRect, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setStrokeWidth(15);
diff --git a/docs/examples/Path_083.cpp b/docs/examples/Path_083.cpp
index 250d788..1a68fb6 100644
--- a/docs/examples/Path_083.cpp
+++ b/docs/examples/Path_083.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9202430b3f4f5275af8eec5cc9d7baa8
-REG_FIDDLE(Path_083, 256, 128, false, 0) {
+REG_FIDDLE(Path_addRect_2, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     const SkPoint arrow[] = { {5, -5}, {15, -5}, {20, 0}, {15, 5}, {5, 5}, {10, 0} };
     const SkRect rect = {10, 10, 54, 54};
diff --git a/docs/examples/Path_084.cpp b/docs/examples/Path_084.cpp
index 3389ab3..674cd7c 100644
--- a/docs/examples/Path_084.cpp
+++ b/docs/examples/Path_084.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3837827310e8b88b8c2e128ef9fbbd65
-REG_FIDDLE(Path_084, 256, 128, false, 0) {
+REG_FIDDLE(Path_addRect_3, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setStrokeWidth(15);
diff --git a/docs/examples/Path_085.cpp b/docs/examples/Path_085.cpp
index ed8b1dc..e1e2ee6 100644
--- a/docs/examples/Path_085.cpp
+++ b/docs/examples/Path_085.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=cac84cf68e63a453c2a8b64c91537704
-REG_FIDDLE(Path_085, 256, 120, false, 0) {
+REG_FIDDLE(Path_addOval, 256, 120, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkPath oval;
diff --git a/docs/examples/Path_086.cpp b/docs/examples/Path_086.cpp
index a90b34c..ae9de3f 100644
--- a/docs/examples/Path_086.cpp
+++ b/docs/examples/Path_086.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f1122d6fffddac0167e96fab4b9a862f
-REG_FIDDLE(Path_086, 256, 160, false, 0) {
+REG_FIDDLE(Path_addOval_2, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
     const SkPoint arrow[] = { {0, -5}, {10, 0}, {0, 5} };
     const SkRect rect = {10, 10, 54, 54};
diff --git a/docs/examples/Path_087.cpp b/docs/examples/Path_087.cpp
index 2ba6fb6..2c92cdf 100644
--- a/docs/examples/Path_087.cpp
+++ b/docs/examples/Path_087.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=bd5286cb9a5e5c32cd980f72b8f400fb
-REG_FIDDLE(Path_087, 256, 256, false, 0) {
+REG_FIDDLE(Path_addCircle, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Path_088.cpp b/docs/examples/Path_088.cpp
index c21bc05..30801eb 100644
--- a/docs/examples/Path_088.cpp
+++ b/docs/examples/Path_088.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9cf5122475624e4cf39f06c698f80b1a
-REG_FIDDLE(Path_088, 256, 256, false, 0) {
+REG_FIDDLE(Path_addArc, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     for (auto start : { 0, 90, 135, 180, 270 } ) {
diff --git a/docs/examples/Path_089.cpp b/docs/examples/Path_089.cpp
index d45529b..7d78cf8 100644
--- a/docs/examples/Path_089.cpp
+++ b/docs/examples/Path_089.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=24736f685f265cf533f1700c042db353
-REG_FIDDLE(Path_089, 256, 256, false, 0) {
+REG_FIDDLE(Path_addRoundRect, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Path_090.cpp b/docs/examples/Path_090.cpp
index 72cba0b..6dcb54a 100644
--- a/docs/examples/Path_090.cpp
+++ b/docs/examples/Path_090.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c43d70606b4ee464d2befbcf448c5e73
-REG_FIDDLE(Path_090, 256, 256, false, 0) {
+REG_FIDDLE(Path_addRoundRect_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Path_091.cpp b/docs/examples/Path_091.cpp
index 01dde23..eb854dc 100644
--- a/docs/examples/Path_091.cpp
+++ b/docs/examples/Path_091.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d9ecd58081b5bc77a157636fcb345dc6
-REG_FIDDLE(Path_091, 256, 256, false, 0) {
+REG_FIDDLE(Path_addRRect, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Path_092.cpp b/docs/examples/Path_092.cpp
index aa59594..ff518a8 100644
--- a/docs/examples/Path_092.cpp
+++ b/docs/examples/Path_092.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=888edd4c4a91ca62ceb01bce8ab675b2
-REG_FIDDLE(Path_092, 256, 256, false, 0) {
+REG_FIDDLE(Path_addRRect_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Path_093.cpp b/docs/examples/Path_093.cpp
index 5e7e4fd..a897e28 100644
--- a/docs/examples/Path_093.cpp
+++ b/docs/examples/Path_093.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=182b3999772f330f3b0b891b492634ae
-REG_FIDDLE(Path_093, 256, 256, false, 0) {
+REG_FIDDLE(Path_addPoly, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setStrokeWidth(15);
diff --git a/docs/examples/Path_094.cpp b/docs/examples/Path_094.cpp
index 01f0477..3a23491 100644
--- a/docs/examples/Path_094.cpp
+++ b/docs/examples/Path_094.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1a6b69acad5ceafede3c5984ec6634cb
-REG_FIDDLE(Path_094, 256, 256, false, 0) {
+REG_FIDDLE(Path_addPoly_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setStrokeWidth(15);
diff --git a/docs/examples/Path_095.cpp b/docs/examples/Path_095.cpp
index 34f94ea..4ac6c91 100644
--- a/docs/examples/Path_095.cpp
+++ b/docs/examples/Path_095.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=801b02e74c64aafdb734f2e5cf3e5ab0
-REG_FIDDLE(Path_095, 256, 180, false, 0) {
+REG_FIDDLE(Path_AddPathMode, 256, 180, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path, path2;
     path.moveTo(20, 20);
diff --git a/docs/examples/Path_096.cpp b/docs/examples/Path_096.cpp
index 2747e77..b9a37f7 100644
--- a/docs/examples/Path_096.cpp
+++ b/docs/examples/Path_096.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c416bddfe286628974e1c7f0fd66f3f4
-REG_FIDDLE(Path_096, 256, 180, false, 0) {
+REG_FIDDLE(Path_addPath, 256, 180, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTextSize(128);
diff --git a/docs/examples/Path_097.cpp b/docs/examples/Path_097.cpp
index 5ba0471..138764b 100644
--- a/docs/examples/Path_097.cpp
+++ b/docs/examples/Path_097.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=84b2d1c0fc29f1b35e855b6fc6672f9e
-REG_FIDDLE(Path_097, 256, 80, false, 0) {
+REG_FIDDLE(Path_addPath_2, 256, 80, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setStyle(SkPaint::kStroke_Style);
diff --git a/docs/examples/Path_098.cpp b/docs/examples/Path_098.cpp
index 6ca2bef..d0ebe97 100644
--- a/docs/examples/Path_098.cpp
+++ b/docs/examples/Path_098.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3a90a91030f7289d5df0671d342dbbad
-REG_FIDDLE(Path_098, 256, 160, false, 0) {
+REG_FIDDLE(Path_addPath_3, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setStyle(SkPaint::kStroke_Style);
diff --git a/docs/examples/Path_099.cpp b/docs/examples/Path_099.cpp
index fd6dc1d..39ec719 100644
--- a/docs/examples/Path_099.cpp
+++ b/docs/examples/Path_099.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5e8513f073db09acde3ff616f6426e3d
-REG_FIDDLE(Path_099, 256, 200, false, 0) {
+REG_FIDDLE(Path_reverseAddPath, 256, 200, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path;
     path.moveTo(20, 20);
diff --git a/docs/examples/Path_100.cpp b/docs/examples/Path_100.cpp
index 94c0cef..26ae4c2 100644
--- a/docs/examples/Path_100.cpp
+++ b/docs/examples/Path_100.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1d1892196ba5bda257df4f3351abd084
-REG_FIDDLE(Path_100, 256, 60, false, 0) {
+REG_FIDDLE(Path_offset, 256, 60, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPath pattern;
     pattern.moveTo(20, 20);
diff --git a/docs/examples/Path_101.cpp b/docs/examples/Path_101.cpp
index 7263dc5..6966ed4 100644
--- a/docs/examples/Path_101.cpp
+++ b/docs/examples/Path_101.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5188d77585715db30bef228f2dfbcccd
-REG_FIDDLE(Path_101, 256, 60, false, 0) {
+REG_FIDDLE(Path_offset_2, 256, 60, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path;
     path.moveTo(20, 20);
diff --git a/docs/examples/Path_102.cpp b/docs/examples/Path_102.cpp
index c772b2a..1cc5fd3 100644
--- a/docs/examples/Path_102.cpp
+++ b/docs/examples/Path_102.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=99761add116ce3b0730557224c1b0105
-REG_FIDDLE(Path_102, 256, 200, false, 0) {
+REG_FIDDLE(Path_transform, 256, 200, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPath pattern;
     pattern.moveTo(100, 100);
diff --git a/docs/examples/Path_103.cpp b/docs/examples/Path_103.cpp
index 895a2d4..b60ecb5 100644
--- a/docs/examples/Path_103.cpp
+++ b/docs/examples/Path_103.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c40979a3b92a30cfb7bae36abcc1d805
-REG_FIDDLE(Path_103, 256, 200, false, 0) {
+REG_FIDDLE(Path_transform_2, 256, 200, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path;
     path.moveTo(100, 100);
diff --git a/docs/examples/Path_104.cpp b/docs/examples/Path_104.cpp
index 642b0fd..7ed4ce1 100644
--- a/docs/examples/Path_104.cpp
+++ b/docs/examples/Path_104.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=df8160dd7ac8aa4b40fce7286fe49952
-REG_FIDDLE(Path_104, 256, 256, true, 0) {
+REG_FIDDLE(Path_getLastPt, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path;
     path.moveTo(100, 100);
diff --git a/docs/examples/Path_105.cpp b/docs/examples/Path_105.cpp
index 510dcb0..726e704 100644
--- a/docs/examples/Path_105.cpp
+++ b/docs/examples/Path_105.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=542c5afaea5f57baa11d0561dd402e18
-REG_FIDDLE(Path_105, 256, 128, false, 0) {
+REG_FIDDLE(Path_setLastPt, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTextSize(128);
diff --git a/docs/examples/Path_106.cpp b/docs/examples/Path_106.cpp
index 607dc17..d95e74d 100644
--- a/docs/examples/Path_106.cpp
+++ b/docs/examples/Path_106.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6fa5e8f9513b3225e106778592e27e94
-REG_FIDDLE(Path_106, 256, 128, false, 0) {
+REG_FIDDLE(Path_setLastPt_2, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTextSize(128);
diff --git a/docs/examples/Path_107.cpp b/docs/examples/Path_107.cpp
index 9d0b0be..68f244f 100644
--- a/docs/examples/Path_107.cpp
+++ b/docs/examples/Path_107.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a61e5758574e28190ec4ed8c4ae7e7fa
-REG_FIDDLE(Path_107, 256, 256, true, 0) {
+REG_FIDDLE(Path_SegmentMask, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path;
     path.conicTo(10, 10, 20, 30, 1);
diff --git a/docs/examples/Path_108.cpp b/docs/examples/Path_108.cpp
index c34032f..4751235 100644
--- a/docs/examples/Path_108.cpp
+++ b/docs/examples/Path_108.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=657a3f3e11acafea92b84d6bb0c13633
-REG_FIDDLE(Path_108, 256, 256, true, 0) {
+REG_FIDDLE(Path_getSegmentMasks, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path;
     path.quadTo(20, 30, 40, 50);
diff --git a/docs/examples/Path_109.cpp b/docs/examples/Path_109.cpp
index 177a088..6ef4673 100644
--- a/docs/examples/Path_109.cpp
+++ b/docs/examples/Path_109.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c0216b3f7ebd80b9589ae5728f08fc80
-REG_FIDDLE(Path_109, 256, 256, false, 0) {
+REG_FIDDLE(Path_contains, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path;
     SkPaint paint;
diff --git a/docs/examples/Path_110.cpp b/docs/examples/Path_110.cpp
index 618cbe9..1f12b4d 100644
--- a/docs/examples/Path_110.cpp
+++ b/docs/examples/Path_110.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8036d764452a62f9953af50846f0f3c0
-REG_FIDDLE(Path_110, 256, 256, true, 0) {
+REG_FIDDLE(Path_dump, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path;
     path.quadTo(20, 30, 40, 50);
diff --git a/docs/examples/Path_111.cpp b/docs/examples/Path_111.cpp
index 441463c..c81618f 100644
--- a/docs/examples/Path_111.cpp
+++ b/docs/examples/Path_111.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=92e0032f85181795d1f8b5a2c8e4e4b7
-REG_FIDDLE(Path_111, 256, 256, true, 0) {
+REG_FIDDLE(Path_dump_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path, copy;
     path.lineTo(6.f / 7, 2.f / 3);
diff --git a/docs/examples/Path_112.cpp b/docs/examples/Path_112.cpp
index b162bec..12d0f6a 100644
--- a/docs/examples/Path_112.cpp
+++ b/docs/examples/Path_112.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=72a92fe058e8b3be6c8a30fad7fd1266
-REG_FIDDLE(Path_112, 256, 256, true, 0) {
+REG_FIDDLE(Path_dumpHex, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path, copy;
     path.lineTo(6.f / 7, 2.f / 3);
diff --git a/docs/examples/Path_113.cpp b/docs/examples/Path_113.cpp
index c96c51e..7b0bc87 100644
--- a/docs/examples/Path_113.cpp
+++ b/docs/examples/Path_113.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e5f16eda6a1c2d759556285f72598445
-REG_FIDDLE(Path_113, 256, 256, true, 0) {
+REG_FIDDLE(Path_writeToMemory, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path, copy;
     path.lineTo(6.f / 7, 2.f / 3);
diff --git a/docs/examples/Path_114.cpp b/docs/examples/Path_114.cpp
index aff6666..f185c2f 100644
--- a/docs/examples/Path_114.cpp
+++ b/docs/examples/Path_114.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=2c6aff73608cd198659db6d1eeaaae4f
-REG_FIDDLE(Path_114, 256, 256, true, 0) {
+REG_FIDDLE(Path_serialize, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path, copy;
     path.lineTo(6.f / 7, 2.f / 3);
diff --git a/docs/examples/Path_115.cpp b/docs/examples/Path_115.cpp
index 92da15d..40e6a38 100644
--- a/docs/examples/Path_115.cpp
+++ b/docs/examples/Path_115.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9c6edd836c573a0fd232d2b8aa11a678
-REG_FIDDLE(Path_115, 256, 256, true, 0) {
+REG_FIDDLE(Path_readFromMemory, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path, copy;
     path.lineTo(6.f / 7, 2.f / 3);
diff --git a/docs/examples/Path_116.cpp b/docs/examples/Path_116.cpp
index 429a9e6..a7b2d05 100644
--- a/docs/examples/Path_116.cpp
+++ b/docs/examples/Path_116.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a0f166715d6479f91258d854e63e586d
-REG_FIDDLE(Path_116, 256, 256, true, 0) {
+REG_FIDDLE(Path_getGenerationID, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path;
     SkDebugf("empty genID = %u\n", path.getGenerationID());
diff --git a/docs/examples/Path_117.cpp b/docs/examples/Path_117.cpp
index e432731..5eb9d52 100644
--- a/docs/examples/Path_117.cpp
+++ b/docs/examples/Path_117.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=2f53df9201769ab7e7c0e164a1334309
-REG_FIDDLE(Path_117, 256, 128, false, 0) {
+REG_FIDDLE(Path_Iter, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Path_118.cpp b/docs/examples/Path_118.cpp
index 82bf4d4..c21e1a9 100644
--- a/docs/examples/Path_118.cpp
+++ b/docs/examples/Path_118.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=01648775cb9b354b2f1836dad82a25ab
-REG_FIDDLE(Path_118, 256, 256, true, 0) {
+REG_FIDDLE(Path_Iter_Iter, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPath::Iter iter;
     SkPoint points[4];
diff --git a/docs/examples/Path_119.cpp b/docs/examples/Path_119.cpp
index 5e679b3..ede39cf 100644
--- a/docs/examples/Path_119.cpp
+++ b/docs/examples/Path_119.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=13044dbf68885c0f15322c0633b633a3
-REG_FIDDLE(Path_119, 256, 256, true, 0) {
+REG_FIDDLE(Path_Iter_const_SkPath, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* prefix, SkPath::Iter& iter) -> void {
         SkDebugf("%s:\n", prefix);
diff --git a/docs/examples/Path_120.cpp b/docs/examples/Path_120.cpp
index f3d0d98..1db1f3b 100644
--- a/docs/examples/Path_120.cpp
+++ b/docs/examples/Path_120.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6c9688008cea8937ad5cc188b38ecf16
-REG_FIDDLE(Path_120, 256, 256, true, 0) {
+REG_FIDDLE(Path_Iter_setPath, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* prefix, SkPath::Iter& iter) -> void {
         SkDebugf("%s:\n", prefix);
diff --git a/docs/examples/Path_121.cpp b/docs/examples/Path_121.cpp
index e5f8e94..48e1c3a 100644
--- a/docs/examples/Path_121.cpp
+++ b/docs/examples/Path_121.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=00ae8984856486bdb626d0ed6587855a
-REG_FIDDLE(Path_121, 256, 256, true, 0) {
+REG_FIDDLE(Path_Iter_next, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* prefix, const SkPath& path, bool degen, bool exact) -> void {
         SkPath::Iter iter(path, false);
diff --git a/docs/examples/Path_122.cpp b/docs/examples/Path_122.cpp
index ce1344d..72670d3 100644
--- a/docs/examples/Path_122.cpp
+++ b/docs/examples/Path_122.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=7cdea37741d50f0594c6244eb07fd175
-REG_FIDDLE(Path_122, 256, 256, true, 0) {
+REG_FIDDLE(Path_Iter_conicWeight, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
    SkPath path;
    path.conicTo(1, 2, 3, 4, .5f);
diff --git a/docs/examples/Path_123.cpp b/docs/examples/Path_123.cpp
index b383b37..6097cf6 100644
--- a/docs/examples/Path_123.cpp
+++ b/docs/examples/Path_123.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=7000b501f49341629bfdd9f80e686103
-REG_FIDDLE(Path_123, 256, 256, true, 0) {
+REG_FIDDLE(Path_Iter_isCloseLine, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
    SkPath path;
    path.moveTo(6, 7);
diff --git a/docs/examples/Path_124.cpp b/docs/examples/Path_124.cpp
index ebd1c68..e8706b0 100644
--- a/docs/examples/Path_124.cpp
+++ b/docs/examples/Path_124.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b0d48a6e949db1cb545216ae9c3c3c70
-REG_FIDDLE(Path_124, 256, 256, true, 0) {
+REG_FIDDLE(Path_Iter_isClosedContour, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
    for (bool forceClose : { false, true } ) {
        SkPath path;
diff --git a/docs/examples/Path_125.cpp b/docs/examples/Path_125.cpp
index 1d353df..ce7f968 100644
--- a/docs/examples/Path_125.cpp
+++ b/docs/examples/Path_125.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=944a80c7ff8c04e1fecc4aec4a47ea60
-REG_FIDDLE(Path_125, 256, 256, true, 0) {
+REG_FIDDLE(Path_RawIter_next, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path;
     path.moveTo(50, 60);
diff --git a/docs/examples/Path_126.cpp b/docs/examples/Path_126.cpp
index fe65bc5..57f648a 100644
--- a/docs/examples/Path_126.cpp
+++ b/docs/examples/Path_126.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=eb5fa5bea23059ce538e883502f828f5
-REG_FIDDLE(Path_126, 256, 256, true, 0) {
+REG_FIDDLE(Path_RawIter_peek, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPath path;
     path.quadTo(10, 20, 30, 40);
diff --git a/docs/examples/Path_127.cpp b/docs/examples/Path_127.cpp
index 5816b74..7d8daea 100644
--- a/docs/examples/Path_127.cpp
+++ b/docs/examples/Path_127.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=69f360a0ba8f40c51ef4cd9f972c5893
-REG_FIDDLE(Path_127, 256, 256, true, 0) {
+REG_FIDDLE(Path_RawIter_conicWeight, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
    SkPath path;
    path.conicTo(1, 2, 3, 4, .5f);
diff --git a/docs/examples/Picture_000.cpp b/docs/examples/Picture_000.cpp
index ba2e48f..d43383b 100644
--- a/docs/examples/Picture_000.cpp
+++ b/docs/examples/Picture_000.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=56ed920dadbf2b2967ac45fb5a9bded6
-REG_FIDDLE(Picture_000, 256, 256, false, 0) {
+REG_FIDDLE(Picture_AbortCallback_abort, 256, 256, false, 0) {
 class JustOneDraw : public SkPicture::AbortCallback {
 public:
     bool abort() override { return fCalls++ > 0; }
diff --git a/docs/examples/Picture_001.cpp b/docs/examples/Picture_001.cpp
index c1909e8..0308e0f 100644
--- a/docs/examples/Picture_001.cpp
+++ b/docs/examples/Picture_001.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=404fb42560a289c2004cad1caf3b96de
-REG_FIDDLE(Picture_001, 256, 256, false, 0) {
+REG_FIDDLE(Picture_MakeFromStream, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPictureRecorder recorder;
     SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
diff --git a/docs/examples/Picture_002.cpp b/docs/examples/Picture_002.cpp
index 4cb447c..8eb53e8 100644
--- a/docs/examples/Picture_002.cpp
+++ b/docs/examples/Picture_002.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=58b44bf47d8816782066618700afdecb
-REG_FIDDLE(Picture_002, 256, 256, false, 0) {
+REG_FIDDLE(Picture_MakeFromData, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPictureRecorder recorder;
     SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
diff --git a/docs/examples/Picture_003.cpp b/docs/examples/Picture_003.cpp
index 50987d9..829c19d 100644
--- a/docs/examples/Picture_003.cpp
+++ b/docs/examples/Picture_003.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=30b9f1b310187db6aff720a5d67591e2
-REG_FIDDLE(Picture_003, 256, 256, false, 0) {
+REG_FIDDLE(Picture_serialize_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPictureRecorder recorder;
     SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
diff --git a/docs/examples/Picture_004.cpp b/docs/examples/Picture_004.cpp
index d7997b5..028b231 100644
--- a/docs/examples/Picture_004.cpp
+++ b/docs/examples/Picture_004.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6b0ffb03ba05f526b345dc65a1c73fe4
-REG_FIDDLE(Picture_004, 256, 256, false, 0) {
+REG_FIDDLE(Picture_playback, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPictureRecorder recorder;
     SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
diff --git a/docs/examples/Picture_005.cpp b/docs/examples/Picture_005.cpp
index 9af6bcb..d56b55d 100644
--- a/docs/examples/Picture_005.cpp
+++ b/docs/examples/Picture_005.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=15bb9a9596b40c5e2045f76e8c1dcf8e
-REG_FIDDLE(Picture_005, 256, 256, false, 0) {
+REG_FIDDLE(Picture_cullRect, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPictureRecorder recorder;
     SkCanvas* pictureCanvas = recorder.beginRecording({64, 64, 192, 192});
diff --git a/docs/examples/Picture_006.cpp b/docs/examples/Picture_006.cpp
index be74690..e69a311 100644
--- a/docs/examples/Picture_006.cpp
+++ b/docs/examples/Picture_006.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8e4257245c988c600410fe4fd7293f07
-REG_FIDDLE(Picture_006, 256, 256, true, 0) {
+REG_FIDDLE(Picture_uniqueID, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPictureRecorder recorder;
     recorder.beginRecording({0, 0, 0, 0});
diff --git a/docs/examples/Picture_007.cpp b/docs/examples/Picture_007.cpp
index 626dd22..128ebcf 100644
--- a/docs/examples/Picture_007.cpp
+++ b/docs/examples/Picture_007.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=dacdebe1355c884ebd3c2ea038cc7a20
-REG_FIDDLE(Picture_007, 256, 256, false, 0) {
+REG_FIDDLE(Picture_serialize, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPictureRecorder recorder;
     SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
diff --git a/docs/examples/Picture_009.cpp b/docs/examples/Picture_009.cpp
index 22f931f..8247af5 100644
--- a/docs/examples/Picture_009.cpp
+++ b/docs/examples/Picture_009.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0d2cbf82f490ffb180e0b4531afa232c
-REG_FIDDLE(Picture_009, 256, 256, false, 0) {
+REG_FIDDLE(Picture_MakePlaceholder, 256, 256, false, 0) {
 class MyCanvas : public SkCanvas {
 public:
     MyCanvas(SkCanvas* c) : canvas(c) {}
diff --git a/docs/examples/Picture_010.cpp b/docs/examples/Picture_010.cpp
index c8c55d9..10ad4dd 100644
--- a/docs/examples/Picture_010.cpp
+++ b/docs/examples/Picture_010.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4b3d879118ef770d1f11a23c6493b2c4
-REG_FIDDLE(Picture_010, 256, 256, false, 0) {
+REG_FIDDLE(Picture_approximateOpCount, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPictureRecorder recorder;
     SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
diff --git a/docs/examples/Picture_011.cpp b/docs/examples/Picture_011.cpp
index 39ac1ed..a54d2cd 100644
--- a/docs/examples/Picture_011.cpp
+++ b/docs/examples/Picture_011.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ececbda21218bd732394a305dba393a2
-REG_FIDDLE(Picture_011, 256, 256, false, 0) {
+REG_FIDDLE(Picture_approximateBytesUsed, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPictureRecorder recorder;
     SkCanvas* pictureCanvas = recorder.beginRecording({0, 0, 256, 256});
diff --git a/docs/examples/Pixmap_000.cpp b/docs/examples/Pixmap_000.cpp
index bcdf00f..146f312 100644
--- a/docs/examples/Pixmap_000.cpp
+++ b/docs/examples/Pixmap_000.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9547e74a9d37553a667b913ffd1312dd
-REG_FIDDLE(Pixmap_000, 256, 256, true, 0) {
+REG_FIDDLE(Pixmap_empty_constructor, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const char* alphas[] = {"Unknown", "Opaque", "Premul", "Unpremul"};
     const char* colors[] = {"Unknown", "Alpha_8", "RGB_565", "ARGB_4444", "RGBA_8888", "RGB_888x",
diff --git a/docs/examples/Pixmap_001.cpp b/docs/examples/Pixmap_001.cpp
index 0df9717..b742c72 100644
--- a/docs/examples/Pixmap_001.cpp
+++ b/docs/examples/Pixmap_001.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9a00774be57d7308313b3a9073e6e696
-REG_FIDDLE(Pixmap_001, 256, 256, true, 3) {
+REG_FIDDLE(Pixmap_const_SkImageInfo_const_star, 256, 256, true, 3) {
 void draw(SkCanvas* canvas) {
     SkDebugf("image alpha only = %s\n", image->isAlphaOnly() ? "true" : "false");
     SkPMColor pmColors = 0;
diff --git a/docs/examples/Pixmap_002.cpp b/docs/examples/Pixmap_002.cpp
index 9a13d3e..91e77f4 100644
--- a/docs/examples/Pixmap_002.cpp
+++ b/docs/examples/Pixmap_002.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d9eb583c39f4f0baea79896b89245c98
-REG_FIDDLE(Pixmap_002, 256, 256, true, 0) {
+REG_FIDDLE(Pixmap_reset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const char* alphas[] = {"Unknown", "Opaque", "Premul", "Unpremul"};
     const char* colors[] = {"Unknown", "Alpha_8", "RGB_565", "ARGB_4444", "RGBA_8888", "RGB_888x",
diff --git a/docs/examples/Pixmap_003.cpp b/docs/examples/Pixmap_003.cpp
index 225b598..4036640 100644
--- a/docs/examples/Pixmap_003.cpp
+++ b/docs/examples/Pixmap_003.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9a392b753167cfa849cebeefd5a6e07d
-REG_FIDDLE(Pixmap_003, 256, 64, false, 4) {
+REG_FIDDLE(Pixmap_reset_2, 256, 64, false, 4) {
 void draw(SkCanvas* canvas) {
     std::vector<int32_t> pixels;
     pixels.resize(image->height() * image->width() * 4);
diff --git a/docs/examples/Pixmap_004.cpp b/docs/examples/Pixmap_004.cpp
index 0b9ee53..e6822d6 100644
--- a/docs/examples/Pixmap_004.cpp
+++ b/docs/examples/Pixmap_004.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=30d70aec4de17c831dba71e03dc9664a
-REG_FIDDLE(Pixmap_004, 256, 256, true, 0) {
+REG_FIDDLE(Pixmap_setColorSpace, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPixmap pixmap;
     sk_sp<SkColorSpace> colorSpace1 = SkColorSpace::MakeRGB(SkColorSpace::kLinear_RenderTargetGamma,
diff --git a/docs/examples/Pixmap_005.cpp b/docs/examples/Pixmap_005.cpp
index a1e2525..946d110 100644
--- a/docs/examples/Pixmap_005.cpp
+++ b/docs/examples/Pixmap_005.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=febdbfac6cf4cde69837643be2e1f6dd
-REG_FIDDLE(Pixmap_005, 256, 128, false, 3) {
+REG_FIDDLE(Pixmap_extractSubset, 256, 128, false, 3) {
 void draw(SkCanvas* canvas) {
     std::vector<int32_t> pixels;
     pixels.resize(image->height() * image->width() * 4);
diff --git a/docs/examples/Pixmap_006.cpp b/docs/examples/Pixmap_006.cpp
index 5a33bc0..a17a520 100644
--- a/docs/examples/Pixmap_006.cpp
+++ b/docs/examples/Pixmap_006.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6e0f558bf7fabc655041116288559134
-REG_FIDDLE(Pixmap_006, 256, 256, true, 3) {
+REG_FIDDLE(Pixmap_info, 256, 256, true, 3) {
 void draw(SkCanvas* canvas) {
     std::vector<int32_t> pixels;
     pixels.resize(image->height() * image->width() * 4);
diff --git a/docs/examples/Pixmap_007.cpp b/docs/examples/Pixmap_007.cpp
index b8fb048..97cb73d 100644
--- a/docs/examples/Pixmap_007.cpp
+++ b/docs/examples/Pixmap_007.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=19ac8bb81854680bd408fec8cb797d5c
-REG_FIDDLE(Pixmap_007, 256, 256, true, 0) {
+REG_FIDDLE(Pixmap_rowBytes, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPixmap badPixmap = {SkImageInfo::MakeA8(4, 4), nullptr, 2};
     SkPixmap okPixmap = {SkImageInfo::MakeA8(4, 4), nullptr, 8};
diff --git a/docs/examples/Pixmap_008.cpp b/docs/examples/Pixmap_008.cpp
index a9031c0..9c58513 100644
--- a/docs/examples/Pixmap_008.cpp
+++ b/docs/examples/Pixmap_008.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=17bcabaaee2dbb7beba562e9ca50b55e
-REG_FIDDLE(Pixmap_008, 256, 256, true, 3) {
+REG_FIDDLE(Pixmap_addr, 256, 256, true, 3) {
 void draw(SkCanvas* canvas) {
     std::vector<int32_t> pixels;
     pixels.resize(image->height() * image->width() * 4);
diff --git a/docs/examples/Pixmap_009.cpp b/docs/examples/Pixmap_009.cpp
index 987a678..63f3426 100644
--- a/docs/examples/Pixmap_009.cpp
+++ b/docs/examples/Pixmap_009.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f68617b7153a20b2ed3d7f9ed5c6e5e4
-REG_FIDDLE(Pixmap_009, 256, 256, true, 0) {
+REG_FIDDLE(Pixmap_width, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkImageInfo info = SkImageInfo::MakeA8(16, 32);
     SkPixmap pixmap(info, nullptr, 64);
diff --git a/docs/examples/Pixmap_010.cpp b/docs/examples/Pixmap_010.cpp
index 9a648de..d436d2d 100644
--- a/docs/examples/Pixmap_010.cpp
+++ b/docs/examples/Pixmap_010.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4a996d32122f469d51ddd0186efb48cc
-REG_FIDDLE(Pixmap_010, 256, 256, true, 0) {
+REG_FIDDLE(Pixmap_height, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPixmap pixmap(SkImageInfo::MakeA8(16, 32), nullptr, 64);
     SkDebugf("pixmap height: %d  info height: %d\n", pixmap.height(), pixmap.info().height());
diff --git a/docs/examples/Pixmap_011.cpp b/docs/examples/Pixmap_011.cpp
index 591f926..3aca89a 100644
--- a/docs/examples/Pixmap_011.cpp
+++ b/docs/examples/Pixmap_011.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0ab5c7af272685f2ce177cc79e6b9457
-REG_FIDDLE(Pixmap_011, 256, 256, true, 0) {
+REG_FIDDLE(Pixmap_colorType, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const char* colors[] = {"Unknown", "Alpha_8", "RGB_565", "ARGB_4444", "RGBA_8888", "RGB_888x",
                             "BGRA_8888", "RGBA_1010102", "RGB_101010x", "Gray_8", "RGBA_F16Norm",
diff --git a/docs/examples/Pixmap_012.cpp b/docs/examples/Pixmap_012.cpp
index 8b29e28..d506d97 100644
--- a/docs/examples/Pixmap_012.cpp
+++ b/docs/examples/Pixmap_012.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=070b1a60232be499eb10c6ea62371804
-REG_FIDDLE(Pixmap_012, 256, 256, true, 0) {
+REG_FIDDLE(Pixmap_alphaType, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const char* alphas[] = {"Unknown", "Opaque", "Premul", "Unpremul"};
     SkPixmap pixmap(SkImageInfo::MakeA8(16, 32), nullptr, 64);
diff --git a/docs/examples/Pixmap_013.cpp b/docs/examples/Pixmap_013.cpp
index 4671266..a1b3fbf 100644
--- a/docs/examples/Pixmap_013.cpp
+++ b/docs/examples/Pixmap_013.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3421bb20a302d563832ba7bb45e0cc58
-REG_FIDDLE(Pixmap_013, 256, 256, true, 0) {
+REG_FIDDLE(Pixmap_colorSpace, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPixmap pixmap(SkImageInfo::MakeN32(16, 32, kPremul_SkAlphaType,
             SkColorSpace::MakeSRGBLinear()), nullptr, 64);
diff --git a/docs/examples/Pixmap_014.cpp b/docs/examples/Pixmap_014.cpp
index 63d4060..2c399a8 100644
--- a/docs/examples/Pixmap_014.cpp
+++ b/docs/examples/Pixmap_014.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=efd083f121e888a523455ea8a49e50d1
-REG_FIDDLE(Pixmap_014, 256, 256, true, 0) {
+REG_FIDDLE(Pixmap_isOpaque, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     std::vector<uint32_t> pixels;
     const int height = 2;
diff --git a/docs/examples/Pixmap_015.cpp b/docs/examples/Pixmap_015.cpp
index 459c353..9d0bb5b 100644
--- a/docs/examples/Pixmap_015.cpp
+++ b/docs/examples/Pixmap_015.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=79750fb1d898a4e5c8c828b7bc9acec5
-REG_FIDDLE(Pixmap_015, 256, 256, true, 0) {
+REG_FIDDLE(Pixmap_bounds, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     for (int width : { 0, 2 } ) {
         for (int height : { 0, 2 } ) {
diff --git a/docs/examples/Pixmap_016.cpp b/docs/examples/Pixmap_016.cpp
index 2fa2baa..89e42d5 100644
--- a/docs/examples/Pixmap_016.cpp
+++ b/docs/examples/Pixmap_016.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6231bb212d0c231b5bc44eac626fbcb5
-REG_FIDDLE(Pixmap_016, 256, 256, true, 0) {
+REG_FIDDLE(Pixmap_rowBytesAsPixels, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     for (int rowBytes : { 4, 5, 6, 7, 8} ) {
         SkPixmap pixmap(SkImageInfo::MakeN32(1, 1, kPremul_SkAlphaType), nullptr, rowBytes);
diff --git a/docs/examples/Pixmap_017.cpp b/docs/examples/Pixmap_017.cpp
index 8ebdd5a..1538cc7 100644
--- a/docs/examples/Pixmap_017.cpp
+++ b/docs/examples/Pixmap_017.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=bf31ee140e2c163c3957276e6d4c4f0c
-REG_FIDDLE(Pixmap_017, 256, 256, true, 0) {
+REG_FIDDLE(Pixmap_shiftPerPixel, 256, 256, true, 0) {
 const char* color_type(SkColorType ct) {
     switch (ct) {
         case kUnknown_SkColorType:      return "Unknown";
diff --git a/docs/examples/Pixmap_018.cpp b/docs/examples/Pixmap_018.cpp
index 6f56de2..447fabb 100644
--- a/docs/examples/Pixmap_018.cpp
+++ b/docs/examples/Pixmap_018.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=410d14ddc45d272598c5a4e52bb047de
-REG_FIDDLE(Pixmap_018, 256, 256, true, 0) {
+REG_FIDDLE(Pixmap_computeByteSize, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPixmap pixmap;
     for (int width : { 1, 1000, 1000000 } ) {
diff --git a/docs/examples/Pixmap_019.cpp b/docs/examples/Pixmap_019.cpp
index 32482bd..7eb76be 100644
--- a/docs/examples/Pixmap_019.cpp
+++ b/docs/examples/Pixmap_019.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6ef37d5be03d0bfaec992dbb5a94c66f
-REG_FIDDLE(Pixmap_019, 256, 256, true, 0) {
+REG_FIDDLE(Pixmap_computeIsOpaque, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     std::vector<uint32_t> pixels;
     const int height = 2;
diff --git a/docs/examples/Pixmap_020.cpp b/docs/examples/Pixmap_020.cpp
index 1d795f5..e5276ef 100644
--- a/docs/examples/Pixmap_020.cpp
+++ b/docs/examples/Pixmap_020.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=94ad244056dc80ecd87daae004266334
-REG_FIDDLE(Pixmap_020, 256, 256, true, 0) {
+REG_FIDDLE(Pixmap_getColor, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const int w = 4;
     const int h = 4;
diff --git a/docs/examples/Pixmap_021.cpp b/docs/examples/Pixmap_021.cpp
index aa393c8..f3a8494 100644
--- a/docs/examples/Pixmap_021.cpp
+++ b/docs/examples/Pixmap_021.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6e6e29e860eafed77308c973400cc84d
-REG_FIDDLE(Pixmap_021, 256, 256, true, 0) {
+REG_FIDDLE(Pixmap_addr_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const int w = 4;
     const int h = 4;
diff --git a/docs/examples/Pixmap_022.cpp b/docs/examples/Pixmap_022.cpp
index f716f09..9fd3ea9 100644
--- a/docs/examples/Pixmap_022.cpp
+++ b/docs/examples/Pixmap_022.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9adda80b2dd1b08ec5ccf66da7c8bd91
-REG_FIDDLE(Pixmap_022, 256, 256, true, 0) {
+REG_FIDDLE(Pixmap_addr8, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const int w = 4;
     const int h = 4;
diff --git a/docs/examples/Pixmap_023.cpp b/docs/examples/Pixmap_023.cpp
index 7e85e1c..954ac8a 100644
--- a/docs/examples/Pixmap_023.cpp
+++ b/docs/examples/Pixmap_023.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9b16012d265c954c6de13f3fc960da52
-REG_FIDDLE(Pixmap_023, 256, 256, true, 0) {
+REG_FIDDLE(Pixmap_addr16, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const int w = 4;
     const int h = 4;
diff --git a/docs/examples/Pixmap_024.cpp b/docs/examples/Pixmap_024.cpp
index b90cc16..837fa48 100644
--- a/docs/examples/Pixmap_024.cpp
+++ b/docs/examples/Pixmap_024.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6b90c7ae9f254fe4ea9ef638f893a3e6
-REG_FIDDLE(Pixmap_024, 256, 256, true, 0) {
+REG_FIDDLE(Pixmap_addr32, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const int w = 4;
     const int h = 4;
diff --git a/docs/examples/Pixmap_025.cpp b/docs/examples/Pixmap_025.cpp
index b50378c..702c755 100644
--- a/docs/examples/Pixmap_025.cpp
+++ b/docs/examples/Pixmap_025.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0d17085a4698a8a2e2235fad9041b4b4
-REG_FIDDLE(Pixmap_025, 256, 256, true, 0) {
+REG_FIDDLE(Pixmap_addr64, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const int w = 4;
     const int h = 4;
diff --git a/docs/examples/Pixmap_026.cpp b/docs/examples/Pixmap_026.cpp
index 7b96fff..713b5a3 100644
--- a/docs/examples/Pixmap_026.cpp
+++ b/docs/examples/Pixmap_026.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=54e8525a592f05623c33b375aebc90c1
-REG_FIDDLE(Pixmap_026, 256, 256, true, 0) {
+REG_FIDDLE(Pixmap_addrF16, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const int w = 4;
     const int h = 4;
diff --git a/docs/examples/Pixmap_027.cpp b/docs/examples/Pixmap_027.cpp
index ce3f8eb..a07dac4 100644
--- a/docs/examples/Pixmap_027.cpp
+++ b/docs/examples/Pixmap_027.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5b986272268ef2c52045c1856f8b6107
-REG_FIDDLE(Pixmap_027, 256, 256, true, 0) {
+REG_FIDDLE(Pixmap_addr8_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const int w = 4;
     const int h = 4;
diff --git a/docs/examples/Pixmap_028.cpp b/docs/examples/Pixmap_028.cpp
index 469d46d..8ea4730 100644
--- a/docs/examples/Pixmap_028.cpp
+++ b/docs/examples/Pixmap_028.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=2c0c88a546d4ef093ab63ff72dac00b9
-REG_FIDDLE(Pixmap_028, 256, 256, true, 0) {
+REG_FIDDLE(Pixmap_addr16_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const int w = 4;
     const int h = 4;
diff --git a/docs/examples/Pixmap_029.cpp b/docs/examples/Pixmap_029.cpp
index eb59c7f..53cec5d 100644
--- a/docs/examples/Pixmap_029.cpp
+++ b/docs/examples/Pixmap_029.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=12f8b5ce9fb25604f33df336677f5d62
-REG_FIDDLE(Pixmap_029, 256, 256, true, 0) {
+REG_FIDDLE(Pixmap_addr32_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const int w = 4;
     const int h = 4;
diff --git a/docs/examples/Pixmap_030.cpp b/docs/examples/Pixmap_030.cpp
index 1ca459e..dee9270 100644
--- a/docs/examples/Pixmap_030.cpp
+++ b/docs/examples/Pixmap_030.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5449f65fd7673273b0b57807fd3117ff
-REG_FIDDLE(Pixmap_030, 256, 256, true, 0) {
+REG_FIDDLE(Pixmap_addr64_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const int w = 4;
     const int h = 4;
diff --git a/docs/examples/Pixmap_031.cpp b/docs/examples/Pixmap_031.cpp
index 0f4ccd5..65119a7 100644
--- a/docs/examples/Pixmap_031.cpp
+++ b/docs/examples/Pixmap_031.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f6076cad455bc80af5d06eb121d3b6f2
-REG_FIDDLE(Pixmap_031, 256, 256, true, 0) {
+REG_FIDDLE(Pixmap_addrF16_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const int w = 4;
     const int h = 4;
diff --git a/docs/examples/Pixmap_032.cpp b/docs/examples/Pixmap_032.cpp
index 090b82b..d0601a1 100644
--- a/docs/examples/Pixmap_032.cpp
+++ b/docs/examples/Pixmap_032.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=74ef460f89ed5904334d0f8883e781c4
-REG_FIDDLE(Pixmap_032, 256, 256, true, 0) {
+REG_FIDDLE(Pixmap_writable_addr, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const int w = 4;
     const int h = 4;
diff --git a/docs/examples/Pixmap_033.cpp b/docs/examples/Pixmap_033.cpp
index c739957..13c5759 100644
--- a/docs/examples/Pixmap_033.cpp
+++ b/docs/examples/Pixmap_033.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=559eaca89c765bc8466ea1ba3331d4db
-REG_FIDDLE(Pixmap_033, 256, 256, true, 0) {
+REG_FIDDLE(Pixmap_writable_addr_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const int w = 4;
     const int h = 4;
diff --git a/docs/examples/Pixmap_034.cpp b/docs/examples/Pixmap_034.cpp
index d3f0637..c2ecd52 100644
--- a/docs/examples/Pixmap_034.cpp
+++ b/docs/examples/Pixmap_034.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=809284db136748208b3efc31cd89de29
-REG_FIDDLE(Pixmap_034, 256, 64, false, 0) {
+REG_FIDDLE(Pixmap_writable_addr8, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     uint8_t storage[][5] = {{ 0,   0,  64,   0,  0},
                             { 0, 128, 255, 128,  0},
diff --git a/docs/examples/Pixmap_035.cpp b/docs/examples/Pixmap_035.cpp
index c026a29..d44d930 100644
--- a/docs/examples/Pixmap_035.cpp
+++ b/docs/examples/Pixmap_035.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6da54774f6432b46b47ea9013c15f280
-REG_FIDDLE(Pixmap_035, 256, 64, false, 0) {
+REG_FIDDLE(Pixmap_writable_addr16, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     uint16_t storage[][5] = {{ 0xCABF, 0xDABE, 0xCA9D, 0xC96C, 0xA39B },
                              { 0xACEE, 0xA87C, 0x893A, 0x4779, 0x8708 },
diff --git a/docs/examples/Pixmap_036.cpp b/docs/examples/Pixmap_036.cpp
index cea073a..54bde5e 100644
--- a/docs/examples/Pixmap_036.cpp
+++ b/docs/examples/Pixmap_036.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=086866243bf9e4c14c3b215a2aa69ad9
-REG_FIDDLE(Pixmap_036, 256, 72, false, 4) {
+REG_FIDDLE(Pixmap_writable_addr32, 256, 72, false, 4) {
 void draw(SkCanvas* canvas) {
     std::vector<int32_t> pixels;
     pixels.resize(image->height() * image->width() * 4);
diff --git a/docs/examples/Pixmap_037.cpp b/docs/examples/Pixmap_037.cpp
index 3d60746..b5e775a 100644
--- a/docs/examples/Pixmap_037.cpp
+++ b/docs/examples/Pixmap_037.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=de14d8d30e4a7b6462103d0e0dd96b0b
-REG_FIDDLE(Pixmap_037, 256, 40, false, 0) {
+REG_FIDDLE(Pixmap_writable_addr64, 256, 40, false, 0) {
 void draw(SkCanvas* canvas) {
     SkImageInfo info = SkImageInfo::Make(3, 3, kRGBA_F16_SkColorType, kPremul_SkAlphaType);
     uint64_t storage[9];
diff --git a/docs/examples/Pixmap_038.cpp b/docs/examples/Pixmap_038.cpp
index 5e1da9e..c3cf286 100644
--- a/docs/examples/Pixmap_038.cpp
+++ b/docs/examples/Pixmap_038.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=7822d78f5cacf5c04267cbbc6c6d0b80
-REG_FIDDLE(Pixmap_038, 256, 64, false, 0) {
+REG_FIDDLE(Pixmap_writable_addrF16, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     SkImageInfo info = SkImageInfo::Make(1, 2, kRGBA_F16_SkColorType, kPremul_SkAlphaType);
     uint16_t storage[2][4];
diff --git a/docs/examples/Pixmap_039.cpp b/docs/examples/Pixmap_039.cpp
index 84a51d2..6717187 100644
--- a/docs/examples/Pixmap_039.cpp
+++ b/docs/examples/Pixmap_039.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=df4e355c4845350daede833b4fd21ec1
-REG_FIDDLE(Pixmap_039, 256, 128, false, 0) {
+REG_FIDDLE(Pixmap_readPixels, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     std::vector<int32_t> pixels;
     const int width = 256;
diff --git a/docs/examples/Pixmap_040.cpp b/docs/examples/Pixmap_040.cpp
index 2bd656c..f29f1a6 100644
--- a/docs/examples/Pixmap_040.cpp
+++ b/docs/examples/Pixmap_040.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=094ca0bd37588cc7be241bb387a3e17b
-REG_FIDDLE(Pixmap_040, 256, 256, false, 3) {
+REG_FIDDLE(Pixmap_readPixels_2, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     SkImageInfo info = SkImageInfo::MakeN32Premul(image->width(), image->height());
     std::vector<int32_t> srcPixels;
diff --git a/docs/examples/Pixmap_041.cpp b/docs/examples/Pixmap_041.cpp
index 21d9a34..9698bde 100644
--- a/docs/examples/Pixmap_041.cpp
+++ b/docs/examples/Pixmap_041.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6ec7f7b2cc163cd29f627eef6d4b061c
-REG_FIDDLE(Pixmap_041, 256, 256, false, 3) {
+REG_FIDDLE(Pixmap_readPixels_3, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     SkImageInfo info = SkImageInfo::MakeN32Premul(image->width(), image->height());
     std::vector<int32_t> srcPixels;
diff --git a/docs/examples/Pixmap_042.cpp b/docs/examples/Pixmap_042.cpp
index 8fda3d0..d6615f1 100644
--- a/docs/examples/Pixmap_042.cpp
+++ b/docs/examples/Pixmap_042.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e18549b5ee1039cb61b0bb38c2104fc9
-REG_FIDDLE(Pixmap_042, 256, 256, false, 3) {
+REG_FIDDLE(Pixmap_readPixels_4, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     SkImageInfo info = SkImageInfo::MakeN32Premul(image->width(), image->height());
     std::vector<int32_t> srcPixels;
diff --git a/docs/examples/Pixmap_043.cpp b/docs/examples/Pixmap_043.cpp
index c6f18eb..5ecaba1 100644
--- a/docs/examples/Pixmap_043.cpp
+++ b/docs/examples/Pixmap_043.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8e3c8a9c1d0d2e9b8bf66e24d274f792
-REG_FIDDLE(Pixmap_043, 256, 256, false, 3) {
+REG_FIDDLE(Pixmap_scalePixels, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     SkImageInfo info = SkImageInfo::MakeN32Premul(image->width(), image->height());
     std::vector<int32_t> srcPixels;
diff --git a/docs/examples/Pixmap_044.cpp b/docs/examples/Pixmap_044.cpp
index 64b9c79..e6299e3 100644
--- a/docs/examples/Pixmap_044.cpp
+++ b/docs/examples/Pixmap_044.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a0cdbafed4786788cc90681e7b294234
-REG_FIDDLE(Pixmap_044, 256, 50, false, 0) {
+REG_FIDDLE(Pixmap_erase, 256, 50, false, 0) {
 void draw(SkCanvas* canvas) {
     uint32_t storage[2];
     SkImageInfo info = SkImageInfo::MakeN32Premul(1, 2);
diff --git a/docs/examples/Pixmap_045.cpp b/docs/examples/Pixmap_045.cpp
index 8d2c5b4..8c3a120 100644
--- a/docs/examples/Pixmap_045.cpp
+++ b/docs/examples/Pixmap_045.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=838202e0d49cad2eb3eeb495834f6d63
-REG_FIDDLE(Pixmap_045, 256, 50, false, 0) {
+REG_FIDDLE(Pixmap_erase_2, 256, 50, false, 0) {
 void draw(SkCanvas* canvas) {
     uint32_t storage[2];
     SkImageInfo info = SkImageInfo::MakeN32Premul(1, 2);
diff --git a/docs/examples/Pixmap_046.cpp b/docs/examples/Pixmap_046.cpp
index faa333b..d0fcb1e 100644
--- a/docs/examples/Pixmap_046.cpp
+++ b/docs/examples/Pixmap_046.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f884f3f46a565f052a5e252ae2f36e9b
-REG_FIDDLE(Pixmap_046, 256, 50, false, 0) {
+REG_FIDDLE(Pixmap_erase_3, 256, 50, false, 0) {
 void draw(SkCanvas* canvas) {
     uint32_t storage[2];
     SkImageInfo info = SkImageInfo::MakeN32Premul(1, 2);
diff --git a/docs/examples/Point_000.cpp b/docs/examples/Point_000.cpp
index 209721d..5a041b0 100644
--- a/docs/examples/Point_000.cpp
+++ b/docs/examples/Point_000.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d266e70977847001f7c42f8a2513bee7
-REG_FIDDLE(Point_000, 256, 256, true, 0) {
+REG_FIDDLE(Point_Make, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPoint pt1 = {45, 66};
     SkPoint pt2 = SkPoint::Make(45, 66);
diff --git a/docs/examples/Point_001.cpp b/docs/examples/Point_001.cpp
index 32dbbd1..1ae5251 100644
--- a/docs/examples/Point_001.cpp
+++ b/docs/examples/Point_001.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9f3fe446b800ae1d940785d438634941
-REG_FIDDLE(Point_001, 256, 256, true, 0) {
+REG_FIDDLE(Point_x, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPoint pt1 = {45, 66};
     SkDebugf("pt1.fX %c= pt1.x()\n", pt1.fX == pt1.x() ? '=' : '!');
diff --git a/docs/examples/Point_002.cpp b/docs/examples/Point_002.cpp
index 8141026..60675f3 100644
--- a/docs/examples/Point_002.cpp
+++ b/docs/examples/Point_002.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4c962850c2dbea4d2325df469400680e
-REG_FIDDLE(Point_002, 256, 256, true, 0) {
+REG_FIDDLE(Point_y, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPoint pt1 = {45, 66};
     SkDebugf("pt1.fY %c= pt1.y()\n", pt1.fY == pt1.y() ? '=' : '!');
diff --git a/docs/examples/Point_003.cpp b/docs/examples/Point_003.cpp
index ec08424..4721014 100644
--- a/docs/examples/Point_003.cpp
+++ b/docs/examples/Point_003.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=81b9665110b88ef6bcbc20464aed7da1
-REG_FIDDLE(Point_003, 256, 256, true, 0) {
+REG_FIDDLE(Point_isZero, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPoint pt = { 0.f, -0.f};
     SkDebugf("pt.fX=%c%g pt.fY=%c%g\n", std::signbit(pt.fX) ? '-' : '+', fabsf(pt.fX),
diff --git a/docs/examples/Point_004.cpp b/docs/examples/Point_004.cpp
index 36e7c67..d2724a7 100644
--- a/docs/examples/Point_004.cpp
+++ b/docs/examples/Point_004.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d08d1e7dafcad4342d1619fdbb2f5781
-REG_FIDDLE(Point_004, 256, 256, true, 0) {
+REG_FIDDLE(Point_set, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPoint pt1, pt2 = { SK_ScalarPI, SK_ScalarSqrt2 };
     pt1.set(SK_ScalarPI, SK_ScalarSqrt2);
diff --git a/docs/examples/Point_005.cpp b/docs/examples/Point_005.cpp
index b95ad76..0076996 100644
--- a/docs/examples/Point_005.cpp
+++ b/docs/examples/Point_005.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0d9e8ed734981b5b113f22c7bfde5357
-REG_FIDDLE(Point_005, 256, 256, true, 0) {
+REG_FIDDLE(Point_iset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPoint pt1, pt2 = { SK_MinS16, SK_MaxS16 };
     pt1.iset(SK_MinS16, SK_MaxS16);
diff --git a/docs/examples/Point_006.cpp b/docs/examples/Point_006.cpp
index 1108039..acb1d00 100644
--- a/docs/examples/Point_006.cpp
+++ b/docs/examples/Point_006.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=12b7164a769e232bb772f19c59600ee7
-REG_FIDDLE(Point_006, 256, 256, true, 0) {
+REG_FIDDLE(Point_iset_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIPoint iPt = { SK_MinS32, SK_MaxS32 };
     SkPoint fPt;
diff --git a/docs/examples/Point_007.cpp b/docs/examples/Point_007.cpp
index e03bf07..893f919 100644
--- a/docs/examples/Point_007.cpp
+++ b/docs/examples/Point_007.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=7f70860e820b67a347cff03c00488426
-REG_FIDDLE(Point_007, 256, 256, true, 0) {
+REG_FIDDLE(Point_setAbs, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPoint test[] = { {0.f, -0.f}, {-1, -2},
                        { SK_ScalarInfinity, SK_ScalarNegativeInfinity },
diff --git a/docs/examples/Point_008.cpp b/docs/examples/Point_008.cpp
index 3f0d052..f748144 100644
--- a/docs/examples/Point_008.cpp
+++ b/docs/examples/Point_008.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f0f24726df78a5d797bcf311e694a0a3
-REG_FIDDLE(Point_008, 256, 256, false, 0) {
+REG_FIDDLE(Point_Offset, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Point_009.cpp b/docs/examples/Point_009.cpp
index 564cabf..e301ea8 100644
--- a/docs/examples/Point_009.cpp
+++ b/docs/examples/Point_009.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=532849faa838de885b86d3ebffae3712
-REG_FIDDLE(Point_009, 256, 256, false, 0) {
+REG_FIDDLE(Point_Offset_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Point_010.cpp b/docs/examples/Point_010.cpp
index 496dbf0..18fa369 100644
--- a/docs/examples/Point_010.cpp
+++ b/docs/examples/Point_010.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=02750ceaa874f956e6e6544ef6b858ee
-REG_FIDDLE(Point_010, 256, 128, false, 0) {
+REG_FIDDLE(Point_offset, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Point_011.cpp b/docs/examples/Point_011.cpp
index 514e807..80542ca 100644
--- a/docs/examples/Point_011.cpp
+++ b/docs/examples/Point_011.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8363ab179447ee4b827679e20d3d81eb
-REG_FIDDLE(Point_011, 256, 192, false, 0) {
+REG_FIDDLE(Point_length, 256, 192, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Point_012.cpp b/docs/examples/Point_012.cpp
index 11a6f7f..4611095 100644
--- a/docs/examples/Point_012.cpp
+++ b/docs/examples/Point_012.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=812cf26d91b1cdcd2c6b9438a8172518
-REG_FIDDLE(Point_012, 256, 192, false, 0) {
+REG_FIDDLE(Point_distanceToOrigin, 256, 192, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Point_013.cpp b/docs/examples/Point_013.cpp
index f060803..99181ff 100644
--- a/docs/examples/Point_013.cpp
+++ b/docs/examples/Point_013.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d84fce292d86c7d9ef37ae2d179c03c7
-REG_FIDDLE(Point_013, 256, 256, false, 0) {
+REG_FIDDLE(Point_normalize, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Point_014.cpp b/docs/examples/Point_014.cpp
index d75f31a..abb42fd 100644
--- a/docs/examples/Point_014.cpp
+++ b/docs/examples/Point_014.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3e4f147d143a388802484bf0d26534c2
-REG_FIDDLE(Point_014, 256, 256, false, 0) {
+REG_FIDDLE(Point_setNormalize, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Point_015.cpp b/docs/examples/Point_015.cpp
index 35c4889..2fb4517 100644
--- a/docs/examples/Point_015.cpp
+++ b/docs/examples/Point_015.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=cbe7db206ece825aa3b9b7c3256aeaf0
-REG_FIDDLE(Point_015, 256, 160, false, 0) {
+REG_FIDDLE(Point_setLength, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Point_016.cpp b/docs/examples/Point_016.cpp
index 7bb0241..d17bb18 100644
--- a/docs/examples/Point_016.cpp
+++ b/docs/examples/Point_016.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3cc0662b6fbbee1fe3442a0acfece22c
-REG_FIDDLE(Point_016, 256, 160, false, 0) {
+REG_FIDDLE(Point_setLength_2, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Point_017.cpp b/docs/examples/Point_017.cpp
index c78beb9..8e7bbc9 100644
--- a/docs/examples/Point_017.cpp
+++ b/docs/examples/Point_017.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=972e4e230806281adb928e068bcd8551
-REG_FIDDLE(Point_017, 256, 256, false, 0) {
+REG_FIDDLE(Point_scale, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Point_018.cpp b/docs/examples/Point_018.cpp
index f7fc6fd..d857d0c 100644
--- a/docs/examples/Point_018.cpp
+++ b/docs/examples/Point_018.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1060a4f27d8ef29519e6ac006ce90f2b
-REG_FIDDLE(Point_018, 256, 256, false, 0) {
+REG_FIDDLE(Point_scale_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Point_019.cpp b/docs/examples/Point_019.cpp
index 387399d..0d6ed75 100644
--- a/docs/examples/Point_019.cpp
+++ b/docs/examples/Point_019.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=312c0c8065ab5d0adfda80cccf2d11e6
-REG_FIDDLE(Point_019, 256, 256, true, 0) {
+REG_FIDDLE(Point_negate, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPoint test[] = { {0.f, -0.f}, {-1, -2},
                        { SK_ScalarInfinity, SK_ScalarNegativeInfinity },
diff --git a/docs/examples/Point_020.cpp b/docs/examples/Point_020.cpp
index 10be1dc..dd58a7b 100644
--- a/docs/examples/Point_020.cpp
+++ b/docs/examples/Point_020.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9baf247cfcd8272c0ddf6ce93f676b37
-REG_FIDDLE(Point_020, 256, 256, true, 0) {
+REG_FIDDLE(Point_minus_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPoint test[] = { {0.f, -0.f}, {-1, -2},
                        { SK_ScalarInfinity, SK_ScalarNegativeInfinity },
diff --git a/docs/examples/Point_021.cpp b/docs/examples/Point_021.cpp
index f9bfb35..c9ec913 100644
--- a/docs/examples/Point_021.cpp
+++ b/docs/examples/Point_021.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8b4e79109e2381345258cb744881b20c
-REG_FIDDLE(Point_021, 256, 128, false, 0) {
+REG_FIDDLE(Point_addto_operator, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Point_022.cpp b/docs/examples/Point_022.cpp
index bb59540..22d40dd 100644
--- a/docs/examples/Point_022.cpp
+++ b/docs/examples/Point_022.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=86c0399704d8dff4091bf87b8d87d40b
-REG_FIDDLE(Point_022, 256, 128, false, 0) {
+REG_FIDDLE(Point_subtractfrom_operator, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Point_023.cpp b/docs/examples/Point_023.cpp
index c74e5ec..e7c8bb3 100644
--- a/docs/examples/Point_023.cpp
+++ b/docs/examples/Point_023.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=35b3bc675779de043706ae4817ee950c
-REG_FIDDLE(Point_023, 256, 128, false, 0) {
+REG_FIDDLE(Point_multiply_operator, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Point_024.cpp b/docs/examples/Point_024.cpp
index 55d28ec..06866ee 100644
--- a/docs/examples/Point_024.cpp
+++ b/docs/examples/Point_024.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3ce3db36235d80dbac4d39504cf756da
-REG_FIDDLE(Point_024, 256, 128, false, 0) {
+REG_FIDDLE(Point_multiplyby_operator, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Point_025.cpp b/docs/examples/Point_025.cpp
index cdee460..09e62a7 100644
--- a/docs/examples/Point_025.cpp
+++ b/docs/examples/Point_025.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=937cc166cc0e220f33fb82501141d0b3
-REG_FIDDLE(Point_025, 256, 256, true, 0) {
+REG_FIDDLE(Point_isFinite, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPoint test[] = { {0, -0.f}, {-1, -2}, {SK_ScalarInfinity, 1}, {SK_ScalarNaN, -1} };
     for (const SkPoint& pt : test) {
diff --git a/docs/examples/Point_026.cpp b/docs/examples/Point_026.cpp
index 269b7cb..1bb0220 100644
--- a/docs/examples/Point_026.cpp
+++ b/docs/examples/Point_026.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4cecb878c8b66beffda051f26c00f817
-REG_FIDDLE(Point_026, 256, 256, true, 0) {
+REG_FIDDLE(Point_equals, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPoint test[] = { {0, -0.f}, {-1, -2}, {SK_ScalarInfinity, 1}, {SK_ScalarNaN, -1} };
     for (const SkPoint& pt : test) {
diff --git a/docs/examples/Point_027.cpp b/docs/examples/Point_027.cpp
index 0859829..66af868 100644
--- a/docs/examples/Point_027.cpp
+++ b/docs/examples/Point_027.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=741f793334a48a35dadf4310d7ea52cb
-REG_FIDDLE(Point_027, 256, 256, true, 0) {
+REG_FIDDLE(Point_equal_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPoint test[] = { {0, -0.f}, {-1, -2}, {SK_ScalarInfinity, 1}, {SK_ScalarNaN, -1} };
     for (const SkPoint& pt : test) {
diff --git a/docs/examples/Point_028.cpp b/docs/examples/Point_028.cpp
index fec8e11..0704fa6 100644
--- a/docs/examples/Point_028.cpp
+++ b/docs/examples/Point_028.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8fe8572685eaa617f25a5a6767a874dc
-REG_FIDDLE(Point_028, 256, 256, true, 0) {
+REG_FIDDLE(Point_notequal_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPoint test[] = { {0, -0.f}, {-1, -2}, {SK_ScalarInfinity, 1}, {SK_ScalarNaN, -1} };
     for (const SkPoint& pt : test) {
diff --git a/docs/examples/Point_029.cpp b/docs/examples/Point_029.cpp
index 2ee9047..1685e6a 100644
--- a/docs/examples/Point_029.cpp
+++ b/docs/examples/Point_029.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b6c4943ecd0b2dccf9d220b8944009e0
-REG_FIDDLE(Point_029, 256, 256, false, 0) {
+REG_FIDDLE(Point_subtract_operator, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Point_030.cpp b/docs/examples/Point_030.cpp
index 7e47134..8b4eee0 100644
--- a/docs/examples/Point_030.cpp
+++ b/docs/examples/Point_030.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=911a84253dfec4dabf94dbe3c71766f0
-REG_FIDDLE(Point_030, 256, 256, false, 0) {
+REG_FIDDLE(Point_add_operator, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Point_031.cpp b/docs/examples/Point_031.cpp
index 6507ed8..5f5d622 100644
--- a/docs/examples/Point_031.cpp
+++ b/docs/examples/Point_031.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c98773d8b4509969d78cb8121e4b77f6
-REG_FIDDLE(Point_031, 256, 192, false, 0) {
+REG_FIDDLE(Point_Length, 256, 192, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Point_032.cpp b/docs/examples/Point_032.cpp
index 0c33b78..31b14d4 100644
--- a/docs/examples/Point_032.cpp
+++ b/docs/examples/Point_032.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=60a08f3ce75374fc815384616d114df7
-REG_FIDDLE(Point_032, 256, 256, false, 0) {
+REG_FIDDLE(Point_Normalize, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Point_033.cpp b/docs/examples/Point_033.cpp
index e3fc00b..ce8a31d 100644
--- a/docs/examples/Point_033.cpp
+++ b/docs/examples/Point_033.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9e0a2de2eb94dba4521d733e73f2bda5
-REG_FIDDLE(Point_033, 256, 192, false, 0) {
+REG_FIDDLE(Point_Distance, 256, 192, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Point_034.cpp b/docs/examples/Point_034.cpp
index f961386..d49e10f 100644
--- a/docs/examples/Point_034.cpp
+++ b/docs/examples/Point_034.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=496db0131a003162faba7d7f98b30340
-REG_FIDDLE(Point_034, 256, 256, false, 0) {
+REG_FIDDLE(Point_DotProduct, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Point_035.cpp b/docs/examples/Point_035.cpp
index 118fe04..7ab7281 100644
--- a/docs/examples/Point_035.cpp
+++ b/docs/examples/Point_035.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8b8a4cd8a29d22bb9c5e63b70357bd65
-REG_FIDDLE(Point_035, 256, 256, false, 0) {
+REG_FIDDLE(Point_CrossProduct, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Point_036.cpp b/docs/examples/Point_036.cpp
index 3a95a32..4dd8fd7 100644
--- a/docs/examples/Point_036.cpp
+++ b/docs/examples/Point_036.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0bc7b3997357e499817278b78bdfbf1d
-REG_FIDDLE(Point_036, 256, 256, false, 0) {
+REG_FIDDLE(Point_cross, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/Point_037.cpp b/docs/examples/Point_037.cpp
index 3f5b103..fb436c4 100644
--- a/docs/examples/Point_037.cpp
+++ b/docs/examples/Point_037.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=56d01ccfedd71d3c504b09afa2875d38
-REG_FIDDLE(Point_037, 256, 256, false, 0) {
+REG_FIDDLE(Point_dot, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/RRect_000.cpp b/docs/examples/RRect_000.cpp
index 487317f..b42ba63 100644
--- a/docs/examples/RRect_000.cpp
+++ b/docs/examples/RRect_000.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=471e7aad0feaf9ec3a21757a317a64f5
-REG_FIDDLE(RRect_000, 256, 60, false, 0) {
+REG_FIDDLE(RRect_empty_constructor, 256, 60, false, 0) {
 void draw(SkCanvas* canvas) {
     SkRRect rrect;
     SkPaint p;
diff --git a/docs/examples/RRect_001.cpp b/docs/examples/RRect_001.cpp
index 66942e9..9d85a1c 100644
--- a/docs/examples/RRect_001.cpp
+++ b/docs/examples/RRect_001.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ad8f5d49edfcee60eddfe2a955b6c5f5
-REG_FIDDLE(RRect_001, 256, 60, false, 0) {
+REG_FIDDLE(RRect_copy_const_SkRRect, 256, 60, false, 0) {
 void draw(SkCanvas* canvas) {
     SkRRect rrect = SkRRect::MakeRect({10, 10, 100, 50});
     SkRRect rrect2(rrect);
diff --git a/docs/examples/RRect_002.cpp b/docs/examples/RRect_002.cpp
index 6632e9e..96d882a 100644
--- a/docs/examples/RRect_002.cpp
+++ b/docs/examples/RRect_002.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=52926c98c1cca00606d3ea99f23fea3d
-REG_FIDDLE(RRect_002, 256, 110, false, 0) {
+REG_FIDDLE(RRect_copy_operator, 256, 110, false, 0) {
 void draw(SkCanvas* canvas) {
     SkRRect rrect = SkRRect::MakeRect({40, 40, 100, 70});
     SkRRect rrect2 = rrect;
diff --git a/docs/examples/RRect_003.cpp b/docs/examples/RRect_003.cpp
index 6abcbb2..10c6611 100644
--- a/docs/examples/RRect_003.cpp
+++ b/docs/examples/RRect_003.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a4233634c75b72fc7a2815ddb69bd669
-REG_FIDDLE(RRect_003, 256, 128, false, 0) {
+REG_FIDDLE(RRect_Type, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     struct Radii { SkVector data[4]; };
     auto drawRRectType = [=](const SkRect& rect, const Radii& radii) {
diff --git a/docs/examples/RRect_004.cpp b/docs/examples/RRect_004.cpp
index 2975250..20403b9 100644
--- a/docs/examples/RRect_004.cpp
+++ b/docs/examples/RRect_004.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ace8f4aebf90527d43e4b7291375c9ad
-REG_FIDDLE(RRect_004, 256, 100, false, 0) {
+REG_FIDDLE(RRect_getType, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
     SkRRect rrect = SkRRect::MakeRect({10, 10, 100, 50});
     SkRRect rrect2(rrect);
diff --git a/docs/examples/RRect_005.cpp b/docs/examples/RRect_005.cpp
index a88801f..df717ac 100644
--- a/docs/examples/RRect_005.cpp
+++ b/docs/examples/RRect_005.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1080805c8449406a4e26d694bc56d2dc
-REG_FIDDLE(RRect_005, 256, 100, false, 0) {
+REG_FIDDLE(RRect_type, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
     SkRRect rrect = SkRRect::MakeRect({10, 10, 100, 50});
     SkRRect rrect2(rrect);
diff --git a/docs/examples/RRect_006.cpp b/docs/examples/RRect_006.cpp
index 08f29fc..489c684 100644
--- a/docs/examples/RRect_006.cpp
+++ b/docs/examples/RRect_006.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=099d79ecfbdfb0a19c10deb7201859c3
-REG_FIDDLE(RRect_006, 256, 100, false, 0) {
+REG_FIDDLE(RRect_isEmpty, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/RRect_007.cpp b/docs/examples/RRect_007.cpp
index 0ee1dff..8d54f95 100644
--- a/docs/examples/RRect_007.cpp
+++ b/docs/examples/RRect_007.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=bc931c9a6eb8ffe7ea8d3fb47e07a475
-REG_FIDDLE(RRect_007, 256, 100, false, 0) {
+REG_FIDDLE(RRect_isRect, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/RRect_008.cpp b/docs/examples/RRect_008.cpp
index c779396..b377cd6 100644
--- a/docs/examples/RRect_008.cpp
+++ b/docs/examples/RRect_008.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4dfdb28d8343958425f2c1323fe8170d
-REG_FIDDLE(RRect_008, 256, 100, false, 0) {
+REG_FIDDLE(RRect_isOval, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/RRect_009.cpp b/docs/examples/RRect_009.cpp
index 75a0263..da8443c 100644
--- a/docs/examples/RRect_009.cpp
+++ b/docs/examples/RRect_009.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f6959ea422a7c6e98ddfad216a52c707
-REG_FIDDLE(RRect_009, 256, 100, false, 0) {
+REG_FIDDLE(RRect_isSimple, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/RRect_010.cpp b/docs/examples/RRect_010.cpp
index ef37598..dae70a9 100644
--- a/docs/examples/RRect_010.cpp
+++ b/docs/examples/RRect_010.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=429f6dfd4cf6287df3c3c77fa7681c99
-REG_FIDDLE(RRect_010, 256, 100, false, 0) {
+REG_FIDDLE(RRect_isNinePatch, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/RRect_011.cpp b/docs/examples/RRect_011.cpp
index 60ce3f0..2a4e477 100644
--- a/docs/examples/RRect_011.cpp
+++ b/docs/examples/RRect_011.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b62c183dc435d1fc091111fb2f3c3f8e
-REG_FIDDLE(RRect_011, 256, 100, false, 0) {
+REG_FIDDLE(RRect_isComplex, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/RRect_012.cpp b/docs/examples/RRect_012.cpp
index cb85a8e..032da29 100644
--- a/docs/examples/RRect_012.cpp
+++ b/docs/examples/RRect_012.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c675a480b41dee157f84fa2550a2a53c
-REG_FIDDLE(RRect_012, 256, 256, true, 0) {
+REG_FIDDLE(RRect_width, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRRect unsorted = SkRRect::MakeRect({ 15, 25, 10, 5 });
     SkDebugf("unsorted width: %g\n", unsorted.width());
diff --git a/docs/examples/RRect_013.cpp b/docs/examples/RRect_013.cpp
index f0fbcbe..8673a10 100644
--- a/docs/examples/RRect_013.cpp
+++ b/docs/examples/RRect_013.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5a3eb1755164a7becec33cec6e6eca31
-REG_FIDDLE(RRect_013, 256, 256, true, 0) {
+REG_FIDDLE(RRect_height, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRRect unsorted = SkRRect::MakeRect({ 15, 25, 10, 20 });
     SkDebugf("unsorted height: %g\n", unsorted.height());
diff --git a/docs/examples/RRect_014.cpp b/docs/examples/RRect_014.cpp
index 35d9179..2236d2c 100644
--- a/docs/examples/RRect_014.cpp
+++ b/docs/examples/RRect_014.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=81345f7619a072bb2b0cf59810fe86d0
-REG_FIDDLE(RRect_014, 256, 100, false, 0) {
+REG_FIDDLE(RRect_getSimpleRadii, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
     auto drawDetails = [=](const SkRRect& rrect) {
         SkPaint paint;
diff --git a/docs/examples/RRect_015.cpp b/docs/examples/RRect_015.cpp
index f7d17ac..f013d57 100644
--- a/docs/examples/RRect_015.cpp
+++ b/docs/examples/RRect_015.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=44e9a9c2c5ef1af2a616086ff46a9037
-REG_FIDDLE(RRect_015, 256, 80, false, 0) {
+REG_FIDDLE(RRect_setEmpty, 256, 80, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkRRect rrect = SkRRect::MakeRect({30, 10, 100, 60});
diff --git a/docs/examples/RRect_016.cpp b/docs/examples/RRect_016.cpp
index 6d19494..94e57fc 100644
--- a/docs/examples/RRect_016.cpp
+++ b/docs/examples/RRect_016.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3afc3ac9bebd1d7387822cc608571e82
-REG_FIDDLE(RRect_016, 256, 90, false, 0) {
+REG_FIDDLE(RRect_setRect, 256, 90, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkRRect rrect = SkRRect::MakeRect({30, 10, 100, 60});
diff --git a/docs/examples/RRect_017.cpp b/docs/examples/RRect_017.cpp
index 28ad968..479349f 100644
--- a/docs/examples/RRect_017.cpp
+++ b/docs/examples/RRect_017.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c6c6be3b3c137226adbb5b5af9203d27
-REG_FIDDLE(RRect_017, 256, 90, false, 0) {
+REG_FIDDLE(RRect_MakeEmpty, 256, 90, false, 0) {
 void draw(SkCanvas* canvas) {
     SkRRect rrect = SkRRect::MakeEmpty();
     SkRRect rrect2(rrect);
diff --git a/docs/examples/RRect_018.cpp b/docs/examples/RRect_018.cpp
index e60f64f..0fbc081 100644
--- a/docs/examples/RRect_018.cpp
+++ b/docs/examples/RRect_018.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5295b07fe4d2cdcd077979a9e19854d9
-REG_FIDDLE(RRect_018, 256, 70, false, 0) {
+REG_FIDDLE(RRect_MakeRect, 256, 70, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkRRect rrect = SkRRect::MakeRect({30, 10, 100, 60});
diff --git a/docs/examples/RRect_019.cpp b/docs/examples/RRect_019.cpp
index d9c9439..039e8f7 100644
--- a/docs/examples/RRect_019.cpp
+++ b/docs/examples/RRect_019.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0b99ee38fd154f769f6031242e02fa7a
-REG_FIDDLE(RRect_019, 256, 70, false, 0) {
+REG_FIDDLE(RRect_MakeOval, 256, 70, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkRRect rrect = SkRRect::MakeOval({30, 10, 100, 60});
diff --git a/docs/examples/RRect_020.cpp b/docs/examples/RRect_020.cpp
index dd61bbb..22e6fad 100644
--- a/docs/examples/RRect_020.cpp
+++ b/docs/examples/RRect_020.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=2b24a1247637cbc94f8b3c77d37ed3e2
-REG_FIDDLE(RRect_020, 256, 70, false, 0) {
+REG_FIDDLE(RRect_MakeRectXY, 256, 70, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkRRect rrect = SkRRect::MakeRectXY({30, 10, 100, 60}, 20, 20);
diff --git a/docs/examples/RRect_021.cpp b/docs/examples/RRect_021.cpp
index 58c1ea4..9072602 100644
--- a/docs/examples/RRect_021.cpp
+++ b/docs/examples/RRect_021.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=cf418af29cbab6243ac16aacd1217ffe
-REG_FIDDLE(RRect_021, 256, 70, false, 0) {
+REG_FIDDLE(RRect_setOval, 256, 70, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkRRect rrect = SkRRect::MakeRectXY({30, 10, 100, 60}, 20, 20);
diff --git a/docs/examples/RRect_022.cpp b/docs/examples/RRect_022.cpp
index 198679e..ebe1d53 100644
--- a/docs/examples/RRect_022.cpp
+++ b/docs/examples/RRect_022.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6ac569e40fb68c758319e85428b9ae95
-REG_FIDDLE(RRect_022, 256, 70, false, 0) {
+REG_FIDDLE(RRect_setRectXY, 256, 70, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkRRect rrect = SkRRect::MakeRectXY({30, 10, 100, 60}, 20, 20);
diff --git a/docs/examples/RRect_023.cpp b/docs/examples/RRect_023.cpp
index cb14e6b..acd850a 100644
--- a/docs/examples/RRect_023.cpp
+++ b/docs/examples/RRect_023.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c4620df2eaba447b581688d3100053b1
-REG_FIDDLE(RRect_023, 256, 70, false, 0) {
+REG_FIDDLE(RRect_setNinePatch, 256, 70, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/RRect_024.cpp b/docs/examples/RRect_024.cpp
index 0db919c..1dab17d 100644
--- a/docs/examples/RRect_024.cpp
+++ b/docs/examples/RRect_024.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=340d6c51efaa1f7f3d0dcaf8b0e90696
-REG_FIDDLE(RRect_024, 256, 128, false, 0) {
+REG_FIDDLE(RRect_setRectRadii, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setStrokeWidth(15);
diff --git a/docs/examples/RRect_025.cpp b/docs/examples/RRect_025.cpp
index 4e57449..91805e8 100644
--- a/docs/examples/RRect_025.cpp
+++ b/docs/examples/RRect_025.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9205393f30b156e1507e88aa27f1dd91
-REG_FIDDLE(RRect_025, 256, 70, false, 0) {
+REG_FIDDLE(RRect_Corner, 256, 70, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/RRect_026.cpp b/docs/examples/RRect_026.cpp
index 2ca20a3..0156465 100644
--- a/docs/examples/RRect_026.cpp
+++ b/docs/examples/RRect_026.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6831adf4c536047f4709c686feb10c48
-REG_FIDDLE(RRect_026, 256, 256, true, 0) {
+REG_FIDDLE(RRect_rect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     for (SkScalar left : { SK_ScalarNaN, SK_ScalarInfinity, 100.f, 50.f, 25.f} ) {
         SkRRect rrect1 = SkRRect::MakeRectXY({left, 20, 60, 220}, 50, 200);
diff --git a/docs/examples/RRect_027.cpp b/docs/examples/RRect_027.cpp
index 48b755b..8bd8006 100644
--- a/docs/examples/RRect_027.cpp
+++ b/docs/examples/RRect_027.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8d5c88478528584913867ada423e0d59
-REG_FIDDLE(RRect_027, 256, 256, true, 0) {
+REG_FIDDLE(RRect_radii, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     for (SkScalar radiusX : { SK_ScalarNaN, SK_ScalarInfinity, 100.f, 50.f, 25.f} ) {
         SkRRect rrect1 = SkRRect::MakeRectXY({10, 20, 60, 220}, radiusX, 200);
diff --git a/docs/examples/RRect_028.cpp b/docs/examples/RRect_028.cpp
index 394391c..40c5cab 100644
--- a/docs/examples/RRect_028.cpp
+++ b/docs/examples/RRect_028.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4577e2dcb086b241bb43d8b89ee0b0dd
-REG_FIDDLE(RRect_028, 256, 120, false, 0) {
+REG_FIDDLE(RRect_getBounds, 256, 120, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     SkRRect rrect = SkRRect::MakeRectXY({20, 20, 220, 100}, 15, 15);
diff --git a/docs/examples/RRect_029.cpp b/docs/examples/RRect_029.cpp
index 9486ea66..e967053 100644
--- a/docs/examples/RRect_029.cpp
+++ b/docs/examples/RRect_029.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=df181af37f1d2b06f0f45af73df7b47d
-REG_FIDDLE(RRect_029, 256, 256, false, 0) {
+REG_FIDDLE(RRect_equal_operator, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkRRect rrect1 = SkRRect::MakeRectXY({10, 20, 60, 220}, 50, 200);
     SkRRect rrect2 = SkRRect::MakeRectXY(rrect1.rect(), 25, 100);
diff --git a/docs/examples/RRect_030.cpp b/docs/examples/RRect_030.cpp
index 4418787..8af064d 100644
--- a/docs/examples/RRect_030.cpp
+++ b/docs/examples/RRect_030.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=505e47b3e6474ebdecdc04c3c2af2c34
-REG_FIDDLE(RRect_030, 256, 256, false, 0) {
+REG_FIDDLE(RRect_notequal_operator, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkRRect rrect1 = SkRRect::MakeRectXY({10, 20, 60, 220}, 50, 100);
     SkRRect rrect2 = SkRRect::MakeRectXY(rrect1.rect(), 50, 50);
diff --git a/docs/examples/RRect_031.cpp b/docs/examples/RRect_031.cpp
index 1602975..53a125c 100644
--- a/docs/examples/RRect_031.cpp
+++ b/docs/examples/RRect_031.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f02f0110d5605dac6d14dcb8d1d8cb6e
-REG_FIDDLE(RRect_031, 256, 256, false, 0) {
+REG_FIDDLE(RRect_inset, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/RRect_032.cpp b/docs/examples/RRect_032.cpp
index f16d577..0b497b7 100644
--- a/docs/examples/RRect_032.cpp
+++ b/docs/examples/RRect_032.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=da61054322550a2d5ac15114da23bd23
-REG_FIDDLE(RRect_032, 256, 256, false, 0) {
+REG_FIDDLE(RRect_inset_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/RRect_033.cpp b/docs/examples/RRect_033.cpp
index 9d8c218..34b8437 100644
--- a/docs/examples/RRect_033.cpp
+++ b/docs/examples/RRect_033.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4d69b6d9c7726c47c42827d79fc7899c
-REG_FIDDLE(RRect_033, 256, 256, false, 0) {
+REG_FIDDLE(RRect_outset, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/RRect_034.cpp b/docs/examples/RRect_034.cpp
index 1dc1c8e..cb8593b 100644
--- a/docs/examples/RRect_034.cpp
+++ b/docs/examples/RRect_034.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4391cced86653dcd0f84439a5c0bb3f2
-REG_FIDDLE(RRect_034, 256, 256, false, 0) {
+REG_FIDDLE(RRect_outset_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/RRect_035.cpp b/docs/examples/RRect_035.cpp
index 4423528..fb27e38 100644
--- a/docs/examples/RRect_035.cpp
+++ b/docs/examples/RRect_035.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a45cdd46ef2fe0df62d84d41713e82e2
-REG_FIDDLE(RRect_035, 256, 256, false, 0) {
+REG_FIDDLE(RRect_offset, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/RRect_036.cpp b/docs/examples/RRect_036.cpp
index f6afc29..0fb62d4 100644
--- a/docs/examples/RRect_036.cpp
+++ b/docs/examples/RRect_036.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c433aa41eaf5e419e3349fb970a08151
-REG_FIDDLE(RRect_036, 256, 256, false, 0) {
+REG_FIDDLE(RRect_makeOffset, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setAntiAlias(true);
diff --git a/docs/examples/RRect_037.cpp b/docs/examples/RRect_037.cpp
index 726bd8a..20f9be3 100644
--- a/docs/examples/RRect_037.cpp
+++ b/docs/examples/RRect_037.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0bb057140e4119234bdd2e8dd2f0fa19
-REG_FIDDLE(RRect_037, 256, 110, false, 0) {
+REG_FIDDLE(RRect_contains, 256, 110, false, 0) {
 void draw(SkCanvas* canvas) {
     SkRect test = {10, 10, 110, 80};
     SkRRect rrect = SkRRect::MakeRect(test);
diff --git a/docs/examples/RRect_038.cpp b/docs/examples/RRect_038.cpp
index 521e3ca..c8d3833 100644
--- a/docs/examples/RRect_038.cpp
+++ b/docs/examples/RRect_038.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8cc1f21c98c0416f7724ad218f557a00
-REG_FIDDLE(RRect_038, 256, 110, false, 0) {
+REG_FIDDLE(RRect_isValid, 256, 110, false, 0) {
 void draw(SkCanvas* canvas) {
     SkRRect rrect = SkRRect::MakeRect({10, 10, 110, 80});
     SkRRect corrupt = rrect;
diff --git a/docs/examples/RRect_039.cpp b/docs/examples/RRect_039.cpp
index e978d5c..582affc 100644
--- a/docs/examples/RRect_039.cpp
+++ b/docs/examples/RRect_039.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d6f5a3d21727ddc15e10ef4d5103ff91
-REG_FIDDLE(RRect_039, 256, 110, false, 0) {
+REG_FIDDLE(RRect_writeToMemory, 256, 110, false, 0) {
 void draw(SkCanvas* canvas) {
     SkRRect rrect = SkRRect::MakeRect({10, 10, 110, 80});
     char storage[SkRRect::kSizeInMemory];
diff --git a/docs/examples/RRect_040.cpp b/docs/examples/RRect_040.cpp
index 5809600..b8038df 100644
--- a/docs/examples/RRect_040.cpp
+++ b/docs/examples/RRect_040.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=50969745cf2b23544362f4cff5592b75
-REG_FIDDLE(RRect_040, 256, 110, false, 0) {
+REG_FIDDLE(RRect_readFromMemory, 256, 110, false, 0) {
 void draw(SkCanvas* canvas) {
     SkVector radii[] = {{5, 5},  {10, 10}, {15, 15}, {5, 5}};
     SkRRect rrect;
diff --git a/docs/examples/RRect_041.cpp b/docs/examples/RRect_041.cpp
index 43fc25c..d666de8 100644
--- a/docs/examples/RRect_041.cpp
+++ b/docs/examples/RRect_041.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=68a5d24f22e2d798608fce8a20e47fd0
-REG_FIDDLE(RRect_041, 256, 110, false, 0) {
+REG_FIDDLE(RRect_transform, 256, 110, false, 0) {
 void draw(SkCanvas* canvas) {
     SkVector radii[] = {{5, 5},  {10, 10}, {15, 15}, {5, 5}};
     SkRRect rrect;
diff --git a/docs/examples/RRect_042.cpp b/docs/examples/RRect_042.cpp
index 3bbc253..29eb737 100644
--- a/docs/examples/RRect_042.cpp
+++ b/docs/examples/RRect_042.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=265b8d23288dc8026ff788e809360af7
-REG_FIDDLE(RRect_042, 256, 256, true, 0) {
+REG_FIDDLE(RRect_dump, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRRect rrect = SkRRect::MakeRect({6.f / 7, 2.f / 3, 6.f / 7, 2.f / 3});
     for (bool dumpAsHex : { false, true } ) {
diff --git a/docs/examples/RRect_043.cpp b/docs/examples/RRect_043.cpp
index e3ade1c..366f87a 100644
--- a/docs/examples/RRect_043.cpp
+++ b/docs/examples/RRect_043.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f850423c7c0c4f803d479ecd92221059
-REG_FIDDLE(RRect_043, 256, 256, true, 0) {
+REG_FIDDLE(RRect_dump_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRRect rrect = SkRRect::MakeRect({6.f / 7, 2.f / 3, 6.f / 7, 2.f / 3});
     rrect.dump();
diff --git a/docs/examples/RRect_044.cpp b/docs/examples/RRect_044.cpp
index 831e795..1044d26 100644
--- a/docs/examples/RRect_044.cpp
+++ b/docs/examples/RRect_044.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c73f5e2644d949b859f05bd367883454
-REG_FIDDLE(RRect_044, 256, 256, true, 0) {
+REG_FIDDLE(RRect_dumpHex, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRRect rrect = SkRRect::MakeRect({6.f / 7, 2.f / 3, 6.f / 7, 2.f / 3});
     rrect.dumpHex();
diff --git a/docs/examples/Rect_000.cpp b/docs/examples/Rect_000.cpp
index 5e3fd69..e39e1f1 100644
--- a/docs/examples/Rect_000.cpp
+++ b/docs/examples/Rect_000.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=2e262d0ac4b8ef51695e0525fc3ecdf6
-REG_FIDDLE(Rect_000, 256, 256, true, 0) {
+REG_FIDDLE(Rect_MakeEmpty, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = SkRect::MakeEmpty();
     SkDebugf("MakeEmpty isEmpty: %s\n", rect.isEmpty() ? "true" : "false");
diff --git a/docs/examples/Rect_001.cpp b/docs/examples/Rect_001.cpp
index 75aa7a5..3c89c1c 100644
--- a/docs/examples/Rect_001.cpp
+++ b/docs/examples/Rect_001.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8009d30f431e01f8aea4808e9017d9bf
-REG_FIDDLE(Rect_001, 256, 256, true, 0) {
+REG_FIDDLE(Rect_MakeWH, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect1 = SkRect::MakeWH(25, 35);
     SkRect rect2 = SkRect::MakeIWH(25, 35);
diff --git a/docs/examples/Rect_002.cpp b/docs/examples/Rect_002.cpp
index f09af82..cd1b826 100644
--- a/docs/examples/Rect_002.cpp
+++ b/docs/examples/Rect_002.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=faa660ac19eaddc3f3eab57a0bddfdcb
-REG_FIDDLE(Rect_002, 256, 256, true, 0) {
+REG_FIDDLE(Rect_MakeIWH, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect i_rect = SkIRect::MakeWH(25, 35);
     SkRect  f_rect = SkRect::MakeIWH(25, 35);
diff --git a/docs/examples/Rect_003.cpp b/docs/examples/Rect_003.cpp
index ffe0973..25c1271 100644
--- a/docs/examples/Rect_003.cpp
+++ b/docs/examples/Rect_003.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ab2c1a55016c8de9172b77fdf69e00a2
-REG_FIDDLE(Rect_003, 256, 256, true, 0) {
+REG_FIDDLE(Rect_MakeSize, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkSize size = {25.5f, 35.5f};
     SkRect rect = SkRect::MakeSize(size);
diff --git a/docs/examples/Rect_004.cpp b/docs/examples/Rect_004.cpp
index 3fde17b..af37ee9 100644
--- a/docs/examples/Rect_004.cpp
+++ b/docs/examples/Rect_004.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=158b8dd9d02d65a5ae5ab7d1595a5b4c
-REG_FIDDLE(Rect_004, 256, 256, true, 0) {
+REG_FIDDLE(Rect_MakeLTRB, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = SkRect::MakeLTRB(5, 35, 15, 25);
     SkDebugf("rect: %g, %g, %g, %g  isEmpty: %s\n", rect.left(), rect.top(), rect.right(),
diff --git a/docs/examples/Rect_005.cpp b/docs/examples/Rect_005.cpp
index 8655c4c..3fc0588 100644
--- a/docs/examples/Rect_005.cpp
+++ b/docs/examples/Rect_005.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=38e464dba13be11ac21e210fbf3b5afc
-REG_FIDDLE(Rect_005, 256, 256, true, 0) {
+REG_FIDDLE(Rect_MakeXYWH, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = SkRect::MakeXYWH(5, 35, -15, 25);
     SkDebugf("rect: %g, %g, %g, %g  isEmpty: %s\n", rect.left(), rect.top(), rect.right(),
diff --git a/docs/examples/Rect_006.cpp b/docs/examples/Rect_006.cpp
index 322ca9b..702d8b4 100644
--- a/docs/examples/Rect_006.cpp
+++ b/docs/examples/Rect_006.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e866f5e4f6ac52e89acadf48e54ac8e0
-REG_FIDDLE(Rect_006, 256, 256, true, 0) {
+REG_FIDDLE(Rect_Make, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect1 = SkRect::MakeSize({2, 35});
     SkRect rect2 = SkRect::MakeIWH(2, 35);
diff --git a/docs/examples/Rect_007.cpp b/docs/examples/Rect_007.cpp
index 1abe2f0..d1fbda1 100644
--- a/docs/examples/Rect_007.cpp
+++ b/docs/examples/Rect_007.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=dd801faa1e60a0fe9e0657674461e063
-REG_FIDDLE(Rect_007, 256, 256, true, 0) {
+REG_FIDDLE(Rect_Make_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect i_rect1 = {2, 35, 22, 53};
     SkRect f_rect = SkRect::Make(i_rect1);
diff --git a/docs/examples/Rect_008.cpp b/docs/examples/Rect_008.cpp
index 425c434..863911c 100644
--- a/docs/examples/Rect_008.cpp
+++ b/docs/examples/Rect_008.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1d7b924d6ca2a6aef09684a8a632439c
-REG_FIDDLE(Rect_008, 256, 256, true, 0) {
+REG_FIDDLE(Rect_isEmpty, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect tests[] = {{20, 40, 10, 50}, {20, 40, 20, 50}};
     for (auto rect : tests) {
diff --git a/docs/examples/Rect_009.cpp b/docs/examples/Rect_009.cpp
index 35ae9d8..4438f07 100644
--- a/docs/examples/Rect_009.cpp
+++ b/docs/examples/Rect_009.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c7065a83b220a96f903dbbb65906fe7b
-REG_FIDDLE(Rect_009, 256, 256, true, 0) {
+REG_FIDDLE(Rect_isSorted, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect tests[] = {{20, 40, 10, 50}, {20, 40, 20, 50}};
     for (auto rect : tests) {
diff --git a/docs/examples/Rect_010.cpp b/docs/examples/Rect_010.cpp
index 33eac24..266857d 100644
--- a/docs/examples/Rect_010.cpp
+++ b/docs/examples/Rect_010.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=443fe5f8296d4cdb19cc9862a9cf77a4
-REG_FIDDLE(Rect_010, 256, 256, true, 0) {
+REG_FIDDLE(Rect_isFinite, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect largest = { SK_ScalarMin, SK_ScalarMin, SK_ScalarMax, SK_ScalarMax };
         SkDebugf("largest is finite: %s\n", largest.isFinite() ? "true" : "false");
diff --git a/docs/examples/Rect_011.cpp b/docs/examples/Rect_011.cpp
index 4e219fd..d73b058 100644
--- a/docs/examples/Rect_011.cpp
+++ b/docs/examples/Rect_011.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=23c77a35ac54a439a2989f840aa5cb99
-REG_FIDDLE(Rect_011, 256, 256, true, 0) {
+REG_FIDDLE(Rect_x, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect unsorted = { 15, 5, 10, 25 };
     SkDebugf("unsorted.fLeft: %g unsorted.x(): %g\n", unsorted.fLeft, unsorted.x());
diff --git a/docs/examples/Rect_012.cpp b/docs/examples/Rect_012.cpp
index ed06b3f..adf2cfb 100644
--- a/docs/examples/Rect_012.cpp
+++ b/docs/examples/Rect_012.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c653d9017983d2a047b1fee6a481d82b
-REG_FIDDLE(Rect_012, 256, 256, true, 0) {
+REG_FIDDLE(Rect_y, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect unsorted = { 15, 25, 10, 5 };
     SkDebugf("unsorted.fTop: %g unsorted.y(): %g\n", unsorted.fTop, unsorted.y());
diff --git a/docs/examples/Rect_013.cpp b/docs/examples/Rect_013.cpp
index ab364b6..27a2408 100644
--- a/docs/examples/Rect_013.cpp
+++ b/docs/examples/Rect_013.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=900dc96c3549795a87036d6458c4fde6
-REG_FIDDLE(Rect_013, 256, 256, true, 0) {
+REG_FIDDLE(Rect_left, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect unsorted = { 15, 5, 10, 25 };
     SkDebugf("unsorted.fLeft: %g unsorted.left(): %g\n", unsorted.fLeft, unsorted.left());
diff --git a/docs/examples/Rect_014.cpp b/docs/examples/Rect_014.cpp
index 0330199..2ac0be3 100644
--- a/docs/examples/Rect_014.cpp
+++ b/docs/examples/Rect_014.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3cfc24b011aef1ca8ccb57c05711620c
-REG_FIDDLE(Rect_014, 256, 256, true, 0) {
+REG_FIDDLE(Rect_top, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect unsorted = { 15, 25, 10, 5 };
     SkDebugf("unsorted.fTop: %g unsorted.top(): %g\n", unsorted.fTop, unsorted.top());
diff --git a/docs/examples/Rect_015.cpp b/docs/examples/Rect_015.cpp
index 4b47a66c..96c37ba 100644
--- a/docs/examples/Rect_015.cpp
+++ b/docs/examples/Rect_015.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ca3de7e5e292b3ad3633b1c39a31d3ab
-REG_FIDDLE(Rect_015, 256, 256, true, 0) {
+REG_FIDDLE(Rect_right, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect unsorted = { 15, 25, 10, 5 };
     SkDebugf("unsorted.fRight: %g unsorted.right(): %g\n", unsorted.fRight, unsorted.right());
diff --git a/docs/examples/Rect_016.cpp b/docs/examples/Rect_016.cpp
index d3d2ff3..0f562bf 100644
--- a/docs/examples/Rect_016.cpp
+++ b/docs/examples/Rect_016.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a98993a66616ae406d8bdc54adfb1411
-REG_FIDDLE(Rect_016, 256, 256, true, 0) {
+REG_FIDDLE(Rect_bottom, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect unsorted = { 15, 25, 10, 5 };
     SkDebugf("unsorted.fBottom: %g unsorted.bottom(): %g\n", unsorted.fBottom, unsorted.bottom());
diff --git a/docs/examples/Rect_017.cpp b/docs/examples/Rect_017.cpp
index ab2391b..90c2e35 100644
--- a/docs/examples/Rect_017.cpp
+++ b/docs/examples/Rect_017.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=11f8f0efe6291019fee0ac17844f6c1a
-REG_FIDDLE(Rect_017, 256, 256, true, 0) {
+REG_FIDDLE(Rect_width, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect unsorted = { 15, 25, 10, 5 };
     SkDebugf("unsorted width: %g\n", unsorted.width());
diff --git a/docs/examples/Rect_018.cpp b/docs/examples/Rect_018.cpp
index 0069824..d0827ec 100644
--- a/docs/examples/Rect_018.cpp
+++ b/docs/examples/Rect_018.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=39429e45f05240218ecd511443ab3e44
-REG_FIDDLE(Rect_018, 256, 256, true, 0) {
+REG_FIDDLE(Rect_height, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect unsorted = { 15, 25, 10, 20 };
     SkDebugf("unsorted height: %g\n", unsorted.height());
diff --git a/docs/examples/Rect_019.cpp b/docs/examples/Rect_019.cpp
index 76dc442..bd7f9e1 100644
--- a/docs/examples/Rect_019.cpp
+++ b/docs/examples/Rect_019.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d8439ba8d23a424fa032fb97147fd2d2
-REG_FIDDLE(Rect_019, 256, 256, true, 0) {
+REG_FIDDLE(Rect_centerX, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect tests[] = {{20, 30, 41, 51}, {-20, -30, -41, -51}};
     for (auto rect : tests) {
diff --git a/docs/examples/Rect_020.cpp b/docs/examples/Rect_020.cpp
index 14e1788..18ab4f8 100644
--- a/docs/examples/Rect_020.cpp
+++ b/docs/examples/Rect_020.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ebeeafafeb8fe39d5ffc9115b02c2340
-REG_FIDDLE(Rect_020, 256, 256, true, 0) {
+REG_FIDDLE(Rect_centerY, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = { 2e+38f, 2e+38f, 3e+38f, 3e+38f };
     SkDebugf("left: %g right: %g centerX: %g ", rect.left(), rect.right(), rect.centerX());
diff --git a/docs/examples/Rect_021.cpp b/docs/examples/Rect_021.cpp
index ebb5c55..16b4b86 100644
--- a/docs/examples/Rect_021.cpp
+++ b/docs/examples/Rect_021.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c6c5b40cad7c3a839fdf576b380391a6
-REG_FIDDLE(Rect_021, 256, 256, true, 0) {
+REG_FIDDLE(Rect_equal_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const SkRect& test) -> void {
         SkRect negZero = {-0.0f, -0.0f, 2, 2};
diff --git a/docs/examples/Rect_022.cpp b/docs/examples/Rect_022.cpp
index 88662e5..2c0e454 100644
--- a/docs/examples/Rect_022.cpp
+++ b/docs/examples/Rect_022.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=286072f8c27ff15be9eb945fa38dc9f7
-REG_FIDDLE(Rect_022, 256, 256, true, 0) {
+REG_FIDDLE(Rect_notequal_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect test = {0, 0, 2, SK_ScalarNaN};
     SkDebugf("test with NaN is %s" "equal to itself\n", test == test ? "" : "not ");
diff --git a/docs/examples/Rect_023.cpp b/docs/examples/Rect_023.cpp
index 8552295..bfc98b6 100644
--- a/docs/examples/Rect_023.cpp
+++ b/docs/examples/Rect_023.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=59a6e7d202ac17ab80ec21b233e51f59
-REG_FIDDLE(Rect_023, 256, 256, true, 0) {
+REG_FIDDLE(Rect_toQuad, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = {1, 2, 3, 4};
     SkPoint corners[4];
diff --git a/docs/examples/Rect_024.cpp b/docs/examples/Rect_024.cpp
index cadc0e7..95bdec4 100644
--- a/docs/examples/Rect_024.cpp
+++ b/docs/examples/Rect_024.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=cf0da15f48aa54fd1889e7f913601710
-REG_FIDDLE(Rect_024, 256, 256, true, 0) {
+REG_FIDDLE(Rect_setBounds, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPoint points[] = {{3, 4}, {1, 2}, {5, 6}, {SK_ScalarNaN, 8}};
     for (int count = 0; count <= (int) SK_ARRAY_COUNT(points); ++count) {
diff --git a/docs/examples/Rect_025.cpp b/docs/examples/Rect_025.cpp
index bc5df81..6c15913 100644
--- a/docs/examples/Rect_025.cpp
+++ b/docs/examples/Rect_025.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=83d879b92683b15f9daaf0c9e71c5b35
-REG_FIDDLE(Rect_025, 256, 256, true, 0) {
+REG_FIDDLE(Rect_setBoundsCheck, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPoint points[] = {{3, 4}, {1, 2}, {5, 6}, {SK_ScalarNaN, 8}};
     for (int count = 0; count <= (int) SK_ARRAY_COUNT(points); ++count) {
diff --git a/docs/examples/Rect_026.cpp b/docs/examples/Rect_026.cpp
index 637a174..1a36e80 100644
--- a/docs/examples/Rect_026.cpp
+++ b/docs/examples/Rect_026.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=be10cb1411dbcf7e38e0198e8a9b8b0e
-REG_FIDDLE(Rect_026, 256, 256, true, 0) {
+REG_FIDDLE(Rect_setBoundsNoCheck, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPoint points[] = {{3, 4}, {1, 2}, {SK_ScalarInfinity, 6}, {SK_ScalarNaN, 8}};
     for (int count = 0; count <= (int) SK_ARRAY_COUNT(points); ++count) {
diff --git a/docs/examples/Rect_027.cpp b/docs/examples/Rect_027.cpp
index 84ea41a..48a6013 100644
--- a/docs/examples/Rect_027.cpp
+++ b/docs/examples/Rect_027.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=2cf67542d45ef5d7a7efb673b651ff54
-REG_FIDDLE(Rect_027, 256, 256, true, 0) {
+REG_FIDDLE(Rect_setEmpty, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = {3, 4, 1, 2};
     for (int i = 0; i < 2; ++i) {
diff --git a/docs/examples/Rect_028.cpp b/docs/examples/Rect_028.cpp
index 9e67802..241fcff 100644
--- a/docs/examples/Rect_028.cpp
+++ b/docs/examples/Rect_028.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a10ad8d97062bc3f40942f47e5108917
-REG_FIDDLE(Rect_028, 256, 256, true, 0) {
+REG_FIDDLE(Rect_set, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect i_rect = {3, 4, 1, 2};
     SkDebugf("i_rect: {%d, %d, %d, %d}\n", i_rect.fLeft, i_rect.fTop, i_rect.fRight, i_rect.fBottom);
diff --git a/docs/examples/Rect_029.cpp b/docs/examples/Rect_029.cpp
index 0f467b1..80a47c7 100644
--- a/docs/examples/Rect_029.cpp
+++ b/docs/examples/Rect_029.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9b29ea460d69b4d47323fd9e3e17721e
-REG_FIDDLE(Rect_029, 256, 256, true, 0) {
+REG_FIDDLE(Rect_set_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect1 = {3, 4, 1, 2};
     SkDebugf("rect1: {%g, %g, %g, %g}\n", rect1.fLeft, rect1.fTop, rect1.fRight, rect1.fBottom);
diff --git a/docs/examples/Rect_030.cpp b/docs/examples/Rect_030.cpp
index ee2f6dd..ee9a668 100644
--- a/docs/examples/Rect_030.cpp
+++ b/docs/examples/Rect_030.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=70692838793454c8e045d6eaf7edcbff
-REG_FIDDLE(Rect_030, 256, 256, true, 0) {
+REG_FIDDLE(Rect_setLTRB, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect1 = {3, 4, 1, 2};
     SkDebugf("rect1: {%g, %g, %g, %g}\n", rect1.fLeft, rect1.fTop, rect1.fRight, rect1.fBottom);
diff --git a/docs/examples/Rect_031.cpp b/docs/examples/Rect_031.cpp
index 26a324a..24351b9 100644
--- a/docs/examples/Rect_031.cpp
+++ b/docs/examples/Rect_031.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=94295fa5197e21256171b99b4023dd48
-REG_FIDDLE(Rect_031, 256, 256, true, 0) {
+REG_FIDDLE(Rect_set_3, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPoint points[] = {{3, 4}, {1, 2}, {5, 6}, {SK_ScalarNaN, 8}};
     for (int count = 0; count <= (int) SK_ARRAY_COUNT(points); ++count) {
diff --git a/docs/examples/Rect_032.cpp b/docs/examples/Rect_032.cpp
index ffca256..228df0f 100644
--- a/docs/examples/Rect_032.cpp
+++ b/docs/examples/Rect_032.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ee72450381f768f3869153cdbeccdc3e
-REG_FIDDLE(Rect_032, 256, 256, true, 0) {
+REG_FIDDLE(Rect_set_4, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkPoint point1 = {SK_ScalarNaN, 8};
     SkPoint point2 = {3, 4};
diff --git a/docs/examples/Rect_033.cpp b/docs/examples/Rect_033.cpp
index 93205fe..c6c7137 100644
--- a/docs/examples/Rect_033.cpp
+++ b/docs/examples/Rect_033.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=373cce4c61b9da0384b735b838765163
-REG_FIDDLE(Rect_033, 256, 256, true, 0) {
+REG_FIDDLE(Rect_setXYWH, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect;
     rect.setXYWH(5, 35, -15, 25);
diff --git a/docs/examples/Rect_034.cpp b/docs/examples/Rect_034.cpp
index 3a84c55..9eac42f 100644
--- a/docs/examples/Rect_034.cpp
+++ b/docs/examples/Rect_034.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9cb5fee17802fa49341f3707bdf5d235
-REG_FIDDLE(Rect_034, 256, 256, true, 0) {
+REG_FIDDLE(Rect_setWH, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect;
     rect.setWH(-15, 25);
diff --git a/docs/examples/Rect_035.cpp b/docs/examples/Rect_035.cpp
index 6251d56..932bec1 100644
--- a/docs/examples/Rect_035.cpp
+++ b/docs/examples/Rect_035.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=18532f1aa90b76364fb8d7ea072f1892
-REG_FIDDLE(Rect_035, 256, 256, true, 0) {
+REG_FIDDLE(Rect_iset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect1 = {3, 4, 1, 2};
     SkDebugf("rect1: {%g, %g, %g, %g}\n", rect1.fLeft, rect1.fTop, rect1.fRight, rect1.fBottom);
diff --git a/docs/examples/Rect_036.cpp b/docs/examples/Rect_036.cpp
index 98ecd53..366533a 100644
--- a/docs/examples/Rect_036.cpp
+++ b/docs/examples/Rect_036.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ee6000080fc7123214ea404018cf9176
-REG_FIDDLE(Rect_036, 256, 256, true, 0) {
+REG_FIDDLE(Rect_isetWH, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect1 = {0, 0, 1, 2};
     SkDebugf("rect1: {%g, %g, %g, %g}\n", rect1.fLeft, rect1.fTop, rect1.fRight, rect1.fBottom);
diff --git a/docs/examples/Rect_037.cpp b/docs/examples/Rect_037.cpp
index 21602d8..6160828 100644
--- a/docs/examples/Rect_037.cpp
+++ b/docs/examples/Rect_037.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=98841ab0a932f99cccd8e6a34d94ba05
-REG_FIDDLE(Rect_037, 256, 256, true, 0) {
+REG_FIDDLE(Rect_makeOffset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = { 10, 50, 20, 60 };
     SkDebugf("rect: %g, %g, %g, %g  isEmpty: %s\n", rect.left(), rect.top(), rect.right(),
diff --git a/docs/examples/Rect_038.cpp b/docs/examples/Rect_038.cpp
index 2c6c54c..c2a0065 100644
--- a/docs/examples/Rect_038.cpp
+++ b/docs/examples/Rect_038.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b8d32ab2f7ea3d4d5fb5a4ea2156f1c5
-REG_FIDDLE(Rect_038, 256, 256, true, 0) {
+REG_FIDDLE(Rect_makeInset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = { 10, 50, 20, 60 };
     SkDebugf("rect: %g, %g, %g, %g  isEmpty: %s\n", rect.left(), rect.top(), rect.right(),
diff --git a/docs/examples/Rect_039.cpp b/docs/examples/Rect_039.cpp
index e2b73bd..41c4d67 100644
--- a/docs/examples/Rect_039.cpp
+++ b/docs/examples/Rect_039.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=87176fc60914cbca9c6a20998a033c24
-REG_FIDDLE(Rect_039, 256, 256, true, 0) {
+REG_FIDDLE(Rect_makeOutset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = { 10, 50, 20, 60 };
     SkDebugf("rect: %g, %g, %g, %g  isEmpty: %s\n", rect.left(), rect.top(), rect.right(),
diff --git a/docs/examples/Rect_040.cpp b/docs/examples/Rect_040.cpp
index e4844ae..06fdcd8 100644
--- a/docs/examples/Rect_040.cpp
+++ b/docs/examples/Rect_040.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=04eb33f0fd376f2942ca5f1c7f6cbcfc
-REG_FIDDLE(Rect_040, 256, 256, true, 0) {
+REG_FIDDLE(Rect_offset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = { 10, 14, 50, 73 };
     rect.offset(5, 13);
diff --git a/docs/examples/Rect_041.cpp b/docs/examples/Rect_041.cpp
index 4c825a4..4f9c783 100644
--- a/docs/examples/Rect_041.cpp
+++ b/docs/examples/Rect_041.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b24cf65561c98c1858a06c39f10fb797
-REG_FIDDLE(Rect_041, 256, 256, true, 0) {
+REG_FIDDLE(Rect_offset_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = { 10, 14, 50, 73 };
     rect.offset({5, 13});
diff --git a/docs/examples/Rect_042.cpp b/docs/examples/Rect_042.cpp
index a7e47f5..21e1f24 100644
--- a/docs/examples/Rect_042.cpp
+++ b/docs/examples/Rect_042.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=bedb04b7b3e1af3e8039f9cffe66989e
-REG_FIDDLE(Rect_042, 256, 256, true, 0) {
+REG_FIDDLE(Rect_offsetTo, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = { 10, 14, 50, 73 };
     rect.offsetTo(15, 27);
diff --git a/docs/examples/Rect_043.cpp b/docs/examples/Rect_043.cpp
index 4bb4ecc..964d81e 100644
--- a/docs/examples/Rect_043.cpp
+++ b/docs/examples/Rect_043.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=dae21340941dc6e4d048816dfd9f204c
-REG_FIDDLE(Rect_043, 256, 256, true, 0) {
+REG_FIDDLE(Rect_inset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = { 10, 14, 50, 73 };
     rect.inset(5, 13);
diff --git a/docs/examples/Rect_044.cpp b/docs/examples/Rect_044.cpp
index aa131c5..46da1c4 100644
--- a/docs/examples/Rect_044.cpp
+++ b/docs/examples/Rect_044.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=861f873ba660af8c8bf8b0b83d829cf4
-REG_FIDDLE(Rect_044, 256, 256, true, 0) {
+REG_FIDDLE(Rect_outset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = { 10, 14, 50, 73 };
     rect.outset(5, 13);
diff --git a/docs/examples/Rect_045.cpp b/docs/examples/Rect_045.cpp
index 257b85b..2d9348b 100644
--- a/docs/examples/Rect_045.cpp
+++ b/docs/examples/Rect_045.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=85be528a78945a6dc4f7dccb80a80746
-REG_FIDDLE(Rect_045, 256, 256, true, 0) {
+REG_FIDDLE(Rect_contains, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = { 30, 50, 40, 60 };
     SkPoint tests[] = { { 30, 50 }, { 39, 49 }, { 29, 59 } };
diff --git a/docs/examples/Rect_046.cpp b/docs/examples/Rect_046.cpp
index 56d3971..d61d8b4 100644
--- a/docs/examples/Rect_046.cpp
+++ b/docs/examples/Rect_046.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=92f9e6aa5bb76791139a24cf7d8df99e
-REG_FIDDLE(Rect_046, 256, 256, true, 0) {
+REG_FIDDLE(Rect_contains_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = { 30, 50, 40, 60 };
     SkRect tests[] = { { 30, 50, 31, 51}, { 39, 49, 40, 50}, { 29, 59, 30, 60} };
diff --git a/docs/examples/Rect_047.cpp b/docs/examples/Rect_047.cpp
index 19be5cd..423b68a 100644
--- a/docs/examples/Rect_047.cpp
+++ b/docs/examples/Rect_047.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=dd58b699551dd44026a2c6386be27d88
-REG_FIDDLE(Rect_047, 256, 256, true, 0) {
+REG_FIDDLE(Rect_contains_3, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = { 30, 50, 40, 60 };
     SkIRect tests[] = { { 30, 50, 31, 51}, { 39, 49, 40, 50}, { 29, 59, 30, 60} };
diff --git a/docs/examples/Rect_048.cpp b/docs/examples/Rect_048.cpp
index f70f863..e9d7f91 100644
--- a/docs/examples/Rect_048.cpp
+++ b/docs/examples/Rect_048.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5d0b12e0ef6f1c181dddded4274230ca
-REG_FIDDLE(Rect_048, 256, 256, true, 0) {
+REG_FIDDLE(Rect_intersect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect leftRect =  { 10, 40, 50, 80 };
     SkRect rightRect = { 30, 60, 70, 90 };
diff --git a/docs/examples/Rect_049.cpp b/docs/examples/Rect_049.cpp
index c8b0b53..e79b33a 100644
--- a/docs/examples/Rect_049.cpp
+++ b/docs/examples/Rect_049.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5002f65a72def2787086a33131933e70
-REG_FIDDLE(Rect_049, 256, 256, true, 0) {
+REG_FIDDLE(Rect_intersect_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect leftRect =  { 10, 40, 50, 80 };
     SkDebugf("%s intersection: ", leftRect.intersect(30, 60, 70, 90) ? "" : "no ");
diff --git a/docs/examples/Rect_050.cpp b/docs/examples/Rect_050.cpp
index 8a3d503..76751b0 100644
--- a/docs/examples/Rect_050.cpp
+++ b/docs/examples/Rect_050.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d610437a65dd3e952719efe605cbd0c7
-REG_FIDDLE(Rect_050, 256, 256, true, 0) {
+REG_FIDDLE(Rect_intersect_3, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect result;
     bool intersected = result.intersect({ 10, 40, 50, 80 }, { 30, 60, 70, 90 });
diff --git a/docs/examples/Rect_051.cpp b/docs/examples/Rect_051.cpp
index 192f02c..5123041 100644
--- a/docs/examples/Rect_051.cpp
+++ b/docs/examples/Rect_051.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=7145dc17ebce4f54e892102f6c98e811
-REG_FIDDLE(Rect_051, 256, 256, true, 0) {
+REG_FIDDLE(Rect_intersects, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = { 10, 40, 50, 80 };
     SkDebugf("%s intersection", rect.intersects(30, 60, 70, 90) ? "" : "no ");
diff --git a/docs/examples/Rect_052.cpp b/docs/examples/Rect_052.cpp
index fe43bb7..3e629ff 100644
--- a/docs/examples/Rect_052.cpp
+++ b/docs/examples/Rect_052.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ca37b4231b21eb8296cb19ba9e0c781b
-REG_FIDDLE(Rect_052, 256, 256, true, 0) {
+REG_FIDDLE(Rect_intersects_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = { 10, 40, 50, 80 };
     SkDebugf("%s intersection", rect.intersects({30, 60, 70, 90}) ? "" : "no ");
diff --git a/docs/examples/Rect_053.cpp b/docs/examples/Rect_053.cpp
index a9cbb37..6c4350e 100644
--- a/docs/examples/Rect_053.cpp
+++ b/docs/examples/Rect_053.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=795061764b10c9e05efb466c9cb60644
-REG_FIDDLE(Rect_053, 256, 256, true, 0) {
+REG_FIDDLE(Rect_Intersects, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkDebugf("%s intersection", SkRect::Intersects({10, 40, 50, 80}, {30, 60, 70, 90}) ? "" : "no ");
 }
diff --git a/docs/examples/Rect_054.cpp b/docs/examples/Rect_054.cpp
index 0dae35d..d6750f2 100644
--- a/docs/examples/Rect_054.cpp
+++ b/docs/examples/Rect_054.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=afa9c6b4d05bb669db07fe0b7b97e6aa
-REG_FIDDLE(Rect_054, 256, 256, true, 0) {
+REG_FIDDLE(Rect_join, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = { 10, 20, 15, 25};
     rect.join(50, 60, 55, 65);
diff --git a/docs/examples/Rect_055.cpp b/docs/examples/Rect_055.cpp
index b91ff5a..8052701 100644
--- a/docs/examples/Rect_055.cpp
+++ b/docs/examples/Rect_055.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=26500032494cf93c5fa3423110fe82af
-REG_FIDDLE(Rect_055, 256, 256, true, 0) {
+REG_FIDDLE(Rect_join_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = { 10, 20, 15, 25};
     rect.join({50, 60, 55, 65});
diff --git a/docs/examples/Rect_056.cpp b/docs/examples/Rect_056.cpp
index 58f8069..443d1ed 100644
--- a/docs/examples/Rect_056.cpp
+++ b/docs/examples/Rect_056.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=88439de2aa0911262c60c0eb506396cb
-REG_FIDDLE(Rect_056, 256, 256, true, 0) {
+REG_FIDDLE(Rect_joinNonEmptyArg, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = { 10, 100, 15, 0};
     SkRect sorted = rect.makeSorted();
diff --git a/docs/examples/Rect_057.cpp b/docs/examples/Rect_057.cpp
index 26a5116..1ca5b13 100644
--- a/docs/examples/Rect_057.cpp
+++ b/docs/examples/Rect_057.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a476548d0001296afd8e58c1eba1b70b
-REG_FIDDLE(Rect_057, 256, 256, true, 0) {
+REG_FIDDLE(Rect_joinPossiblyEmptyRect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = { 10, 100, 15, 0};
     SkRect sorted = rect.makeSorted();
diff --git a/docs/examples/Rect_058.cpp b/docs/examples/Rect_058.cpp
index 865746a..7d41206 100644
--- a/docs/examples/Rect_058.cpp
+++ b/docs/examples/Rect_058.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8b9e5a9af0a9b878f76919534d88f41e
-REG_FIDDLE(Rect_058, 256, 256, true, 0) {
+REG_FIDDLE(Rect_round, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = { 30.5f, 50.5f, 40.5f, 60.5f };
     SkIRect round;
diff --git a/docs/examples/Rect_059.cpp b/docs/examples/Rect_059.cpp
index 8471e05..cb03091 100644
--- a/docs/examples/Rect_059.cpp
+++ b/docs/examples/Rect_059.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0bd13d7e6426ae7a3befa2ab151ac5fc
-REG_FIDDLE(Rect_059, 256, 256, true, 0) {
+REG_FIDDLE(Rect_roundOut, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = { 30.5f, 50.5f, 40.5f, 60.5f };
     SkIRect round;
diff --git a/docs/examples/Rect_060.cpp b/docs/examples/Rect_060.cpp
index a59f28d..515e695 100644
--- a/docs/examples/Rect_060.cpp
+++ b/docs/examples/Rect_060.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e09a6a12869a8ac21e9c2af98a5bb686
-REG_FIDDLE(Rect_060, 256, 256, true, 0) {
+REG_FIDDLE(Rect_roundOut_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = { 30.5f, 50.5f, 40.5f, 60.5f };
     SkRect round;
diff --git a/docs/examples/Rect_061.cpp b/docs/examples/Rect_061.cpp
index 2c3918b..3eca5fa 100644
--- a/docs/examples/Rect_061.cpp
+++ b/docs/examples/Rect_061.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=abb337da8fc1891f016c61258681c64c
-REG_FIDDLE(Rect_061, 256, 256, true, 0) {
+REG_FIDDLE(Rect_roundIn, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = { 30.5f, 50.5f, 40.5f, 60.5f };
     SkIRect round;
diff --git a/docs/examples/Rect_062.cpp b/docs/examples/Rect_062.cpp
index 3515b4c..2c27c9a 100644
--- a/docs/examples/Rect_062.cpp
+++ b/docs/examples/Rect_062.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ef7ae1dd522c235b0afe41b55a624f46
-REG_FIDDLE(Rect_062, 256, 256, true, 0) {
+REG_FIDDLE(Rect_round_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = { 30.5f, 50.5f, 40.5f, 60.5f };
     SkIRect round = rect.round();
diff --git a/docs/examples/Rect_063.cpp b/docs/examples/Rect_063.cpp
index 1d0533a..3a9aab7 100644
--- a/docs/examples/Rect_063.cpp
+++ b/docs/examples/Rect_063.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=05f0f65ae148f192656cd87df90f1d57
-REG_FIDDLE(Rect_063, 256, 256, true, 0) {
+REG_FIDDLE(Rect_roundOut_3, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = { 30.5f, 50.5f, 40.5f, 60.5f };
     SkIRect round = rect.roundOut();
diff --git a/docs/examples/Rect_064.cpp b/docs/examples/Rect_064.cpp
index ee65434..8b19973 100644
--- a/docs/examples/Rect_064.cpp
+++ b/docs/examples/Rect_064.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e624fe398e3d770b573c09fc74c0c400
-REG_FIDDLE(Rect_064, 256, 256, true, 0) {
+REG_FIDDLE(Rect_sort, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = { 30.5f, 50.5f, 20.5f, 10.5f };
     SkDebugf("rect: %g, %g, %g, %g\n", rect.fLeft, rect.fTop, rect.fRight, rect.fBottom);
diff --git a/docs/examples/Rect_065.cpp b/docs/examples/Rect_065.cpp
index aa255e2..891c4fa 100644
--- a/docs/examples/Rect_065.cpp
+++ b/docs/examples/Rect_065.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f59567042b87f6b26f9bfeeb04468032
-REG_FIDDLE(Rect_065, 256, 256, true, 0) {
+REG_FIDDLE(Rect_makeSorted, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = { 30.5f, 50.5f, 20.5f, 10.5f };
     SkDebugf("rect: %g, %g, %g, %g\n", rect.fLeft, rect.fTop, rect.fRight, rect.fBottom);
diff --git a/docs/examples/Rect_066.cpp b/docs/examples/Rect_066.cpp
index 9eedba6..8ede918 100644
--- a/docs/examples/Rect_066.cpp
+++ b/docs/examples/Rect_066.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e1ea5f949d80276f3637931eae93a07c
-REG_FIDDLE(Rect_066, 256, 256, true, 0) {
+REG_FIDDLE(Rect_asScalars, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = {7, 11, 13, 17};
  SkDebugf("rect.asScalars() %c= &rect.fLeft\n", rect.asScalars() == &rect.fLeft? '=' : '!');
diff --git a/docs/examples/Rect_067.cpp b/docs/examples/Rect_067.cpp
index 5b74af7..30d4f04 100644
--- a/docs/examples/Rect_067.cpp
+++ b/docs/examples/Rect_067.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=cea049ffff702a5923da41fe0ae0763b
-REG_FIDDLE(Rect_067, 256, 256, true, 0) {
+REG_FIDDLE(Rect_dump, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = {20, 30, 40, 50};
      for (bool dumpAsHex : { false, true } ) {
diff --git a/docs/examples/Rect_068.cpp b/docs/examples/Rect_068.cpp
index 18c89fc..220736e 100644
--- a/docs/examples/Rect_068.cpp
+++ b/docs/examples/Rect_068.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9fb76971b1a104a2a59816e0392267a7
-REG_FIDDLE(Rect_068, 256, 256, true, 0) {
+REG_FIDDLE(Rect_dump_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = {6.f / 7, 2.f / 3, 26.f / 10, 42.f / 6};
     rect.dump();
diff --git a/docs/examples/Rect_069.cpp b/docs/examples/Rect_069.cpp
index 51c76fb..771c32d 100644
--- a/docs/examples/Rect_069.cpp
+++ b/docs/examples/Rect_069.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=824b5a3fcfd46a7e1c5f9e3c16e6bb39
-REG_FIDDLE(Rect_069, 256, 256, true, 0) {
+REG_FIDDLE(Rect_dumpHex, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRect rect = {6.f / 7, 2.f / 3, 26.f / 10, 42.f / 6};
  rect.dumpHex();
diff --git a/docs/examples/Region_000.cpp b/docs/examples/Region_000.cpp
index be8c252..94fd808 100644
--- a/docs/examples/Region_000.cpp
+++ b/docs/examples/Region_000.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a2db43ee3cbf6893e9b23927fb44298a
-REG_FIDDLE(Region_000, 256, 256, true, 0) {
+REG_FIDDLE(Region_Iterator_Iterator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRegion::Iterator iter;
     SkRegion region;
diff --git a/docs/examples/Region_001.cpp b/docs/examples/Region_001.cpp
index bfb899f..9574357 100644
--- a/docs/examples/Region_001.cpp
+++ b/docs/examples/Region_001.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e317ceca48a6a7504219af58f35d2c95
-REG_FIDDLE(Region_001, 256, 256, true, 0) {
+REG_FIDDLE(Region_Iterator_copy_const_SkRegion, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRegion region;
     region.setRect({1, 2, 3, 4});
diff --git a/docs/examples/Region_002.cpp b/docs/examples/Region_002.cpp
index 800bfd0..3c7e9ca 100644
--- a/docs/examples/Region_002.cpp
+++ b/docs/examples/Region_002.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=32d51e959d6cc720a74ec4822511e2cd
-REG_FIDDLE(Region_002, 256, 256, true, 0) {
+REG_FIDDLE(Region_Iterator_rewind, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* label, SkRegion::Iterator& iter, bool addRewind) -> void {
         if (addRewind) {
diff --git a/docs/examples/Region_003.cpp b/docs/examples/Region_003.cpp
index 01c02ce..506f58b 100644
--- a/docs/examples/Region_003.cpp
+++ b/docs/examples/Region_003.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d153f87bd518a4ab947b7e407ea1db79
-REG_FIDDLE(Region_003, 256, 256, true, 0) {
+REG_FIDDLE(Region_Iterator_reset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* label, SkRegion::Iterator& iter) -> void {
         SkDebugf("%14s: done=%s\n", label, iter.done() ? "true" : "false");
diff --git a/docs/examples/Region_004.cpp b/docs/examples/Region_004.cpp
index 341b53a..f7b7448 100644
--- a/docs/examples/Region_004.cpp
+++ b/docs/examples/Region_004.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=814efa7d7f4ae52dfc861a937c1b5c25
-REG_FIDDLE(Region_004, 256, 256, true, 0) {
+REG_FIDDLE(Region_Iterator_done, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRegion region;
     SkRegion::Iterator iter(region);
diff --git a/docs/examples/Region_005.cpp b/docs/examples/Region_005.cpp
index e6279fb..cbb1772 100644
--- a/docs/examples/Region_005.cpp
+++ b/docs/examples/Region_005.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=771236c2eadfc2fcd02a3e61a0875d39
-REG_FIDDLE(Region_005, 256, 256, true, 0) {
+REG_FIDDLE(Region_Iterator_next, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRegion region;
     SkIRect rects[] = {{1, 2, 3, 4}, {5, 6, 7, 8}};
diff --git a/docs/examples/Region_006.cpp b/docs/examples/Region_006.cpp
index 8474fbc..5c86b67 100644
--- a/docs/examples/Region_006.cpp
+++ b/docs/examples/Region_006.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0e7c58ab5d3bcfb36b1f8464cf6c7d89
-REG_FIDDLE(Region_006, 256, 256, true, 0) {
+REG_FIDDLE(Region_Iterator_rect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRegion region;
     SkRegion::Iterator iter(region);
diff --git a/docs/examples/Region_007.cpp b/docs/examples/Region_007.cpp
index ffab575..b2ef13c 100644
--- a/docs/examples/Region_007.cpp
+++ b/docs/examples/Region_007.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=bbc3c454a21186e2a16e843a5b061c44
-REG_FIDDLE(Region_007, 256, 256, true, 0) {
+REG_FIDDLE(Region_Iterator_rgn, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRegion region;
     SkIRect rects[] = {{1, 2, 3, 4}, {3, 4, 5, 6}};
diff --git a/docs/examples/Region_008.cpp b/docs/examples/Region_008.cpp
index 90d38c6..a29d8bd 100644
--- a/docs/examples/Region_008.cpp
+++ b/docs/examples/Region_008.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3831fb6006a7e0ad5d140c266c22be78
-REG_FIDDLE(Region_008, 256, 256, true, 0) {
+REG_FIDDLE(Region_Cliperator_const_SkRegion_const_SkIRect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRegion region;
     region.setRect({1, 2, 3, 4});
diff --git a/docs/examples/Region_009.cpp b/docs/examples/Region_009.cpp
index b824aa9..9a0897e 100644
--- a/docs/examples/Region_009.cpp
+++ b/docs/examples/Region_009.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6cca7b96836266800d852664a1366453
-REG_FIDDLE(Region_009, 256, 256, true, 0) {
+REG_FIDDLE(Region_Cliperator_done, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* label, SkRegion& region) -> void {
         SkRegion::Cliperator clipper(region, {0, 0, 5, 5});
diff --git a/docs/examples/Region_010.cpp b/docs/examples/Region_010.cpp
index ee3e7a2..fd744f6 100644
--- a/docs/examples/Region_010.cpp
+++ b/docs/examples/Region_010.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3bbcc7eec19c808a8167bbcc987199f8
-REG_FIDDLE(Region_010, 256, 256, true, 0) {
+REG_FIDDLE(Region_Cliperator_next, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRegion region;
     SkIRect rects[] = {{1, 2, 3, 4}, {5, 6, 7, 8}};
diff --git a/docs/examples/Region_011.cpp b/docs/examples/Region_011.cpp
index 652bfb5..28cf7e2 100644
--- a/docs/examples/Region_011.cpp
+++ b/docs/examples/Region_011.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=05791751f00b4c2426093fa143b43bc7
-REG_FIDDLE(Region_011, 256, 256, true, 0) {
+REG_FIDDLE(Region_Cliperator_rect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* label, SkRegion& region) -> void {
         SkRegion::Cliperator clipper(region, {0, 0, 5, 3});
diff --git a/docs/examples/Region_012.cpp b/docs/examples/Region_012.cpp
index 7b146bd..0b0cf03 100644
--- a/docs/examples/Region_012.cpp
+++ b/docs/examples/Region_012.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3073b3f8ea7252871b6156ff674dc385
-REG_FIDDLE(Region_012, 256, 256, true, 0) {
+REG_FIDDLE(Region_Spanerator_const_SkRegion_int_int_int, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRegion region;
     region.setRect({1, 2, 3, 4});
diff --git a/docs/examples/Region_013.cpp b/docs/examples/Region_013.cpp
index 08a7d45..f7405c7 100644
--- a/docs/examples/Region_013.cpp
+++ b/docs/examples/Region_013.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=03d02180fee5f64ec4a3347e118fb2ec
-REG_FIDDLE(Region_013, 256, 256, true, 0) {
+REG_FIDDLE(Region_Spanerator_next, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* label, SkRegion& region) -> void {
         SkRegion::Spanerator spanner(region, 3, 2, 4);
diff --git a/docs/examples/Region_014.cpp b/docs/examples/Region_014.cpp
index 8c6d277..5fd6cad 100644
--- a/docs/examples/Region_014.cpp
+++ b/docs/examples/Region_014.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4549dcda3e0f9a41b3daee0ed37deca8
-REG_FIDDLE(Region_014, 256, 256, true, 0) {
+REG_FIDDLE(Region_empty_constructor, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRegion region;
     SkIRect r = region.getBounds();
diff --git a/docs/examples/Region_015.cpp b/docs/examples/Region_015.cpp
index c2dc0d3..c1277b1 100644
--- a/docs/examples/Region_015.cpp
+++ b/docs/examples/Region_015.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3daa83fca809b9ec6560d2ef9e2da5e6
-REG_FIDDLE(Region_015, 256, 256, true, 0) {
+REG_FIDDLE(Region_copy_const_SkRegion, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* label, SkRegion& region) -> void {
         auto r = region.getBounds();
diff --git a/docs/examples/Region_016.cpp b/docs/examples/Region_016.cpp
index 529925a..e8660b3 100644
--- a/docs/examples/Region_016.cpp
+++ b/docs/examples/Region_016.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5253910233f7961c30b4c18ab911e917
-REG_FIDDLE(Region_016, 256, 256, true, 0) {
+REG_FIDDLE(Region_copy_const_SkIRect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRegion region({1, 2, 3, 4});
     SkRegion region2;
diff --git a/docs/examples/Region_017.cpp b/docs/examples/Region_017.cpp
index a9f8317..ac27b42 100644
--- a/docs/examples/Region_017.cpp
+++ b/docs/examples/Region_017.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=985ff654a6b67288d322c748132a088e
-REG_FIDDLE(Region_017, 256, 256, true, 0) {
+REG_FIDDLE(Region_destructor, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRegion* region = new SkRegion({1, 2, 3, 4});
     SkRegion region2(*region);
diff --git a/docs/examples/Region_018.cpp b/docs/examples/Region_018.cpp
index e6c5104..474a40b 100644
--- a/docs/examples/Region_018.cpp
+++ b/docs/examples/Region_018.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e8513f6394c24efaa301d41921c5241a
-REG_FIDDLE(Region_018, 256, 256, true, 0) {
+REG_FIDDLE(Region_copy_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* label, SkRegion& region) -> void {
         auto r = region.getBounds();
diff --git a/docs/examples/Region_019.cpp b/docs/examples/Region_019.cpp
index 5b40e7e..3aa6d8a 100644
--- a/docs/examples/Region_019.cpp
+++ b/docs/examples/Region_019.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d7f4fdc8bc63ca8410ed166ecef0aef3
-REG_FIDDLE(Region_019, 256, 256, true, 0) {
+REG_FIDDLE(Region_equal1_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* prefix, const SkRegion& a, const SkRegion& b) -> void {
                 SkDebugf("%s one %c= two\n", prefix, a == b ? '=' : '!');
diff --git a/docs/examples/Region_020.cpp b/docs/examples/Region_020.cpp
index 8e6e961..a0602d6 100644
--- a/docs/examples/Region_020.cpp
+++ b/docs/examples/Region_020.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3357caa9d8d810f200cbccb668182496
-REG_FIDDLE(Region_020, 256, 256, true, 0) {
+REG_FIDDLE(Region_notequal1_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* prefix, const SkRegion& a, const SkRegion& b) -> void {
                 SkDebugf("%s one %c= two\n", prefix, a != b ? '!' : '=');
diff --git a/docs/examples/Region_021.cpp b/docs/examples/Region_021.cpp
index 692bcd3..8270db0 100644
--- a/docs/examples/Region_021.cpp
+++ b/docs/examples/Region_021.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b3538117c7ae2cb7de3b42ca45fe1b13
-REG_FIDDLE(Region_021, 256, 256, true, 0) {
+REG_FIDDLE(Region_set, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* label, SkRegion& region) -> void {
         auto r = region.getBounds();
diff --git a/docs/examples/Region_022.cpp b/docs/examples/Region_022.cpp
index f4bcdc9..668814c 100644
--- a/docs/examples/Region_022.cpp
+++ b/docs/examples/Region_022.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=ae67b7b4c198b46c58e48f5af061c8f1
-REG_FIDDLE(Region_022, 256, 256, true, 0) {
+REG_FIDDLE(Region_swap, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* label, SkRegion& region) -> void {
         auto r = region.getBounds();
diff --git a/docs/examples/Region_023.cpp b/docs/examples/Region_023.cpp
index 1be6875..dc02155 100644
--- a/docs/examples/Region_023.cpp
+++ b/docs/examples/Region_023.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=10ef0de39e8553dd97cf8668ce185070
-REG_FIDDLE(Region_023, 256, 256, true, 0) {
+REG_FIDDLE(Region_isEmpty, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* label, SkRegion& region) -> void {
         SkDebugf("%14s: region is %s" "empty\n", label, region.isEmpty() ? "" : "not ");
diff --git a/docs/examples/Region_024.cpp b/docs/examples/Region_024.cpp
index d43c7ae..571598e 100644
--- a/docs/examples/Region_024.cpp
+++ b/docs/examples/Region_024.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b6adbdddf7fe45a1098121c4e5fd57ea
-REG_FIDDLE(Region_024, 256, 256, true, 0) {
+REG_FIDDLE(Region_isRect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* label, const SkRegion& region) -> void {
                 SkDebugf("%s: region is %s" "rect\n", label, region.isRect() ? "" : "not ");
diff --git a/docs/examples/Region_025.cpp b/docs/examples/Region_025.cpp
index bd192c3..b17d47f 100644
--- a/docs/examples/Region_025.cpp
+++ b/docs/examples/Region_025.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1fbd76d75ca2d280e81856311de4e54e
-REG_FIDDLE(Region_025, 256, 256, true, 0) {
+REG_FIDDLE(Region_isComplex, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* label, const SkRegion& region) -> void {
                 SkDebugf("%s: region is %s" "complex\n", label, region.isComplex() ? "" : "not ");
diff --git a/docs/examples/Region_026.cpp b/docs/examples/Region_026.cpp
index 0dcb409..034b505 100644
--- a/docs/examples/Region_026.cpp
+++ b/docs/examples/Region_026.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=651632582d385d2531e7aa551c31e331
-REG_FIDDLE(Region_026, 256, 256, true, 0) {
+REG_FIDDLE(Region_getBounds, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRegion region({1, 2, 3, 4});
     region.op({2, 3, 4, 5}, SkRegion::kUnion_Op);
diff --git a/docs/examples/Region_027.cpp b/docs/examples/Region_027.cpp
index f0dbe4a..419ce6b 100644
--- a/docs/examples/Region_027.cpp
+++ b/docs/examples/Region_027.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c4984fefdcecdd1090be160f80939d87
-REG_FIDDLE(Region_027, 256, 256, true, 0) {
+REG_FIDDLE(Region_computeRegionComplexity, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* label, const SkRegion& region) -> void {
                 SkDebugf("%s: region complexity %d\n", label, region.computeRegionComplexity());
diff --git a/docs/examples/Region_028.cpp b/docs/examples/Region_028.cpp
index 5cf216f..bb29500 100644
--- a/docs/examples/Region_028.cpp
+++ b/docs/examples/Region_028.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6631d36406efa3b3e27960c876421a7f
-REG_FIDDLE(Region_028, 256, 100, false, 0) {
+REG_FIDDLE(Region_getBoundaryPath, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
     SkRegion region;
     region.setRect({10, 20, 90, 60});
diff --git a/docs/examples/Region_029.cpp b/docs/examples/Region_029.cpp
index c0f7a7b..08cc4ca 100644
--- a/docs/examples/Region_029.cpp
+++ b/docs/examples/Region_029.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1314f7250963775c5ee89cc5981eee24
-REG_FIDDLE(Region_029, 256, 256, true, 0) {
+REG_FIDDLE(Region_setEmpty, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* label, SkRegion& region) -> void {
         auto r = region.getBounds();
diff --git a/docs/examples/Region_030.cpp b/docs/examples/Region_030.cpp
index 66f0bf4..b25e03f 100644
--- a/docs/examples/Region_030.cpp
+++ b/docs/examples/Region_030.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e12575ffcd262f2364e0e6bece98a825
-REG_FIDDLE(Region_030, 256, 256, true, 0) {
+REG_FIDDLE(Region_setRect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRegion region({1, 2, 3, 4});
     SkDebugf("region is %s" "empty\n", region.isEmpty() ? "" : "not ");
diff --git a/docs/examples/Region_031.cpp b/docs/examples/Region_031.cpp
index 0fa3391..c16548b 100644
--- a/docs/examples/Region_031.cpp
+++ b/docs/examples/Region_031.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5b31a1b077818a8150ad50f3b19e7bfe
-REG_FIDDLE(Region_031, 256, 256, true, 0) {
+REG_FIDDLE(Region_setRect_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* label, bool success, SkRegion& region) -> void {
         auto r = region.getBounds();
diff --git a/docs/examples/Region_032.cpp b/docs/examples/Region_032.cpp
index 97cc6cf..2ba2cdf 100644
--- a/docs/examples/Region_032.cpp
+++ b/docs/examples/Region_032.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=fc793a14ed76c096a68a755c963c1ee0
-REG_FIDDLE(Region_032, 256, 70, false, 0) {
+REG_FIDDLE(Region_setRects, 256, 70, false, 0) {
 void draw(SkCanvas* canvas) {
     SkIRect rects[] = { {10, 10, 40, 40}, {20, 20, 50, 50}, {30, 30, 60, 60} };
     SkRegion region;
diff --git a/docs/examples/Region_033.cpp b/docs/examples/Region_033.cpp
index 7043143..ae90894 100644
--- a/docs/examples/Region_033.cpp
+++ b/docs/examples/Region_033.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5d75d22bd155576838155762ab040751
-REG_FIDDLE(Region_033, 256, 256, true, 0) {
+REG_FIDDLE(Region_setRegion, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* label, SkRegion& region) -> void {
         auto r = region.getBounds();
diff --git a/docs/examples/Region_034.cpp b/docs/examples/Region_034.cpp
index a07b89a..b9342b5 100644
--- a/docs/examples/Region_034.cpp
+++ b/docs/examples/Region_034.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=45b9ea2247b9ca7f10aa22ea29a426f4
-REG_FIDDLE(Region_034, 256, 120, false, 0) {
+REG_FIDDLE(Region_setPath, 256, 120, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTextSize(128);
diff --git a/docs/examples/Region_035.cpp b/docs/examples/Region_035.cpp
index 7a79aeb..d3964e8 100644
--- a/docs/examples/Region_035.cpp
+++ b/docs/examples/Region_035.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=42bde0ef8c2ee372751428cd6e21c1ca
-REG_FIDDLE(Region_035, 256, 128, false, 0) {
+REG_FIDDLE(Region_intersects, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTextSize(128);
diff --git a/docs/examples/Region_036.cpp b/docs/examples/Region_036.cpp
index f41ddfb..7df98c2 100644
--- a/docs/examples/Region_036.cpp
+++ b/docs/examples/Region_036.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4263d79ac0e7df02e90948fdde9fa965
-REG_FIDDLE(Region_036, 256, 128, false, 0) {
+REG_FIDDLE(Region_intersects_2, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTextSize(128);
diff --git a/docs/examples/Region_037.cpp b/docs/examples/Region_037.cpp
index 0f7b124..20fb879 100644
--- a/docs/examples/Region_037.cpp
+++ b/docs/examples/Region_037.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e3899c2715c332bfc7648d5f2b9eefc6
-REG_FIDDLE(Region_037, 256, 128, false, 0) {
+REG_FIDDLE(Region_contains, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTextSize(128);
diff --git a/docs/examples/Region_038.cpp b/docs/examples/Region_038.cpp
index 62c6b26..a7700f3 100644
--- a/docs/examples/Region_038.cpp
+++ b/docs/examples/Region_038.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=100b4cbd5dd7406804e40035833a433c
-REG_FIDDLE(Region_038, 256, 128, false, 0) {
+REG_FIDDLE(Region_contains_2, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTextSize(128);
diff --git a/docs/examples/Region_039.cpp b/docs/examples/Region_039.cpp
index 60f5861..05785e7 100644
--- a/docs/examples/Region_039.cpp
+++ b/docs/examples/Region_039.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=46de22da2f3e08a8d7f064634fc1c7b5
-REG_FIDDLE(Region_039, 256, 128, false, 0) {
+REG_FIDDLE(Region_contains_3, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTextSize(128);
diff --git a/docs/examples/Region_040.cpp b/docs/examples/Region_040.cpp
index 3522732..9168fb4 100644
--- a/docs/examples/Region_040.cpp
+++ b/docs/examples/Region_040.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d8e5eac373e2e7cfc1b8cd0229647ba6
-REG_FIDDLE(Region_040, 256, 256, true, 0) {
+REG_FIDDLE(Region_quickContains, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRegion region({1, 2, 3, 4});
     SkIRect test = {2, 2, 3, 3};
diff --git a/docs/examples/Region_041.cpp b/docs/examples/Region_041.cpp
index 21705be..b3e033f 100644
--- a/docs/examples/Region_041.cpp
+++ b/docs/examples/Region_041.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=eb6d290887e1a3a0b051b4d7b012f5e1
-REG_FIDDLE(Region_041, 256, 256, true, 0) {
+REG_FIDDLE(Region_quickContains_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto debugster = [](const char* label, SkRegion& region) -> void {
         SkDebugf("%s: %s\n", label, region.quickContains(2, 2, 3, 3) ? "true" : "false");
diff --git a/docs/examples/Region_042.cpp b/docs/examples/Region_042.cpp
index c3280ba..0f52ea7 100644
--- a/docs/examples/Region_042.cpp
+++ b/docs/examples/Region_042.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=71ac24b7d91ac5ca7c14b43930d5f85d
-REG_FIDDLE(Region_042, 256, 256, true, 0) {
+REG_FIDDLE(Region_quickReject, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRegion region({1, 2, 3, 4});
     SkIRect test = {4, 2, 5, 3};
diff --git a/docs/examples/Region_043.cpp b/docs/examples/Region_043.cpp
index 23fc1a7..d1a23d2 100644
--- a/docs/examples/Region_043.cpp
+++ b/docs/examples/Region_043.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=def7dba38947c33b203e4f9db6c88be3
-REG_FIDDLE(Region_043, 256, 256, true, 0) {
+REG_FIDDLE(Region_quickReject_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkRegion region({1, 2, 3, 4});
     SkRegion test;
diff --git a/docs/examples/Region_044.cpp b/docs/examples/Region_044.cpp
index 1e4f203..d2e97a1 100644
--- a/docs/examples/Region_044.cpp
+++ b/docs/examples/Region_044.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=4e5b9e53aa1b200fed3ee6596ca01f0e
-REG_FIDDLE(Region_044, 256, 90, false, 0) {
+REG_FIDDLE(Region_translate, 256, 90, false, 0) {
 void draw(SkCanvas* canvas) {
     SkRegion test;
     SkIRect rects[] = {{40, 20, 50, 30}, {70, 40, 80, 50}, { 60, 10, 70, 20}};
diff --git a/docs/examples/Region_045.cpp b/docs/examples/Region_045.cpp
index ec7d7e9..8151d3d 100644
--- a/docs/examples/Region_045.cpp
+++ b/docs/examples/Region_045.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=024200960eb52fee1f471514607e6001
-REG_FIDDLE(Region_045, 256, 256, false, 0) {
+REG_FIDDLE(Region_translate_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkRegion test;
     SkIRect rects[] = {{40, 20, 50, 30}, {70, 40, 80, 50}, { 60, 10, 70, 20}};
diff --git a/docs/examples/Region_046.cpp b/docs/examples/Region_046.cpp
index 7b4586d..eed0861 100644
--- a/docs/examples/Region_046.cpp
+++ b/docs/examples/Region_046.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=026dd8b180fe8e43f477fce43e9217b3
-REG_FIDDLE(Region_046, 256, 256, false, 0) {
+REG_FIDDLE(Region_Op, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkRegion operand({35, 35, 85, 85});
     const char* labels[] = {"difference", "intersect", "union", "xor", "reverse diff", "replace"};
diff --git a/docs/examples/Region_047.cpp b/docs/examples/Region_047.cpp
index 369de4f..17e9a10 100644
--- a/docs/examples/Region_047.cpp
+++ b/docs/examples/Region_047.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1790b2e054c536a54601138365700ac3
-REG_FIDDLE(Region_047, 256, 128, false, 0) {
+REG_FIDDLE(Region_op, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTextSize(128);
diff --git a/docs/examples/Region_048.cpp b/docs/examples/Region_048.cpp
index 1520555..3cca6f6 100644
--- a/docs/examples/Region_048.cpp
+++ b/docs/examples/Region_048.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=2e3497890d523235f96680716c321098
-REG_FIDDLE(Region_048, 256, 128, false, 0) {
+REG_FIDDLE(Region_op_2, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTextSize(128);
diff --git a/docs/examples/Region_049.cpp b/docs/examples/Region_049.cpp
index b7c005b..48ccba6 100644
--- a/docs/examples/Region_049.cpp
+++ b/docs/examples/Region_049.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=65f4eccea3514ed7e37b5067e15efddb
-REG_FIDDLE(Region_049, 256, 128, false, 0) {
+REG_FIDDLE(Region_op_3, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTextSize(128);
diff --git a/docs/examples/Region_050.cpp b/docs/examples/Region_050.cpp
index 685f405..e69b77f 100644
--- a/docs/examples/Region_050.cpp
+++ b/docs/examples/Region_050.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3f964be1e1fd2fbb977b655d3a928f0a
-REG_FIDDLE(Region_050, 256, 128, false, 0) {
+REG_FIDDLE(Region_op_4, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTextSize(128);
diff --git a/docs/examples/Region_051.cpp b/docs/examples/Region_051.cpp
index 0aeab23..4188927 100644
--- a/docs/examples/Region_051.cpp
+++ b/docs/examples/Region_051.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e623208dd44f0b24499ac5f1593d1b39
-REG_FIDDLE(Region_051, 256, 128, false, 0) {
+REG_FIDDLE(Region_op_5, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTextSize(128);
diff --git a/docs/examples/Region_052.cpp b/docs/examples/Region_052.cpp
index ca165c5..3e5cee5 100644
--- a/docs/examples/Region_052.cpp
+++ b/docs/examples/Region_052.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=13de1a6fcb2302a2a30278cb88d3e17d
-REG_FIDDLE(Region_052, 256, 128, false, 0) {
+REG_FIDDLE(Region_op_6, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTextSize(128);
diff --git a/docs/examples/Region_053.cpp b/docs/examples/Region_053.cpp
index 90e6f24..1fe05d2 100644
--- a/docs/examples/Region_053.cpp
+++ b/docs/examples/Region_053.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1419d2a8c22c355ab46240865d056ee5
-REG_FIDDLE(Region_053, 256, 128, false, 0) {
+REG_FIDDLE(Region_writeToMemory, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTextSize(128);
diff --git a/docs/examples/Region_054.cpp b/docs/examples/Region_054.cpp
index 0445bb0..c043b7e 100644
--- a/docs/examples/Region_054.cpp
+++ b/docs/examples/Region_054.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=1ede346c430ef23df0eaaf0773dd6a15
-REG_FIDDLE(Region_054, 256, 100, false, 0) {
+REG_FIDDLE(Region_readFromMemory, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
     SkRegion region({20, 20, 80, 80});
     size_t size = region.writeToMemory(nullptr);
diff --git a/docs/examples/Surface_000.cpp b/docs/examples/Surface_000.cpp
index 9f61b68..484c275 100644
--- a/docs/examples/Surface_000.cpp
+++ b/docs/examples/Surface_000.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=3f5aeb870104187643197354a7f1d27a
-REG_FIDDLE(Surface_000, 256, 256, true, 0) {
+REG_FIDDLE(Surface_MakeRasterDirect, 256, 256, true, 0) {
 void draw(SkCanvas* ) {
     SkImageInfo info = SkImageInfo::MakeN32Premul(3, 3);
     const size_t size = info.computeMinByteSize();
diff --git a/docs/examples/Surface_001.cpp b/docs/examples/Surface_001.cpp
index 6b57e3c..d6f5223 100644
--- a/docs/examples/Surface_001.cpp
+++ b/docs/examples/Surface_001.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8e6530b26ab4096a9a91cfaadda1c568
-REG_FIDDLE(Surface_001, 256, 256, true, 0) {
+REG_FIDDLE(Surface_MakeRasterDirectReleaseProc, 256, 256, true, 0) {
 static void release_direct_surface_storage(void* pixels, void* context) {
     if (pixels == context) {
         SkDebugf("expected release context\n");
diff --git a/docs/examples/Surface_002.cpp b/docs/examples/Surface_002.cpp
index 651e012..34b3906 100644
--- a/docs/examples/Surface_002.cpp
+++ b/docs/examples/Surface_002.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a803910ada4f8733f0b62456afead55f
-REG_FIDDLE(Surface_002, 256, 256, true, 0) {
+REG_FIDDLE(Surface_MakeRaster, 256, 256, true, 0) {
 void draw(SkCanvas* ) {
     SkImageInfo info = SkImageInfo::MakeN32Premul(3, 3);
     const size_t rowBytes = 64;
diff --git a/docs/examples/Surface_003.cpp b/docs/examples/Surface_003.cpp
index 0485f07..704dc04 100644
--- a/docs/examples/Surface_003.cpp
+++ b/docs/examples/Surface_003.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c6197d204ef9e4ccfb583242651fb2a7
-REG_FIDDLE(Surface_003, 256, 256, true, 0) {
+REG_FIDDLE(Surface_MakeRaster_2, 256, 256, true, 0) {
 void draw(SkCanvas* ) {
     SkImageInfo info = SkImageInfo::MakeN32Premul(3, 3);
     sk_sp<SkSurface> surface(SkSurface::MakeRaster(info));
diff --git a/docs/examples/Surface_004.cpp b/docs/examples/Surface_004.cpp
index 6560b5a..9361cf1 100644
--- a/docs/examples/Surface_004.cpp
+++ b/docs/examples/Surface_004.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b932a2bd68455fb0af2e7a1ed19e36b3
-REG_FIDDLE(Surface_004, 256, 256, true, 0) {
+REG_FIDDLE(Surface_MakeRasterN32Premul, 256, 256, true, 0) {
 void draw(SkCanvas* ) {
     sk_sp<SkSurface> surface(SkSurface::MakeRasterN32Premul(3, 3));
     SkCanvas* canvas = surface->getCanvas();
diff --git a/docs/examples/Surface_005.cpp b/docs/examples/Surface_005.cpp
index 1f8d561..7a841dd 100644
--- a/docs/examples/Surface_005.cpp
+++ b/docs/examples/Surface_005.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d3aec071998f871809f515e58abb1b0e
-REG_FIDDLE(Surface_005, 256, 256, false, 3) {
+REG_FIDDLE(Surface_MakeFromBackendTexture, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTextSize(32);
diff --git a/docs/examples/Surface_006.cpp b/docs/examples/Surface_006.cpp
index 23a6238..9f22e1f 100644
--- a/docs/examples/Surface_006.cpp
+++ b/docs/examples/Surface_006.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5e87093b9cbe95124ae14cbe77091eb7
-REG_FIDDLE(Surface_006, 256, 256, false, 3) {
+REG_FIDDLE(Surface_MakeFromBackendTextureAsRenderTarget, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTextSize(32);
diff --git a/docs/examples/Surface_007.cpp b/docs/examples/Surface_007.cpp
index 3d7bfa7..0404e63 100644
--- a/docs/examples/Surface_007.cpp
+++ b/docs/examples/Surface_007.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=67b6609471a3f1ed0f4b1657004cdecb
-REG_FIDDLE(Surface_007, 256, 64, false, 0) {
+REG_FIDDLE(Surface_MakeRenderTarget, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTextSize(32);
diff --git a/docs/examples/Surface_008.cpp b/docs/examples/Surface_008.cpp
index f9c149e..a200639 100644
--- a/docs/examples/Surface_008.cpp
+++ b/docs/examples/Surface_008.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=640321e8ecfb3f9329f3bc6e1f02485f
-REG_FIDDLE(Surface_008, 256, 256, false, 0) {
+REG_FIDDLE(Surface_MakeRenderTarget_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     auto test_draw = [](SkCanvas* surfaceCanvas) -> void {
         SkPaint paint;
diff --git a/docs/examples/Surface_009.cpp b/docs/examples/Surface_009.cpp
index efd7db5..e6096c7 100644
--- a/docs/examples/Surface_009.cpp
+++ b/docs/examples/Surface_009.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=5c7629c15e9ac93f098335e72560fa2e
-REG_FIDDLE(Surface_009, 256, 256, false, 0) {
+REG_FIDDLE(Surface_MakeRenderTarget_3, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTextSize(32);
diff --git a/docs/examples/Surface_010.cpp b/docs/examples/Surface_010.cpp
index c9724b6..1052240 100644
--- a/docs/examples/Surface_010.cpp
+++ b/docs/examples/Surface_010.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=99a54b814ccab7d2b1143c88581649ff
-REG_FIDDLE(Surface_010, 256, 256, true, 0) {
+REG_FIDDLE(Surface_MakeNull, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkDebugf("SkSurface::MakeNull(0, 0) %c= nullptr\n", SkSurface::MakeNull(0, 0) == nullptr ?
              '=' : '!');
diff --git a/docs/examples/Surface_011.cpp b/docs/examples/Surface_011.cpp
index 469a47c..442f3e1 100644
--- a/docs/examples/Surface_011.cpp
+++ b/docs/examples/Surface_011.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=df066b56dd97c7c589fd2bb6a2539de8
-REG_FIDDLE(Surface_011, 256, 256, true, 0) {
+REG_FIDDLE(Surface_width, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const int width = 37;
     const int height = 1000;
diff --git a/docs/examples/Surface_012.cpp b/docs/examples/Surface_012.cpp
index e83286a..5fed7b3 100644
--- a/docs/examples/Surface_012.cpp
+++ b/docs/examples/Surface_012.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=20571cc23e3146deaa09046b64cc0aef
-REG_FIDDLE(Surface_012, 256, 256, true, 0) {
+REG_FIDDLE(Surface_height, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const int width = 37;
     const int height = 1000;
diff --git a/docs/examples/Surface_013.cpp b/docs/examples/Surface_013.cpp
index 0b3bf5b..c4ff78e 100644
--- a/docs/examples/Surface_013.cpp
+++ b/docs/examples/Surface_013.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=be9574c4a14f891e1abb4ec2b1e51d6c
-REG_FIDDLE(Surface_013, 256, 256, true, 0) {
+REG_FIDDLE(Surface_notifyContentWillChange, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     auto surface = SkSurface::MakeRasterN32Premul(1, 1);
     for (int i = 0; i < 3; ++i) {
diff --git a/docs/examples/Surface_014.cpp b/docs/examples/Surface_014.cpp
deleted file mode 100644
index 3a40452..0000000
--- a/docs/examples/Surface_014.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright 2019 Google LLC.
-// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
-// HASH=be9574c4a14f891e1abb4ec2b1e51d6c
-REG_FIDDLE(Surface_014, 256, 256, true, 0) {
-void draw(SkCanvas* canvas) {
-    auto surface = SkSurface::MakeRasterN32Premul(1, 1);
-    for (int i = 0; i < 3; ++i) {
-        SkDebugf("surface generationID: %d\n", surface->generationID());
-        if (0 == i) {
-            surface->getCanvas()->drawColor(SK_ColorBLACK);
-        } else {
-            surface->notifyContentWillChange(SkSurface::kDiscard_ContentChangeMode);
-        }
-    }
-}
-}  // END FIDDLE
diff --git a/docs/examples/Surface_015.cpp b/docs/examples/Surface_015.cpp
index f12da19..65b8cc4 100644
--- a/docs/examples/Surface_015.cpp
+++ b/docs/examples/Surface_015.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=33d0c5ad5a4810e533ae1010e29f8b75
-REG_FIDDLE(Surface_015, 256, 64, false, 0) {
+REG_FIDDLE(Surface_getCanvas, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     sk_sp<SkSurface> surface(SkSurface::MakeRasterN32Premul(64, 64));
     SkCanvas* surfaceCanvas = surface->getCanvas();
diff --git a/docs/examples/Surface_016.cpp b/docs/examples/Surface_016.cpp
index c03c4df..f60a0f6 100644
--- a/docs/examples/Surface_016.cpp
+++ b/docs/examples/Surface_016.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a9889b519a26896b900da0444e423c61
-REG_FIDDLE(Surface_016, 256, 96, false, 0) {
+REG_FIDDLE(Surface_makeSurface, 256, 96, false, 0) {
 void draw(SkCanvas* canvas) {
     sk_sp<SkSurface> big(SkSurface::MakeRasterN32Premul(64, 64));
     sk_sp<SkSurface> lil(big->makeSurface(SkImageInfo::MakeN32(32, 32, kPremul_SkAlphaType)));
diff --git a/docs/examples/Surface_017.cpp b/docs/examples/Surface_017.cpp
index 477df75..5b1a31d 100644
--- a/docs/examples/Surface_017.cpp
+++ b/docs/examples/Surface_017.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=46f1fa0d95e590a64bed0140407ce5f7
-REG_FIDDLE(Surface_017, 256, 64, false, 0) {
+REG_FIDDLE(Surface_makeImageSnapshot, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     sk_sp<SkSurface> big(SkSurface::MakeRasterN32Premul(64, 64));
     sk_sp<SkSurface> lil(big->makeSurface(SkImageInfo::MakeN32(32, 32, kPremul_SkAlphaType)));
diff --git a/docs/examples/Surface_018.cpp b/docs/examples/Surface_018.cpp
index b5f560f..e762a4a 100644
--- a/docs/examples/Surface_018.cpp
+++ b/docs/examples/Surface_018.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=b18b8ab693b09eb70a1d22ab63790cc7
-REG_FIDDLE(Surface_018, 256, 64, false, 0) {
+REG_FIDDLE(Surface_makeImageSnapshot_2, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     sk_sp<SkSurface> big(SkSurface::MakeRasterN32Premul(64, 64));
     sk_sp<SkSurface> lil(big->makeSurface(SkImageInfo::MakeN32(32, 32, kPremul_SkAlphaType)));
diff --git a/docs/examples/Surface_019.cpp b/docs/examples/Surface_019.cpp
index 54b965d..ce6dd8f 100644
--- a/docs/examples/Surface_019.cpp
+++ b/docs/examples/Surface_019.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=0de693f4d8dd898a60be8cfba23952be
-REG_FIDDLE(Surface_019, 256, 64, false, 0) {
+REG_FIDDLE(Surface_draw, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     sk_sp<SkSurface> big(SkSurface::MakeRasterN32Premul(64, 64));
     sk_sp<SkSurface> lil(big->makeSurface(SkImageInfo::MakeN32(32, 32, kPremul_SkAlphaType)));
diff --git a/docs/examples/Surface_020.cpp b/docs/examples/Surface_020.cpp
index 521c966..a771339 100644
--- a/docs/examples/Surface_020.cpp
+++ b/docs/examples/Surface_020.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=8c6184f22cfe068f021704cf92a147a1
-REG_FIDDLE(Surface_020, 256, 64, false, 0) {
+REG_FIDDLE(Surface_peekPixels, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     sk_sp<SkSurface> surf(SkSurface::MakeRasterN32Premul(64, 64));
     auto surfCanvas = surf->getCanvas();
diff --git a/docs/examples/Surface_021.cpp b/docs/examples/Surface_021.cpp
index ed58a38..0e876b0 100644
--- a/docs/examples/Surface_021.cpp
+++ b/docs/examples/Surface_021.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=9f454fb93bca6482598d198b4121f0a6
-REG_FIDDLE(Surface_021, 256, 32, false, 0) {
+REG_FIDDLE(Surface_readPixels, 256, 32, false, 0) {
 void draw(SkCanvas* canvas) {
     sk_sp<SkSurface> surf(SkSurface::MakeRasterN32Premul(64, 64));
     auto surfCanvas = surf->getCanvas();
diff --git a/docs/examples/Surface_022.cpp b/docs/examples/Surface_022.cpp
index bac9aa0..37ca8d3 100644
--- a/docs/examples/Surface_022.cpp
+++ b/docs/examples/Surface_022.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=484d60dab5d846bf28c7a4d48892324a
-REG_FIDDLE(Surface_022, 256, 64, false, 0) {
+REG_FIDDLE(Surface_readPixels_2, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     sk_sp<SkSurface> surf(SkSurface::MakeRasterN32Premul(64, 64));
     auto surfCanvas = surf->getCanvas();
diff --git a/docs/examples/Surface_023.cpp b/docs/examples/Surface_023.cpp
index 0d472b7..f22f3fd 100644
--- a/docs/examples/Surface_023.cpp
+++ b/docs/examples/Surface_023.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=2d991a231e49d1de13eeb2ba9b440e01
-REG_FIDDLE(Surface_023, 256, 256, false, 0) {
+REG_FIDDLE(Surface_readPixels_3, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     sk_sp<SkSurface> surf(SkSurface::MakeRasterN32Premul(64, 64));
     auto surfCanvas = surf->getCanvas();
diff --git a/docs/examples/Surface_024.cpp b/docs/examples/Surface_024.cpp
index c91901d..7bc325c 100644
--- a/docs/examples/Surface_024.cpp
+++ b/docs/examples/Surface_024.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=760793bcf0ef193fa61ea03e6e8fc825
-REG_FIDDLE(Surface_024, 256, 96, false, 4) {
+REG_FIDDLE(Surface_writePixels, 256, 96, false, 4) {
 void draw(SkCanvas* canvas) {
     sk_sp<SkSurface> surf(SkSurface::MakeRasterN32Premul(64, 64));
     auto surfCanvas = surf->getCanvas();
diff --git a/docs/examples/Surface_025.cpp b/docs/examples/Surface_025.cpp
index 6489f49..e13297a 100644
--- a/docs/examples/Surface_025.cpp
+++ b/docs/examples/Surface_025.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d77790dd3bc9f678fa4f582347fb8fba
-REG_FIDDLE(Surface_025, 256, 96, false, 4) {
+REG_FIDDLE(Surface_writePixels_2, 256, 96, false, 4) {
 void draw(SkCanvas* canvas) {
     sk_sp<SkSurface> surf(SkSurface::MakeRasterN32Premul(64, 64));
     auto surfCanvas = surf->getCanvas();
diff --git a/docs/examples/Surface_026.cpp b/docs/examples/Surface_026.cpp
index 3271505..799c8d9 100644
--- a/docs/examples/Surface_026.cpp
+++ b/docs/examples/Surface_026.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=13cf9e7b2894ae6e98c1fd719040bf01
-REG_FIDDLE(Surface_026, 256, 256, true, 0) {
+REG_FIDDLE(Surface_props, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     const char* names[] = { "Unknown", "RGB_H", "BGR_H", "RGB_V", "BGR_V" };
     sk_sp<SkSurface> surf(SkSurface::MakeRasterN32Premul(64, 64));
diff --git a/docs/examples/Surface_027.cpp b/docs/examples/Surface_027.cpp
index 3d770b9..5b9a267 100644
--- a/docs/examples/Surface_027.cpp
+++ b/docs/examples/Surface_027.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6de6f3ef699a72ff26da1b26b23a3316
-REG_FIDDLE(Surface_027, 256, 64, false, 0) {
+REG_FIDDLE(Surface_characterize, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTextSize(32);
diff --git a/docs/examples/Surface_028.cpp b/docs/examples/Surface_028.cpp
index 1a3a863..5a2bb18 100644
--- a/docs/examples/Surface_028.cpp
+++ b/docs/examples/Surface_028.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=46d9bacf593deaaeabd74ff42f2571a0
-REG_FIDDLE(Surface_028, 256, 64, false, 0) {
+REG_FIDDLE(Surface_draw_2, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
     SkPaint paint;
     paint.setTextSize(16);
diff --git a/docs/examples/TextBlobBuilder_000.cpp b/docs/examples/TextBlobBuilder_000.cpp
index 62d81c7..f387a91 100644
--- a/docs/examples/TextBlobBuilder_000.cpp
+++ b/docs/examples/TextBlobBuilder_000.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=d9dbabfe24aad92ee3c8144513e90d81
-REG_FIDDLE(TextBlobBuilder_000, 256, 256, true, 0) {
+REG_FIDDLE(TextBlobBuilder_empty_constructor, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkTextBlobBuilder builder;
     sk_sp<SkTextBlob> blob = builder.make();
diff --git a/docs/examples/TextBlobBuilder_001.cpp b/docs/examples/TextBlobBuilder_001.cpp
index 617e09e..1f27cf0 100644
--- a/docs/examples/TextBlobBuilder_001.cpp
+++ b/docs/examples/TextBlobBuilder_001.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=34c37c0212cc0aef670d96945d08fe24
-REG_FIDDLE(TextBlobBuilder_001, 256, 256, true, 0) {
+REG_FIDDLE(TextBlobBuilder_make, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
     SkTextBlobBuilder builder;
     sk_sp<SkTextBlob> blob = builder.make();
diff --git a/docs/examples/TextBlobBuilder_002.cpp b/docs/examples/TextBlobBuilder_002.cpp
index 1a08326..2cf581e 100644
--- a/docs/examples/TextBlobBuilder_002.cpp
+++ b/docs/examples/TextBlobBuilder_002.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=f0e584aec20eaee7a5bfed62aa885eee
-REG_FIDDLE(TextBlobBuilder_002, 256, 60, false, 0) {
+REG_FIDDLE(TextBlobBuilder_allocRun, 256, 60, false, 0) {
 void draw(SkCanvas* canvas) {
     SkTextBlobBuilder builder;
     SkFont font;
diff --git a/docs/examples/TextBlobBuilder_003.cpp b/docs/examples/TextBlobBuilder_003.cpp
index f4ff890..e73c2d9 100644
--- a/docs/examples/TextBlobBuilder_003.cpp
+++ b/docs/examples/TextBlobBuilder_003.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=c77ac50f506106fdfef94d20bc1a6934
-REG_FIDDLE(TextBlobBuilder_003, 256, 60, false, 0) {
+REG_FIDDLE(TextBlobBuilder_allocRunPosH, 256, 60, false, 0) {
 void draw(SkCanvas* canvas) {
     SkTextBlobBuilder builder;
     SkPaint paint;
diff --git a/docs/examples/TextBlobBuilder_004.cpp b/docs/examples/TextBlobBuilder_004.cpp
index 4bca56f..ca166d7 100644
--- a/docs/examples/TextBlobBuilder_004.cpp
+++ b/docs/examples/TextBlobBuilder_004.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=da4fcb4a972b500996be9aff6c6c40e1
-REG_FIDDLE(TextBlobBuilder_004, 256, 90, false, 0) {
+REG_FIDDLE(TextBlobBuilder_allocRunPos, 256, 90, false, 0) {
 void draw(SkCanvas* canvas) {
     SkTextBlobBuilder builder;
     SkPaint paint;
diff --git a/docs/examples/TextBlob_000.cpp b/docs/examples/TextBlob_000.cpp
index c2706ce..5723a0e 100644
--- a/docs/examples/TextBlob_000.cpp
+++ b/docs/examples/TextBlob_000.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=fb8b2502bbe52d2029aecdf569dd9fdb
-REG_FIDDLE(TextBlob_000, 256, 70, false, 0) {
+REG_FIDDLE(TextBlob_bounds, 256, 70, false, 0) {
 void draw(SkCanvas* canvas) {
     SkTextBlobBuilder textBlobBuilder;
     const char bunny[] = "/(^x^)\\";
diff --git a/docs/examples/TextBlob_001.cpp b/docs/examples/TextBlob_001.cpp
index 6992079..7489067 100644
--- a/docs/examples/TextBlob_001.cpp
+++ b/docs/examples/TextBlob_001.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=6e12cceca981ddabc0fc18c380543f34
-REG_FIDDLE(TextBlob_001, 256, 256, false, 0) {
+REG_FIDDLE(TextBlob_uniqueID, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
     for (int index = 0; index < 2; ++index) {
         SkTextBlobBuilder textBlobBuilder;
diff --git a/docs/examples/TextBlob_002.cpp b/docs/examples/TextBlob_002.cpp
index 39415c1..293c58b 100644
--- a/docs/examples/TextBlob_002.cpp
+++ b/docs/examples/TextBlob_002.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=e9d4eb8ece521b1329e7433d4b243fdf
-REG_FIDDLE(TextBlob_002, 256, 143, false, 0) {
+REG_FIDDLE(TextBlob_getIntercepts, 256, 143, false, 0) {
 void draw(SkCanvas* canvas) {
     SkFont font;
     font.setSize(120);
diff --git a/docs/examples/TextBlob_003.cpp b/docs/examples/TextBlob_003.cpp
index d917cec..51ebd7e 100644
--- a/docs/examples/TextBlob_003.cpp
+++ b/docs/examples/TextBlob_003.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=bec2252bc36dc8fd023015629d60c405
-REG_FIDDLE(TextBlob_003, 256, 24, false, 0) {
+REG_FIDDLE(TextBlob_MakeFromText, 256, 24, false, 0) {
 void draw(SkCanvas* canvas) {
     SkFont font;
     font.setSize(24);
diff --git a/docs/examples/TextBlob_004.cpp b/docs/examples/TextBlob_004.cpp
index 2a7df84..66ba3eb 100644
--- a/docs/examples/TextBlob_004.cpp
+++ b/docs/examples/TextBlob_004.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=a5af182e793eed3f2bb3b0efc2cf4852
-REG_FIDDLE(TextBlob_004, 256, 24, false, 0) {
+REG_FIDDLE(TextBlob_MakeFromString, 256, 24, false, 0) {
 void draw(SkCanvas* canvas) {
     SkFont font;
     font.setSize(24);
diff --git a/docs/examples/TextBlob_005.cpp b/docs/examples/TextBlob_005.cpp
index 4a87e81..c0b2d08 100644
--- a/docs/examples/TextBlob_005.cpp
+++ b/docs/examples/TextBlob_005.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=90ce8c327d407b1faac73baa2ebd0378
-REG_FIDDLE(TextBlob_005, 256, 64, false, 0) {
+REG_FIDDLE(TextBlob_serialize, 256, 64, false, 0) {
 #include "SkSerialProcs.h"
 
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/TextBlob_006.cpp b/docs/examples/TextBlob_006.cpp
index e596291..459a06a 100644
--- a/docs/examples/TextBlob_006.cpp
+++ b/docs/examples/TextBlob_006.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=464201a828f7e94fc01cd57facfcd2f4
-REG_FIDDLE(TextBlob_006, 256, 24, false, 0) {
+REG_FIDDLE(TextBlob_serialize_2, 256, 24, false, 0) {
 #include "SkSerialProcs.h"
 
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/TextBlob_007.cpp b/docs/examples/TextBlob_007.cpp
index 24e7180..72a4dda 100644
--- a/docs/examples/TextBlob_007.cpp
+++ b/docs/examples/TextBlob_007.cpp
@@ -3,7 +3,7 @@
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 #include "fiddle/examples.h"
 // HASH=68b6d0208eb0b4de67fc152381af7a58
-REG_FIDDLE(TextBlob_007, 256, 24, false, 0) {
+REG_FIDDLE(TextBlob_Deserialize, 256, 24, false, 0) {
 #include "SkSerialProcs.h"
 
 void draw(SkCanvas* canvas) {