Index: tests/SurfaceTest.cpp |
diff --git a/tests/SurfaceTest.cpp b/tests/SurfaceTest.cpp |
index 42f4fcc3a4acbc9d7e9f2d10076a7f75775a1d4f..6871cbcf6d4af5e8423a174f19a312479e57c4a9 100644 |
--- a/tests/SurfaceTest.cpp |
+++ b/tests/SurfaceTest.cpp |
@@ -230,10 +230,11 @@ static uint32_t get_legacy_gen_id(SkSurface* surf) { |
return device->accessBitmap(false).getGenerationID(); |
} |
-static void test_texture_handle(skiatest::Reporter* reporter, SkSurface* surf) { |
+template <class F> |
+static void test_backend_handle(skiatest::Reporter* reporter, SkSurface* surf, F f) { |
SkAutoTUnref<SkImage> image0(surf->newImageSnapshot()); |
const uint32_t genID0 = get_legacy_gen_id(surf); |
- GrBackendObject obj = surf->getTextureHandle(SkSurface::kFlushRead_TextureHandleAccess); |
+ GrBackendObject obj = f(surf, SkSurface::kFlushRead_BackendHandleAccess); |
REPORTER_ASSERT(reporter, obj != 0); |
SkAutoTUnref<SkImage> image1(surf->newImageSnapshot()); |
const uint32_t genID1 = get_legacy_gen_id(surf); |
@@ -241,7 +242,7 @@ static void test_texture_handle(skiatest::Reporter* reporter, SkSurface* surf) { |
REPORTER_ASSERT(reporter, image0->uniqueID() == image1->uniqueID()); |
REPORTER_ASSERT(reporter, genID0 == genID1); |
- obj = surf->getTextureHandle(SkSurface::kFlushWrite_TextureHandleAccess); |
+ obj = f(surf, SkSurface::kFlushWrite_BackendHandleAccess); |
REPORTER_ASSERT(reporter, obj != 0); |
SkAutoTUnref<SkImage> image2(surf->newImageSnapshot()); |
const uint32_t genID2 = get_legacy_gen_id(surf); |
@@ -249,7 +250,7 @@ static void test_texture_handle(skiatest::Reporter* reporter, SkSurface* surf) { |
REPORTER_ASSERT(reporter, image0->uniqueID() != image2->uniqueID()); |
REPORTER_ASSERT(reporter, genID0 != genID2); |
- obj = surf->getTextureHandle(SkSurface::kDiscardWrite_TextureHandleAccess); |
+ obj = f(surf, SkSurface::kDiscardWrite_BackendHandleAccess); |
REPORTER_ASSERT(reporter, obj != 0); |
SkAutoTUnref<SkImage> image3(surf->newImageSnapshot()); |
const uint32_t genID3 = get_legacy_gen_id(surf); |
@@ -286,8 +287,16 @@ static SkImage* create_image(skiatest::Reporter* reporter, |
SkAutoTUnref<SkSurface> surf( |
SkSurface::NewRenderTarget(context, SkSurface::kNo_Budgeted, info, 0)); |
surf->getCanvas()->clear(color); |
- // test our backing texture while were here... |
- test_texture_handle(reporter, surf); |
+ // test our backing texture / rendertarget while were here... |
+ test_backend_handle(reporter, surf, |
+ [](SkSurface* surf, SkSurface::BackendHandleAccess access) -> GrBackendObject { |
+ return surf->getTextureHandle(access); }); |
+ test_backend_handle(reporter, surf, |
+ [](SkSurface* surf, SkSurface::BackendHandleAccess access) -> GrBackendObject { |
+ GrBackendObject obj; |
+ bool result = surf->getRenderTargetHandle(&obj, access); |
+ SkASSERT(result); |
+ return obj; }); |
// redraw so our returned image looks as expected. |
surf->getCanvas()->clear(color); |
return surf->newImageSnapshot(); |