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,