diff options
author | 2017-05-08 15:16:45 -0400 | |
---|---|---|
committer | 2017-05-08 19:56:27 +0000 | |
commit | 83b1b3db36e8622f4bbc8c391d5c714e258d1e03 (patch) | |
tree | 95c4bf6e53bc73f90373fa06dbf6afa8298420e5 /include | |
parent | aef837a542cd91fba46bc0b3d4571a598710b90e (diff) |
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>
Diffstat (limited to 'include')
-rw-r--r-- | include/core/SkImage.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/include/core/SkImage.h b/include/core/SkImage.h index e7cb3f3e33..2ba67619fe 100644 --- a/include/core/SkImage.h +++ b/include/core/SkImage.h @@ -159,6 +159,21 @@ public: SkAlphaType, sk_sp<SkColorSpace>, TextureReleaseProc, ReleaseContext); + /** + * Decodes and uploads the encoded data to a GPU backed image using the supplied GrContext. + * That image can be safely used by other GrContexts, across thread boundaries. The GrContext + * used here, and the ones used to draw this image later must be in the same GL share group, + * or otherwise be able to share resources. + * + * When the image's ref count reaches zero, the original GrContext will destroy the texture, + * asynchronously. + * + * The texture will be decoded and uploaded to be suitable for use with surfaces that have the + * supplied destination color space. The color space of the image itself will be determined + * from the encoded data. + */ + static sk_sp<SkImage> MakeCrossContextFromEncoded(GrContext*, sk_sp<SkData>, bool buildMips, + SkColorSpace* dstColorSpace); /** * Create a new image from the specified descriptor. Note - Skia will delete or recycle the |