Completely remove graphite #ifdefs from subruncontainer

This threads a RendererData struct through the AtlasDrawDelegate
call so the Graphite Device can choose the right renderer with
one less layer of abstraction.

After this CL, `git grep SK_GRAPHITE` returns 0 hits in
src/text

Change-Id: I2d02ba216c6d5ed60ac42901754da556bd5b0f5a
Bug: skia:14317
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/712862
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
diff --git a/src/gpu/ganesh/Device.cpp b/src/gpu/ganesh/Device.cpp
index aa94ad1..8eef9be 100644
--- a/src/gpu/ganesh/Device.cpp
+++ b/src/gpu/ganesh/Device.cpp
@@ -1433,7 +1433,8 @@
     auto atlasDelegate = [&](const sktext::gpu::AtlasSubRun* subRun,
                              SkPoint drawOrigin,
                              const SkPaint& paint,
-                             sk_sp<SkRefCnt> subRunStorage) {
+                             sk_sp<SkRefCnt> subRunStorage,
+                             sktext::gpu::RendererData) {
         auto[drawingClip, op] = subRun->makeAtlasTextOp(
                 this->clip(), matrixProvider.localToDevice(), drawOrigin, paint,
                 std::move(subRunStorage), fSurfaceDrawContext.get());
diff --git a/src/gpu/ganesh/SurfaceDrawContext.cpp b/src/gpu/ganesh/SurfaceDrawContext.cpp
index d697164..b73cad9 100644
--- a/src/gpu/ganesh/SurfaceDrawContext.cpp
+++ b/src/gpu/ganesh/SurfaceDrawContext.cpp
@@ -351,7 +351,8 @@
     auto atlasDelegate = [&](const sktext::gpu::AtlasSubRun* subRun,
                              SkPoint drawOrigin,
                              const SkPaint& paint,
-                             sk_sp<SkRefCnt> subRunStorage) {
+                             sk_sp<SkRefCnt> subRunStorage,
+                             sktext::gpu::RendererData) {
         auto[drawingClip, op] = subRun->makeAtlasTextOp(
                 clip, viewMatrix.localToDevice(), drawOrigin, paint, std::move(subRunStorage),
                 this);
diff --git a/src/gpu/graphite/Device.cpp b/src/gpu/graphite/Device.cpp
index 360d15e..3f2a60e 100644
--- a/src/gpu/graphite/Device.cpp
+++ b/src/gpu/graphite/Device.cpp
@@ -824,8 +824,9 @@
     return [&](const sktext::gpu::AtlasSubRun* subRun,
                SkPoint drawOrigin,
                const SkPaint& paint,
-               sk_sp<SkRefCnt> subRunStorage) {
-        this->drawAtlasSubRun(subRun, drawOrigin, paint, subRunStorage);
+               sk_sp<SkRefCnt> subRunStorage,
+               sktext::gpu::RendererData rendererData) {
+        this->drawAtlasSubRun(subRun, drawOrigin, paint, subRunStorage, rendererData);
     };
 }
 
@@ -844,7 +845,8 @@
 void Device::drawAtlasSubRun(const sktext::gpu::AtlasSubRun* subRun,
                              SkPoint drawOrigin,
                              const SkPaint& paint,
-                             sk_sp<SkRefCnt> subRunStorage) {
+                             sk_sp<SkRefCnt> subRunStorage,
+                             sktext::gpu::RendererData rendererData) {
     const int subRunEnd = subRun->glyphCount();
     auto regenerateDelegate = [&](sktext::gpu::GlyphVector* glyphs,
                                   int begin,
@@ -877,7 +879,8 @@
                                                    this->localToDeviceTransform().inverse(),
                                                    subRunCursor,
                                                    glyphsRegenerated,
-                                                   fRecorder)),
+                                                   fRecorder,
+                                                   rendererData)),
                                subRunPaint,
                                DefaultFillStyle(),
                                DrawFlags::kIgnorePathEffect | DrawFlags::kIgnoreMaskFilter);
