DEF_GPUTEST_FOR_ALL_CONTEXTS(TessellatingPathRendererTests, reporter, context) { GrSurfaceDesc desc; desc.fFlags = kRenderTarget_GrSurfaceFlag; desc.fWidth = 800; desc.fHeight = 800; desc.fConfig = kSkia8888_GrPixelConfig; desc.fOrigin = kTopLeft_GrSurfaceOrigin; SkAutoTUnref<GrTexture> texture(context->textureProvider()->createApproxTexture(desc)); GrTestTarget tt; GrRenderTarget* rt = texture->asRenderTarget(); context->getTestTarget(&tt, rt); GrDrawTarget* dt = tt.target(); GrResourceProvider* rp = tt.resourceProvider(); test_path(dt, rt, rp, create_path_0()); test_path(dt, rt, rp, create_path_1()); test_path(dt, rt, rp, create_path_2()); test_path(dt, rt, rp, create_path_3()); test_path(dt, rt, rp, create_path_4()); test_path(dt, rt, rp, create_path_5()); test_path(dt, rt, rp, create_path_6()); test_path(dt, rt, rp, create_path_7()); test_path(dt, rt, rp, create_path_8()); test_path(dt, rt, rp, create_path_9()); test_path(dt, rt, rp, create_path_10()); test_path(dt, rt, rp, create_path_11()); test_path(dt, rt, rp, create_path_12()); test_path(dt, rt, rp, create_path_13()); test_path(dt, rt, rp, create_path_14()); test_path(dt, rt, rp, create_path_15()); }
DEF_GPUTEST_FOR_ALL_CONTEXTS(TessellatingPathRendererTests, reporter, ctxInfo) { sk_sp<GrDrawContext> drawContext(ctxInfo.grContext()->newDrawContext(SkBackingFit::kApprox, 800, 800, kSkia8888_GrPixelConfig, 0, kTopLeft_GrSurfaceOrigin)); if (!drawContext) { return; } GrTestTarget tt; ctxInfo.grContext()->getTestTarget(&tt, drawContext); GrDrawTarget* dt = tt.target(); GrResourceProvider* rp = tt.resourceProvider(); test_path(dt, drawContext.get(), rp, create_path_0()); test_path(dt, drawContext.get(), rp, create_path_1()); test_path(dt, drawContext.get(), rp, create_path_2()); test_path(dt, drawContext.get(), rp, create_path_3()); test_path(dt, drawContext.get(), rp, create_path_4()); test_path(dt, drawContext.get(), rp, create_path_5()); test_path(dt, drawContext.get(), rp, create_path_6()); test_path(dt, drawContext.get(), rp, create_path_7()); test_path(dt, drawContext.get(), rp, create_path_8()); test_path(dt, drawContext.get(), rp, create_path_9()); test_path(dt, drawContext.get(), rp, create_path_10()); test_path(dt, drawContext.get(), rp, create_path_11()); test_path(dt, drawContext.get(), rp, create_path_12()); test_path(dt, drawContext.get(), rp, create_path_13()); test_path(dt, drawContext.get(), rp, create_path_14()); test_path(dt, drawContext.get(), rp, create_path_15()); }
DEF_GPUTEST(TessellatingPathRendererTests, reporter, factory) { GrContext* context = factory->get(static_cast<GrContextFactory::GLContextType>(0)); if (nullptr == context) { return; } GrSurfaceDesc desc; desc.fFlags = kRenderTarget_GrSurfaceFlag; desc.fWidth = 800; desc.fHeight = 800; desc.fConfig = kSkia8888_GrPixelConfig; desc.fOrigin = kTopLeft_GrSurfaceOrigin; SkAutoTUnref<GrTexture> texture(context->textureProvider()->createApproxTexture(desc)); GrTestTarget tt; GrRenderTarget* rt = texture->asRenderTarget(); context->getTestTarget(&tt, rt); GrDrawTarget* dt = tt.target(); GrResourceProvider* rp = tt.resourceProvider(); test_path(dt, rt, rp, create_path_0()); test_path(dt, rt, rp, create_path_1()); test_path(dt, rt, rp, create_path_2()); test_path(dt, rt, rp, create_path_3()); test_path(dt, rt, rp, create_path_4()); test_path(dt, rt, rp, create_path_5()); test_path(dt, rt, rp, create_path_6()); test_path(dt, rt, rp, create_path_7()); test_path(dt, rt, rp, create_path_8()); test_path(dt, rt, rp, create_path_9()); test_path(dt, rt, rp, create_path_10()); test_path(dt, rt, rp, create_path_11()); test_path(dt, rt, rp, create_path_12()); test_path(dt, rt, rp, create_path_13()); test_path(dt, rt, rp, create_path_14()); test_path(dt, rt, rp, create_path_15()); }
DEF_GPUTEST_FOR_ALL_CONTEXTS(TessellatingPathRendererTests, reporter, ctxInfo) { GrContext* ctx = ctxInfo.grContext(); sk_sp<GrRenderTargetContext> rtc(ctx->makeDeferredRenderTargetContext( SkBackingFit::kApprox, 800, 800, kRGBA_8888_GrPixelConfig, nullptr, 1, GrMipMapped::kNo, kTopLeft_GrSurfaceOrigin)); if (!rtc) { return; } ctx->flush(); // Adding discard to appease vulkan validation warning about loading uninitialized data on draw rtc->discard(); test_path(ctx, rtc.get(), create_path_0()); test_path(ctx, rtc.get(), create_path_1()); test_path(ctx, rtc.get(), create_path_2()); test_path(ctx, rtc.get(), create_path_3()); test_path(ctx, rtc.get(), create_path_4()); test_path(ctx, rtc.get(), create_path_5()); test_path(ctx, rtc.get(), create_path_6()); test_path(ctx, rtc.get(), create_path_7()); test_path(ctx, rtc.get(), create_path_8()); test_path(ctx, rtc.get(), create_path_9()); test_path(ctx, rtc.get(), create_path_10()); test_path(ctx, rtc.get(), create_path_11()); test_path(ctx, rtc.get(), create_path_12()); test_path(ctx, rtc.get(), create_path_13()); test_path(ctx, rtc.get(), create_path_14()); test_path(ctx, rtc.get(), create_path_15()); test_path(ctx, rtc.get(), create_path_16()); SkMatrix nonInvertibleMatrix = SkMatrix::MakeScale(0, 0); std::unique_ptr<GrFragmentProcessor> fp(create_linear_gradient_processor(ctx)); test_path(ctx, rtc.get(), create_path_17(), nonInvertibleMatrix, GrAAType::kCoverage, std::move(fp)); test_path(ctx, rtc.get(), create_path_18()); test_path(ctx, rtc.get(), create_path_19()); test_path(ctx, rtc.get(), create_path_20(), SkMatrix(), GrAAType::kCoverage); test_path(ctx, rtc.get(), create_path_21(), SkMatrix(), GrAAType::kCoverage); test_path(ctx, rtc.get(), create_path_22()); test_path(ctx, rtc.get(), create_path_23()); test_path(ctx, rtc.get(), create_path_24()); test_path(ctx, rtc.get(), create_path_25(), SkMatrix(), GrAAType::kCoverage); test_path(ctx, rtc.get(), create_path_26(), SkMatrix(), GrAAType::kCoverage); test_path(ctx, rtc.get(), create_path_27(), SkMatrix(), GrAAType::kCoverage); test_path(ctx, rtc.get(), create_path_28(), SkMatrix(), GrAAType::kCoverage); test_path(ctx, rtc.get(), create_path_29()); }
DEF_GPUTEST_FOR_ALL_CONTEXTS(TessellatingPathRendererTests, reporter, ctxInfo) { GrContext* ctx = ctxInfo.grContext(); sk_sp<GrRenderTargetContext> rtc(ctx->makeDeferredRenderTargetContext( SkBackingFit::kApprox, 800, 800, kRGBA_8888_GrPixelConfig, nullptr, 0, kTopLeft_GrSurfaceOrigin)); if (!rtc) { return; } ctx->flush(); test_path(ctx, rtc.get(), create_path_0()); test_path(ctx, rtc.get(), create_path_1()); test_path(ctx, rtc.get(), create_path_2()); test_path(ctx, rtc.get(), create_path_3()); test_path(ctx, rtc.get(), create_path_4()); test_path(ctx, rtc.get(), create_path_5()); test_path(ctx, rtc.get(), create_path_6()); test_path(ctx, rtc.get(), create_path_7()); test_path(ctx, rtc.get(), create_path_8()); test_path(ctx, rtc.get(), create_path_9()); test_path(ctx, rtc.get(), create_path_10()); test_path(ctx, rtc.get(), create_path_11()); test_path(ctx, rtc.get(), create_path_12()); test_path(ctx, rtc.get(), create_path_13()); test_path(ctx, rtc.get(), create_path_14()); test_path(ctx, rtc.get(), create_path_15()); test_path(ctx, rtc.get(), create_path_16()); SkMatrix nonInvertibleMatrix = SkMatrix::MakeScale(0, 0); sk_sp<GrFragmentProcessor> fp(create_linear_gradient_processor(ctx)); test_path(ctx, rtc.get(), create_path_17(), nonInvertibleMatrix, GrAAType::kCoverage, fp); test_path(ctx, rtc.get(), create_path_18()); test_path(ctx, rtc.get(), create_path_19()); test_path(ctx, rtc.get(), create_path_20(), SkMatrix(), GrAAType::kCoverage); test_path(ctx, rtc.get(), create_path_21(), SkMatrix(), GrAAType::kCoverage); test_path(ctx, rtc.get(), create_path_22()); }