Use moved SkMesh APIs

These were moved in http://review.skia.org/724398

#ifdefs added to handle CPU only builds appropriately.

Change-Id: I23b27f78f35ea6a855eb707066c54e28484101e9
diff --git a/libs/hwui/Mesh.h b/libs/hwui/Mesh.h
index 13e3c8e..764d1ef 100644
--- a/libs/hwui/Mesh.h
+++ b/libs/hwui/Mesh.h
@@ -19,6 +19,7 @@
 
 #include <GrDirectContext.h>
 #include <SkMesh.h>
+#include <include/gpu/ganesh/SkMeshGanesh.h>
 #include <jni.h>
 #include <log/log.h>
 
@@ -143,14 +144,26 @@
         }
 
         if (mIsDirty || genId != mGenerationId) {
-            auto vb = SkMesh::MakeVertexBuffer(
-                    context, reinterpret_cast<const void*>(mVertexBufferData.data()),
-                    mVertexBufferData.size());
+            auto vertexData = reinterpret_cast<const void*>(mVertexBufferData.data());
+#ifdef __ANDROID__
+            auto vb = SkMeshes::MakeVertexBuffer(context,
+                                                 vertexData,
+                                                 mVertexBufferData.size());
+#else
+            auto vb = SkMeshes::MakeVertexBuffer(vertexData,
+                                                 mVertexBufferData.size());
+#endif
             auto meshMode = SkMesh::Mode(mMode);
             if (!mIndexBufferData.empty()) {
-                auto ib = SkMesh::MakeIndexBuffer(
-                        context, reinterpret_cast<const void*>(mIndexBufferData.data()),
-                        mIndexBufferData.size());
+                auto indexData = reinterpret_cast<const void*>(mIndexBufferData.data());
+#ifdef __ANDROID__
+                auto ib = SkMeshes::MakeIndexBuffer(context,
+                                                    indexData,
+                                                    mIndexBufferData.size());
+#else
+                auto ib = SkMeshes::MakeIndexBuffer(indexData,
+                                                    mIndexBufferData.size());
+#endif
                 mMesh = SkMesh::MakeIndexed(mMeshSpec, meshMode, vb, mVertexCount, mVertexOffset,
                                             ib, mIndexCount, mIndexOffset, mBuilder->fUniforms,
                                             mBounds)
diff --git a/libs/hwui/RecordingCanvas.cpp b/libs/hwui/RecordingCanvas.cpp
index 3cd0e75..71f47e9 100644
--- a/libs/hwui/RecordingCanvas.cpp
+++ b/libs/hwui/RecordingCanvas.cpp
@@ -36,6 +36,7 @@
 #include "SkImageFilter.h"
 #include "SkImageInfo.h"
 #include "SkLatticeIter.h"
+#include "SkMesh.h"
 #include "SkPaint.h"
 #include "SkPicture.h"
 #include "SkRRect.h"
@@ -49,6 +50,7 @@
 #include "effects/GainmapRenderer.h"
 #include "include/gpu/GpuTypes.h"  // from Skia
 #include "include/gpu/GrDirectContext.h"
+#include "include/gpu/ganesh/SkMeshGanesh.h"
 #include "pipeline/skia/AnimatedDrawables.h"
 #include "pipeline/skia/FunctorDrawable.h"
 #ifdef __ANDROID__
@@ -527,12 +529,13 @@
     mutable bool isGpuBased;
     mutable GrDirectContext::DirectContextID contextId;
     void draw(SkCanvas* c, const SkMatrix&) const {
+#ifdef __ANDROID__
         GrDirectContext* directContext = c->recordingContext()->asDirectContext();
 
         GrDirectContext::DirectContextID id = directContext->directContextID();
         if (!isGpuBased || contextId != id) {
             sk_sp<SkMesh::VertexBuffer> vb =
-                    SkMesh::CopyVertexBuffer(directContext, cpuMesh.refVertexBuffer());
+                    SkMeshes::CopyVertexBuffer(directContext, cpuMesh.refVertexBuffer());
             if (!cpuMesh.indexBuffer()) {
                 gpuMesh = SkMesh::Make(cpuMesh.refSpec(), cpuMesh.mode(), vb, cpuMesh.vertexCount(),
                                        cpuMesh.vertexOffset(), cpuMesh.refUniforms(),
@@ -540,7 +543,7 @@
                                   .mesh;
             } else {
                 sk_sp<SkMesh::IndexBuffer> ib =
-                        SkMesh::CopyIndexBuffer(directContext, cpuMesh.refIndexBuffer());
+                        SkMeshes::CopyIndexBuffer(directContext, cpuMesh.refIndexBuffer());
                 gpuMesh = SkMesh::MakeIndexed(cpuMesh.refSpec(), cpuMesh.mode(), vb,
                                               cpuMesh.vertexCount(), cpuMesh.vertexOffset(), ib,
                                               cpuMesh.indexCount(), cpuMesh.indexOffset(),
@@ -553,6 +556,9 @@
         }
 
         c->drawMesh(gpuMesh, blender, paint);
+#else
+        c->drawMesh(cpuMesh, blender, paint);
+#endif
     }
 };