Index: src/android/SkBitmapRegionDecoder.cpp |
diff --git a/src/android/SkBitmapRegionDecoder.cpp b/src/android/SkBitmapRegionDecoder.cpp |
index 7dc05059e1b76255f307cda621bc02a5d3856584..55bc64651a0d450c3f5a3f033e6ba315bd16d81d 100644 |
--- a/src/android/SkBitmapRegionDecoder.cpp |
+++ b/src/android/SkBitmapRegionDecoder.cpp |
@@ -30,29 +30,37 @@ SkBitmapRegionDecoder* SkBitmapRegionDecoder::Create( |
return nullptr; |
} |
- if (SkEncodedFormat::kWEBP_SkEncodedFormat == codec->getEncodedFormat()) { |
- // FIXME: Support webp using a special case. Webp does not support |
- // scanline decoding. |
- return nullptr; |
- } |
- |
- switch (codec->getScanlineOrder()) { |
scroggo
2015/11/16 14:20:06
I suppose you took this out because we should neve
msarett
2015/11/16 14:27:51
Yes you're right. Sounds good to me.
|
- case SkCodec::kTopDown_SkScanlineOrder: |
- case SkCodec::kNone_SkScanlineOrder: |
+ SkEncodedFormat format = codec->getEncodedFormat(); |
+ switch (format) { |
+ case SkEncodedFormat::kJPEG_SkEncodedFormat: |
+ case SkEncodedFormat::kPNG_SkEncodedFormat: |
break; |
default: |
- SkCodecPrintf("Error: Scanline ordering not supported.\n"); |
+ // FIXME: Support webp using a special case. Webp does not support |
+ // scanline decoding. |
return nullptr; |
} |
+ |
return new SkBitmapRegionCanvas(codec.detach()); |
} |
case kAndroidCodec_Strategy: { |
SkAutoTDelete<SkAndroidCodec> codec = |
SkAndroidCodec::NewFromStream(streamDeleter.detach()); |
- if (NULL == codec) { |
+ if (nullptr == codec) { |
SkCodecPrintf("Error: Failed to create codec.\n"); |
return NULL; |
} |
+ |
+ SkEncodedFormat format = codec->getEncodedFormat(); |
+ switch (format) { |
+ case SkEncodedFormat::kJPEG_SkEncodedFormat: |
+ case SkEncodedFormat::kPNG_SkEncodedFormat: |
+ case SkEncodedFormat::kWEBP_SkEncodedFormat: |
+ break; |
+ default: |
+ return nullptr; |
+ } |
+ |
return new SkBitmapRegionCodec(codec.detach()); |
} |
default: |