, fDefaultPref(kUnknown_SkColorType)
, fPreserveSrcDepth(false)
, fDitherImage(true)
-#ifdef SK_SUPPORT_LEGACY_BITMAP_CONFIG
- , fUsePrefTable(false)
-#endif
, fSkipWritingZeroes(false)
, fPreferQualityOverSpeed(false)
, fRequireUnpremultipliedColors(false) {
#endif
other->setAllocator(fAllocator);
other->setSampleSize(fSampleSize);
-#ifdef SK_SUPPORT_LEGACY_BITMAP_CONFIG
- if (fUsePrefTable) {
- other->setPrefConfigTable(fPrefTable);
- } else {
- other->fDefaultPref = fDefaultPref;
- }
-#endif
other->setPreserveSrcDepth(fPreserveSrcDepth);
other->setDitherImage(fDitherImage);
other->setSkipWritingZeroes(fSkipWritingZeroes);
bool SkImageDecoder::allocPixelRef(SkBitmap* bitmap,
SkColorTable* ctable) const {
- return bitmap->allocPixels(fAllocator, ctable);
+ return bitmap->tryAllocPixels(fAllocator, ctable);
}
///////////////////////////////////////////////////////////////////////////////
-#ifdef SK_SUPPORT_LEGACY_BITMAP_CONFIG
-void SkImageDecoder::setPrefConfigTable(const PrefConfigTable& prefTable) {
- fUsePrefTable = true;
- fPrefTable = prefTable;
-}
-#endif
-
-// TODO: use colortype in fPrefTable, fDefaultPref so we can stop using SkBitmapConfigToColorType()
-//
SkColorType SkImageDecoder::getPrefColorType(SrcDepth srcDepth, bool srcHasAlpha) const {
SkColorType ct = fDefaultPref;
-#ifdef SK_SUPPORT_LEGACY_BITMAP_CONFIG
- if (fUsePrefTable) {
- // Until we kill or change the PrefTable, we have to go into Config land for a moment.
- SkBitmap::Config config = SkBitmap::kNo_Config;
- switch (srcDepth) {
- case kIndex_SrcDepth:
- config = srcHasAlpha ? fPrefTable.fPrefFor_8Index_YesAlpha_src
- : fPrefTable.fPrefFor_8Index_NoAlpha_src;
- break;
- case k8BitGray_SrcDepth:
- config = fPrefTable.fPrefFor_8Gray_src;
- break;
- case k32Bit_SrcDepth:
- config = srcHasAlpha ? fPrefTable.fPrefFor_8bpc_YesAlpha_src
- : fPrefTable.fPrefFor_8bpc_NoAlpha_src;
- break;
- }
- // now return to SkColorType land
- ct = SkBitmapConfigToColorType(config);
- }
-#endif
if (fPreserveSrcDepth) {
switch (srcDepth) {
case kIndex_SrcDepth:
bool success = false;
SkImageDecoder* codec = SkImageDecoder::Factory(stream);
- if (NULL != codec) {
+ if (codec) {
success = codec->decode(stream, bm, pref, mode);
if (success && format) {
*format = codec->getFormat();