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));
}