diff options
Diffstat (limited to 'src/gpu/ops/GrTextureOp.cpp')
-rw-r--r-- | src/gpu/ops/GrTextureOp.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/gpu/ops/GrTextureOp.cpp b/src/gpu/ops/GrTextureOp.cpp index e76f5bc487..ec20e245b9 100644 --- a/src/gpu/ops/GrTextureOp.cpp +++ b/src/gpu/ops/GrTextureOp.cpp @@ -1046,10 +1046,16 @@ GR_DRAW_OP_TEST_DEFINE(TextureOp) { desc.fHeight = random->nextULessThan(90) + 10; desc.fWidth = random->nextULessThan(90) + 10; auto origin = random->nextBool() ? kTopLeft_GrSurfaceOrigin : kBottomLeft_GrSurfaceOrigin; - SkBackingFit fit = random->nextBool() ? SkBackingFit::kApprox : SkBackingFit::kExact; + GrMipMapped mipMapped = random->nextBool() ? GrMipMapped::kYes : GrMipMapped::kNo; + SkBackingFit fit = SkBackingFit::kExact; + if (mipMapped == GrMipMapped::kNo) { + fit = random->nextBool() ? SkBackingFit::kApprox : SkBackingFit::kExact; + } GrProxyProvider* proxyProvider = context->contextPriv().proxyProvider(); - sk_sp<GrTextureProxy> proxy = proxyProvider->createProxy(desc, origin, fit, SkBudgeted::kNo); + sk_sp<GrTextureProxy> proxy = proxyProvider->createProxy(desc, origin, mipMapped, fit, + SkBudgeted::kNo, + GrInternalSurfaceFlags::kNone); SkRect rect = GrTest::TestRect(random); SkRect srcRect; @@ -1061,6 +1067,10 @@ GR_DRAW_OP_TEST_DEFINE(TextureOp) { GrColor color = SkColorToPremulGrColor(random->nextU()); GrSamplerState::Filter filter = (GrSamplerState::Filter)random->nextULessThan( static_cast<uint32_t>(GrSamplerState::Filter::kMipMap) + 1); + while (mipMapped == GrMipMapped::kNo && filter == GrSamplerState::Filter::kMipMap) { + filter = (GrSamplerState::Filter)random->nextULessThan( + static_cast<uint32_t>(GrSamplerState::Filter::kMipMap) + 1); + } auto csxf = GrTest::TestColorXform(random); GrAAType aaType = GrAAType::kNone; if (random->nextBool()) { |