Revert "Add GrDisableColorXPFactory::makeXferProcessor()"

This reverts commit 11157ef97ae2c5bf844ed6b7f4cbda829f5f24af.

Reason for revert: breaking bots

Original change's description:
> Add GrDisableColorXPFactory::makeXferProcessor()
> 
> This allows us to access the actual XP for working directly with
> pipelines.
> 
> Bug: skia:
> Change-Id: I71e7c2e9d69f464685e28b4f4a85847f0496b864
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208345
> Commit-Queue: Chris Dalton <csmartdalton@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>

TBR=egdaniel@google.com,csmartdalton@google.com

Change-Id: Ia12f17d955702b13f33753b352cb3ae232881175
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208662
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
diff --git a/src/gpu/effects/GrDisableColorXP.cpp b/src/gpu/effects/GrDisableColorXP.cpp
index 9f4ff53..dfbf903 100644
--- a/src/gpu/effects/GrDisableColorXP.cpp
+++ b/src/gpu/effects/GrDisableColorXP.cpp
@@ -19,23 +19,36 @@
  */
 class DisableColorXP : public GrXferProcessor {
 public:
-    DisableColorXP() : INHERITED(kDisableColorXP_ClassID) {}
+    DisableColorXP()
+    : INHERITED(kDisableColorXP_ClassID) {}
+
+    const char* name() const override { return "Disable Color"; }
+
+    GrGLSLXferProcessor* createGLSLInstance() const override;
 
 private:
-    const char* name() const override { return "Disable Color"; }
-    bool onIsEqual(const GrXferProcessor& xpBase) const override { return true; }
-    void onGetGLSLProcessorKey(const GrShaderCaps& caps, GrProcessorKeyBuilder* b) const override {
-        return;  // No key.
+
+    void onGetGLSLProcessorKey(const GrShaderCaps& caps, GrProcessorKeyBuilder* b) const override;
+
+    void onGetBlendInfo(GrXferProcessor::BlendInfo* blendInfo) const override;
+
+    bool onIsEqual(const GrXferProcessor& xpBase) const override {
+        return true;
     }
-    void onGetBlendInfo(GrXferProcessor::BlendInfo* blendInfo) const override {
-        blendInfo->fWriteColor = false;
-    }
-    GrGLSLXferProcessor* createGLSLInstance() const override;
 
     typedef GrXferProcessor INHERITED;
 };
 
+///////////////////////////////////////////////////////////////////////////////
+
 class GLDisableColorXP : public GrGLSLXferProcessor {
+public:
+    GLDisableColorXP(const GrProcessor&) {}
+
+    ~GLDisableColorXP() override {}
+
+    static void GenKey(const GrProcessor&, const GrShaderCaps&, GrProcessorKeyBuilder*) {}
+
 private:
     void emitOutputsForBlendState(const EmitArgs& args) override {
         if (args.fShaderCaps->mustWriteToFragColor()) {
@@ -59,12 +72,26 @@
     typedef GrGLSLXferProcessor INHERITED;
 };
 
-GrGLSLXferProcessor* DisableColorXP::createGLSLInstance() const {
-    return new GLDisableColorXP();
+///////////////////////////////////////////////////////////////////////////////
+
+void DisableColorXP::onGetGLSLProcessorKey(const GrShaderCaps& caps, GrProcessorKeyBuilder* b) const {
+    GLDisableColorXP::GenKey(*this, caps, b);
 }
 
-GrDisableColorXPFactory::GrDisableColorXPFactory()
-        : fXferProcessor(new DisableColorXP()) {
+GrGLSLXferProcessor* DisableColorXP::createGLSLInstance() const { return new GLDisableColorXP(*this); }
+
+void DisableColorXP::onGetBlendInfo(GrXferProcessor::BlendInfo* blendInfo) const {
+    blendInfo->fWriteColor = false;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+sk_sp<const GrXferProcessor> GrDisableColorXPFactory::makeXferProcessor(
+        const GrProcessorAnalysisColor&,
+        GrProcessorAnalysisCoverage,
+        bool hasMixedSamples,
+        const GrCaps& caps,
+        GrClampType clampType) const {
+    return sk_sp<const GrXferProcessor>(new DisableColorXP);
 }
 
 GR_DEFINE_XP_FACTORY_TEST(GrDisableColorXPFactory);
diff --git a/src/gpu/effects/GrDisableColorXP.h b/src/gpu/effects/GrDisableColorXP.h
index 41384c2..5e52264 100644
--- a/src/gpu/effects/GrDisableColorXP.h
+++ b/src/gpu/effects/GrDisableColorXP.h
@@ -23,30 +23,24 @@
 #endif
 class GrDisableColorXPFactory : public GrXPFactory {
 public:
-    static const GrDisableColorXPFactory* Get() {
-        static const GrDisableColorXPFactory gDisableColorXPFactory;
-        return &gDisableColorXPFactory;
-    }
-
-    sk_sp<const GrXferProcessor> makeXferProcessor() const { return fXferProcessor; }
+    static const GrXPFactory* Get();
 
 private:
-    GrDisableColorXPFactory();
+    constexpr GrDisableColorXPFactory() {}
 
-    AnalysisProperties analysisProperties(
-            const GrProcessorAnalysisColor&, const GrProcessorAnalysisCoverage&, const GrCaps&,
-            GrClampType) const override {
+    AnalysisProperties analysisProperties(const GrProcessorAnalysisColor&,
+                                          const GrProcessorAnalysisCoverage&,
+                                          const GrCaps&,
+                                          GrClampType) const override {
         return AnalysisProperties::kCompatibleWithCoverageAsAlpha |
                AnalysisProperties::kIgnoresInputColor;
     }
 
-    sk_sp<const GrXferProcessor> makeXferProcessor(
-            const GrProcessorAnalysisColor&, GrProcessorAnalysisCoverage, bool hasMixedSamples,
-            const GrCaps&, GrClampType) const override {
-        return this->makeXferProcessor();
-    }
-
-    const sk_sp<const GrXferProcessor> fXferProcessor;
+    sk_sp<const GrXferProcessor> makeXferProcessor(const GrProcessorAnalysisColor&,
+                                                   GrProcessorAnalysisCoverage,
+                                                   bool hasMixedSamples,
+                                                   const GrCaps&,
+                                                   GrClampType) const override;
 
     GR_DECLARE_XP_FACTORY_TEST
 
@@ -59,4 +53,14 @@
 #pragma clang diagnostic pop
 #endif
 
+inline const GrXPFactory* GrDisableColorXPFactory::Get() {
+    // If this is constructed as static constexpr by cl.exe (2015 SP2) the vtable is null.
+#ifdef SK_BUILD_FOR_WIN
+    static const GrDisableColorXPFactory gDisableColorXPFactory;
+#else
+    static constexpr const GrDisableColorXPFactory gDisableColorXPFactory;
+#endif
+    return &gDisableColorXPFactory;
+}
+
 #endif