GM: some header cleanup

gm.h includes sk_tool_utils.h but does not use it.

The bulk of this CL makes each gm that uses sk_tool_utils include it.

sk_tool_utils.h also provided SkRandom and SkTDArray,
so a couple GMs add those headers too.

Change-Id: Ieb2a7c542f0ca89c3223f744fc11b0ff37af36c1
Reviewed-on: https://skia-review.googlesource.com/10014
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
diff --git a/gm/aaclip.cpp b/gm/aaclip.cpp
index d2c5ff5..1431eb6 100644
--- a/gm/aaclip.cpp
+++ b/gm/aaclip.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkPath.h"
 #include "SkMakeUnique.h"
diff --git a/gm/aaxfermodes.cpp b/gm/aaxfermodes.cpp
index 81927c5..96b9b48 100644
--- a/gm/aaxfermodes.cpp
+++ b/gm/aaxfermodes.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkBlendModePriv.h"
 #include "SkPath.h"
 #include "SkShader.h"
diff --git a/gm/addarc.cpp b/gm/addarc.cpp
index 9aba9c6..96ac666 100644
--- a/gm/addarc.cpp
+++ b/gm/addarc.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkAnimTimer.h"
 #include "SkCanvas.h"
 #include "SkPathMeasure.h"
diff --git a/gm/all_bitmap_configs.cpp b/gm/all_bitmap_configs.cpp
index 227c387..ea7b734 100644
--- a/gm/all_bitmap_configs.cpp
+++ b/gm/all_bitmap_configs.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "sk_tool_utils.h"
 #include "SkSurface.h"
 #include "Resources.h"
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "SkMath.h"
 #include "SkColorPriv.h"
diff --git a/gm/animatedimageblurs.cpp b/gm/animatedimageblurs.cpp
index db8f55b..02c2bc4 100644
--- a/gm/animatedimageblurs.cpp
+++ b/gm/animatedimageblurs.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkAnimTimer.h"
 #include "SkBlurImageFilter.h"
 #include "SkRandom.h"
