Index: include/core/SkImageGenerator.h |
diff --git a/include/core/SkImageGenerator.h b/include/core/SkImageGenerator.h |
index 1a46f6b9cd7dfc39c753170b7da6046ed0877bb2..86e3053a06928b3d9f6dd4eecf576464dc1f8caf 100644 |
--- a/include/core/SkImageGenerator.h |
+++ b/include/core/SkImageGenerator.h |
@@ -11,7 +11,6 @@ |
#include "SkBitmap.h" |
#include "SkColor.h" |
#include "SkImageInfo.h" |
-#include "SkYUVSizeInfo.h" |
class GrContext; |
class GrTexture; |
@@ -130,26 +129,18 @@ |
bool getPixels(const SkImageInfo& info, void* pixels, size_t rowBytes); |
/** |
- * 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. |
- */ |
- bool queryYUV8(SkYUVSizeInfo* sizeInfo, SkYUVColorSpace* colorSpace) const; |
- |
- /** |
- * 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 queryYUV8(). |
- * |
- * @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. |
- */ |
- bool getYUV8Planes(const SkYUVSizeInfo& sizeInfo, void* planes[3]); |
+ * If planes or rowBytes is NULL or if any entry in planes is NULL or if any entry in rowBytes |
+ * is 0, this imagegenerator should output the sizes and return true if it can efficiently |
+ * return YUV planar data. If it cannot, it should return false. Note that either planes and |
+ * rowBytes are both fully defined and non NULL/non 0 or they are both NULL or have NULL or 0 |
+ * entries only. Having only partial planes/rowBytes information is not supported. |
+ * |
+ * If all planes and rowBytes entries are non NULL or non 0, then it should copy the |
+ * associated YUV data into those planes of memory supplied by the caller. It should validate |
+ * that the sizes match what it expected. If the sizes do not match, it should return false. |
+ */ |
+ bool getYUV8Planes(SkISize sizes[3], void* planes[3], size_t rowBytes[3], |
+ SkYUVColorSpace* colorSpace); |
/** |
* If the generator can natively/efficiently return its pixels as a GPU image (backed by a |
@@ -257,13 +248,9 @@ |
virtual bool onGetPixels(const SkImageInfo& info, void* pixels, size_t rowBytes, |
SkPMColor ctable[], int* ctableCount); |
- |
- virtual bool onQueryYUV8(SkYUVSizeInfo*, SkYUVColorSpace*) const { |
- return false; |
- } |
- virtual bool onGetYUV8Planes(const SkYUVSizeInfo&, void*[3] /*planes*/) { |
- return false; |
- } |
+ virtual bool onGetYUV8Planes(SkISize sizes[3], void* planes[3], size_t rowBytes[3]); |
+ virtual bool onGetYUV8Planes(SkISize sizes[3], void* planes[3], size_t rowBytes[3], |
+ SkYUVColorSpace* colorSpace); |
virtual GrTexture* onGenerateTexture(GrContext*, const SkIRect*) { |
return nullptr; |