diff options
author | Robert Phillips <robertphillips@google.com> | 2016-11-09 06:50:43 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2016-11-09 12:20:50 +0000 |
commit | 3743013f755d23c215d852af7d829c3cd74f34a2 (patch) | |
tree | f685cc82d3dc40153863552b55c2519582c84d15 /tests | |
parent | 7b8400dad2f82dcc6ed3c7cc1707ebaf85f04840 (diff) |
Consolidate GrSurfaceProxy Make methods
I think GrSurfaceDesc is still the most compact way to communicate the deferred GrSurface's settings to the Proxy but this CL, at least, reduces where it is used.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4559
Change-Id: Ica599c28a5aef1ed4094f47a4ac119e2d204d652
Reviewed-on: https://skia-review.googlesource.com/4559
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/ProxyConversionTest.cpp | 90 | ||||
-rw-r--r-- | tests/ProxyTest.cpp | 38 | ||||
-rw-r--r-- | tests/SpecialImageTest.cpp | 9 |
3 files changed, 76 insertions, 61 deletions
diff --git a/tests/ProxyConversionTest.cpp b/tests/ProxyConversionTest.cpp index 8a799f7859..bc7187f5e1 100644 --- a/tests/ProxyConversionTest.cpp +++ b/tests/ProxyConversionTest.cpp @@ -14,9 +14,9 @@ #include "GrTextureProxy.h" #include "GrRenderTargetProxy.h" -static sk_sp<GrRenderTargetProxy> make_wrapped_FBO0(GrTextureProvider* provider, - skiatest::Reporter* reporter, - const GrSurfaceDesc& desc) { +static sk_sp<GrSurfaceProxy> make_wrapped_FBO0(GrTextureProvider* provider, + skiatest::Reporter* reporter, + const GrSurfaceDesc& desc) { GrBackendRenderTargetDesc backendDesc; backendDesc.fWidth = desc.fWidth; backendDesc.fHeight = desc.fHeight; @@ -29,27 +29,26 @@ static sk_sp<GrRenderTargetProxy> make_wrapped_FBO0(GrTextureProvider* provider, sk_sp<GrRenderTarget> defaultFBO(provider->wrapBackendRenderTarget(backendDesc)); SkASSERT(!defaultFBO->asTexture()); - return GrRenderTargetProxy::Make(std::move(defaultFBO)); + return GrSurfaceProxy::MakeWrapped(std::move(defaultFBO)); } -static sk_sp<GrRenderTargetProxy> make_wrapped_offscreen_rt(GrTextureProvider* provider, - skiatest::Reporter* reporter, - const GrSurfaceDesc& desc, - SkBudgeted budgeted) { +static sk_sp<GrSurfaceProxy> make_wrapped_offscreen_rt(GrTextureProvider* provider, + skiatest::Reporter* reporter, + const GrSurfaceDesc& desc, + SkBudgeted budgeted) { SkASSERT(kRenderTarget_GrSurfaceFlag == desc.fFlags); sk_sp<GrTexture> tex(provider->createTexture(desc, budgeted)); - sk_sp<GrRenderTarget> rt(sk_ref_sp(tex->asRenderTarget())); - return GrRenderTargetProxy::Make(std::move(rt)); + return GrSurfaceProxy::MakeWrapped(std::move(tex)); } -static sk_sp<GrTextureProxy> make_wrapped_texture(GrTextureProvider* provider, +static sk_sp<GrSurfaceProxy> make_wrapped_texture(GrTextureProvider* provider, const GrSurfaceDesc& desc, SkBudgeted budgeted) { sk_sp<GrTexture> tex(provider->createTexture(desc, budgeted)); - return GrTextureProxy::Make(std::move(tex)); + return GrSurfaceProxy::MakeWrapped(std::move(tex)); } // Test converting between RenderTargetProxies and TextureProxies for wrapped @@ -65,44 +64,52 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(WrappedProxyConversionTest, reporter, ctxInfo if (kOpenGL_GrBackend == ctxInfo.backend()) { // External on-screen render target. - sk_sp<GrRenderTargetProxy> rtProxy(make_wrapped_FBO0(provider, reporter, desc)); + sk_sp<GrSurfaceProxy> sProxy(make_wrapped_FBO0(provider, reporter, desc)); // RenderTarget-only + GrRenderTargetProxy* rtProxy = sProxy->asRenderTargetProxy(); + REPORTER_ASSERT(reporter, rtProxy); REPORTER_ASSERT(reporter, !rtProxy->asTextureProxy()); - REPORTER_ASSERT(reporter, rtProxy->asRenderTargetProxy() == rtProxy.get()); + REPORTER_ASSERT(reporter, rtProxy->asRenderTargetProxy() == rtProxy); } { // Internal offscreen render target. - sk_sp<GrRenderTargetProxy> rtProxy(make_wrapped_offscreen_rt(provider, - reporter, desc, - SkBudgeted::kYes)); + sk_sp<GrSurfaceProxy> sProxy(make_wrapped_offscreen_rt(provider, + reporter, desc, + SkBudgeted::kYes)); // Both RenderTarget and Texture + GrRenderTargetProxy* rtProxy = sProxy->asRenderTargetProxy(); + REPORTER_ASSERT(reporter, rtProxy); GrTextureProxy* tProxy = rtProxy->asTextureProxy(); REPORTER_ASSERT(reporter, tProxy); - REPORTER_ASSERT(reporter, tProxy->asRenderTargetProxy() == rtProxy.get()); - REPORTER_ASSERT(reporter, rtProxy->asRenderTargetProxy() == rtProxy.get()); + REPORTER_ASSERT(reporter, tProxy->asRenderTargetProxy() == rtProxy); + REPORTER_ASSERT(reporter, rtProxy->asRenderTargetProxy() == rtProxy); } { // Internal offscreen render target - but through GrTextureProxy - sk_sp<GrTextureProxy> tProxy(make_wrapped_texture(provider, desc, SkBudgeted::kYes)); + sk_sp<GrSurfaceProxy> sProxy(make_wrapped_texture(provider, desc, SkBudgeted::kYes)); // Both RenderTarget and Texture + GrTextureProxy* tProxy = sProxy->asTextureProxy(); + REPORTER_ASSERT(reporter, tProxy); GrRenderTargetProxy* rtProxy = tProxy->asRenderTargetProxy(); REPORTER_ASSERT(reporter, rtProxy); - REPORTER_ASSERT(reporter, rtProxy->asTextureProxy() == tProxy.get()); - REPORTER_ASSERT(reporter, tProxy->asTextureProxy() == tProxy.get()); + REPORTER_ASSERT(reporter, rtProxy->asTextureProxy() == tProxy); + REPORTER_ASSERT(reporter, tProxy->asTextureProxy() == tProxy); } { desc.fFlags = kNone_GrSurfaceFlags; // force no-RT - sk_sp<GrTextureProxy> tProxy(make_wrapped_texture(provider, desc, SkBudgeted::kYes)); + sk_sp<GrSurfaceProxy> sProxy(make_wrapped_texture(provider, desc, SkBudgeted::kYes)); // Texture-only - REPORTER_ASSERT(reporter, tProxy->asTextureProxy() == tProxy.get()); + GrTextureProxy* tProxy = sProxy->asTextureProxy(); + REPORTER_ASSERT(reporter, tProxy); + REPORTER_ASSERT(reporter, tProxy->asTextureProxy() == tProxy); REPORTER_ASSERT(reporter, !tProxy->asRenderTargetProxy()); } } @@ -110,7 +117,6 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(WrappedProxyConversionTest, reporter, ctxInfo // Test converting between RenderTargetProxies and TextureProxies for deferred // Proxies DEF_GPUTEST_FOR_RENDERING_CONTEXTS(DefferredProxyConversionTest, reporter, ctxInfo) { - GrTextureProvider* provider = ctxInfo.grContext()->textureProvider(); const GrCaps& caps = *ctxInfo.grContext()->caps(); GrSurfaceDesc desc; @@ -120,38 +126,44 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(DefferredProxyConversionTest, reporter, ctxIn desc.fConfig = kRGBA_8888_GrPixelConfig; { - sk_sp<GrRenderTargetProxy> rtProxy(GrRenderTargetProxy::Make(caps, desc, - SkBackingFit::kApprox, - SkBudgeted::kYes)); + sk_sp<GrSurfaceProxy> sProxy(GrSurfaceProxy::MakeDeferred(caps, desc, + SkBackingFit::kApprox, + SkBudgeted::kYes)); // Both RenderTarget and Texture + GrRenderTargetProxy* rtProxy = sProxy->asRenderTargetProxy(); + REPORTER_ASSERT(reporter, rtProxy); GrTextureProxy* tProxy = rtProxy->asTextureProxy(); REPORTER_ASSERT(reporter, tProxy); - REPORTER_ASSERT(reporter, tProxy->asRenderTargetProxy() == rtProxy.get()); - REPORTER_ASSERT(reporter, rtProxy->asRenderTargetProxy() == rtProxy.get()); + REPORTER_ASSERT(reporter, tProxy->asRenderTargetProxy() == rtProxy); + REPORTER_ASSERT(reporter, rtProxy->asRenderTargetProxy() == rtProxy); } { - sk_sp<GrTextureProxy> tProxy(GrTextureProxy::Make(caps, provider, desc, - SkBackingFit::kApprox, - SkBudgeted::kYes)); + sk_sp<GrSurfaceProxy> sProxy(GrSurfaceProxy::MakeDeferred(caps, desc, + SkBackingFit::kApprox, + SkBudgeted::kYes)); // Both RenderTarget and Texture - but via GrTextureProxy + GrTextureProxy* tProxy = sProxy->asTextureProxy(); + REPORTER_ASSERT(reporter, tProxy); GrRenderTargetProxy* rtProxy = tProxy->asRenderTargetProxy(); REPORTER_ASSERT(reporter, rtProxy); - REPORTER_ASSERT(reporter, rtProxy->asTextureProxy() == tProxy.get()); - REPORTER_ASSERT(reporter, tProxy->asTextureProxy() == tProxy.get()); + REPORTER_ASSERT(reporter, rtProxy->asTextureProxy() == tProxy); + REPORTER_ASSERT(reporter, tProxy->asTextureProxy() == tProxy); } { desc.fFlags = kNone_GrSurfaceFlags; // force no-RT - sk_sp<GrTextureProxy> tProxy(GrTextureProxy::Make(caps, provider, desc, - SkBackingFit::kApprox, - SkBudgeted::kYes)); + sk_sp<GrSurfaceProxy> sProxy(GrSurfaceProxy::MakeDeferred(caps, desc, + SkBackingFit::kApprox, + SkBudgeted::kYes)); // Texture-only - REPORTER_ASSERT(reporter, tProxy->asTextureProxy() == tProxy.get()); + GrTextureProxy* tProxy = sProxy->asTextureProxy(); + REPORTER_ASSERT(reporter, tProxy); + REPORTER_ASSERT(reporter, tProxy->asTextureProxy() == tProxy); REPORTER_ASSERT(reporter, !tProxy->asRenderTargetProxy()); } } diff --git a/tests/ProxyTest.cpp b/tests/ProxyTest.cpp index 270f7873ab..17a3dad3b8 100644 --- a/tests/ProxyTest.cpp +++ b/tests/ProxyTest.cpp @@ -104,27 +104,28 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(DeferredProxyTest, reporter, ctxInfo) { desc.fSampleCnt = numSamples; if (renderable) { - sk_sp<GrRenderTargetProxy> rtProxy(GrRenderTargetProxy::Make( + sk_sp<GrSurfaceProxy> sProxy(GrSurfaceProxy::MakeDeferred( caps, desc, fit, budgeted)); - check_surface(reporter, rtProxy.get(), origin, + check_surface(reporter, sProxy.get(), origin, widthHeight, widthHeight, config, SK_InvalidUniqueID, budgeted); - check_rendertarget(reporter, provider, rtProxy.get(), + check_rendertarget(reporter, provider, + sProxy->asRenderTargetProxy(), numSamples, fit); } desc.fFlags = kNone_GrSurfaceFlags; desc.fSampleCnt = 0; - sk_sp<GrTextureProxy> texProxy(GrTextureProxy::Make(caps, provider, - desc, - fit, - budgeted)); - check_surface(reporter, texProxy.get(), origin, + sk_sp<GrSurfaceProxy> sProxy(GrSurfaceProxy::MakeDeferred(caps, + desc, + fit, + budgeted)); + check_surface(reporter, sProxy.get(), origin, widthHeight, widthHeight, config, SK_InvalidUniqueID, budgeted); - check_texture(reporter, provider, texProxy.get(), fit); + check_texture(reporter, provider, sProxy->asTextureProxy(), fit); } } } @@ -168,11 +169,11 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(WrappedProxyTest, reporter, ctxInfo) { REPORTER_ASSERT(reporter, !defaultFBO->renderTargetPriv().maxWindowRectangles()); - sk_sp<GrRenderTargetProxy> rtProxy(GrRenderTargetProxy::Make(defaultFBO)); - check_surface(reporter, rtProxy.get(), origin, + sk_sp<GrSurfaceProxy> sProxy(GrSurfaceProxy::MakeWrapped(defaultFBO)); + check_surface(reporter, sProxy.get(), origin, kWidthHeight, kWidthHeight, config, defaultFBO->uniqueID(), SkBudgeted::kNo); - check_rendertarget(reporter, provider, rtProxy.get(), + check_rendertarget(reporter, provider, sProxy->asRenderTargetProxy(), numSamples, SkBackingFit::kExact); } @@ -187,11 +188,11 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(WrappedProxyTest, reporter, ctxInfo) { caps.maxWindowRectangles() == rt->renderTargetPriv().maxWindowRectangles()); - sk_sp<GrRenderTargetProxy> rtProxy(GrRenderTargetProxy::Make(rt)); - check_surface(reporter, rtProxy.get(), origin, + sk_sp<GrSurfaceProxy> sProxy(GrSurfaceProxy::MakeWrapped(rt)); + check_surface(reporter, sProxy.get(), origin, kWidthHeight, kWidthHeight, config, rt->uniqueID(), budgeted); - check_rendertarget(reporter, provider, rtProxy.get(), + check_rendertarget(reporter, provider, sProxy->asRenderTargetProxy(), numSamples, SkBackingFit::kExact); } @@ -201,10 +202,11 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(WrappedProxyTest, reporter, ctxInfo) { tex.reset(provider->createTexture(desc, budgeted)); } - sk_sp<GrTextureProxy> texProxy(GrTextureProxy::Make(tex)); - check_surface(reporter, texProxy.get(), origin, + sk_sp<GrSurfaceProxy> sProxy(GrSurfaceProxy::MakeWrapped(tex)); + check_surface(reporter, sProxy.get(), origin, kWidthHeight, kWidthHeight, config, tex->uniqueID(), budgeted); - check_texture(reporter, provider, texProxy.get(), SkBackingFit::kExact); + check_texture(reporter, provider, sProxy->asTextureProxy(), + SkBackingFit::kExact); } } } diff --git a/tests/SpecialImageTest.cpp b/tests/SpecialImageTest.cpp index abadb303cb..62a5da6089 100644 --- a/tests/SpecialImageTest.cpp +++ b/tests/SpecialImageTest.cpp @@ -17,7 +17,7 @@ #if SK_SUPPORT_GPU #include "GrContext.h" -#include "GrTextureProxy.h" +#include "GrSurfaceProxy.h" #endif @@ -301,9 +301,10 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SpecialImage_DeferredGpu, reporter, ctxInfo) desc.fWidth = kFullSize; desc.fHeight = kFullSize; - sk_sp<GrTextureProxy> proxy(GrTextureProxy::Make(*context->caps(), context->textureProvider(), - desc, SkBackingFit::kExact, SkBudgeted::kNo, - bm.getPixels(), 0)); + sk_sp<GrSurfaceProxy> proxy(GrSurfaceProxy::MakeDeferred(*context->caps(), + context->textureProvider(), + desc, SkBudgeted::kNo, + bm.getPixels(), 0)); if (!proxy) { return; } |