diff --git a/gm/anisotropic.cpp b/gm/anisotropic.cpp
index d8f9181..b2916bf 100644
--- a/gm/anisotropic.cpp
+++ b/gm/anisotropic.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 namespace skiagm {
 
diff --git a/gm/arcofzorro.cpp b/gm/arcofzorro.cpp
index 792f7da..4c9b53f 100644
--- a/gm/arcofzorro.cpp
+++ b/gm/arcofzorro.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkRandom.h"
 
 namespace skiagm {
diff --git a/gm/arithmode.cpp b/gm/arithmode.cpp
index aec079c..c01ece7 100644
--- a/gm/arithmode.cpp
+++ b/gm/arithmode.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkArithmeticImageFilter.h"
 #include "SkCanvas.h"
 #include "SkColorPriv.h"
diff --git a/gm/bigblurs.cpp b/gm/bigblurs.cpp
index 0acd190..be5a6b8 100644
--- a/gm/bigblurs.cpp
+++ b/gm/bigblurs.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkBlurMask.h"
 #include "SkBlurMaskFilter.h"
 #include "SkPath.h"
diff --git a/gm/bigmatrix.cpp b/gm/bigmatrix.cpp
index b39f2ea..273b049 100644
--- a/gm/bigmatrix.cpp
+++ b/gm/bigmatrix.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "SkColorPriv.h"
 #include "SkPath.h"
diff --git a/gm/bigrrectaaeffect.cpp b/gm/bigrrectaaeffect.cpp
index 94e7339..0520776 100644
--- a/gm/bigrrectaaeffect.cpp
+++ b/gm/bigrrectaaeffect.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #if SK_SUPPORT_GPU
 #include "GrContext.h"
 #include "GrRenderTargetContextPriv.h"
diff --git a/gm/bigtext.cpp b/gm/bigtext.cpp
index 17f69c5..4d5005e 100644
--- a/gm/bigtext.cpp
+++ b/gm/bigtext.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkPath.h"
 
diff --git a/gm/bitmapcopy.cpp b/gm/bitmapcopy.cpp
index edd706d..60eecf2 100644
--- a/gm/bitmapcopy.cpp
+++ b/gm/bitmapcopy.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 namespace skiagm {
 
diff --git a/gm/bitmaprect.cpp b/gm/bitmaprect.cpp
index 06bf36a..ef32412 100644
--- a/gm/bitmaprect.cpp
+++ b/gm/bitmaprect.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkGradientShader.h"
 #include "SkGraphics.h"
diff --git a/gm/bitmapshader.cpp b/gm/bitmapshader.cpp
index 84d0b55..5ee7fca 100644
--- a/gm/bitmapshader.cpp
+++ b/gm/bitmapshader.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "SkBitmap.h"
 #include "SkPaint.h"
diff --git a/gm/bleed.cpp b/gm/bleed.cpp
index 8ffefc9..1bb8b2b 100644
--- a/gm/bleed.cpp
+++ b/gm/bleed.cpp
@@ -11,6 +11,7 @@
 #include "SkCanvas.h"
 #include "SkGradientShader.h"
 #include "SkImage.h"
+#include "SkTDArray.h"
 #include "SkUtils.h"
 
 #if SK_SUPPORT_GPU
diff --git a/gm/blend.cpp b/gm/blend.cpp
index 8aed292..28ec6ff 100644
--- a/gm/blend.cpp
+++ b/gm/blend.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 DEF_SIMPLE_GM(blend, canvas, 300, 100) {
     SkPaint p;
diff --git a/gm/blurcircles2.cpp b/gm/blurcircles2.cpp
index 93fcddb..a65763e 100644
--- a/gm/blurcircles2.cpp
+++ b/gm/blurcircles2.cpp
@@ -13,6 +13,7 @@
 #include "SkPaint.h"
 #include "SkPath.h"
 #include "SkString.h"
+#include "SkRandom.h"
 
 /**
  * In GM mode this draws an array of circles with different radii and different blur radii. Below
diff --git a/gm/blurredclippedcircle.cpp b/gm/blurredclippedcircle.cpp
index 9bc0ace..f62cb12 100644
--- a/gm/blurredclippedcircle.cpp
+++ b/gm/blurredclippedcircle.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkBlurMaskFilter.h"
 #include "SkClipOpPriv.h"
 #include "SkColorFilter.h"
diff --git a/gm/blurroundrect.cpp b/gm/blurroundrect.cpp
index 608649e..32a5bc4 100644
--- a/gm/blurroundrect.cpp
+++ b/gm/blurroundrect.cpp
@@ -6,6 +6,7 @@
 */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkBlurMask.h"
 #include "SkBlurMaskFilter.h"
 #include "SkCanvas.h"
diff --git a/gm/blurs.cpp b/gm/blurs.cpp
index 16e6249..f1f44e7 100644
--- a/gm/blurs.cpp
+++ b/gm/blurs.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkBlurMask.h"
 #include "SkBlurMaskFilter.h"
 #include "SkPath.h"
diff --git a/gm/bmpfilterqualityrepeat.cpp b/gm/bmpfilterqualityrepeat.cpp
index 1ddc726..e7ea97d 100644
--- a/gm/bmpfilterqualityrepeat.cpp
+++ b/gm/bmpfilterqualityrepeat.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "SkShader.h"
 
diff --git a/gm/clip_error.cpp b/gm/clip_error.cpp
index 28f7432..0a3eceb 100644
--- a/gm/clip_error.cpp
+++ b/gm/clip_error.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkBlurMask.h"
 #include "SkBlurMaskFilter.h"
 #include "SkCanvas.h"
diff --git a/gm/clipdrawdraw.cpp b/gm/clipdrawdraw.cpp
index 59cf9da..ed795d2 100644
--- a/gm/clipdrawdraw.cpp
+++ b/gm/clipdrawdraw.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkRegion.h"
 
 // This GM exercises the use case found in crbug.com/423834.
diff --git a/gm/coloremoji.cpp b/gm/coloremoji.cpp
index c139bc9f..f871e53 100644
--- a/gm/coloremoji.cpp
+++ b/gm/coloremoji.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "Resources.h"
 #include "SkBlurImageFilter.h"
diff --git a/gm/colorfilterimagefilter.cpp b/gm/colorfilterimagefilter.cpp
index 912eda1..a2e20d3 100644
--- a/gm/colorfilterimagefilter.cpp
+++ b/gm/colorfilterimagefilter.cpp
@@ -13,6 +13,7 @@
 
 #include "SkBlurImageFilter.h"
 #include "SkColorFilterImageFilter.h"
+#include "SkTDArray.h"
 
 #define FILTER_WIDTH    SkIntToScalar(30)
 #define FILTER_HEIGHT   SkIntToScalar(30)
diff --git a/gm/colormatrix.cpp b/gm/colormatrix.cpp
index f6d51fc..8f256bf 100644
--- a/gm/colormatrix.cpp
+++ b/gm/colormatrix.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkColorMatrixFilter.h"
 #include "SkGradientShader.h"
 #include "SkImage.h"
diff --git a/gm/colortype.cpp b/gm/colortype.cpp
index 516bb75..aa8aca7 100644
--- a/gm/colortype.cpp
+++ b/gm/colortype.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkGradientShader.h"
 #include "../src/fonts/SkGScalerContext.h"
diff --git a/gm/colortypexfermode.cpp b/gm/colortypexfermode.cpp
index 78a951d..9a22c8d 100644
--- a/gm/colortypexfermode.cpp
+++ b/gm/colortypexfermode.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkBitmap.h"
 #include "SkGradientShader.h"
 #include "SkShader.h"
diff --git a/gm/complexclip.cpp b/gm/complexclip.cpp
index 1fecd94..2968715 100644
--- a/gm/complexclip.cpp
+++ b/gm/complexclip.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkPath.h"
 
diff --git a/gm/complexclip3.cpp b/gm/complexclip3.cpp
index c174d9d..47b80ab 100644
--- a/gm/complexclip3.cpp
+++ b/gm/complexclip3.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkPath.h"
 
diff --git a/gm/composeshader.cpp b/gm/composeshader.cpp
index 8bc9f2c..ff525f4 100644
--- a/gm/composeshader.cpp
+++ b/gm/composeshader.cpp
@@ -12,6 +12,7 @@
 #include "SkGraphics.h"
 #include "SkShader.h"
 #include "SkString.h"
+#include "SkTDArray.h"
 
 static sk_sp<SkShader> make_shader(SkBlendMode mode) {
     SkPoint pts[2];
diff --git a/gm/constcolorprocessor.cpp b/gm/constcolorprocessor.cpp
index cf20879..9f30bed 100644
--- a/gm/constcolorprocessor.cpp
+++ b/gm/constcolorprocessor.cpp
@@ -8,6 +8,7 @@
 // This test only works with the GPU backend.
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #if SK_SUPPORT_GPU
 
diff --git a/gm/convexpolyclip.cpp b/gm/convexpolyclip.cpp
index bd945dd..fb7c9d4 100644
--- a/gm/convexpolyclip.cpp
+++ b/gm/convexpolyclip.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "SkBitmap.h"
 #include "SkGradientShader.h"
diff --git a/gm/cubicpaths.cpp b/gm/cubicpaths.cpp
index 023316b..fd2156c 100644
--- a/gm/cubicpaths.cpp
+++ b/gm/cubicpaths.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkPaint.h"
 #include "SkPath.h"
diff --git a/gm/dashing.cpp b/gm/dashing.cpp
index e23c24e..13d45cb 100644
--- a/gm/dashing.cpp
+++ b/gm/dashing.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkPaint.h"
 #include "SkDashPathEffect.h"
diff --git a/gm/degeneratesegments.cpp b/gm/degeneratesegments.cpp
index c7254f2..25da045 100644
--- a/gm/degeneratesegments.cpp
+++ b/gm/degeneratesegments.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkPaint.h"
 #include "SkPath.h"
diff --git a/gm/dftext.cpp b/gm/dftext.cpp
index 6f3be21..fb69f9b 100644
--- a/gm/dftext.cpp
+++ b/gm/dftext.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "Resources.h"
 #include "SkCanvas.h"
 #include "SkStream.h"
diff --git a/gm/discard.cpp b/gm/discard.cpp
index 1364581..8db3a68 100644
--- a/gm/discard.cpp
+++ b/gm/discard.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkPaint.h"
 #include "SkRandom.h"
diff --git a/gm/downsamplebitmap.cpp b/gm/downsamplebitmap.cpp
index ce3eb69..ba1edc9 100644
--- a/gm/downsamplebitmap.cpp
+++ b/gm/downsamplebitmap.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "Resources.h"
 #include "SkGradientShader.h"
diff --git a/gm/drawatlascolor.cpp b/gm/drawatlascolor.cpp
index e67ffc3..de64cab 100644
--- a/gm/drawatlascolor.cpp
+++ b/gm/drawatlascolor.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkRSXform.h"
 #include "SkSurface.h"
diff --git a/gm/drawbitmaprect.cpp b/gm/drawbitmaprect.cpp
index 3c873e2..bad5e2a 100644
--- a/gm/drawbitmaprect.cpp
+++ b/gm/drawbitmaprect.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkBlurMask.h"
 #include "SkBlurMaskFilter.h"
 #include "SkColorPriv.h"
diff --git a/gm/drawlooper.cpp b/gm/drawlooper.cpp
index 210da52..c4052e3 100644
--- a/gm/drawlooper.cpp
+++ b/gm/drawlooper.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkBlurMask.h"
 #include "SkBlurMaskFilter.h"
 #include "SkCanvas.h"
diff --git a/gm/dropshadowimagefilter.cpp b/gm/dropshadowimagefilter.cpp
index d32f048..87cd798 100644
--- a/gm/dropshadowimagefilter.cpp
+++ b/gm/dropshadowimagefilter.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkColorFilter.h"
 
 #include "SkColorFilterImageFilter.h"
diff --git a/gm/dstreadshuffle.cpp b/gm/dstreadshuffle.cpp
index 3715153..f6086b1 100644
--- a/gm/dstreadshuffle.cpp
+++ b/gm/dstreadshuffle.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkBitmap.h"
 #include "SkPath.h"
 #include "SkRandom.h"
diff --git a/gm/emptypath.cpp b/gm/emptypath.cpp
index 260f0a0..56377e7 100644
--- a/gm/emptypath.cpp
+++ b/gm/emptypath.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkPaint.h"
 #include "SkPath.h"
diff --git a/gm/encode.cpp b/gm/encode.cpp
index d4598d0..1dae1bf 100644
--- a/gm/encode.cpp
+++ b/gm/encode.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkData.h"
 #include "SkImageEncoder.h"
diff --git a/gm/etc1.cpp b/gm/etc1.cpp
index 2bb93d0..26e60518 100644
--- a/gm/etc1.cpp
+++ b/gm/etc1.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkRandom.h"
 
 #if SK_SUPPORT_GPU
diff --git a/gm/fatpathfill.cpp b/gm/fatpathfill.cpp
index 46e810e..21d9085 100644
--- a/gm/fatpathfill.cpp
+++ b/gm/fatpathfill.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkPath.h"
 #include "SkSurface.h"
diff --git a/gm/filltypes.cpp b/gm/filltypes.cpp
index b470c05..30dcd27 100644
--- a/gm/filltypes.cpp
+++ b/gm/filltypes.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkPath.h"
 
 namespace skiagm {
diff --git a/gm/filterbitmap.cpp b/gm/filterbitmap.cpp
index c9ff295..0f3371c 100644
--- a/gm/filterbitmap.cpp
+++ b/gm/filterbitmap.cpp
@@ -6,12 +6,12 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "Resources.h"
 #include "SkGradientShader.h"
 #include "SkStream.h"
 #include "SkTypeface.h"
-#include "sk_tool_utils.h"
 
 static void setTypeface(SkPaint* paint, const char name[], SkFontStyle style) {
     sk_tool_utils::set_portable_typeface(paint, name, style);
diff --git a/gm/filterfastbounds.cpp b/gm/filterfastbounds.cpp
index 812c666..5102b86 100644
--- a/gm/filterfastbounds.cpp
+++ b/gm/filterfastbounds.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkBlurImageFilter.h"
 #include "SkDropShadowImageFilter.h"
 #include "SkImageSource.h"
diff --git a/gm/filterindiabox.cpp b/gm/filterindiabox.cpp
index 569a694..eef0b4a 100644
--- a/gm/filterindiabox.cpp
+++ b/gm/filterindiabox.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "Resources.h"
 #include "SkBitmapProcState.h"
diff --git a/gm/fontcache.cpp b/gm/fontcache.cpp
index 22b29f4..8775b58 100644
--- a/gm/fontcache.cpp
+++ b/gm/fontcache.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkGraphics.h"
 #include "SkTypeface.h"
diff --git a/gm/fontmgr.cpp b/gm/fontmgr.cpp
index cd596eb..aecb46e 100644
--- a/gm/fontmgr.cpp
+++ b/gm/fontmgr.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkFontMgr.h"
 #include "SkGraphics.h"
diff --git a/gm/fontscaler.cpp b/gm/fontscaler.cpp
index cc9815c..ec607e7 100644
--- a/gm/fontscaler.cpp
+++ b/gm/fontscaler.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkTypeface.h"
 
 namespace skiagm {
diff --git a/gm/gamma.cpp b/gm/gamma.cpp
index ef93d1b..8642726 100644
--- a/gm/gamma.cpp
+++ b/gm/gamma.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "Resources.h"
 #include "SkBlendModePriv.h"
diff --git a/gm/gammatext.cpp b/gm/gammatext.cpp
index 8fa5171..43b0720 100644
--- a/gm/gammatext.cpp
+++ b/gm/gammatext.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkPath.h"
 #include "SkGradientShader.h"
diff --git a/gm/gamut.cpp b/gm/gamut.cpp
index 3e57377..af104c4 100644
--- a/gm/gamut.cpp
+++ b/gm/gamut.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "SkColorSpace_Base.h"
 #include "SkGradientShader.h"
diff --git a/gm/getpostextpath.cpp b/gm/getpostextpath.cpp
index dcd983b..eac570a 100644
--- a/gm/getpostextpath.cpp
+++ b/gm/getpostextpath.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkPaint.h"
 #include "SkPath.h"
diff --git a/gm/glyph_pos.cpp b/gm/glyph_pos.cpp
index b89077a..cfc318d 100644
--- a/gm/glyph_pos.cpp
+++ b/gm/glyph_pos.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkTypeface.h"
 
diff --git a/gm/gm.cpp b/gm/gm.cpp
index 1b0598f..c8f1250 100644
--- a/gm/gm.cpp
+++ b/gm/gm.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkShader.h"
 using namespace skiagm;
 
diff --git a/gm/gm.h b/gm/gm.h
index 2e4b602..d293d40 100644
--- a/gm/gm.h
+++ b/gm/gm.h
@@ -14,7 +14,6 @@
 #include "SkSize.h"
 #include "SkString.h"
 #include "../tools/Registry.h"
-#include "sk_tool_utils.h"
 #include "SkClipOpPriv.h"
 
 class SkAnimTimer;
diff --git a/gm/gradientDirtyLaundry.cpp b/gm/gradientDirtyLaundry.cpp
index dc52d9e..9062fce 100644
--- a/gm/gradientDirtyLaundry.cpp
+++ b/gm/gradientDirtyLaundry.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkGradientShader.h"
 
 using namespace skiagm;
diff --git a/gm/gradient_matrix.cpp b/gm/gradient_matrix.cpp
index 3992a49..0a4f036 100644
--- a/gm/gradient_matrix.cpp
+++ b/gm/gradient_matrix.cpp
@@ -18,6 +18,7 @@
 #include "SkString.h"
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 constexpr SkColor gColors[] = {
     SK_ColorRED, SK_ColorYELLOW
diff --git a/gm/gradients.cpp b/gm/gradients.cpp
index 099e7cd..e7a8a89 100644
--- a/gm/gradients.cpp
+++ b/gm/gradients.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkGradientShader.h"
 #include "SkLinearGradient.h"
 
diff --git a/gm/gradients_2pt_conical.cpp b/gm/gradients_2pt_conical.cpp
index ee1aee9..8b94ea5 100644
--- a/gm/gradients_2pt_conical.cpp
+++ b/gm/gradients_2pt_conical.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkGradientShader.h"
 
 namespace skiagm {
diff --git a/gm/gradients_no_texture.cpp b/gm/gradients_no_texture.cpp
index e012178..9acd633 100644
--- a/gm/gradients_no_texture.cpp
+++ b/gm/gradients_no_texture.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkGradientShader.h"
 
 using namespace skiagm;
diff --git a/gm/gradtext.cpp b/gm/gradtext.cpp
index d664547..7f7f222 100644
--- a/gm/gradtext.cpp
+++ b/gm/gradtext.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkGradientShader.h"
 #include "SkTypeface.h"
diff --git a/gm/highcontrastfilter.cpp b/gm/highcontrastfilter.cpp
index 68a5449..e5330d2 100644
--- a/gm/highcontrastfilter.cpp
+++ b/gm/highcontrastfilter.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkGradientShader.h"
 #include "SkHighContrastFilter.h"
diff --git a/gm/image.cpp b/gm/image.cpp
index f672e07..8e38ae7 100644
--- a/gm/image.cpp
+++ b/gm/image.cpp
@@ -7,6 +7,7 @@
 
 #include <functional>
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkAutoPixmapStorage.h"
 #include "SkData.h"
 #include "SkCanvas.h"
diff --git a/gm/imageblur.cpp b/gm/imageblur.cpp
index 6a27c65..d15f11c 100644
--- a/gm/imageblur.cpp
+++ b/gm/imageblur.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkBlurImageFilter.h"
 #include "SkRandom.h"
 
diff --git a/gm/imageblur2.cpp b/gm/imageblur2.cpp
index 7431ded..19c92f3 100644
--- a/gm/imageblur2.cpp
+++ b/gm/imageblur2.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkBlurImageFilter.h"
 #include "SkRandom.h"
 
diff --git a/gm/imageblurtiled.cpp b/gm/imageblurtiled.cpp
index bf5d3d1..7d846be 100644
--- a/gm/imageblurtiled.cpp
+++ b/gm/imageblurtiled.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkBlurImageFilter.h"
 #include "SkRandom.h"
 
diff --git a/gm/imagefiltersbase.cpp b/gm/imagefiltersbase.cpp
index 440f6b2..8c702b20 100644
--- a/gm/imagefiltersbase.cpp
+++ b/gm/imagefiltersbase.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkColorFilter.h"
 #include "SkColorPriv.h"
diff --git a/gm/imagefiltersclipped.cpp b/gm/imagefiltersclipped.cpp
index 7989f8b..6236c38 100644
--- a/gm/imagefiltersclipped.cpp
+++ b/gm/imagefiltersclipped.cpp
@@ -5,7 +5,6 @@
  * found in the LICENSE file.
  */
 
-#include "sk_tool_utils.h"
 #include "SkBlurImageFilter.h"
 #include "SkColor.h"
 #include "SkDisplacementMapEffect.h"
@@ -22,6 +21,7 @@
 #include "SkScalar.h"
 #include "SkSurface.h"
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #define RESIZE_FACTOR_X SkIntToScalar(2)
 #define RESIZE_FACTOR_Y SkIntToScalar(5)
diff --git a/gm/imagefilterscropexpand.cpp b/gm/imagefilterscropexpand.cpp
index 57ff14b..a2dbda6 100644
--- a/gm/imagefilterscropexpand.cpp
+++ b/gm/imagefilterscropexpand.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkColorFilter.h"
 #include "SkColorPriv.h"
diff --git a/gm/imagefilterscropped.cpp b/gm/imagefilterscropped.cpp
index e5702aa..b8db8ab 100644
--- a/gm/imagefilterscropped.cpp
+++ b/gm/imagefilterscropped.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkColorFilter.h"
 #include "SkColorPriv.h"
diff --git a/gm/imagefiltersgraph.cpp b/gm/imagefiltersgraph.cpp
index 30c987a..3436d69 100644
--- a/gm/imagefiltersgraph.cpp
+++ b/gm/imagefiltersgraph.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "SkArithmeticImageFilter.h"
 #include "SkBlurImageFilter.h"
diff --git a/gm/imagefiltersscaled.cpp b/gm/imagefiltersscaled.cpp
index 39d58f3..dc87da3 100644
--- a/gm/imagefiltersscaled.cpp
+++ b/gm/imagefiltersscaled.cpp
@@ -5,7 +5,6 @@
  * found in the LICENSE file.
  */
 
-#include "sk_tool_utils.h"
 #include "SkBlurImageFilter.h"
 #include "SkColor.h"
 #include "SkDisplacementMapEffect.h"
@@ -22,6 +21,7 @@
 #include "SkScalar.h"
 #include "SkSurface.h"
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #define RESIZE_FACTOR SkIntToScalar(4)
 
diff --git a/gm/imagefiltersstroked.cpp b/gm/imagefiltersstroked.cpp
index 13dc705..c0016bb36 100644
--- a/gm/imagefiltersstroked.cpp
+++ b/gm/imagefiltersstroked.cpp
@@ -5,7 +5,6 @@
  * found in the LICENSE file.
  */
 
-#include "sk_tool_utils.h"
 #include "SkBlurImageFilter.h"
 #include "SkColor.h"
 #include "SkDropShadowImageFilter.h"
diff --git a/gm/imagefilterstransformed.cpp b/gm/imagefilterstransformed.cpp
index dc8257c..941a04c 100644
--- a/gm/imagefilterstransformed.cpp
+++ b/gm/imagefilterstransformed.cpp
@@ -5,7 +5,6 @@
  * found in the LICENSE file.
  */
 
-#include "sk_tool_utils.h"
 #include "SkBlurImageFilter.h"
 #include "SkColor.h"
 #include "SkDisplacementMapEffect.h"
@@ -17,6 +16,7 @@
 #include "SkScalar.h"
 #include "SkSurface.h"
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 namespace skiagm {
 
diff --git a/gm/imagemagnifier.cpp b/gm/imagemagnifier.cpp
index 888bb5d..a494f4c 100644
--- a/gm/imagemagnifier.cpp
+++ b/gm/imagemagnifier.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkImageSource.h"
 #include "SkMagnifierImageFilter.h"
 #include "SkPixelRef.h"
diff --git a/gm/imagemakewithfilter.cpp b/gm/imagemakewithfilter.cpp
index 48b1740..9c6e870 100644
--- a/gm/imagemakewithfilter.cpp
+++ b/gm/imagemakewithfilter.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkBlurImageFilter.h"
 #include "SkCanvas.h"
 #include "SkColorFilter.h"
diff --git a/gm/imagemasksubset.cpp b/gm/imagemasksubset.cpp
index 2d0d120..49ff3c5 100644
--- a/gm/imagemasksubset.cpp
+++ b/gm/imagemasksubset.cpp
@@ -6,12 +6,12 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkImage.h"
 #include "SkImageGenerator.h"
 #include "SkMakeUnique.h"
 #include "SkSurface.h"
-#include "sk_tool_utils.h"
 
 namespace {
 
diff --git a/gm/imageresizetiled.cpp b/gm/imageresizetiled.cpp
index fcbb7e4..9fa6be0 100644
--- a/gm/imageresizetiled.cpp
+++ b/gm/imageresizetiled.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkImageFilter.h"
 #include "SkRandom.h"
 
diff --git a/gm/imagesource.cpp b/gm/imagesource.cpp
index ed7aba1..50d818b 100644
--- a/gm/imagesource.cpp
+++ b/gm/imagesource.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "SkImage.h"
 #include "SkImageSource.h"
diff --git a/gm/internal_links.cpp b/gm/internal_links.cpp
index 6d70c1e..c873754 100644
--- a/gm/internal_links.cpp
+++ b/gm/internal_links.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "SkAnnotation.h"
 #include "SkData.h"
diff --git a/gm/largeglyphblur.cpp b/gm/largeglyphblur.cpp
index 19d390b..fe82b5e 100644
--- a/gm/largeglyphblur.cpp
+++ b/gm/largeglyphblur.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "SkBlurMask.h"
 #include "SkBlurMaskFilter.h"
diff --git a/gm/lcdblendmodes.cpp b/gm/lcdblendmodes.cpp
index 4d5794c..07b55c5 100644
--- a/gm/lcdblendmodes.cpp
+++ b/gm/lcdblendmodes.cpp
@@ -11,6 +11,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkGradientShader.h"
 #include "SkSurface.h"
diff --git a/gm/lcdoverlap.cpp b/gm/lcdoverlap.cpp
index 3808785..ffb6cd7 100644
--- a/gm/lcdoverlap.cpp
+++ b/gm/lcdoverlap.cpp
@@ -11,6 +11,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkSurface.h"
 #include "SkTextBlob.h"
diff --git a/gm/lcdtext.cpp b/gm/lcdtext.cpp
index 978bfd6..5a549eb 100644
--- a/gm/lcdtext.cpp
+++ b/gm/lcdtext.cpp
@@ -10,6 +10,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkPicture.h"
 #include "SkPictureImageFilter.h"
diff --git a/gm/lighting.cpp b/gm/lighting.cpp
index 97c6f52..0c45065 100644
--- a/gm/lighting.cpp
+++ b/gm/lighting.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkAnimTimer.h"
 #include "SkLightingImageFilter.h"
 #include "SkOffsetImageFilter.h"
diff --git a/gm/lightingshader.cpp b/gm/lightingshader.cpp
index 8576dd7..95e30ac 100644
--- a/gm/lightingshader.cpp
+++ b/gm/lightingshader.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkLightingShader.h"
 #include "SkNormalSource.h"
 #include "SkPoint3.h"
diff --git a/gm/lightingshader2.cpp b/gm/lightingshader2.cpp
index 2efcebb..c6c246d 100644
--- a/gm/lightingshader2.cpp
+++ b/gm/lightingshader2.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkLightingShader.h"
 #include "SkNormalSource.h"
 #include "SkPoint3.h"
diff --git a/gm/lightingshaderbevel.cpp b/gm/lightingshaderbevel.cpp
index 4e95c8e..5adf3b8 100644
--- a/gm/lightingshaderbevel.cpp
+++ b/gm/lightingshaderbevel.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkLightingShader.h"
 #include "SkNormalSource.h"
 #include "SkPath.h"
diff --git a/gm/linepaths.cpp b/gm/linepaths.cpp
index e7a0c93..2583ff1 100644
--- a/gm/linepaths.cpp
+++ b/gm/linepaths.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkPath.h"
 #include "SkPaint.h"
diff --git a/gm/lumafilter.cpp b/gm/lumafilter.cpp
index abce994..07e9b99 100644
--- a/gm/lumafilter.cpp
+++ b/gm/lumafilter.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkBlendModePriv.h"
 #include "SkCanvas.h"
 #include "SkGradientShader.h"
diff --git a/gm/manypaths.cpp b/gm/manypaths.cpp
index c33552f..0d8c842 100644
--- a/gm/manypaths.cpp
+++ b/gm/manypaths.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkRandom.h"
 #include "SkRect.h"
 #include "SkRRect.h"
diff --git a/gm/matrixconvolution.cpp b/gm/matrixconvolution.cpp
index ce5ce52..7c1a215 100644
--- a/gm/matrixconvolution.cpp
+++ b/gm/matrixconvolution.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkColor.h"
 #include "SkGradientShader.h"
 #include "SkMatrixConvolutionImageFilter.h"
diff --git a/gm/matriximagefilter.cpp b/gm/matriximagefilter.cpp
index ef16ea4..977112f 100644
--- a/gm/matriximagefilter.cpp
+++ b/gm/matriximagefilter.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkColor.h"
 #include "SkImageFilter.h"
 
diff --git a/gm/mipmap.cpp b/gm/mipmap.cpp
index 19aff9d..56a78f4 100644
--- a/gm/mipmap.cpp
+++ b/gm/mipmap.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkImage.h"
 #include "SkRandom.h"
diff --git a/gm/mixedtextblobs.cpp b/gm/mixedtextblobs.cpp
index 00081d0..dbb8229 100644
--- a/gm/mixedtextblobs.cpp
+++ b/gm/mixedtextblobs.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "Resources.h"
 #include "SkCanvas.h"
diff --git a/gm/modecolorfilters.cpp b/gm/modecolorfilters.cpp
index cc54e76..e0fd8ec 100644
--- a/gm/modecolorfilters.cpp
+++ b/gm/modecolorfilters.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkColorFilter.h"
 #include "SkGradientShader.h"
 
diff --git a/gm/morphology.cpp b/gm/morphology.cpp
index f60079b..d1513c4 100644
--- a/gm/morphology.cpp
+++ b/gm/morphology.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkMorphologyImageFilter.h"
 
 #define WIDTH 700
diff --git a/gm/multipicturedraw.cpp b/gm/multipicturedraw.cpp
index e7d4baa..fe2281a 100644
--- a/gm/multipicturedraw.cpp
+++ b/gm/multipicturedraw.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "SkColorFilter.h"
 #include "SkMultiPictureDraw.h"
diff --git a/gm/nested.cpp b/gm/nested.cpp
index 0b3cf19..eb92d83 100644
--- a/gm/nested.cpp
+++ b/gm/nested.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkPath.h"
 #include "SkRandom.h"
 #include "SkRRect.h"
diff --git a/gm/occludedrrectblur.cpp b/gm/occludedrrectblur.cpp
index 059b473..f488f22 100644
--- a/gm/occludedrrectblur.cpp
+++ b/gm/occludedrrectblur.cpp
@@ -6,9 +6,9 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkBlurMaskFilter.h"
 #include "SkRRect.h"
-#include "sk_tool_utils.h"
 
 static SkRect offset_center_to(const SkIRect& src, SkScalar x, SkScalar y) {
     SkScalar halfW = 0.5f * src.width();
diff --git a/gm/offsetimagefilter.cpp b/gm/offsetimagefilter.cpp
index 8f23483..0ecca71 100644
--- a/gm/offsetimagefilter.cpp
+++ b/gm/offsetimagefilter.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "sk_tool_utils.h"
 #include "SkImage.h"
 #include "SkImageSource.h"
 #include "SkOffsetImageFilter.h"
 #include "SkSurface.h"
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #define WIDTH 600
 #define HEIGHT 100
diff --git a/gm/ovals.cpp b/gm/ovals.cpp
index 272ac43..ec9bd75 100644
--- a/gm/ovals.cpp
+++ b/gm/ovals.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkTArray.h"
 #include "SkRandom.h"
 #include "SkMatrix.h"
diff --git a/gm/pathinterior.cpp b/gm/pathinterior.cpp
index f93e682..41c1a69 100644
--- a/gm/pathinterior.cpp
+++ b/gm/pathinterior.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkBlurMaskFilter.h"
 #include "SkCanvas.h"
 #include "SkGraphics.h"
diff --git a/gm/pathopsinverse.cpp b/gm/pathopsinverse.cpp
index 918666c..3a3d970 100644
--- a/gm/pathopsinverse.cpp
+++ b/gm/pathopsinverse.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkBitmap.h"
 #include "SkPath.h"
 #include "SkPathOps.h"
diff --git a/gm/perspshaders.cpp b/gm/perspshaders.cpp
index b231291..e39a846 100644
--- a/gm/perspshaders.cpp
+++ b/gm/perspshaders.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkGradientShader.h"
 #include "SkImage.h"
 #include "SkPath.h"
diff --git a/gm/pictureimagefilter.cpp b/gm/pictureimagefilter.cpp
index 244ed87..aaec850 100644
--- a/gm/pictureimagefilter.cpp
+++ b/gm/pictureimagefilter.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "SkPictureImageFilter.h"
 #include "SkPictureRecorder.h"
diff --git a/gm/pictureimagegenerator.cpp b/gm/pictureimagegenerator.cpp
index 1cf3426..2154e52 100644
--- a/gm/pictureimagegenerator.cpp
+++ b/gm/pictureimagegenerator.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkBitmap.h"
 #include "SkCanvas.h"
 #include "SkGradientShader.h"
diff --git a/gm/pictureshader.cpp b/gm/pictureshader.cpp
index d54144f..bc98d80 100644
--- a/gm/pictureshader.cpp
+++ b/gm/pictureshader.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "SkBitmap.h"
 #include "SkPaint.h"
diff --git a/gm/pixelsnap.cpp b/gm/pixelsnap.cpp
index 401127d..d664d97 100644
--- a/gm/pixelsnap.cpp
+++ b/gm/pixelsnap.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "SkShader.h"
 
diff --git a/gm/poly2poly.cpp b/gm/poly2poly.cpp
index f6d3f84..9434bf2 100644
--- a/gm/poly2poly.cpp
+++ b/gm/poly2poly.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "Resources.h"
 #include "SkPath.h"
 #include "SkTypeface.h"
diff --git a/gm/quadpaths.cpp b/gm/quadpaths.cpp
index 0578d2e..bac37b9 100644
--- a/gm/quadpaths.cpp
+++ b/gm/quadpaths.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkPaint.h"
 #include "SkPath.h"
diff --git a/gm/reveal.cpp b/gm/reveal.cpp
index 3c7de7d..3e46555 100644
--- a/gm/reveal.cpp
+++ b/gm/reveal.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkAnimTimer.h"
 #include "SkBlurMaskFilter.h"
 #include "SkGaussianEdgeShader.h"
diff --git a/gm/roundrects.cpp b/gm/roundrects.cpp
index fbb005f..794393e 100644
--- a/gm/roundrects.cpp
+++ b/gm/roundrects.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkTArray.h"
 #include "SkRandom.h"
 #include "SkMatrix.h"
diff --git a/gm/rrect.cpp b/gm/rrect.cpp
index 660e72a..f8fff7a 100644
--- a/gm/rrect.cpp
+++ b/gm/rrect.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkRRect.h"
 #include "SkPath.h"
diff --git a/gm/rrects.cpp b/gm/rrects.cpp
index 032b0c3..ac66d52 100644
--- a/gm/rrects.cpp
+++ b/gm/rrects.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #if SK_SUPPORT_GPU
 #include "GrContext.h"
 #include "GrRenderTargetContextPriv.h"
diff --git a/gm/samplerstress.cpp b/gm/samplerstress.cpp
index e36e621..63873499 100644
--- a/gm/samplerstress.cpp
+++ b/gm/samplerstress.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkBlurMaskFilter.h"
 #include "SkCanvas.h"
 #include "SkPath.h"
diff --git a/gm/savelayer.cpp b/gm/savelayer.cpp
index 6a01edd..98a00ca 100644
--- a/gm/savelayer.cpp
+++ b/gm/savelayer.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 
 static const uint32_t SkCanvas_kDontClipToLayer_PrivateSaveLayerFlag = 1U << 31;
diff --git a/gm/shadertext.cpp b/gm/shadertext.cpp
index 7d54e77..237a149 100644
--- a/gm/shadertext.cpp
+++ b/gm/shadertext.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkGradientShader.h"
 #include "SkPath.h"
diff --git a/gm/shadertext2.cpp b/gm/shadertext2.cpp
index 6fd784a..9b585bf 100644
--- a/gm/shadertext2.cpp
+++ b/gm/shadertext2.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkGradientShader.h"
 #include "SkPath.h"
diff --git a/gm/shadertext3.cpp b/gm/shadertext3.cpp
index b811ac9..010fe22 100644
--- a/gm/shadertext3.cpp
+++ b/gm/shadertext3.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkGradientShader.h"
 
diff --git a/gm/shadowmaps.cpp b/gm/shadowmaps.cpp
index b675aca..e8222f4 100644
--- a/gm/shadowmaps.cpp
+++ b/gm/shadowmaps.cpp
@@ -7,6 +7,7 @@
 
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkPathEffect.h"
 #include "SkPictureRecorder.h"
 #include "SkShadowPaintFilterCanvas.h"
diff --git a/gm/shadows.cpp b/gm/shadows.cpp
index e642070..e550a8a 100644
--- a/gm/shadows.cpp
+++ b/gm/shadows.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkBlurDrawLooper.h"
 #include "SkBlurMask.h"
 #include "SkColorFilter.h"
diff --git a/gm/shallowgradient.cpp b/gm/shallowgradient.cpp
index ad1de63..efaa31a 100644
--- a/gm/shallowgradient.cpp
+++ b/gm/shallowgradient.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkGradientShader.h"
 
 typedef sk_sp<SkShader> (*MakeShaderProc)(const SkColor[], int count, const SkSize&);
diff --git a/gm/showmiplevels.cpp b/gm/showmiplevels.cpp
index ba9f228..0dd19d5 100644
--- a/gm/showmiplevels.cpp
+++ b/gm/showmiplevels.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "Resources.h"
 #include "SkBitmapScaler.h"
@@ -15,7 +16,6 @@
 #include "SkPaint.h"
 #include "SkMipMap.h"
 #include "Resources.h"
-#include "sk_tool_utils.h"
 
 #define SHOW_MIP_COLOR  0xFF000000
 
diff --git a/gm/simple_magnification.cpp b/gm/simple_magnification.cpp
index 342fd92..14dade1 100644
--- a/gm/simple_magnification.cpp
+++ b/gm/simple_magnification.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkImageSource.h"
 #include "SkMagnifierImageFilter.h"
 #include "SkSurface.h"
diff --git a/gm/simpleaaclip.cpp b/gm/simpleaaclip.cpp
index 72a590f..8f6c5c9 100644
--- a/gm/simpleaaclip.cpp
+++ b/gm/simpleaaclip.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkAAClip.h"
 #include "SkCanvas.h"
 #include "SkPath.h"
diff --git a/gm/simplerect.cpp b/gm/simplerect.cpp
index 640fafc..b27c348 100644
--- a/gm/simplerect.cpp
+++ b/gm/simplerect.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkBlurMask.h"
 #include "SkBlurMaskFilter.h"
 #include "SkPath.h"
diff --git a/gm/skbug1719.cpp b/gm/skbug1719.cpp
index 9d6d98b..f632852 100644
--- a/gm/skbug1719.cpp
+++ b/gm/skbug1719.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkBlurMaskFilter.h"
 #include "SkColorFilter.h"
 #include "SkPath.h"
diff --git a/gm/skbug_257.cpp b/gm/skbug_257.cpp
index b11487d..fb77532 100644
--- a/gm/skbug_257.cpp
+++ b/gm/skbug_257.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkImage.h"
 #include "SkRRect.h"
 
diff --git a/gm/srcmode.cpp b/gm/srcmode.cpp
index d57b77c..75721f1 100644
--- a/gm/srcmode.cpp
+++ b/gm/srcmode.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkGradientShader.h"
 #include "SkPath.h"
diff --git a/gm/stringart.cpp b/gm/stringart.cpp
index e21e8f2..73a214d 100644
--- a/gm/stringart.cpp
+++ b/gm/stringart.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkAnimTimer.h"
 #include "SkCanvas.h"
 #include "SkPath.h"
diff --git a/gm/strokedlines.cpp b/gm/strokedlines.cpp
index 7bcb3fb..402fa9b 100644
--- a/gm/strokedlines.cpp
+++ b/gm/strokedlines.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkBlurMaskFilter.h"
 #include "SkDashPathEffect.h"
 #include "SkGradientShader.h"
diff --git a/gm/strokefill.cpp b/gm/strokefill.cpp
index 3e81107..5193640 100644
--- a/gm/strokefill.cpp
+++ b/gm/strokefill.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkPathPriv.h"
 #include "SkTextFormatParams.h"
diff --git a/gm/strokerect.cpp b/gm/strokerect.cpp
index 1d5d803..92b812c 100644
--- a/gm/strokerect.cpp
+++ b/gm/strokerect.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkPath.h"
 
diff --git a/gm/strokes.cpp b/gm/strokes.cpp
index 218f845..7bd31c2 100644
--- a/gm/strokes.cpp
+++ b/gm/strokes.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkPath.h"
 #include "SkRandom.h"
 #include "SkDashPathEffect.h"
diff --git a/gm/stroketext.cpp b/gm/stroketext.cpp
index b247d8a7..f1bb32732 100644
--- a/gm/stroketext.cpp
+++ b/gm/stroketext.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkDashPathEffect.h"
 
diff --git a/gm/surface.cpp b/gm/surface.cpp
index baa84eb..ee4decc 100644
--- a/gm/surface.cpp
+++ b/gm/surface.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkGradientShader.h"
 #include "SkSurface.h"
 #include "SkSurfaceProps.h"
diff --git a/gm/tablecolorfilter.cpp b/gm/tablecolorfilter.cpp
index 0f870c6..df6f7d6 100644
--- a/gm/tablecolorfilter.cpp
+++ b/gm/tablecolorfilter.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkColorFilterImageFilter.h"
 #include "SkGradientShader.h"
diff --git a/gm/textblob.cpp b/gm/textblob.cpp
index aa2bfb0..d30f92f 100644
--- a/gm/textblob.cpp
+++ b/gm/textblob.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "SkCanvas.h"
 #include "SkPoint.h"
diff --git a/gm/textblobblockreordering.cpp b/gm/textblobblockreordering.cpp
index b1658f8..8a1f36d 100644
--- a/gm/textblobblockreordering.cpp
+++ b/gm/textblobblockreordering.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "SkCanvas.h"
 #include "SkTextBlob.h"
diff --git a/gm/textblobcolortrans.cpp b/gm/textblobcolortrans.cpp
index 286dc77..1362023 100644
--- a/gm/textblobcolortrans.cpp
+++ b/gm/textblobcolortrans.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "Resources.h"
 #include "SkCanvas.h"
diff --git a/gm/textblobgeometrychange.cpp b/gm/textblobgeometrychange.cpp
index f84a55f..b86ee3a 100644
--- a/gm/textblobgeometrychange.cpp
+++ b/gm/textblobgeometrychange.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "SkCanvas.h"
 #include "SkSurface.h"
diff --git a/gm/textbloblooper.cpp b/gm/textbloblooper.cpp
index d0e5508..60ad486 100644
--- a/gm/textbloblooper.cpp
+++ b/gm/textbloblooper.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "Sk2DPathEffect.h"
 #include "SkBlurMask.h"
diff --git a/gm/textblobmixedsizes.cpp b/gm/textblobmixedsizes.cpp
index 64cf723..e003ee6 100644
--- a/gm/textblobmixedsizes.cpp
+++ b/gm/textblobmixedsizes.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "Resources.h"
 #include "SkBlurMask.h"
diff --git a/gm/textblobrandomfont.cpp b/gm/textblobrandomfont.cpp
index 9185494..c489bd1 100644
--- a/gm/textblobrandomfont.cpp
+++ b/gm/textblobrandomfont.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "Resources.h"
 #include "SkCanvas.h"
diff --git a/gm/textblobshader.cpp b/gm/textblobshader.cpp
index acb6436..085f7b0 100644
--- a/gm/textblobshader.cpp
+++ b/gm/textblobshader.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "SkCanvas.h"
 #include "SkGradientShader.h"
diff --git a/gm/textblobtransforms.cpp b/gm/textblobtransforms.cpp
index 54c6b44..597227b 100644
--- a/gm/textblobtransforms.cpp
+++ b/gm/textblobtransforms.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #include "Resources.h"
 #include "SkCanvas.h"
diff --git a/gm/textblobuseaftergpufree.cpp b/gm/textblobuseaftergpufree.cpp
index 44fd854..b892c7f 100644
--- a/gm/textblobuseaftergpufree.cpp
+++ b/gm/textblobuseaftergpufree.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #if SK_SUPPORT_GPU
 
diff --git a/gm/texteffects.cpp b/gm/texteffects.cpp
index e74d7a9..5e0f189 100644
--- a/gm/texteffects.cpp
+++ b/gm/texteffects.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkBlurMask.h"
 #include "SkBlurMaskFilter.h"
 #include "SkReadBuffer.h"
diff --git a/gm/tileimagefilter.cpp b/gm/tileimagefilter.cpp
index c7d3e37..c057235 100644
--- a/gm/tileimagefilter.cpp
+++ b/gm/tileimagefilter.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "sk_tool_utils.h"
 #include "SkColorFilterImageFilter.h"
 #include "SkColorMatrixFilter.h"
 #include "SkImage.h"
 #include "SkImageSource.h"
 #include "SkTileImageFilter.h"
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 #define WIDTH 400
 #define HEIGHT 200
diff --git a/gm/tilemodes.cpp b/gm/tilemodes.cpp
index b1f6d14..009ad64 100644
--- a/gm/tilemodes.cpp
+++ b/gm/tilemodes.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkColorFilter.h"
 #include "SkMaskFilter.h"
 #include "SkPath.h"
diff --git a/gm/tilemodes_scaled.cpp b/gm/tilemodes_scaled.cpp
index 580931f..807d63b 100644
--- a/gm/tilemodes_scaled.cpp
+++ b/gm/tilemodes_scaled.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkColorFilter.h"
 #include "SkMaskFilter.h"
 #include "SkPath.h"
diff --git a/gm/tinybitmap.cpp b/gm/tinybitmap.cpp
index fc226c1..0f0f137 100644
--- a/gm/tinybitmap.cpp
+++ b/gm/tinybitmap.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkColorPriv.h"
 #include "SkShader.h"
 #include "SkCanvas.h"
diff --git a/gm/transparency.cpp b/gm/transparency.cpp
index 5f32460..a998c0b 100644
--- a/gm/transparency.cpp
+++ b/gm/transparency.cpp
@@ -8,6 +8,7 @@
 #include "SkGradientShader.h"
 #include "SkSurface.h"
 #include "gm.h"
+#include "sk_tool_utils.h"
 
 static void make_transparency(SkCanvas* canvas, SkScalar width, SkScalar height) {
     SkPoint pts[2];
diff --git a/gm/typeface.cpp b/gm/typeface.cpp
index 4ed3956..807b49c 100644
--- a/gm/typeface.cpp
+++ b/gm/typeface.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "Resources.h"
 #include "SkCanvas.h"
 #include "SkString.h"
diff --git a/gm/variedtext.cpp b/gm/variedtext.cpp
index 9ee8ff6..563d138 100644
--- a/gm/variedtext.cpp
+++ b/gm/variedtext.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkPath.h"
 #include "SkTypeface.h"
diff --git a/gm/verttext2.cpp b/gm/verttext2.cpp
index 9afedc6..d7da041 100644
--- a/gm/verttext2.cpp
+++ b/gm/verttext2.cpp
@@ -10,6 +10,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkCanvas.h"
 #include "SkTypeface.h"
 
diff --git a/gm/windowrectangles.cpp b/gm/windowrectangles.cpp
index d0bae11..8110574 100644
--- a/gm/windowrectangles.cpp
+++ b/gm/windowrectangles.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkClipStack.h"
 #include "SkRRect.h"
 
diff --git a/gm/xfermodes.cpp b/gm/xfermodes.cpp
index bb03c72..5d23104 100644
--- a/gm/xfermodes.cpp
+++ b/gm/xfermodes.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkBitmap.h"
 #include "SkShader.h"
 #include "SkPM4f.h"
diff --git a/gm/xfermodes2.cpp b/gm/xfermodes2.cpp
index 4d6b5e7..891a864 100644
--- a/gm/xfermodes2.cpp
+++ b/gm/xfermodes2.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkBitmap.h"
 #include "SkShader.h"
 #include "SkBlendModePriv.h"
diff --git a/gm/xfermodes3.cpp b/gm/xfermodes3.cpp
index c2d4d93..f977b66 100644
--- a/gm/xfermodes3.cpp
+++ b/gm/xfermodes3.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "gm.h"
+#include "sk_tool_utils.h"
 #include "SkBitmap.h"
 #include "SkGradientShader.h"
 #include "SkSurface.h"