Index: src/codec/SkCodec_wbmp.cpp |
diff --git a/src/codec/SkCodec_wbmp.cpp b/src/codec/SkCodec_wbmp.cpp |
index af22e402ae64a40a0993ac83bb8879e20c8fae3d..ed3db50e6622c4a87a3591d61b460ba0f4582c9d 100644 |
--- a/src/codec/SkCodec_wbmp.cpp |
+++ b/src/codec/SkCodec_wbmp.cpp |
@@ -71,16 +71,16 @@ bool SkWbmpCodec::onRewind() { |
return read_header(this->stream(), nullptr); |
} |
-SkSwizzler* SkWbmpCodec::initializeSwizzler(const SkImageInfo& info, |
- const SkPMColor* ctable, const Options& opts) { |
+SkSwizzler* SkWbmpCodec::initializeSwizzler(const SkImageInfo& info, const SkPMColor* ctable, |
+ const Options& opts, int subsetLeft, int subsetWidth) { |
// Create the swizzler based on the desired color type |
switch (info.colorType()) { |
case kIndex_8_SkColorType: |
case kN32_SkColorType: |
case kRGB_565_SkColorType: |
case kGray_8_SkColorType: |
- return SkSwizzler::CreateSwizzler(SkSwizzler::kBit, ctable, info, opts.fZeroInitialized, |
- this->getInfo()); |
+ return SkSwizzler::CreateSwizzler(SkSwizzler::kBit, ctable, info, opts.fZeroInitialized, |
+ this->getInfo(), subsetLeft, subsetWidth); |
default: |
return nullptr; |
} |
@@ -125,8 +125,9 @@ SkCodec::Result SkWbmpCodec::onGetPixels(const SkImageInfo& info, |
// Initialize the swizzler |
- SkAutoTDelete<SkSwizzler> swizzler(this->initializeSwizzler(info, ctable, options)); |
- if (nullptr == swizzler.get()) { |
+ SkAutoTDelete<SkSwizzler> swizzler(this->initializeSwizzler(info, ctable, options, 0, |
+ info.width())); |
+ if (NULL == swizzler.get()) { |
return kInvalidConversion; |
} |
@@ -173,7 +174,8 @@ int SkWbmpCodec::onGetScanlines(void* dst, int count, size_t dstRowBytes) { |
} |
SkCodec::Result SkWbmpCodec::onStartScanlineDecode(const SkImageInfo& dstInfo, |
- const Options& options, SkPMColor inputColorTable[], int* inputColorCount) { |
+ const Options& options, SkPMColor inputColorTable[], int* inputColorCount, int subsetLeft, |
+ int subsetWidth) { |
if (options.fSubset) { |
// Subsets are not supported. |
return kUnimplemented; |
@@ -197,8 +199,8 @@ SkCodec::Result SkWbmpCodec::onStartScanlineDecode(const SkImageInfo& dstInfo, |
} |
// Initialize the swizzler |
- fSwizzler.reset(this->initializeSwizzler(dstInfo, |
- get_color_ptr(fColorTable.get()), options)); |
+ fSwizzler.reset(this->initializeSwizzler(dstInfo, get_color_ptr(fColorTable.get()), options, |
+ subsetLeft, subsetWidth)); |
if (nullptr == fSwizzler.get()) { |
return kInvalidConversion; |
} |