Hide setDrawLooper -- deprecate loopers

Guarded with SK_SUPPORT_LEGACY_DRAWLOOPER

Bug: skia:4783
Change-Id: I4a47513624bc5c09816f44e107917dc8028adb94
Reviewed-on: https://skia-review.googlesource.com/c/189871
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Auto-Submit: Mike Reed <reed@google.com>
diff --git a/bench/BlurRoundRectBench.cpp b/bench/BlurRoundRectBench.cpp
index 085a8eb..5b7bcd8 100644
--- a/bench/BlurRoundRectBench.cpp
+++ b/bench/BlurRoundRectBench.cpp
@@ -62,7 +62,9 @@
         dullPaint.setAntiAlias(true);
 
         SkPaint loopedPaint;
+#ifdef SK_SUPPORT_LEGACY_DRAWLOOPER
         loopedPaint.setLooper(looperBuilder.detach());
+#endif
         loopedPaint.setAntiAlias(true);
         loopedPaint.setColor(SK_ColorCYAN);
 
diff --git a/bench/RectoriBench.cpp b/bench/RectoriBench.cpp
index c0d2155..990a8a9 100644
--- a/bench/RectoriBench.cpp
+++ b/bench/RectoriBench.cpp
@@ -52,7 +52,9 @@
             SkScalar translate = 2.0f * size;
 
             SkPaint paint;
+#ifdef SK_SUPPORT_LEGACY_DRAWLOOPER
             paint.setLooper(this->createLooper(-translate, blurSigma));
+#endif
             paint.setColor(0xff000000 | Random.nextU());
             paint.setAntiAlias(true);
 
diff --git a/gm/blurroundrect.cpp b/gm/blurroundrect.cpp
index b7d0800..4116638 100644
--- a/gm/blurroundrect.cpp
+++ b/gm/blurroundrect.cpp
@@ -69,7 +69,9 @@
         SkPaint paint;
         canvas->drawRect(fRRect.rect(), paint);
 
+#ifdef SK_SUPPORT_LEGACY_DRAWLOOPER
         paint.setLooper(looperBuilder.detach());
+#endif
         paint.setColor(SK_ColorCYAN);
         paint.setAntiAlias(true);
 
diff --git a/gm/circles.cpp b/gm/circles.cpp
index 9127c0a..0c87469 100644
--- a/gm/circles.cpp
+++ b/gm/circles.cpp
@@ -70,6 +70,7 @@
         fPaints.push_back(p);
         }
 
+#ifdef SK_SUPPORT_LEGACY_DRAWLOOPER
         {
         // AA with blur
         SkPaint p;
@@ -79,6 +80,7 @@
                                      SkIntToScalar(5), SkIntToScalar(10)));
         fPaints.push_back(p);
         }
+#endif
 
         {
         // AA with stroke style
diff --git a/gm/drawlooper.cpp b/gm/drawlooper.cpp
index a9fe09f..017ec26 100644
--- a/gm/drawlooper.cpp
+++ b/gm/drawlooper.cpp
@@ -37,7 +37,9 @@
 
         SkPaint  paint;
         paint.setAntiAlias(true);
+#ifdef SK_SUPPORT_LEGACY_DRAWLOOPER
         paint.setLooper(fLooper);
+#endif
 
         SkFont font(sk_tool_utils::create_portable_typeface(), 72);
 
diff --git a/gm/megalooper.cpp b/gm/megalooper.cpp
index e2e53e7..16c07ae 100644
--- a/gm/megalooper.cpp
+++ b/gm/megalooper.cpp
@@ -130,7 +130,9 @@
         for (int i = 0; i < 4; ++i) {
             SkPaint loopPaint;
 
+#ifdef SK_SUPPORT_LEGACY_DRAWLOOPER
             loopPaint.setLooper(create1Looper(-kOffsetToOutsideClip, 0, gColors[i]));
+#endif
             loopPaint.setAntiAlias(true);
 
             SkRect outerClip = {
@@ -191,7 +193,9 @@
 
         SkPaint paint;
         paint.setAntiAlias(true);
+#ifdef SK_SUPPORT_LEGACY_DRAWLOOPER
         paint.setLooper(create4Looper(-kOffsetToOutsideClip-kHalfSquareSize, 0));
+#endif
 
         canvas->save();
             canvas->clipRect(outerClip, kIntersect_SkClipOp);
diff --git a/gm/rects.cpp b/gm/rects.cpp
index 2786be7..1da6878 100644
--- a/gm/rects.cpp
+++ b/gm/rects.cpp
@@ -85,6 +85,7 @@
             fPaints.push_back(p);
         }
 
+#ifdef SK_SUPPORT_LEGACY_DRAWLOOPER
         {
             // AA with blur
             SkPaint p;
@@ -95,6 +96,7 @@
                                          SkIntToScalar(5), SkIntToScalar(10)));
             fPaints.push_back(p);
         }
