Revert "More SkVertices implementation work"

This reverts commit 14583e11fd622c686993b741499060a6f3527055.

Reason for revert: leaking

Direct leak of 499104 byte(s) in 2112 object(s) allocated from:
    #0 0x1e195f0 in operator new(unsigned long) (/b/swarm_slave/w/irazbR79/out/Debug/dm+0x1e195f0)
    #1 0x3142b0a in SkVertices::Builder::init(SkCanvas::VertexMode, int, int, SkVertices::Sizes const&) (/b/swarm_slave/w/irazbR79/out/Debug/dm+0x3142b0a)


Original change's description:
> More SkVertices implementation work
> 
> - change virtuals to take const SkVertices*, as we do for TextBobs and Images
> - override onDrawVerticesObject in recording canvases
> - deserialize raw-vertices into SkVertices object
> 
> Possibly a follow-on would intercept the raw-form directly in canvas,
> and remove the virtual, and only support the object form.
> 
> BUG=skia:6366
> 
> Change-Id: I57a932667ccb3b3b004beb802ac3ae6898e3c6e0
> Reviewed-on: https://skia-review.googlesource.com/9633
> Commit-Queue: Mike Reed <reed@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> 

TBR=bsalomon@google.com,reed@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:6366

Change-Id: I40bb7a20698ef6aa0a9ef71a3d6ac4c1473e081c
Reviewed-on: https://skia-review.googlesource.com/9825
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
diff --git a/include/core/SkCanvas.h b/include/core/SkCanvas.h
index 85531bb..81841ba 100644
--- a/include/core/SkCanvas.h
+++ b/include/core/SkCanvas.h
@@ -1186,9 +1186,9 @@
                     shader. In this case the colors are combined with the texture
                     using mode, before being drawn using the paint.
         @param paint Specifies the shader/texture if present.
+        @param flags Allows the caller to ignore colors or texs on vertices.
      */
