Index: include/core/SkImageGenerator.h |
diff --git a/include/core/SkImageGenerator.h b/include/core/SkImageGenerator.h |
index 5de9d3d85ace1d64a1cf2b7a3e3c1b412b6a2b68..a5440bd3b4d88011bb70dee991a28c2c1c61771c 100644 |
--- a/include/core/SkImageGenerator.h |
+++ b/include/core/SkImageGenerator.h |
@@ -15,6 +15,8 @@ class SkBitmap; |
class SkData; |
class SkImageGenerator; |
+//#define SK_SUPPORT_LEGACY_OPTIONLESS_GET_PIXELS |
+ |
/** |
* Takes ownership of SkImageGenerator. If this method fails for |
* whatever reason, it will return false and immediatetely delete |
@@ -117,6 +119,34 @@ public: |
}; |
/** |
+ * Whether or not the memory passed to getPixels is zero initialized. |
+ */ |
+ enum ZeroInitialized { |
+ /** |
+ * The memory passed to getPixels is zero initialized. The SkCodec |
+ * may take advantage of this by skipping writing zeroes. |
+ */ |
+ kYes_ZeroInitialized, |
+ /** |
+ * The memory passed to getPixels has not been initialized to zero, |
+ * so the SkCodec must write all zeroes to memory. |
+ * |
+ * This is the default. It will be used if no Options struct is used. |
+ */ |
+ kNo_ZeroInitialized, |
+ }; |
+ |
+ /** |
+ * Additional options to pass to getPixels. |
+ */ |
+ struct Options { |
+ Options() |
+ : fZeroInitialized(kNo_ZeroInitialized) {} |
+ |
+ ZeroInitialized fZeroInitialized; |
+ }; |
+ |
+ /** |
* Decode into the given pixels, a block of memory of size at |
* least (info.fHeight - 1) * rowBytes + (info.fWidth * |
* bytesPerPixel) |
@@ -145,11 +175,12 @@ public: |
* |
* @return Result kSuccess, or another value explaining the type of failure. |
*/ |
- Result getPixels(const SkImageInfo& info, void* pixels, size_t rowBytes, |
+ Result getPixels(const SkImageInfo& info, void* pixels, size_t rowBytes, const Options*, |
SkPMColor ctable[], int* ctableCount); |
/** |
- * Simplified version of getPixels() that asserts that info is NOT kIndex8_SkColorType. |
+ * Simplified version of getPixels() that asserts that info is NOT kIndex8_SkColorType and |
+ * uses the default Options. |
*/ |
Result getPixels(const SkImageInfo& info, void* pixels, size_t rowBytes); |
@@ -177,9 +208,14 @@ public: |
protected: |
virtual SkData* onRefEncodedData(); |
virtual bool onGetInfo(SkImageInfo* info); |
+#ifdef SK_SUPPORT_LEGACY_OPTIONLESS_GET_PIXELS |
virtual Result onGetPixels(const SkImageInfo& info, |
void* pixels, size_t rowBytes, |
SkPMColor ctable[], int* ctableCount); |
+#endif |
+ virtual Result onGetPixels(const SkImageInfo& info, |
+ void* pixels, size_t rowBytes, const Options&, |
+ SkPMColor ctable[], int* ctableCount); |
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); |