+#endif
 
         {
             // AA with stroke style
diff --git a/gm/shadows.cpp b/gm/shadows.cpp
index 1160e49..e0a2d01 100644
--- a/gm/shadows.cpp
+++ b/gm/shadows.cpp
@@ -88,7 +88,9 @@
         for (size_t i = 0; i < SK_ARRAY_COUNT(shadowLoopers); ++i) {
             SkAutoCanvasRestore acr(canvas, true);
 
+#ifdef SK_SUPPORT_LEGACY_DRAWLOOPER
             paint.setLooper(shadowLoopers[i]);
+#endif
 
             canvas->translate(SkIntToScalar((unsigned int)i*40), SkIntToScalar(0));
             setup(&paint, gRec[0].fColor, gRec[0].fStrokeWidth);
diff --git a/gm/textbloblooper.cpp b/gm/textbloblooper.cpp
index 51e8155..b2764fa 100644
--- a/gm/textbloblooper.cpp
+++ b/gm/textbloblooper.cpp
@@ -230,7 +230,9 @@
 
         int y = 0;
         for (int looper = 0; looper < fLoopers.count(); looper++) {
+#ifdef SK_SUPPORT_LEGACY_DRAWLOOPER
             paint.setLooper(fLoopers[looper]);
+#endif
             canvas->save();
             canvas->translate(0, SkIntToScalar(y));
             canvas->drawTextBlob(fBlob, 0, 0, paint);
diff --git a/include/core/SkPaint.h b/include/core/SkPaint.h
index 3d6a938..babed4b 100644
--- a/include/core/SkPaint.h
+++ b/include/core/SkPaint.h
@@ -561,6 +561,7 @@
     */
     SkDrawLooper* getLooper() const { return fDrawLooper.get(); }
 
+#ifdef SK_SUPPORT_LEGACY_DRAWLOOPER
     /** Sets SkDrawLooper to drawLooper, decreasing SkRefCnt of the previous
         drawLooper.  Pass nullptr to clear SkDrawLooper and leave SkDrawLooper effect on
         drawing unaltered.
@@ -575,6 +576,7 @@
         (see skbug.com/6259)
     */
     void setLooper(sk_sp<SkDrawLooper> drawLooper);
+#endif
 
     /** Returns true if SkPaint prevents all drawing;
         otherwise, the SkPaint may or may not allow drawing.
diff --git a/samplecode/SampleTiling.cpp b/samplecode/SampleTiling.cpp
index 14e40c4..21d3cb6 100644
--- a/samplecode/SampleTiling.cpp
+++ b/samplecode/SampleTiling.cpp
@@ -107,7 +107,9 @@
                     SkPaint p;
                     SkString str;
                     p.setDither(true);
+#ifdef SK_SUPPORT_LEGACY_DRAWLOOPER
                     p.setLooper(fLooper);
+#endif
                     str.printf("[%s,%s]", gModeNames[kx], gModeNames[ky]);
 
                     SkTextUtils::DrawString(textCanvas, str.c_str(), x + r.width()/2, y, SkFont(), p,
@@ -139,7 +141,9 @@
                 }
                 if (textCanvas) {
                     SkPaint p;
+#ifdef SK_SUPPORT_LEGACY_DRAWLOOPER
                     p.setLooper(fLooper);
+#endif
                     textCanvas->drawString(
                             SkStringPrintf("%s, %s", gConfigNames[i], gFilterNames[j]),
                             x, y + r.height() * 2 / 3, SkFont(), p);
diff --git a/samplecode/SampleUnpremul.cpp b/samplecode/SampleUnpremul.cpp
index da7e42d..e2b34da 100644
--- a/samplecode/SampleUnpremul.cpp
+++ b/samplecode/SampleUnpremul.cpp
@@ -81,7 +81,9 @@
         auto looper(
             SkBlurDrawLooper::Make(SK_ColorBLUE, SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(2)),
                                    0, 0));
+#ifdef SK_SUPPORT_LEGACY_DRAWLOOPER
         paint.setLooper(looper);
+#endif
         SkScalar height = font.getMetrics(nullptr);
         if (!fDecodeSucceeded) {
             SkString failure;
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index bf9b690..12f0ea3 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -472,8 +472,10 @@
 
     SkPaint* paint = fLazyPaintPerLooper.set(fLazyPaintInit.isValid() ?
                                              *fLazyPaintInit.get() : fOrigPaint);
+#ifdef SK_SUPPORT_LEGACY_DRAWLOOPER
     // never want our downstream clients (i.e. devices) to see loopers
     paint->setDrawLooper(nullptr);
+#endif
 
     if (fTempLayerForImageFilter) {
         paint->setImageFilter(nullptr);
diff --git a/src/core/SkColorSpaceXformer.cpp b/src/core/SkColorSpaceXformer.cpp
index 09f399c..d31b0c5 100644
--- a/src/core/SkColorSpaceXformer.cpp
+++ b/src/core/SkColorSpaceXformer.cpp
@@ -169,9 +169,11 @@
         dst.setColorFilter(this->apply(cf));
     }
 
+#ifdef SK_SUPPORT_LEGACY_DRAWLOOPER
     if (auto looper = src.getDrawLooper()) {
         dst.setDrawLooper(looper->makeColorSpace(this));
     }
+#endif
 
     if (auto imageFilter = src.getImageFilter()) {
         dst.setImageFilter(this->apply(imageFilter));
diff --git a/src/core/SkDrawLooper.cpp b/src/core/SkDrawLooper.cpp
index db6bd54..8b1a3b5 100644
--- a/src/core/SkDrawLooper.cpp
+++ b/src/core/SkDrawLooper.cpp
@@ -20,7 +20,9 @@
     for (;;) {
         SkPaint p(paint);
         if (context->next(&canvas, &p)) {
+#ifdef SK_SUPPORT_LEGACY_DRAWLOOPER
             p.setLooper(nullptr);
+#endif
             if (!p.canComputeFastBounds()) {
                 return false;
             }
@@ -47,7 +49,9 @@
         if (context->next(&canvas, &p)) {
             SkRect r(src);
 
+#ifdef SK_SUPPORT_LEGACY_DRAWLOOPER
             p.setLooper(nullptr);
+#endif
             p.computeFastBounds(r, &r);
             canvas.getTotalMatrix().mapRect(&r);
 
diff --git a/src/core/SkPaint.cpp b/src/core/SkPaint.cpp
index 150fcce..85dc6ca 100644
--- a/src/core/SkPaint.cpp
+++ b/src/core/SkPaint.cpp
@@ -243,9 +243,14 @@
 MOVE_FIELD(ColorFilter)
 MOVE_FIELD(PathEffect)
 MOVE_FIELD(MaskFilter)
+#ifdef SK_SUPPORT_LEGACY_DRAWLOOPER
 MOVE_FIELD(DrawLooper)
+#endif
 #undef MOVE_FIELD
+
+#ifdef SK_SUPPORT_LEGACY_DRAWLOOPER
 void SkPaint::setLooper(sk_sp<SkDrawLooper> looper) { fDrawLooper = std::move(looper); }
+#endif
 
 ///////////////////////////////////////////////////////////////////////////////
 
@@ -449,14 +454,20 @@
         paint->setMaskFilter(buffer.readMaskFilter());
         paint->setColorFilter(buffer.readColorFilter());
         (void)buffer.read32();  // use to be SkRasterizer
+#ifdef SK_SUPPORT_LEGACY_DRAWLOOPER
         paint->setLooper(buffer.readDrawLooper());
+#else
+        (void)buffer.readDrawLooper();
+#endif
         paint->setImageFilter(buffer.readImageFilter());
     } else {
         paint->setPathEffect(nullptr);
         paint->setShader(nullptr);
         paint->setMaskFilter(nullptr);
         paint->setColorFilter(nullptr);
+#ifdef SK_SUPPORT_LEGACY_DRAWLOOPER
         paint->setLooper(nullptr);
+#endif
         paint->setImageFilter(nullptr);
     }
 
@@ -489,14 +500,20 @@
         paint->setShader(buffer.readShader());
         paint->setMaskFilter(buffer.readMaskFilter());
         paint->setColorFilter(buffer.readColorFilter());
+#ifdef SK_SUPPORT_LEGACY_DRAWLOOPER
         paint->setLooper(buffer.readDrawLooper());
+#else
+        (void)buffer.readDrawLooper();
+#endif
         paint->setImageFilter(buffer.readImageFilter());
     } else {
         paint->setPathEffect(nullptr);
         paint->setShader(nullptr);
         paint->setMaskFilter(nullptr);
         paint->setColorFilter(nullptr);
+#ifdef SK_SUPPORT_LEGACY_DRAWLOOPER
         paint->setLooper(nullptr);
+#endif
         paint->setImageFilter(nullptr);
     }
 
diff --git a/tests/PaintTest.cpp b/tests/PaintTest.cpp
index 762cf1f..20187ec 100644
--- a/tests/PaintTest.cpp
+++ b/tests/PaintTest.cpp
@@ -135,7 +135,9 @@
     paint.setStrokeWidth(SkIntToScalar(2));
     // set a few pointers
     SkLayerDrawLooper::Builder looperBuilder;
+#ifdef SK_SUPPORT_LEGACY_DRAWLOOPER
     paint.setLooper(looperBuilder.detach());
+#endif
     paint.setMaskFilter(SkMaskFilter::MakeBlur(kNormal_SkBlurStyle,
                                                SkBlurMask::ConvertRadiusToSigma(1)));
 
@@ -263,7 +265,9 @@
     SkPaint paint;
     paint.setColor(0x00AABBCC);
     paint.setBlendMode(SkBlendMode::kModulate);
+#ifdef SK_SUPPORT_LEGACY_DRAWLOOPER
     paint.setLooper(nullptr);  // Default value, ignored.
+#endif
 
     SkBinaryWriteBuffer writer;
     SkPaintPriv::Flatten(paint, writer);
diff --git a/tests/QuickRejectTest.cpp b/tests/QuickRejectTest.cpp
index 4bffe13..02752bf 100644
--- a/tests/QuickRejectTest.cpp
+++ b/tests/QuickRejectTest.cpp
@@ -80,6 +80,7 @@
     canvas.drawBitmap(src, SkIntToScalar(-10), 0, &paint);
     REPORTER_ASSERT(reporter, 0 == *dst.getAddr32(5, 5));
 
+#ifdef SK_SUPPORT_LEGACY_DRAWLOOPER
     // now install our looper, which will draw, since it internally translates
     // to the left. The test is to ensure that canvas' quickReject machinary
     // allows us through, even though sans-looper we would look like we should
@@ -87,6 +88,7 @@
     paint.setLooper(sk_make_sp<TestLooper>());
     canvas.drawBitmap(src, SkIntToScalar(-10), 0, &paint);
     REPORTER_ASSERT(reporter, 0xFFFFFFFF == *dst.getAddr32(5, 5));
+#endif
 }
 
 static void test_layers(skiatest::Reporter* reporter) {
@@ -171,6 +173,7 @@
     canvas.quickReject(SkRect::MakeWH(100.0f, 100.0f));
 }
 
+#ifdef SK_SUPPORT_LEGACY_DRAWLOOPER
 #include "SkLayerDrawLooper.h"
 #include "SkSurface.h"
 DEF_TEST(looper_nothingtodraw, reporter) {
@@ -196,3 +199,4 @@
     // See https://skia-review.googlesource.com/c/skia/+/121220
     surf->getCanvas()->drawRect({1, 1, 10, 10}, paint);
 }
+#endif