Rework GrSamplerParams to be more compact and use its own wrap mode enum.

The main change is to make GrSamplerParams smaller by making its enums have byte-sized underlying types. The rest is cosmetic.

Change-Id: Ib71ea50612d24619a85e463826c6b8dfb9b445e3
Reviewed-on: https://skia-review.googlesource.com/43200
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
diff --git a/src/gpu/ops/GrTextureOp.cpp b/src/gpu/ops/GrTextureOp.cpp
index e16472a..3cb4dc0 100644
--- a/src/gpu/ops/GrTextureOp.cpp
+++ b/src/gpu/ops/GrTextureOp.cpp
@@ -37,7 +37,7 @@
     };
     static sk_sp<GrGeometryProcessor> Make(sk_sp<GrTextureProxy> proxy,
                                            sk_sp<GrColorSpaceXform> csxf,
-                                           GrSamplerParams::FilterMode filter) {
+                                           GrSamplerState::Filter filter) {
         return sk_sp<TextureGeometryProcessor>(
                 new TextureGeometryProcessor(std::move(proxy), std::move(csxf), filter));
     }
@@ -100,7 +100,7 @@
 
 private:
     TextureGeometryProcessor(sk_sp<GrTextureProxy> proxy, sk_sp<GrColorSpaceXform> csxf,
-                             GrSamplerParams::FilterMode filter)
+                             GrSamplerState::Filter filter)
             : fSampler(std::move(proxy), filter), fColorSpaceXform(std::move(csxf)) {
         this->initClassID<TextureGeometryProcessor>();
         fPositions =
@@ -125,7 +125,7 @@
 class TextureOp final : public GrMeshDrawOp {
 public:
     static std::unique_ptr<GrDrawOp> Make(sk_sp<GrTextureProxy> proxy,
-                                          GrSamplerParams::FilterMode filter, GrColor color,
+                                          GrSamplerState::Filter filter, GrColor color,
                                           const SkRect srcRect, const SkRect dstRect,
                                           const SkMatrix& viewMatrix, sk_sp<GrColorSpaceXform> csxf,
                                           bool allowSRBInputs) {
@@ -140,7 +140,8 @@
 
     SkString dumpInfo() const override {
         SkString str;
-        str.appendf("Filter: %d AllowSRGBInputs: %d\n", fFilter, fAllowSRGBInputs);
+        str.appendf("Filter: %d AllowSRGBInputs: %d\n", static_cast<int>(fFilter),
+                    fAllowSRGBInputs);
         str.appendf("# draws: %d\n", fDraws.count());
         for (int i = 0; i < fDraws.count(); ++i) {
             const Draw& draw = fDraws[i];
@@ -170,7 +171,7 @@
     DEFINE_OP_CLASS_ID
 
 private:
-    TextureOp(sk_sp<GrTextureProxy> proxy, GrSamplerParams::FilterMode filter, GrColor color,
+    TextureOp(sk_sp<GrTextureProxy> proxy, GrSamplerState::Filter filter, GrColor color,
               const SkRect& srcRect, const SkRect& dstRect, const SkMatrix& viewMatrix,
               sk_sp<GrColorSpaceXform> csxf, bool allowSRGBInputs)
             : INHERITED(ClassID())
@@ -298,7 +299,7 @@
     };
     SkSTArray<1, Draw, true> fDraws;
     GrTextureProxy* fProxy;
-    GrSamplerParams::FilterMode fFilter;
+    GrSamplerState::Filter fFilter;
     sk_sp<GrColorSpaceXform> fColorSpaceXform;
     // Used to track whether fProxy is ref'ed or has a pending IO after finalize() is called.
     bool fFinalized : 1;
@@ -310,7 +311,7 @@
 
 namespace GrTextureOp {
 
-std::unique_ptr<GrDrawOp> Make(sk_sp<GrTextureProxy> proxy, GrSamplerParams::FilterMode filter,
+std::unique_ptr<GrDrawOp> Make(sk_sp<GrTextureProxy> proxy, GrSamplerState::Filter filter,
                                GrColor color, const SkRect& srcRect, const SkRect& dstRect,
                                const SkMatrix& viewMatrix, sk_sp<GrColorSpaceXform> csxf,
                                bool allowSRGBInputs) {
@@ -341,8 +342,8 @@
     srcRect.fBottom = random->nextRangeScalar(0.f, proxy->height()) + proxy->height() / 2.f;
     SkMatrix viewMatrix = GrTest::TestMatrixPreservesRightAngles(random);
     GrColor color = SkColorToPremulGrColor(random->nextU());
-    GrSamplerParams::FilterMode filter = (GrSamplerParams::FilterMode)random->nextULessThan(
-            GrSamplerParams::kMipMap_FilterMode + 1);
+    GrSamplerState::Filter filter = (GrSamplerState::Filter)random->nextULessThan(
+            static_cast<uint32_t>(GrSamplerState::Filter::kMipMap) + 1);
     auto csxf = GrTest::TestColorXform(random);
     bool allowSRGBInputs = random->nextBool();
     return GrTextureOp::Make(std::move(proxy), filter, color, srcRect, rect, viewMatrix,