@@ -1135,11 +1138,16 @@
                                        const SkStrokeRec& style,
                                        bool requireMSAA) const {
     const RendererProvider* renderers = fRecorder->priv().rendererProvider();
+    SkASSERT(renderers);
     SkStrokeRec::Style type = style.getStyle();
 
     if (geometry.isSubRun()) {
         SkASSERT(!requireMSAA);
-        return geometry.subRunData().subRun()->renderer(renderers);
+        sktext::gpu::RendererData rendererData = geometry.subRunData().rendererData();
+        if (!rendererData.isSDF) {
+            return renderers->bitmapText();
+        }
+        return renderers->sdfText(rendererData.isLCD);
     } else if (geometry.isVertices()) {
         SkVerticesPriv info(geometry.vertices()->priv());
         return renderers->vertices(info.mode(), info.hasColors(), info.hasTexCoords());
diff --git a/src/gpu/graphite/Device.h b/src/gpu/graphite/Device.h
index 877abcc..abc3c2e5 100644
--- a/src/gpu/graphite/Device.h
+++ b/src/gpu/graphite/Device.h
@@ -213,7 +213,8 @@
     void drawAtlasSubRun(const sktext::gpu::AtlasSubRun*,
                          SkPoint drawOrigin,
                          const SkPaint& paint,
-                         sk_sp<SkRefCnt> subRunStorage);
+                         sk_sp<SkRefCnt> subRunStorage,
+                         sktext::gpu::RendererData);
 
     sk_sp<sktext::gpu::Slug> convertGlyphRunListToSlug(const sktext::GlyphRunList& glyphRunList,
                                                        const SkPaint& initialPaint,
diff --git a/src/gpu/graphite/geom/SubRunData.h b/src/gpu/graphite/geom/SubRunData.h
index 74ac30b..5af74f6 100644
--- a/src/gpu/graphite/geom/SubRunData.h
+++ b/src/gpu/graphite/geom/SubRunData.h
@@ -10,6 +10,7 @@
 
 #include "include/core/SkM44.h"
 #include "src/gpu/graphite/geom/Rect.h"
+#include "src/text/gpu/SubRunContainer.h"
 
 namespace sktext::gpu { class AtlasSubRun; }
 
@@ -32,14 +33,16 @@
                const SkM44& deviceToLocal,
                int startGlyphIndex,
                int glyphCount,
-               Recorder* recorder)
-            : fSubRun(subRun)
-            , fSupportDataKeepAlive(std::move(supportDataKeepAlive))
-            , fBounds(deviceBounds)
-            , fDeviceToLocal(deviceToLocal)
-            , fStartGlyphIndex(startGlyphIndex)
-            , fGlyphCount(glyphCount)
-            , fRecorder(recorder) {}
+               Recorder* recorder,
+               sktext::gpu::RendererData rendererData)
+        : fSubRun(subRun)
+        , fSupportDataKeepAlive(std::move(supportDataKeepAlive))
+        , fBounds(deviceBounds)
+        , fDeviceToLocal(deviceToLocal)
+        , fStartGlyphIndex(startGlyphIndex)
+        , fGlyphCount(glyphCount)
+        , fRecorder(recorder)
+        , fRendererData(rendererData) {}
 
     ~SubRunData() = default;
 
@@ -59,6 +62,7 @@
     int startGlyphIndex() const { return fStartGlyphIndex; }
     int glyphCount() const { return fGlyphCount; }
     Recorder* recorder() const { return fRecorder; }
+    const sktext::gpu::RendererData& rendererData() const { return fRendererData; }
 
 private:
     const sktext::gpu::AtlasSubRun* fSubRun;
@@ -70,6 +74,7 @@
     int fStartGlyphIndex;
     int fGlyphCount;
     Recorder* fRecorder; // this SubRun can only be associated with this Recorder's atlas
+    sktext::gpu::RendererData fRendererData;
 };
 
 } // namespace skgpu::graphite
diff --git a/src/text/gpu/SubRunContainer.cpp b/src/text/gpu/SubRunContainer.cpp
index 0eddcf5..25ee08f 100644
--- a/src/text/gpu/SubRunContainer.cpp
+++ b/src/text/gpu/SubRunContainer.cpp
@@ -78,13 +78,6 @@
 using AtlasTextOp = skgpu::ganesh::AtlasTextOp;
 #endif  // defined(SK_GANESH)
 
-#if defined(SK_GRAPHITE)
-#include "src/gpu/graphite/Device.h"
-#include "src/gpu/graphite/DrawWriter.h"
-#include "src/gpu/graphite/Renderer.h"
-#include "src/gpu/graphite/RendererProvider.h"
-#endif
-
 using namespace skia_private;
 using namespace skglyph;
 
@@ -120,20 +113,6 @@
 using namespace sktext;
 using namespace sktext::gpu;
 
