Add GrBackendTexture accessor to SkImage (take 2)

This makes accessing the GPU resource behind an SkImage a lot more typesafe. Additionally, the GrBackendObject is being deprecated so this is the path forward.

I split the controversial stuff off into https://skia-review.googlesource.com/c/skia/+/118575 (Add SkImage::setLayout call).

Change-Id: I297e72770e8fb360fac7c7cd74f050ae759ae133
Reviewed-on: https://skia-review.googlesource.com/118571
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
diff --git a/tests/SurfaceTest.cpp b/tests/SurfaceTest.cpp
index e74dcc9..744dd63 100644
--- a/tests/SurfaceTest.cpp
+++ b/tests/SurfaceTest.cpp
@@ -551,11 +551,12 @@
         sk_sp<SkImage> image(surface->makeImageSnapshot());
 
         REPORTER_ASSERT(reporter, as_IB(image)->isTextureBacked());
-        GrBackendObject textureHandle = image->getTextureHandle(false);
-        REPORTER_ASSERT(reporter, 0 != textureHandle);
+        GrBackendTexture backendTex = image->getBackendTexture(false);
+        REPORTER_ASSERT(reporter, backendTex.isValid());
         surface->notifyContentWillChange(SkSurface::kDiscard_ContentChangeMode);
         REPORTER_ASSERT(reporter, as_IB(image)->isTextureBacked());
-        REPORTER_ASSERT(reporter, textureHandle == image->getTextureHandle(false));
+        GrBackendTexture backendTex2 = image->getBackendTexture(false);
+        REPORTER_ASSERT(reporter, GrBackendTexture::TestingOnly_Equals(backendTex, backendTex2));
     }
 }
 #endif