Separate MIP filtering from min/mag filtering.

Does not add kNearest as a mip map mode yet.

Bug: skia:10344

Change-Id: Ida80cbf19e2b1eed5209d0680837fb45e54b4261
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/303481
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
diff --git a/src/gpu/GrRenderTargetContext.cpp b/src/gpu/GrRenderTargetContext.cpp
index bc84e7d..fd1f2a1 100644
--- a/src/gpu/GrRenderTargetContext.cpp
+++ b/src/gpu/GrRenderTargetContext.cpp
@@ -798,6 +798,7 @@
                                              SkAlphaType srcAlphaType,
                                              sk_sp<GrColorSpaceXform> textureXform,
                                              GrSamplerState::Filter filter,
+                                             GrSamplerState::MipmapMode mm,
                                              const SkPMColor4f& color,
                                              SkBlendMode blendMode,
                                              GrAA aa,
@@ -827,7 +828,7 @@
         // quad is sufficiently inside the subset and the constraint could be dropped.
         this->addDrawOp(finalClip,
                         GrTextureOp::Make(fContext, std::move(proxyView), srcAlphaType,
-                                          std::move(textureXform), filter, color, saturate,
+                                          std::move(textureXform), filter, mm, color, saturate,
                                           blendMode, aaType, quad, subset));
     }
 }
@@ -1007,10 +1008,15 @@
     fRenderTargetContext->addOp(std::move(op));
 }
 
-void GrRenderTargetContext::drawTextureSet(const GrClip* clip, TextureSetEntry set[],
-                                           int cnt, int proxyRunCnt,
-                                           GrSamplerState::Filter filter, SkBlendMode mode,
-                                           GrAA aa, SkCanvas::SrcRectConstraint constraint,
+void GrRenderTargetContext::drawTextureSet(const GrClip* clip,
+                                           TextureSetEntry set[],
+                                           int cnt,
+                                           int proxyRunCnt,
+                                           GrSamplerState::Filter filter,
+                                           GrSamplerState::MipmapMode mm,
+                                           SkBlendMode mode,
+                                           GrAA aa,
+                                           SkCanvas::SrcRectConstraint constraint,
                                            const SkMatrix& viewMatrix,
                                            sk_sp<GrColorSpaceXform> texXform) {
     ASSERT_SINGLE_OWNER
@@ -1025,7 +1031,7 @@
     auto clampType = GrColorTypeClampType(this->colorInfo().colorType());
     auto saturate = clampType == GrClampType::kManual ? GrTextureOp::Saturate::kYes
                                                       : GrTextureOp::Saturate::kNo;
-    GrTextureOp::AddTextureSetOps(this, clip, fContext, set, cnt, proxyRunCnt, filter, saturate,
+    GrTextureOp::AddTextureSetOps(this, clip, fContext, set, cnt, proxyRunCnt, filter, mm, saturate,
                                   mode, aaType, constraint, viewMatrix, std::move(texXform));
 }