From 0bd24dc41f2351d84f5fce32130668a5792d134b Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Tue, 16 Jan 2018 08:06:32 -0500 Subject: Funnel most proxy creation through GrProxyProvider This is to provide a choke point for DDL to create Lazy Proxies. Change-Id: If178da13bc6447b31b7601810236d34502d9efbd Reviewed-on: https://skia-review.googlesource.com/93303 Commit-Queue: Robert Phillips Reviewed-by: Greg Daniel --- tests/TextureProxyTest.cpp | 37 ++++++++++++++----------------------- 1 file changed, 14 insertions(+), 23 deletions(-) (limited to 'tests/TextureProxyTest.cpp') diff --git a/tests/TextureProxyTest.cpp b/tests/TextureProxyTest.cpp index 425fab26c1..82a726db99 100644 --- a/tests/TextureProxyTest.cpp +++ b/tests/TextureProxyTest.cpp @@ -45,11 +45,10 @@ static GrSurfaceDesc make_desc(GrSurfaceFlags flags) { static sk_sp deferred_tex(skiatest::Reporter* reporter, GrContext* context, SkBackingFit fit) { GrProxyProvider* proxyProvider = context->contextPriv().proxyProvider(); - GrSurfaceDesc desc = make_desc(kNone_GrSurfaceFlags); + const GrSurfaceDesc desc = make_desc(kNone_GrSurfaceFlags); + sk_sp proxy = proxyProvider->createProxy(desc, fit, SkBudgeted::kYes); // Only budgeted & wrapped external proxies get to carry uniqueKeys - sk_sp proxy = GrSurfaceProxy::MakeDeferred(proxyProvider, desc, fit, - SkBudgeted::kYes); REPORTER_ASSERT(reporter, !proxy->getUniqueKey().isValid()); return proxy; } @@ -57,31 +56,22 @@ static sk_sp deferred_tex(skiatest::Reporter* reporter, static sk_sp deferred_texRT(skiatest::Reporter* reporter, GrContext* context, SkBackingFit fit) { GrProxyProvider* proxyProvider = context->contextPriv().proxyProvider(); - GrSurfaceDesc desc = make_desc(kRenderTarget_GrSurfaceFlag); + const GrSurfaceDesc desc = make_desc(kRenderTarget_GrSurfaceFlag); + sk_sp proxy = proxyProvider->createProxy(desc, fit, SkBudgeted::kYes); // Only budgeted & wrapped external proxies get to carry uniqueKeys - sk_sp proxy = GrSurfaceProxy::MakeDeferred(proxyProvider, desc, fit, - SkBudgeted::kYes); REPORTER_ASSERT(reporter, !proxy->getUniqueKey().isValid()); return proxy; } static sk_sp wrapped(skiatest::Reporter* reporter, GrContext* context, SkBackingFit fit) { - GrResourceProvider* resourceProvider = context->resourceProvider(); - - GrSurfaceDesc desc = make_desc(kNone_GrSurfaceFlags); - - sk_sp tex; - if (SkBackingFit::kApprox == fit) { - tex = sk_sp(resourceProvider->createApproxTexture(desc, 0)); - } else { - // Only budgeted & wrapped external proxies get to carry uniqueKeys - tex = resourceProvider->createTexture(desc, SkBudgeted::kYes); - } + GrProxyProvider* proxyProvider = context->contextPriv().proxyProvider(); + const GrSurfaceDesc desc = make_desc(kNone_GrSurfaceFlags); - sk_sp proxy = GrSurfaceProxy::MakeWrapped(std::move(tex), - kBottomLeft_GrSurfaceOrigin); + sk_sp proxy = proxyProvider->createInstantiatedProxy(desc, fit, + SkBudgeted::kYes); + // Only budgeted & wrapped external proxies get to carry uniqueKeys REPORTER_ASSERT(reporter, !proxy->getUniqueKey().isValid()); return proxy; } @@ -99,7 +89,7 @@ static sk_sp wrapped_with_key(skiatest::Reporter* reporter, builder[0] = kUniqueKeyData++; builder.finish(); - GrSurfaceDesc desc = make_desc(kNone_GrSurfaceFlags); + const GrSurfaceDesc desc = make_desc(kNone_GrSurfaceFlags); sk_sp tex; if (SkBackingFit::kApprox == fit) { @@ -119,18 +109,19 @@ static sk_sp wrapped_with_key(skiatest::Reporter* reporter, static sk_sp create_wrapped_backend(GrContext* context, SkBackingFit fit, sk_sp* backingSurface) { - GrResourceProvider* provider = context->resourceProvider(); + GrProxyProvider* proxyProvider = context->contextPriv().proxyProvider(); + GrResourceProvider* resourceProvider = context->resourceProvider(); const GrSurfaceDesc desc = make_desc(kNone_GrSurfaceFlags); - *backingSurface = provider->createTexture(desc, SkBudgeted::kNo); + *backingSurface = resourceProvider->createTexture(desc, SkBudgeted::kNo); if (!(*backingSurface)) { return nullptr; } GrBackendTexture backendTex = (*backingSurface)->getBackendTexture(); - return GrSurfaceProxy::MakeWrappedBackend(context, backendTex, kBottomLeft_GrSurfaceOrigin); + return proxyProvider->createWrappedTextureProxy(backendTex, kBottomLeft_GrSurfaceOrigin); } -- cgit v1.2.3