diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /gfx/skia/skia/src/gpu/GrYUVProvider.h | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'gfx/skia/skia/src/gpu/GrYUVProvider.h')
-rw-r--r-- | gfx/skia/skia/src/gpu/GrYUVProvider.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/gfx/skia/skia/src/gpu/GrYUVProvider.h b/gfx/skia/skia/src/gpu/GrYUVProvider.h new file mode 100644 index 000000000..c32af15df --- /dev/null +++ b/gfx/skia/skia/src/gpu/GrYUVProvider.h @@ -0,0 +1,67 @@ +/* + * Copyright 2015 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef GrYUVProvider_DEFINED +#define GrYUVProvider_DEFINED + +#include "GrTypes.h" +#include "SkImageInfo.h" +#include "SkYUVSizeInfo.h" + +class GrContext; +class GrTexture; + +/** + * There are at least 2 different ways to extract/retrieve YUV planar data... + * - SkPixelRef + * - SkImageGeneartor + * + * To share common functionality around using the planar data, we use this abstract base-class + * to represent accessing that data. + */ +class GrYUVProvider { +public: + virtual ~GrYUVProvider() {} + + /** + * On success, this returns a texture that has converted the YUV data from the provider + * into a form that is supported by the GPU (typically transformed into RGB). If useCache + * is true, then the texture will automatically have a key added, so it can be retrieved + * from the cache (assuming it is requested by a provider w/ the same genID). + * + * On failure (e.g. the provider had no data), this returns NULL. + */ + sk_sp<GrTexture> refAsTexture(GrContext*, const GrSurfaceDesc&, bool useCache); + + virtual uint32_t onGetID() = 0; + + // These are not meant to be called by a client, only by the implementation + + /** + * If decoding to YUV is supported, this returns true. Otherwise, this + * returns false and does not modify any of the parameters. + * + * @param sizeInfo Output parameter indicating the sizes and required + * allocation widths of the Y, U, and V planes. + * @param colorSpace Output parameter. + */ + virtual bool onQueryYUV8(SkYUVSizeInfo* sizeInfo, SkYUVColorSpace* colorSpace) const = 0; + + /** + * Returns true on success and false on failure. + * This always attempts to perform a full decode. If the client only + * wants size, it should call onQueryYUV8(). + * + * @param sizeInfo Needs to exactly match the values returned by the + * query, except the WidthBytes may be larger than the + * recommendation (but not smaller). + * @param planes Memory for each of the Y, U, and V planes. + */ + virtual bool onGetYUV8Planes(const SkYUVSizeInfo& sizeInfo, void* planes[3]) = 0; +}; + +#endif |