Update createWrappedRenderTargetProxy with BackendTex to use lazy proxies
Bug: skia:
Change-Id: I5a5519aebe544cb5ef62e9847c3fa4e218f24aea
Reviewed-on: https://skia-review.googlesource.com/108561
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
diff --git a/tests/ProxyTest.cpp b/tests/ProxyTest.cpp
index 3a46438..20d721b 100644
--- a/tests/ProxyTest.cpp
+++ b/tests/ProxyTest.cpp
@@ -206,6 +206,7 @@
}
// External on-screen render target.
+ // Tests createWrappedRenderTargetProxy with a GrBackendRenderTarget
{
GrGLFramebufferInfo fboInfo;
fboInfo.fFBOID = 0;
@@ -222,16 +223,17 @@
supportedNumSamples, SkBackingFit::kExact, 0);
}
+ // Tests createWrappedRenderTargetProxy with a GrBackendTexture
{
GrBackendTexture backendTex =
gpu->createTestingOnlyBackendTexture(nullptr, kWidthHeight,
kWidthHeight, colorType, true,
GrMipMapped::kNo);
-
sk_sp<GrSurfaceProxy> sProxy =
- proxyProvider->createWrappedTextureProxy(backendTex, origin,
- supportedNumSamples);
+ proxyProvider->createWrappedRenderTargetProxy(backendTex, origin,
+ supportedNumSamples);
if (!sProxy) {
+ gpu->deleteTestingOnlyBackendTexture(&backendTex);
continue; // This can fail on Mesa
}
@@ -246,6 +248,33 @@
gpu->deleteTestingOnlyBackendTexture(&backendTex);
}
+ // Tests createWrappedTextureProxy that is only renderable
+ {
+ GrBackendTexture backendTex =
+ gpu->createTestingOnlyBackendTexture(nullptr, kWidthHeight,
+ kWidthHeight, colorType, true,
+ GrMipMapped::kNo);
+
+ sk_sp<GrSurfaceProxy> sProxy =
+ proxyProvider->createWrappedTextureProxy(backendTex, origin,
+ supportedNumSamples);
+ if (!sProxy) {
+ gpu->deleteTestingOnlyBackendTexture(&backendTex);
+ continue; // This can fail on Mesa
+ }
+
+ check_surface(reporter, sProxy.get(), origin,
+ kWidthHeight, kWidthHeight,
+ backendTex.testingOnly_getPixelConfig(), SkBudgeted::kNo);
+ check_rendertarget(reporter, caps, resourceProvider,
+ sProxy->asRenderTargetProxy(),
+ supportedNumSamples, SkBackingFit::kExact,
+ caps.maxWindowRectangles());
+
+ gpu->deleteTestingOnlyBackendTexture(&backendTex);
+ }
+
+ // Tests createWrappedTextureProxy that is only textureable
{
// Internal offscreen texture
GrBackendTexture backendTex =
@@ -258,6 +287,7 @@
kBorrow_GrWrapOwnership,
nullptr, nullptr);
if (!sProxy) {
+ gpu->deleteTestingOnlyBackendTexture(&backendTex);
continue;
}