Add textureReleaseProc and releaseContext to SkImage factory functions

Specifically:
 MakeFromYUVATexturesCopyWithExternalBackend
 MakeFromNV12TexturesCopyWithExternalBackend

Change-Id: I41c16eb87e1a8fe9ec1fb4b7e6995e07374bb62c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/235600
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
diff --git a/src/image/SkImage.cpp b/src/image/SkImage.cpp
index 937d15b..0adcc8f 100644
--- a/src/image/SkImage.cpp
+++ b/src/image/SkImage.cpp
@@ -471,7 +471,9 @@
         SkISize imageSize,
         GrSurfaceOrigin imageOrigin,
         const GrBackendTexture& backendTexture,
-        sk_sp<SkColorSpace> imageColorSpace) {
+        sk_sp<SkColorSpace> imageColorSpace,
+        TextureReleaseProc textureReleaseProc,
+        ReleaseContext releaseContext) {
     return nullptr;
 }
 
@@ -500,12 +502,15 @@
     return nullptr;
 }
 
-sk_sp<SkImage> MakeFromNV12TexturesCopyWithExternalBackend(GrContext* context,
+sk_sp<SkImage> SkImage::MakeFromNV12TexturesCopyWithExternalBackend(
+                                                           GrContext* context,
                                                            SkYUVColorSpace yuvColorSpace,
                                                            const GrBackendTexture nv12Textures[2],
-                                                           GrSurfaceOrigin surfaceOrigin,
+                                                           GrSurfaceOrigin imageOrigin,
                                                            const GrBackendTexture& backendTexture,
-                                                           sk_sp<SkColorSpace> colorSpace) {
+                                                           sk_sp<SkColorSpace> imageColorSpace,
+                                                           TextureReleaseProc textureReleaseProc,
+                                                           ReleaseContext releaseContext) {
     return nullptr;
 }
 
diff --git a/src/image/SkImage_Gpu.cpp b/src/image/SkImage_Gpu.cpp
index 0623ada..4772128 100644
--- a/src/image/SkImage_Gpu.cpp
+++ b/src/image/SkImage_Gpu.cpp
@@ -264,7 +264,9 @@
         SkISize imageSize,
         GrSurfaceOrigin imageOrigin,
         const GrBackendTexture& backendTexture,
-        sk_sp<SkColorSpace> imageColorSpace) {
+        sk_sp<SkColorSpace> imageColorSpace,
+        TextureReleaseProc textureReleaseProc,
+        ReleaseContext releaseContext) {
     const GrCaps* caps = ctx->priv().caps();
 
     GrColorType grColorType = SkColorTypeAndFormatToGrColorType(caps, kRGBA_8888_SkColorType,
@@ -284,8 +286,8 @@
     sk_sp<GrRenderTargetContext> renderTargetContext(
             ctx->priv().makeBackendTextureRenderTargetContext(backendTexture, imageOrigin, 1,
                                                               grColorType,
-                                                              std::move(imageColorSpace)));
-
+                                                              std::move(imageColorSpace), nullptr,
+                                                              textureReleaseProc, releaseContext));
     if (!renderTargetContext) {
         return nullptr;
     }
@@ -321,7 +323,7 @@
     SkISize size{yuvTextures[0].width(), yuvTextures[0].height()};
     return SkImage_Gpu::MakeFromYUVATexturesCopyWithExternalBackend(
             ctx, yuvColorSpace, yuvTextures, yuvaIndices, size, imageOrigin, backendTexture,
-            std::move(imageColorSpace));
+            std::move(imageColorSpace), nullptr, nullptr);
 }
 
 sk_sp<SkImage> SkImage::MakeFromNV12TexturesCopy(GrContext* ctx, SkYUVColorSpace yuvColorSpace,
@@ -345,7 +347,9 @@
         const GrBackendTexture nv12Textures[2],
         GrSurfaceOrigin imageOrigin,
         const GrBackendTexture& backendTexture,
-        sk_sp<SkColorSpace> imageColorSpace) {
+        sk_sp<SkColorSpace> imageColorSpace,
+        TextureReleaseProc textureReleaseProc,
+        ReleaseContext releaseContext) {
     SkYUVAIndex yuvaIndices[4] = {
             SkYUVAIndex{0, SkColorChannel::kR},
             SkYUVAIndex{1, SkColorChannel::kR},
@@ -354,7 +358,7 @@
     SkISize size{nv12Textures[0].width(), nv12Textures[0].height()};
     return SkImage_Gpu::MakeFromYUVATexturesCopyWithExternalBackend(
             ctx, yuvColorSpace, nv12Textures, yuvaIndices, size, imageOrigin, backendTexture,
-            std::move(imageColorSpace));
+            std::move(imageColorSpace), textureReleaseProc, releaseContext);
 }
 
 static sk_sp<SkImage> create_image_from_producer(GrContext* context, GrTextureProducer* producer,