First step to moving vertex attributes to the geometryProcessor

BUG=skia:

Review URL: https://codereview.chromium.org/761563002
diff --git a/src/gpu/GrAAHairLinePathRenderer.cpp b/src/gpu/GrAAHairLinePathRenderer.cpp
index 0d16cf8..7168c83 100644
--- a/src/gpu/GrAAHairLinePathRenderer.cpp
+++ b/src/gpu/GrAAHairLinePathRenderer.cpp
@@ -642,14 +642,6 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-namespace {
-// position + edge
-extern const GrVertexAttrib gHairlineBezierAttribs[] = {
-    {kVec2f_GrVertexAttribType, 0,                  kPosition_GrVertexAttribBinding},
-    {kVec4f_GrVertexAttribType, sizeof(SkPoint),    kGeometryProcessor_GrVertexAttribBinding}
-};
-};
-
 bool GrAAHairLinePathRenderer::createLineGeom(GrDrawTarget* target,
                                               GrDrawState* drawState,
                                               GrDrawTarget::AutoReleaseGeometry* arg,
@@ -661,10 +653,9 @@
 
     int vertCnt = kLineSegNumVertices * lineCnt;
 
-    GrDefaultGeoProcFactory::SetAttribs(drawState, GrDefaultGeoProcFactory::kPosition_GPType |
-                                                   GrDefaultGeoProcFactory::kCoverage_GPType);
-
-    if (!arg->set(target, vertCnt, drawState->getVertexStride(),  0)) {
+    size_t vstride = drawState->getGeometryProcessor()->getVertexStride();
+    SkASSERT(vstride == sizeof(LineVertex));
+    if (!arg->set(target, vertCnt, vstride,  0)) {
         return false;
     }
 
@@ -701,15 +692,13 @@
                                                 const PtArray& conics,
                                                 int conicCnt,
                                                 const IntArray& qSubdivs,
-                                                const FloatArray& cWeights) {
+                                                const FloatArray& cWeights,
+                                                size_t vertexStride) {
     const SkMatrix& viewM = drawState->getViewMatrix();
 
     int vertCnt = kQuadNumVertices * quadCnt + kQuadNumVertices * conicCnt;
 
-    int vAttribCnt = SK_ARRAY_COUNT(gHairlineBezierAttribs);
-    drawState->setVertexAttribs<gHairlineBezierAttribs>(vAttribCnt, sizeof(BezierVertex));
-
-    if (!arg->set(target, vertCnt, drawState->getVertexStride(), 0)) {
+    if (!arg->set(target, vertCnt, vertexStride, 0)) {
         return false;
     }
 
@@ -846,6 +835,11 @@
         GrDrawTarget::AutoReleaseGeometry arg;
         SkRect devBounds;
 
+        uint32_t gpFlags = GrDefaultGeoProcFactory::kPosition_GPType |
+                           GrDefaultGeoProcFactory::kCoverage_GPType;
+        GrDrawState::AutoRestoreEffects are(drawState);
+        drawState->setGeometryProcessor(GrDefaultGeoProcFactory::Create(gpFlags))->unref();
+
         if (!this->createLineGeom(target,
                                   drawState,
                                   &arg,
@@ -868,8 +862,6 @@
                                           kLineSegNumVertices * lineCnt));
 
         {
-            GrDrawState::AutoRestoreEffects are(drawState);
-            drawState->setGeometryProcessor(GrDefaultGeoProcFactory::Create(false))->unref();
             target->setIndexSourceToBuffer(fLinesIndexBuffer);
             int lines = 0;
             while (lines < lineCnt) {
@@ -901,7 +893,8 @@
                                     conics,
                                     conicCnt,
                                     qSubdivs,
-                                    cWeights)) {
+                                    cWeights,
+                                    sizeof(BezierVertex))) {
             return false;
         }
 
@@ -923,6 +916,7 @@
             SkASSERT(hairQuadProcessor);
             GrDrawState::AutoRestoreEffects are(drawState);
             target->setIndexSourceToBuffer(fQuadsIndexBuffer);
+
             drawState->setGeometryProcessor(hairQuadProcessor)->unref();
             int quads = 0;
             while (quads < quadCnt) {
@@ -943,6 +937,7 @@
             GrGeometryProcessor* hairConicProcessor = GrConicEffect::Create(
                     kHairlineAA_GrProcessorEdgeType, *target->caps());
             SkASSERT(hairConicProcessor);
+
             drawState->setGeometryProcessor(hairConicProcessor)->unref();
             int conics = 0;
             while (conics < conicCnt) {