diff options
Diffstat (limited to 'src/image/SkImage_Gpu.cpp')
-rw-r--r-- | src/image/SkImage_Gpu.cpp | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/src/image/SkImage_Gpu.cpp b/src/image/SkImage_Gpu.cpp index 0fd9b71adb..dcf4b1cb63 100644 --- a/src/image/SkImage_Gpu.cpp +++ b/src/image/SkImage_Gpu.cpp @@ -11,7 +11,6 @@ #include "SkAutoPixmapStorage.h" #include "GrBackendSurface.h" -#include "GrBackendTextureImageGenerator.h" #include "GrBitmapTextureMaker.h" #include "GrCaps.h" #include "GrContext.h" @@ -462,46 +461,6 @@ sk_sp<SkImage> SkImage::makeTextureImage(GrContext* context, SkColorSpace* dstCo return nullptr; } -sk_sp<SkImage> SkImage::MakeCrossContextFromEncoded(GrContext* context, sk_sp<SkData> encoded, - bool buildMips, SkColorSpace* dstColorSpace) { - sk_sp<SkImage> codecImage = SkImage::MakeFromEncoded(std::move(encoded)); - if (!codecImage) { - return nullptr; - } - - // Some backends or drivers don't support (safely) moving resources between contexts - if (!context || !context->caps()->crossContextTextureSupport()) { - return codecImage; - } - - // Turn the codec image into a GrTextureProxy - GrImageTextureMaker maker(context, codecImage.get(), kDisallow_CachingHint); - sk_sp<SkColorSpace> texColorSpace; - GrSamplerParams params(SkShader::kClamp_TileMode, - buildMips ? GrSamplerParams::kMipMap_FilterMode - : GrSamplerParams::kBilerp_FilterMode); - sk_sp<GrTextureProxy> proxy(maker.refTextureProxyForParams(params, dstColorSpace, - &texColorSpace, nullptr)); - if (!proxy) { - return codecImage; - } - - sk_sp<GrTexture> texture(sk_ref_sp(proxy->instantiate(context->resourceProvider()))); - if (!texture) { - return codecImage; - } - - // Flush any writes or uploads - context->contextPriv().prepareSurfaceForExternalIO(proxy.get()); - - sk_sp<GrSemaphore> sema = context->getGpu()->prepareTextureForCrossContextUsage(texture.get()); - - auto gen = GrBackendTextureImageGenerator::Make(std::move(texture), std::move(sema), - codecImage->alphaType(), - std::move(texColorSpace)); - return SkImage::MakeFromGenerator(std::move(gen)); -} - std::unique_ptr<SkCrossContextImageData> SkCrossContextImageData::MakeFromEncoded( GrContext* context, sk_sp<SkData> encoded, SkColorSpace* dstColorSpace) { sk_sp<SkImage> codecImage = SkImage::MakeFromEncoded(std::move(encoded)); |