Index: include/core/SkImageDecoder.h |
diff --git a/include/core/SkImageDecoder.h b/include/core/SkImageDecoder.h |
index 58920992e1c709598a559d4dd94aa7587fa32a70..ed17f0fbf821b396adffa7cfc2bf211168c0f7a8 100644 |
--- a/include/core/SkImageDecoder.h |
+++ b/include/core/SkImageDecoder.h |
@@ -239,22 +239,22 @@ public: |
} |
/** Passed to the decode method. If kDecodeBounds_Mode is passed, then |
- only the bitmap's width/height/config need be set. If kDecodePixels_Mode |
+ only the bitmap's info need be set. If kDecodePixels_Mode |
is passed, then the bitmap must have pixels or a pixelRef. |
*/ |
enum Mode { |
- kDecodeBounds_Mode, //!< only return width/height/config in bitmap |
+ kDecodeBounds_Mode, //!< only return info in bitmap |
kDecodePixels_Mode //!< return entire bitmap (including pixels) |
}; |
/** Given a stream, decode it into the specified bitmap. |
- If the decoder can decompress the image, it calls bitmap.setConfig(), |
+ If the decoder can decompress the image, it calls bitmap.setInfo(), |
and then if the Mode is kDecodePixels_Mode, call allocPixelRef(), |
which will allocated a pixelRef. To access the pixel memory, the codec |
needs to call lockPixels/unlockPixels on the |
bitmap. It can then set the pixels with the decompressed image. |
* If the image cannot be decompressed, return false. After the |
- * decoding, the function converts the decoded config in bitmap |
+ * decoding, the function converts the decoded colortype in bitmap |
* to pref if possible. Whether a conversion is feasible is |
* tested by Bitmap::canCopyTo(pref). |
@@ -265,13 +265,10 @@ public: |
If a Peeker is installed via setPeeker, it may be used to peek into |
meta data during the decode. |
- |
- If a Chooser is installed via setChooser, it may be used to select |
- which image to return from a format that contains multiple images. |
*/ |
- bool decode(SkStream*, SkBitmap* bitmap, SkBitmap::Config pref, Mode); |
+ bool decode(SkStream*, SkBitmap* bitmap, SkColorType pref, Mode); |
bool decode(SkStream* stream, SkBitmap* bitmap, Mode mode) { |
- return this->decode(stream, bitmap, SkBitmap::kNo_Config, mode); |
+ return this->decode(stream, bitmap, kUnknown_SkColorType, mode); |
} |
/** |
@@ -290,7 +287,7 @@ public: |
* Return true for success. |
* Return false if the index is never built or failing in decoding. |
*/ |
- bool decodeSubset(SkBitmap* bm, const SkIRect& subset, SkBitmap::Config pref); |
+ bool decodeSubset(SkBitmap* bm, const SkIRect& subset, SkColorType pref); |
/** Given a stream, this will try to find an appropriate decoder object. |
If none is found, the method returns NULL. |
@@ -300,34 +297,31 @@ public: |
/** Decode the image stored in the specified file, and store the result |
in bitmap. Return true for success or false on failure. |
- @param prefConfig If the PrefConfigTable is not set, prefer this config. |
+ @param pref If the PrefConfigTable is not set, prefer this colortype. |
See NOTE ABOUT PREFERRED CONFIGS. |
@param format On success, if format is non-null, it is set to the format |
of the decoded file. On failure it is ignored. |
*/ |
- static bool DecodeFile(const char file[], SkBitmap* bitmap, |
- SkBitmap::Config prefConfig, Mode, |
+ static bool DecodeFile(const char file[], SkBitmap* bitmap, SkColorType pref, Mode, |
Format* format = NULL); |
static bool DecodeFile(const char file[], SkBitmap* bitmap) { |
- return DecodeFile(file, bitmap, SkBitmap::kNo_Config, |
- kDecodePixels_Mode, NULL); |
+ return DecodeFile(file, bitmap, kUnknown_SkColorType, kDecodePixels_Mode, NULL); |
} |
+ |
/** Decode the image stored in the specified memory buffer, and store the |
result in bitmap. Return true for success or false on failure. |
- @param prefConfig If the PrefConfigTable is not set, prefer this config. |
+ @param pref If the PrefConfigTable is not set, prefer this colortype. |
See NOTE ABOUT PREFERRED CONFIGS. |
@param format On success, if format is non-null, it is set to the format |
of the decoded buffer. On failure it is ignored. |
*/ |
- static bool DecodeMemory(const void* buffer, size_t size, SkBitmap* bitmap, |
- SkBitmap::Config prefConfig, Mode, |
- Format* format = NULL); |
+ static bool DecodeMemory(const void* buffer, size_t size, SkBitmap* bitmap, SkColorType pref, |
+ Mode, Format* format = NULL); |
static bool DecodeMemory(const void* buffer, size_t size, SkBitmap* bitmap){ |
- return DecodeMemory(buffer, size, bitmap, SkBitmap::kNo_Config, |
- kDecodePixels_Mode, NULL); |
+ return DecodeMemory(buffer, size, bitmap, kUnknown_SkColorType, kDecodePixels_Mode, NULL); |
} |
/** |
@@ -348,20 +342,39 @@ public: |
/** Decode the image stored in the specified SkStreamRewindable, and store the result |
in bitmap. Return true for success or false on failure. |
- @param prefConfig If the PrefConfigTable is not set, prefer this config. |
+ @param pref If the PrefConfigTable is not set, prefer this colortype. |
See NOTE ABOUT PREFERRED CONFIGS. |
@param format On success, if format is non-null, it is set to the format |
of the decoded stream. On failure it is ignored. |
*/ |
- static bool DecodeStream(SkStreamRewindable* stream, SkBitmap* bitmap, |
- SkBitmap::Config prefConfig, Mode, |
+ static bool DecodeStream(SkStreamRewindable* stream, SkBitmap* bitmap, SkColorType pref, Mode, |
Format* format = NULL); |
static bool DecodeStream(SkStreamRewindable* stream, SkBitmap* bitmap) { |
- return DecodeStream(stream, bitmap, SkBitmap::kNo_Config, |
- kDecodePixels_Mode, NULL); |
+ return DecodeStream(stream, bitmap, kUnknown_SkColorType, kDecodePixels_Mode, NULL); |
} |
+#ifdef SK_SUPPORT_LEGACY_IMAGEDECODER_CONFIG |
+ bool decode(SkStream*, SkBitmap* bitmap, SkBitmap::Config pref, Mode mode) { |
+ return this->decode(stream, bitmap, SkBitmapConfigToColorType(pref), mode); |
+ } |
+ bool decodeSubset(SkBitmap* bm, const SkIRect& subset, SkBitmap::Config pref) { |
+ return this->decodeSubset(bm, subset, SkBitmapConfigToColorType(pref)); |
+ } |
+ static bool DecodeFile(const char file[], SkBitmap* bitmap, SkBitmapConfig pref, Mode mode, |
+ Format* format = NULL) { |
+ return DecodeFile(file, bitmap, SkBitmapConfigToColorType(pref), mode, format); |
+ } |
+ static bool DecodeMemory(const void* buffer, size_t size, SkBitmap* bitmap, |
+ SkBitmap::Config pref, Mode mode, Format* format = NULL) { |
+ return DecodeMemory(buffer, size, bitmap, SkBitmapConfigToColorType(pref), mode, format); |
+ } |
+ static bool DecodeStream(SkStreamRewindable* stream, SkBitmap* bitmap, SkBitmap::Config pref, |
+ Mode mode, Format* format = NULL) { |
+ return DecodeStream(stream, bitmap, SkBitmapConfigToColorType(pref), mode, format); |
+ } |
+#endif |
+ |
protected: |
// must be overridden in subclasses. This guy is called by decode(...) |
virtual bool onDecode(SkStream*, SkBitmap* bitmap, Mode) = 0; |
@@ -403,12 +416,6 @@ protected: |
*/ |
void copyFieldsToOther(SkImageDecoder* other); |
- /** |
- * Return the default preference being used by the current or latest call to |
- * decode. |
- */ |
- SkBitmap::Config getDefaultPref() { return fDefaultPref; } |
- |
/** Can be queried from within onDecode, to see if the user (possibly in |
a different thread) has requested the decode to cancel. If this returns |
true, your onDecode() should stop and return false. |
@@ -424,15 +431,19 @@ public: |
protected: |
SkImageDecoder(); |
+ /** |
+ * Return the default preference being used by the current or latest call to decode. |
+ */ |
+ SkColorType getDefaultPref() { return fDefaultPref; } |
+ |
#ifdef SK_SUPPORT_LEGACY_IMAGEDECODER_CHOOSER |
// helper function for decoders to handle the (common) case where there is only |
// once choice available in the image file. |
bool chooseFromOneChoice(SkColorType, int width, int height) const; |
#endif |
- /* Helper for subclasses. Call this to allocate the pixel memory given the bitmap's |
- width/height/rowbytes/config. Returns true on success. This method handles checking |
- for an optional Allocator. |
+ /* Helper for subclasses. Call this to allocate the pixel memory given the bitmap's info. |
+ Returns true on success. This method handles checking for an optional Allocator. |
*/ |
bool allocPixelRef(SkBitmap*, SkColorTable*) const; |
@@ -461,7 +472,7 @@ private: |
#endif |
SkBitmap::Allocator* fAllocator; |
int fSampleSize; |
- SkBitmap::Config fDefaultPref; // use if fUsePrefTable is false |
+ SkColorType fDefaultPref; // use if fUsePrefTable is false |
PrefConfigTable fPrefTable; // use if fUsePrefTable is true |
bool fDitherImage; |
bool fUsePrefTable; |