diff options
author | 2017-05-08 20:46:17 +0000 | |
---|---|---|
committer | 2017-05-08 20:46:26 +0000 | |
commit | 449d78f5a8e73407b314aa6cb4e60a8273f0d410 (patch) | |
tree | e2cf8993a9dc917b69aa0dcfb0bc7904fbdf05e6 /src/image | |
parent | 823bdd96ef85c2e8bbea2bbeeff270b29755413d (diff) |
Revert "Added SkImage::MakeCrossContextFromEncoded"
This reverts commit 83b1b3db36e8622f4bbc8c391d5c714e258d1e03.
Reason for revert: unit test failing and asan leaks
Original change's description:
> Added SkImage::MakeCrossContextFromEncoded
>
> Designed for Flutter's threading architecture, with
> an eye to being useful to other clients. Under the
> hood, uses a new image generator class to lazily wrap
> a texture for multiple GrContexts.
>
> Bug: skia:
> Change-Id: I6c37b12c8ab5bce94b91190e5f0beb91d31ae81b
> Reviewed-on: https://skia-review.googlesource.com/14180
> Commit-Queue: Brian Osman <brianosman@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
>
TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com,brianosman@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Change-Id: I1f0bf580aa0ea2d132e18b64ff610ddac9d073a7
Reviewed-on: https://skia-review.googlesource.com/15892
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'src/image')
-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)); |