Add non-srcover fallback for drawImageSet
Bug: skia:
Change-Id: Ie0b950f0b8bf0986e8419c49594a7b85c42e0295
Reviewed-on: https://skia-review.googlesource.com/c/184921
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
index a5fd260..c2fff53 100644
--- a/src/gpu/SkGpuDevice.cpp
+++ b/src/gpu/SkGpuDevice.cpp
@@ -1496,11 +1496,7 @@
void SkGpuDevice::drawImageSet(const SkCanvas::ImageSetEntry set[], int count,
SkFilterQuality filterQuality, SkBlendMode mode) {
SkASSERT(count > 0);
- if (mode != SkBlendMode::kSrcOver ||
- !fContext->contextPriv().caps()->dynamicStateArrayGeometryProcessorTextureSupport()) {
- INHERITED::drawImageSet(set, count, filterQuality, mode);
- return;
- }
+
GrSamplerState sampler;
sampler.setFilterMode(kNone_SkFilterQuality == filterQuality ? GrSamplerState::Filter::kNearest
: GrSamplerState::Filter::kBilerp);
@@ -1514,7 +1510,7 @@
set[base].fImage->colorSpace(), set[base].fImage->alphaType(),
fRenderTargetContext->colorSpaceInfo().colorSpace(), kPremul_SkAlphaType);
fRenderTargetContext->drawTextureSet(this->clip(), textures.get() + base, n,
- sampler.filter(), this->ctm(),
+ sampler.filter(), mode, this->ctm(),
std::move(textureXform));
}
};