Use GrAAType in instanced rendering.

Change-Id: Ifb5a33f908de618d66fcb0dd329f064c1ecfcd63
Reviewed-on: https://skia-review.googlesource.com/9082
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
diff --git a/src/gpu/instanced/InstanceProcessor.cpp b/src/gpu/instanced/InstanceProcessor.cpp
index 2ac5b8e..efbf825 100644
--- a/src/gpu/instanced/InstanceProcessor.cpp
+++ b/src/gpu/instanced/InstanceProcessor.cpp
@@ -67,8 +67,8 @@
         this->addBufferAccess(&fParamsAccess);
     }
 
-    if (fOpInfo.fAntialiasMode >= AntialiasMode::kMSAA) {
-        if (!fOpInfo.isSimpleRects() || AntialiasMode::kMixedSamples == fOpInfo.fAntialiasMode) {
+    if (GrAATypeIsHW(fOpInfo.aaType())) {
+        if (!fOpInfo.isSimpleRects() || GrAAType::kMixedSamples == fOpInfo.aaType()) {
             this->setWillUseSampleLocations();
         }
     }
@@ -1076,7 +1076,7 @@
     }
 
 private:
-    bool isMixedSampled() const { return AntialiasMode::kMixedSamples == fOpInfo.fAntialiasMode; }
+    bool isMixedSampled() const { return GrAAType::kMixedSamples == fOpInfo.aaType(); }
 
     void onInit(GrGLSLVaryingHandler*, GrGLSLVertexBuilder*) override;
     void setupRect(GrGLSLVertexBuilder*) override;
@@ -1673,15 +1673,15 @@
 GLSLInstanceProcessor::Backend* GLSLInstanceProcessor::Backend::Create(const GrPipeline& pipeline,
                                                                        OpInfo opInfo,
                                                                        const VertexInputs& inputs) {
-    switch (opInfo.fAntialiasMode) {
+    switch (opInfo.aaType()) {
         default:
             SkFAIL("Unexpected antialias mode.");
-        case AntialiasMode::kNone:
+        case GrAAType::kNone:
             return new BackendNonAA(opInfo, inputs);
-        case AntialiasMode::kCoverage:
+        case GrAAType::kCoverage:
             return new BackendCoverage(opInfo, inputs);
-        case AntialiasMode::kMSAA:
-        case AntialiasMode::kMixedSamples: {
+        case GrAAType::kMSAA:
+        case GrAAType::kMixedSamples: {
             const GrRenderTargetPriv& rtp = pipeline.getRenderTarget()->renderTargetPriv();
             const GrGpu::MultisampleSpecs& specs = rtp.getMultisampleSpecs(pipeline);
             return new BackendMultisample(opInfo, inputs, specs.fEffectiveSampleCnt);
@@ -2027,60 +2027,50 @@
     return nullptr;
 }
 
-IndexRange InstanceProcessor::GetIndexRangeForRect(AntialiasMode aa) {
-    static constexpr IndexRange kRectRanges[kNumAntialiasModes] = {
-        {kRect_FirstIndex,        3 * kRect_TriCount},        // kNone
-        {kFramedRect_FirstIndex,  3 * kFramedRect_TriCount},  // kCoverage
-        {kRect_FirstIndex,        3 * kRect_TriCount},        // kMSAA
-        {kRect_FirstIndex,        3 * kRect_TriCount}         // kMixedSamples
-    };
-
-    SkASSERT(aa >= AntialiasMode::kNone && aa <= AntialiasMode::kMixedSamples);
-    return kRectRanges[(int)aa];
-
-    GR_STATIC_ASSERT(0 == (int)AntialiasMode::kNone);
-    GR_STATIC_ASSERT(1 == (int)AntialiasMode::kCoverage);
-    GR_STATIC_ASSERT(2 == (int)AntialiasMode::kMSAA);
-    GR_STATIC_ASSERT(3 == (int)AntialiasMode::kMixedSamples);
+IndexRange InstanceProcessor::GetIndexRangeForRect(GrAAType aaType) {
+    switch (aaType) {
+        case GrAAType::kCoverage:
+            return {kFramedRect_FirstIndex, 3 * kFramedRect_TriCount};
+        case GrAAType::kNone:
+        case GrAAType::kMSAA:
+        case GrAAType::kMixedSamples:
+            return {kRect_FirstIndex, 3 * kRect_TriCount};
+    }
+    SkFAIL("Unexpected aa type!");
+    return {0, 0};
 }
 
-IndexRange InstanceProcessor::GetIndexRangeForOval(AntialiasMode aa, const SkRect& devBounds) {
-    if (AntialiasMode::kCoverage == aa && devBounds.height() * devBounds.width() >= 256 * 256) {
+IndexRange InstanceProcessor::GetIndexRangeForOval(GrAAType aaType, const SkRect& devBounds) {
+    if (GrAAType::kCoverage == aaType && devBounds.height() * devBounds.width() >= 256 * 256) {
         // This threshold was chosen quasi-scientifically on Tegra X1.
         return {kDisjoint16Gons_FirstIndex, 3 * kDisjoint16Gons_TriCount};
     }
 
-    static constexpr IndexRange kOvalRanges[kNumAntialiasModes] = {
-        {kOctagons_FirstIndex,          3 * kOctagons_TriCount},          // kNone
-        {kDisjointOctagons_FirstIndex,  3 * kDisjointOctagons_TriCount},  // kCoverage
-        {kOctagons_FirstIndex,          3 * kOctagons_TriCount},          // kMSAA
-        {kOctagonsFanned_FirstIndex,    3 * kOctagonsFanned_TriCount}     // kMixedSamples
-    };
-
-    SkASSERT(aa >= AntialiasMode::kNone && aa <= AntialiasMode::kMixedSamples);
-    return kOvalRanges[(int)aa];
-
-    GR_STATIC_ASSERT(0 == (int)AntialiasMode::kNone);
-    GR_STATIC_ASSERT(1 == (int)AntialiasMode::kCoverage);
-    GR_STATIC_ASSERT(2 == (int)AntialiasMode::kMSAA);
-    GR_STATIC_ASSERT(3 == (int)AntialiasMode::kMixedSamples);
+    switch (aaType) {
+        case GrAAType::kNone:
+        case GrAAType::kMSAA:
+            return {kOctagons_FirstIndex, 3 * kOctagons_TriCount};
+        case GrAAType::kCoverage:
+            return {kDisjointOctagons_FirstIndex, 3 * kDisjointOctagons_TriCount};
+        case GrAAType::kMixedSamples:
+            return {kOctagonsFanned_FirstIndex, 3 * kOctagonsFanned_TriCount};
+    }
+    SkFAIL("Unexpected aa type!");
+    return {0, 0};
 }
 
-IndexRange InstanceProcessor::GetIndexRangeForRRect(AntialiasMode aa) {
-    static constexpr IndexRange kRRectRanges[kNumAntialiasModes] = {
-        {kCorneredRect_FirstIndex,        3 * kCorneredRect_TriCount},        // kNone
-        {kCorneredFramedRect_FirstIndex,  3 * kCorneredFramedRect_TriCount},  // kCoverage
-        {kCorneredRect_FirstIndex,        3 * kCorneredRect_TriCount},        // kMSAA
-        {kCorneredRectFanned_FirstIndex,  3 * kCorneredRectFanned_TriCount}   // kMixedSamples
-    };
-
-    SkASSERT(aa >= AntialiasMode::kNone && aa <= AntialiasMode::kMixedSamples);
-    return kRRectRanges[(int)aa];
-
-    GR_STATIC_ASSERT(0 == (int)AntialiasMode::kNone);
-    GR_STATIC_ASSERT(1 == (int)AntialiasMode::kCoverage);
-    GR_STATIC_ASSERT(2 == (int)AntialiasMode::kMSAA);
-    GR_STATIC_ASSERT(3 == (int)AntialiasMode::kMixedSamples);
+IndexRange InstanceProcessor::GetIndexRangeForRRect(GrAAType aaType) {
+    switch (aaType) {
+        case GrAAType::kNone:
+        case GrAAType::kMSAA:
+            return {kCorneredRect_FirstIndex, 3 * kCorneredRect_TriCount};
+        case GrAAType::kCoverage:
+            return {kCorneredFramedRect_FirstIndex, 3 * kCorneredFramedRect_TriCount};
+        case GrAAType::kMixedSamples:
+            return {kCorneredRectFanned_FirstIndex, 3 * kCorneredRectFanned_TriCount};
+    }
+    SkFAIL("Unexpected aa type!");
+    return {0, 0};
 }
 
 const char* InstanceProcessor::GetNameOfIndexRange(IndexRange range) {