-#if defined(SK_GRAPHITE)
-namespace gr = skgpu::graphite;
-
-using BindBufferInfo = gr::BindBufferInfo;
-using BufferType = gr::BufferType;
-using Device = gr::Device;
-using DrawWriter = gr::DrawWriter;
-using Recorder = gr::Recorder;
-using Renderer = gr::Renderer;
-using RendererProvider = gr::RendererProvider;
-using TextureProxy = gr::TextureProxy;
-using Transform = gr::Transform;
-#endif
-
 namespace {
 #if defined(SK_GANESH)
 SkPMColor4f calculate_colors(skgpu::ganesh::SurfaceDrawContext* sdc,
@@ -746,7 +725,8 @@
               const SkPaint& paint,
               sk_sp<SkRefCnt> subRunStorage,
               AtlasDrawDelegate drawAtlas) const override {
-        drawAtlas(this, drawOrigin, paint, std::move(subRunStorage));
+        drawAtlas(this, drawOrigin, paint, std::move(subRunStorage),
+                  {/* isSDF = */false, /* isLCD = */false});
     }
 
     int unflattenSize() const override {
@@ -871,14 +851,6 @@
 
     const VertexFiller& vertexFiller() const override { return fVertexFiller; }
 
-#if defined(SK_GRAPHITE)
-
-    const Renderer* renderer(const RendererProvider* renderers) const override {
-        return renderers->bitmapText();
-    }
-
-#endif  // defined(SK_GRAPHITE)
-
     bool canReuse(const SkPaint& paint, const SkMatrix& positionMatrix) const override {
         auto [reuse, _] = fVertexFiller.deviceRectAndCheckTransform(positionMatrix);
         return reuse;
@@ -992,7 +964,8 @@
               const SkPaint& paint,
               sk_sp<SkRefCnt> subRunStorage,
               AtlasDrawDelegate drawAtlas) const override {
-        drawAtlas(this, drawOrigin, paint, std::move(subRunStorage));
+        drawAtlas(this, drawOrigin, paint, std::move(subRunStorage),
+                  {/* isSDF = */false, /* isLCD = */false});
     }
 
 #if defined(SK_GANESH)
@@ -1063,14 +1036,6 @@
 
     const VertexFiller& vertexFiller() const override { return fVertexFiller; }
 
-#if defined(SK_GRAPHITE)
-
-    const Renderer* renderer(const RendererProvider* renderers) const override {
-        return renderers->bitmapText();
-    }
-
-#endif  // SK_GRAPHITE
-
 protected:
     SubRunStreamTag subRunStreamTag() const override {
         return SubRunStreamTag::kTransformMaskStreamTag;
@@ -1230,7 +1195,8 @@
               const SkPaint& paint,
               sk_sp<SkRefCnt> subRunStorage,
               AtlasDrawDelegate drawAtlas) const override {
-        drawAtlas(this, drawOrigin, paint, std::move(subRunStorage));
+        drawAtlas(this, drawOrigin, paint, std::move(subRunStorage),
+                  {/* isSDF = */true, /* isLCD = */fUseLCDText});
     }
 
 #if defined(SK_GANESH)
@@ -1308,14 +1274,6 @@
 
     const VertexFiller& vertexFiller() const override { return fVertexFiller; }
 
-#if defined(SK_GRAPHITE)
-
-    const Renderer* renderer(const RendererProvider* renderers) const override {
-        return renderers->sdfText(fUseLCDText);
-    }
-
-#endif  // SK_GRAPHITE
-
 protected:
     SubRunStreamTag subRunStreamTag() const override { return SubRunStreamTag::kSDFTStreamTag; }
     void doFlatten(SkWriteBuffer& buffer) const override {
diff --git a/src/text/gpu/SubRunContainer.h b/src/text/gpu/SubRunContainer.h
index 16c04e5..ac341c2 100644
--- a/src/text/gpu/SubRunContainer.h
+++ b/src/text/gpu/SubRunContainer.h
@@ -50,19 +50,6 @@
 }
 #endif
 
-#if defined(SK_GRAPHITE)
-#include "src/gpu/graphite/geom/Rect.h"
-#include "src/gpu/graphite/geom/SubRunData.h"
-#include "src/gpu/graphite/geom/Transform_graphite.h"
-
-namespace skgpu::graphite {
-class DrawWriter;
-class Recorder;
-class Renderer;
-class RendererProvider;
-}
-#endif
-
 namespace sktext::gpu {
 class GlyphVector;
 class Glyph;
@@ -75,6 +62,11 @@
                                                                     skgpu::MaskFormat,
                                                                     int padding)>;
 
+struct RendererData {
+    bool isSDF = false;
+    bool isLCD = false;
+};
+
 // -- AtlasSubRun --------------------------------------------------------------------------------
 // AtlasSubRun is the API that AtlasTextOp uses to generate vertex data for drawing.
 //     There are three different ways AtlasSubRun is specialized.
@@ -123,20 +115,14 @@
 
     virtual const VertexFiller& vertexFiller() const = 0;
 
-#if defined(SK_GRAPHITE)
-
-    virtual const skgpu::graphite::Renderer* renderer(
-            const skgpu::graphite::RendererProvider*) const = 0;
-
-#endif
-
     virtual void testingOnly_packedGlyphIDToGlyph(StrikeCache* cache) const = 0;
 };
 
 using AtlasDrawDelegate = std::function<void(const sktext::gpu::AtlasSubRun* subRun,
                                              SkPoint drawOrigin,
                                              const SkPaint& paint,
-                                             sk_sp<SkRefCnt> subRunStorage)>;
+                                             sk_sp<SkRefCnt> subRunStorage,
+                                             sktext::gpu::RendererData)>;
 
 // -- SubRun -------------------------------------------------------------------------------------
 // SubRun defines the most basic functionality of a SubRun; the ability to draw, and the