-    void drawVertices(const SkVertices* vertices, SkBlendMode mode, const SkPaint& paint);
-    void drawVertices(const sk_sp<SkVertices>& vertices, SkBlendMode mode, const SkPaint& paint);
+    void drawVertices(sk_sp<SkVertices> vertices, SkBlendMode mode, const SkPaint& paint);
 
     /**
      Draw a cubic coons patch
@@ -1445,10 +1445,12 @@
     virtual void onDrawVertices(VertexMode, int vertexCount, const SkPoint vertices[],
                                 const SkPoint texs[], const SkColor colors[], SkBlendMode,
                                 const uint16_t indices[], int indexCount, const SkPaint&);
-    virtual void onDrawVerticesObject(const SkVertices*, SkBlendMode, const SkPaint&);
+    virtual void onDrawVerticesObject(sk_sp<SkVertices> vertices, SkBlendMode mode,
+                                      const SkPaint& paint, uint32_t flags);
     // Subclasses can use this put the vertices object call on the regular draw vertices code path.
     // This is temporary until we teach recording and other SkCanvas classes about SkVertices.
-    void devolveSkVerticesToRaw(const SkVertices*, SkBlendMode, const SkPaint&);
+    void onDrawVerticesObjectFallback(sk_sp<SkVertices> vertices, SkBlendMode mode,
+                                      const SkPaint& paint, uint32_t flags);
 
     virtual void onDrawAtlas(const SkImage*, const SkRSXform[], const SkRect[], const SkColor[],
                              int count, SkBlendMode, const SkRect* cull, const SkPaint*);
diff --git a/include/private/SkRecords.h b/include/private/SkRecords.h
index ac492ec..b81bca8 100644
--- a/include/private/SkRecords.h
+++ b/include/private/SkRecords.h
@@ -21,7 +21,6 @@
 #include "SkRSXform.h"
 #include "SkString.h"
 #include "SkTextBlob.h"
-#include "SkVertices.h"
 
 // Windows.h, will pull in all of the GDI defines.  GDI #defines
 // DrawText to DrawTextA or DrawTextW, but SkRecord has a struct
@@ -346,8 +345,14 @@
         Optional<SkRect> cull);
 RECORD(DrawVertices, kDraw_Tag|kHasPaint_Tag,
         SkPaint paint;
-        sk_sp<SkVertices> vertices;
-        SkBlendMode bmode);
+        SkCanvas::VertexMode vmode;
+        int vertexCount;
+        PODArray<SkPoint> vertices;
+        PODArray<SkPoint> texs;
+        PODArray<SkColor> colors;
+        SkBlendMode bmode;
+        PODArray<uint16_t> indices;
+        int indexCount);
 RECORD(DrawAnnotation, 0,  // TODO: kDraw_Tag, skia:5548
        SkRect rect;
        SkString key;
diff --git a/include/utils/SkDumpCanvas.h b/include/utils/SkDumpCanvas.h
index 19e5da5..79a49bc 100644
--- a/include/utils/SkDumpCanvas.h
+++ b/include/utils/SkDumpCanvas.h
@@ -117,9 +117,9 @@
                         const SkColor colors[], SkBlendMode,
                         const uint16_t indices[], int indexCount,
                         const SkPaint&) override;
-    void onDrawVerticesObject(const SkVertices* vertices, SkBlendMode mode,
-                              const SkPaint& paint) override {
-        this->devolveSkVerticesToRaw(vertices, mode, paint);
+    void onDrawVerticesObject(sk_sp<SkVertices> vertices, SkBlendMode mode, const SkPaint& paint,
+                              uint32_t flags) override {
+        this->onDrawVerticesObjectFallback(std::move(vertices), mode, paint, flags);
     }
 
     void onClipRect(const SkRect&, SkClipOp, ClipEdgeStyle) override;
diff --git a/include/utils/SkLuaCanvas.h b/include/utils/SkLuaCanvas.h
index a11d72f..ce37413 100644
--- a/include/utils/SkLuaCanvas.h
+++ b/include/utils/SkLuaCanvas.h
@@ -63,9 +63,9 @@
                         const SkColor colors[], SkBlendMode,
                         const uint16_t indices[], int indexCount,
                         const SkPaint&) override;
-    void onDrawVerticesObject(const SkVertices* vertices, SkBlendMode mode,
-                              const SkPaint& paint) override {
-        this->devolveSkVerticesToRaw(vertices, mode, paint);
+    void onDrawVerticesObject(sk_sp<SkVertices> vertices, SkBlendMode mode, const SkPaint& paint,
+                              uint32_t flags) override {
+        this->onDrawVerticesObjectFallback(std::move(vertices), mode, paint, flags);
     }
 
     void onClipRect(const SkRect&, SkClipOp, ClipEdgeStyle) override;
diff --git a/include/utils/SkNoDrawCanvas.h b/include/utils/SkNoDrawCanvas.h
index 75c15b2..14b8554 100644
--- a/include/utils/SkNoDrawCanvas.h
+++ b/include/utils/SkNoDrawCanvas.h
@@ -68,7 +68,10 @@
                              const SkPaint*) override {}
     void onDrawVertices(VertexMode, int, const SkPoint[], const SkPoint[], const SkColor[],
                         SkBlendMode, const uint16_t[], int, const SkPaint&) override {}
-    void onDrawVerticesObject(const SkVertices*, SkBlendMode, const SkPaint&) override {}
+    void onDrawVerticesObject(sk_sp<SkVertices> vertices, SkBlendMode mode, const SkPaint& paint,
+                              uint32_t flags) override {
+        this->onDrawVerticesObjectFallback(std::move(vertices), mode, paint, flags);
+    }
     void onDrawAtlas(const SkImage*, const SkRSXform[], const SkRect[], const SkColor[],
                      int, SkBlendMode, const SkRect*, const SkPaint*) override {}