Chromium Code Reviews| Index: src/codec/SkSwizzler.cpp |
| diff --git a/src/codec/SkSwizzler.cpp b/src/codec/SkSwizzler.cpp |
| index f242421424e3f48b29e02a31102b4366f0453ba2..c9eb923053879809706ceec392444136181729e6 100644 |
| --- a/src/codec/SkSwizzler.cpp |
| +++ b/src/codec/SkSwizzler.cpp |
| @@ -651,318 +651,326 @@ SkSwizzler* SkSwizzler::CreateSwizzler(const SkEncodedInfo& encodedInfo, |
| const SkPMColor* ctable, |
| const SkImageInfo& dstInfo, |
| const SkCodec::Options& options, |
| - const SkIRect* frame) { |
| + const SkIRect* frame, |
| + bool preSwizzled) { |
| if (SkEncodedInfo::kPalette_Color == encodedInfo.color() && nullptr == ctable) { |
| return nullptr; |
| } |
| RowProc fastProc = nullptr; |
| RowProc proc = nullptr; |
| - SkCodec::ZeroInitialized zeroInit = options.fZeroInitialized; |
| - const bool premultiply = (SkEncodedInfo::kOpaque_Alpha != encodedInfo.alpha()) && |
| - (kPremul_SkAlphaType == dstInfo.alphaType()); |
| - switch (encodedInfo.color()) { |
| - case SkEncodedInfo::kGray_Color: |
| - switch (encodedInfo.bitsPerComponent()) { |
| - case 1: |
| - switch (dstInfo.colorType()) { |
| - case kRGBA_8888_SkColorType: |
| - case kBGRA_8888_SkColorType: |
| - proc = &swizzle_bit_to_n32; |
| - break; |
| - case kIndex_8_SkColorType: |
| - proc = &swizzle_bit_to_index; |
| - break; |
| - case kRGB_565_SkColorType: |
| - proc = &swizzle_bit_to_565; |
| - break; |
| - case kGray_8_SkColorType: |
| - proc = &swizzle_bit_to_grayscale; |
| - break; |
| - default: |
| - return nullptr; |
| - } |
| - break; |
| - case 8: |
| - switch (dstInfo.colorType()) { |
| - case kRGBA_8888_SkColorType: |
| - case kBGRA_8888_SkColorType: |
| - proc = &swizzle_gray_to_n32; |
| - fastProc = &fast_swizzle_gray_to_n32; |
| - break; |
| - case kGray_8_SkColorType: |
| - proc = &sample1; |
| - fastProc = © |
| - break; |
| - case kRGB_565_SkColorType: |
| - proc = &swizzle_gray_to_565; |
| - break; |
| - default: |
| - return nullptr; |
| - } |
| - break; |
| - default: |
| - return nullptr; |
| - } |
| - break; |
| - case SkEncodedInfo::kGrayAlpha_Color: |
| - switch (dstInfo.colorType()) { |
| - case kRGBA_8888_SkColorType: |
| - case kBGRA_8888_SkColorType: |
| - if (premultiply) { |
| - if (SkCodec::kYes_ZeroInitialized == zeroInit) { |
| - proc = &SkipLeadingGrayAlphaZerosThen<swizzle_grayalpha_to_n32_premul>; |
| - fastProc = &SkipLeadingGrayAlphaZerosThen |
| - <fast_swizzle_grayalpha_to_n32_premul>; |
| - } else { |
| - proc = &swizzle_grayalpha_to_n32_premul; |
| - fastProc = &fast_swizzle_grayalpha_to_n32_premul; |
| + if (preSwizzled) { |
|
msarett
2016/04/25 16:58:45
Original kPreSwizzled block is moved here - nothin
|
| + switch (dstInfo.colorType()) { |
| + case kGray_8_SkColorType: |
| + proc = &sample1; |
| + fastProc = © |
| + break; |
| + case kRGB_565_SkColorType: |
| + proc = &sample2; |
| + fastProc = © |
| + break; |
| + case kRGBA_8888_SkColorType: |
| + case kBGRA_8888_SkColorType: |
| + proc = &sample4; |
| + fastProc = © |
| + break; |
| + default: |
| + return nullptr; |
| + } |
| + } else { |
| + SkCodec::ZeroInitialized zeroInit = options.fZeroInitialized; |
| + const bool premultiply = (SkEncodedInfo::kOpaque_Alpha != encodedInfo.alpha()) && |
| + (kPremul_SkAlphaType == dstInfo.alphaType()); |
| + |
| + switch (encodedInfo.color()) { |
| + case SkEncodedInfo::kGray_Color: |
| + switch (encodedInfo.bitsPerComponent()) { |
| + case 1: |
| + switch (dstInfo.colorType()) { |
| + case kRGBA_8888_SkColorType: |
| + case kBGRA_8888_SkColorType: |
| + proc = &swizzle_bit_to_n32; |
| + break; |
| + case kIndex_8_SkColorType: |
| + proc = &swizzle_bit_to_index; |
| + break; |
| + case kRGB_565_SkColorType: |
| + proc = &swizzle_bit_to_565; |
| + break; |
| + case kGray_8_SkColorType: |
| + proc = &swizzle_bit_to_grayscale; |
| + break; |
| + default: |
| + return nullptr; |
| } |
| - } else { |
| - if (SkCodec::kYes_ZeroInitialized == zeroInit) { |
| - proc = &SkipLeadingGrayAlphaZerosThen |
| - <swizzle_grayalpha_to_n32_unpremul>; |
| - fastProc = &SkipLeadingGrayAlphaZerosThen |
| - <fast_swizzle_grayalpha_to_n32_unpremul>; |
| - } else { |
| - proc = &swizzle_grayalpha_to_n32_unpremul; |
| - fastProc = &fast_swizzle_grayalpha_to_n32_unpremul; |
| + break; |
| + case 8: |
| + switch (dstInfo.colorType()) { |
| + case kRGBA_8888_SkColorType: |
| + case kBGRA_8888_SkColorType: |
| + proc = &swizzle_gray_to_n32; |
| + fastProc = &fast_swizzle_gray_to_n32; |
| + break; |
| + case kGray_8_SkColorType: |
| + proc = &sample1; |
| + fastProc = © |
| + break; |
| + case kRGB_565_SkColorType: |
| + proc = &swizzle_gray_to_565; |
| + break; |
| + default: |
| + return nullptr; |
| } |
| - } |
| - break; |
| - default: |
| - return nullptr; |
| - } |
| - break; |
| - case SkEncodedInfo::kPalette_Color: |
| - // We assume that the color table is premultiplied and swizzled |
| - // as desired. |
| - switch (encodedInfo.bitsPerComponent()) { |
| - case 1: |
| - case 2: |
| - case 4: |
| - switch (dstInfo.colorType()) { |
| - case kRGBA_8888_SkColorType: |
| - case kBGRA_8888_SkColorType: |
| - proc = &swizzle_small_index_to_n32; |
| - break; |
| - case kRGB_565_SkColorType: |
| - proc = &swizzle_small_index_to_565; |
| - break; |
| - case kIndex_8_SkColorType: |
| - proc = &swizzle_small_index_to_index; |
| - break; |
| - default: |
| - return nullptr; |
| - } |
| - break; |
| - case 8: |
| - switch (dstInfo.colorType()) { |
| - case kRGBA_8888_SkColorType: |
| - case kBGRA_8888_SkColorType: |
| + break; |
| + default: |
| + return nullptr; |
| + } |
| + break; |
| + case SkEncodedInfo::kGrayAlpha_Color: |
| + switch (dstInfo.colorType()) { |
| + case kRGBA_8888_SkColorType: |
| + case kBGRA_8888_SkColorType: |
| + if (premultiply) { |
| if (SkCodec::kYes_ZeroInitialized == zeroInit) { |
| - proc = &swizzle_index_to_n32_skipZ; |
| + proc = &SkipLeadingGrayAlphaZerosThen |
| + <swizzle_grayalpha_to_n32_premul>; |
| + fastProc = &SkipLeadingGrayAlphaZerosThen |
| + <fast_swizzle_grayalpha_to_n32_premul>; |
| } else { |
| - proc = &swizzle_index_to_n32; |
| + proc = &swizzle_grayalpha_to_n32_premul; |
| + fastProc = &fast_swizzle_grayalpha_to_n32_premul; |
| } |
| - break; |
| - case kRGB_565_SkColorType: |
| - proc = &swizzle_index_to_565; |
| - break; |
| - case kIndex_8_SkColorType: |
| - proc = &sample1; |
| - fastProc = © |
| - break; |
| - default: |
| - return nullptr; |
| - } |
| - break; |
| - default: |
| - return nullptr; |
| - } |
| - break; |
| - case SkEncodedInfo::kRGB_Color: |
| - switch (dstInfo.colorType()) { |
| - case kRGBA_8888_SkColorType: |
| - proc = &swizzle_rgb_to_rgba; |
| - fastProc = &fast_swizzle_rgb_to_rgba; |
| - break; |
| - case kBGRA_8888_SkColorType: |
| - proc = &swizzle_rgb_to_bgra; |
| - fastProc = &fast_swizzle_rgb_to_bgra; |
| - break; |
| - case kRGB_565_SkColorType: |
| - proc = &swizzle_rgb_to_565; |
| - break; |
| - default: |
| - return nullptr; |
| - } |
| - break; |
| - case SkEncodedInfo::kRGBA_Color: |
| - switch (dstInfo.colorType()) { |
| - case kRGBA_8888_SkColorType: |
| - if (premultiply) { |
| - if (SkCodec::kYes_ZeroInitialized == zeroInit) { |
| - proc = &SkipLeading8888ZerosThen<swizzle_rgba_to_rgba_premul>; |
| - fastProc = &SkipLeading8888ZerosThen<fast_swizzle_rgba_to_rgba_premul>; |
| } else { |
| - proc = &swizzle_rgba_to_rgba_premul; |
| - fastProc = &fast_swizzle_rgba_to_rgba_premul; |
| - } |
| - } else { |
| - if (SkCodec::kYes_ZeroInitialized == zeroInit) { |
| - proc = &SkipLeading8888ZerosThen<sample4>; |
| - fastProc = &SkipLeading8888ZerosThen<copy>; |
| - } else { |
| - proc = &sample4; |
| - fastProc = © |
| + if (SkCodec::kYes_ZeroInitialized == zeroInit) { |
| + proc = &SkipLeadingGrayAlphaZerosThen |
| + <swizzle_grayalpha_to_n32_unpremul>; |
| + fastProc = &SkipLeadingGrayAlphaZerosThen |
| + <fast_swizzle_grayalpha_to_n32_unpremul>; |
| + } else { |
| + proc = &swizzle_grayalpha_to_n32_unpremul; |
| + fastProc = &fast_swizzle_grayalpha_to_n32_unpremul; |
| + } |
| } |
| - } |
| - break; |
| - case kBGRA_8888_SkColorType: |
| - if (premultiply) { |
| - if (SkCodec::kYes_ZeroInitialized == zeroInit) { |
| - proc = &SkipLeading8888ZerosThen<swizzle_rgba_to_bgra_premul>; |
| - fastProc = &SkipLeading8888ZerosThen<fast_swizzle_rgba_to_bgra_premul>; |
| - } else { |
| - proc = &swizzle_rgba_to_bgra_premul; |
| - fastProc = &fast_swizzle_rgba_to_bgra_premul; |
| + break; |
| + default: |
| + return nullptr; |
| + } |
| + break; |
| + case SkEncodedInfo::kPalette_Color: |
| + // We assume that the color table is premultiplied and swizzled |
| + // as desired. |
| + switch (encodedInfo.bitsPerComponent()) { |
| + case 1: |
| + case 2: |
| + case 4: |
| + switch (dstInfo.colorType()) { |
| + case kRGBA_8888_SkColorType: |
| + case kBGRA_8888_SkColorType: |
| + proc = &swizzle_small_index_to_n32; |
| + break; |
| + case kRGB_565_SkColorType: |
| + proc = &swizzle_small_index_to_565; |
| + break; |
| + case kIndex_8_SkColorType: |
| + proc = &swizzle_small_index_to_index; |
| + break; |
| + default: |
| + return nullptr; |
| } |
| - } else { |
| - if (SkCodec::kYes_ZeroInitialized == zeroInit) { |
| - proc = &SkipLeading8888ZerosThen<swizzle_rgba_to_bgra_unpremul>; |
| - fastProc = &SkipLeading8888ZerosThen |
| - <fast_swizzle_rgba_to_bgra_unpremul>; |
| - } else { |
| - proc = &swizzle_rgba_to_bgra_unpremul; |
| - fastProc = &fast_swizzle_rgba_to_bgra_unpremul; |
| + break; |
| + case 8: |
| + switch (dstInfo.colorType()) { |
| + case kRGBA_8888_SkColorType: |
| + case kBGRA_8888_SkColorType: |
| + if (SkCodec::kYes_ZeroInitialized == zeroInit) { |
| + proc = &swizzle_index_to_n32_skipZ; |
| + } else { |
| + proc = &swizzle_index_to_n32; |
| + } |
| + break; |
| + case kRGB_565_SkColorType: |
| + proc = &swizzle_index_to_565; |
| + break; |
| + case kIndex_8_SkColorType: |
| + proc = &sample1; |
| + fastProc = © |
| + break; |
| + default: |
| + return nullptr; |
| } |
| - } |
| - break; |
| - default: |
| - return nullptr; |
| - } |
| - break; |
| - case SkEncodedInfo::kBGR_Color: |
| - switch (dstInfo.colorType()) { |
| - case kBGRA_8888_SkColorType: |
| - proc = &swizzle_rgb_to_rgba; |
| - fastProc = &fast_swizzle_rgb_to_rgba; |
| - break; |
| - case kRGBA_8888_SkColorType: |
| - proc = &swizzle_rgb_to_bgra; |
| - fastProc = &fast_swizzle_rgb_to_bgra; |
| - break; |
| - case kRGB_565_SkColorType: |
| - proc = &swizzle_bgr_to_565; |
| - break; |
| - default: |
| - return nullptr; |
| - } |
| - break; |
| - case SkEncodedInfo::kBGRX_Color: |
| - switch (dstInfo.colorType()) { |
| - case kBGRA_8888_SkColorType: |
| - proc = &swizzle_rgb_to_rgba; |
| - break; |
| - case kRGBA_8888_SkColorType: |
| - proc = &swizzle_rgb_to_bgra; |
| - break; |
| - case kRGB_565_SkColorType: |
| - proc = &swizzle_bgr_to_565; |
| - break; |
| - default: |
| - return nullptr; |
| - } |
| - break; |
| - case SkEncodedInfo::kBGRA_Color: |
| - switch (dstInfo.colorType()) { |
| - case kBGRA_8888_SkColorType: |
| - if (premultiply) { |
| - if (SkCodec::kYes_ZeroInitialized == zeroInit) { |
| - proc = &SkipLeading8888ZerosThen<swizzle_rgba_to_rgba_premul>; |
| - fastProc = &SkipLeading8888ZerosThen<fast_swizzle_rgba_to_rgba_premul>; |
| + break; |
| + default: |
| + return nullptr; |
| + } |
| + break; |
| + case SkEncodedInfo::kRGB_Color: |
| + switch (dstInfo.colorType()) { |
| + case kRGBA_8888_SkColorType: |
| + proc = &swizzle_rgb_to_rgba; |
| + fastProc = &fast_swizzle_rgb_to_rgba; |
| + break; |
| + case kBGRA_8888_SkColorType: |
| + proc = &swizzle_rgb_to_bgra; |
| + fastProc = &fast_swizzle_rgb_to_bgra; |
| + break; |
| + case kRGB_565_SkColorType: |
| + proc = &swizzle_rgb_to_565; |
| + break; |
| + default: |
| + return nullptr; |
| + } |
| + break; |
| + case SkEncodedInfo::kRGBA_Color: |
| + switch (dstInfo.colorType()) { |
| + case kRGBA_8888_SkColorType: |
| + if (premultiply) { |
| + if (SkCodec::kYes_ZeroInitialized == zeroInit) { |
| + proc = &SkipLeading8888ZerosThen<swizzle_rgba_to_rgba_premul>; |
| + fastProc = &SkipLeading8888ZerosThen |
| + <fast_swizzle_rgba_to_rgba_premul>; |
| + } else { |
| + proc = &swizzle_rgba_to_rgba_premul; |
| + fastProc = &fast_swizzle_rgba_to_rgba_premul; |
| + } |
| } else { |
| - proc = &swizzle_rgba_to_rgba_premul; |
| - fastProc = &fast_swizzle_rgba_to_rgba_premul; |
| + if (SkCodec::kYes_ZeroInitialized == zeroInit) { |
| + proc = &SkipLeading8888ZerosThen<sample4>; |
| + fastProc = &SkipLeading8888ZerosThen<copy>; |
| + } else { |
| + proc = &sample4; |
| + fastProc = © |
| + } |
| } |
| - } else { |
| - if (SkCodec::kYes_ZeroInitialized == zeroInit) { |
| - proc = &SkipLeading8888ZerosThen<sample4>; |
| - fastProc = &SkipLeading8888ZerosThen<copy>; |
| + break; |
| + case kBGRA_8888_SkColorType: |
| + if (premultiply) { |
| + if (SkCodec::kYes_ZeroInitialized == zeroInit) { |
| + proc = &SkipLeading8888ZerosThen<swizzle_rgba_to_bgra_premul>; |
| + fastProc = &SkipLeading8888ZerosThen |
| + <fast_swizzle_rgba_to_bgra_premul>; |
| + } else { |
| + proc = &swizzle_rgba_to_bgra_premul; |
| + fastProc = &fast_swizzle_rgba_to_bgra_premul; |
| + } |
| } else { |
| - proc = &sample4; |
| - fastProc = © |
| + if (SkCodec::kYes_ZeroInitialized == zeroInit) { |
| + proc = &SkipLeading8888ZerosThen<swizzle_rgba_to_bgra_unpremul>; |
| + fastProc = &SkipLeading8888ZerosThen |
| + <fast_swizzle_rgba_to_bgra_unpremul>; |
| + } else { |
| + proc = &swizzle_rgba_to_bgra_unpremul; |
| + fastProc = &fast_swizzle_rgba_to_bgra_unpremul; |
| + } |
| } |
| - } |
| - break; |
| - case kRGBA_8888_SkColorType: |
| - if (premultiply) { |
| - if (SkCodec::kYes_ZeroInitialized == zeroInit) { |
| - proc = &SkipLeading8888ZerosThen<swizzle_rgba_to_bgra_premul>; |
| - fastProc = &SkipLeading8888ZerosThen<fast_swizzle_rgba_to_bgra_premul>; |
| + break; |
| + default: |
| + return nullptr; |
| + } |
| + break; |
| + case SkEncodedInfo::kBGR_Color: |
| + switch (dstInfo.colorType()) { |
| + case kBGRA_8888_SkColorType: |
| + proc = &swizzle_rgb_to_rgba; |
| + fastProc = &fast_swizzle_rgb_to_rgba; |
| + break; |
| + case kRGBA_8888_SkColorType: |
| + proc = &swizzle_rgb_to_bgra; |
| + fastProc = &fast_swizzle_rgb_to_bgra; |
| + break; |
| + case kRGB_565_SkColorType: |
| + proc = &swizzle_bgr_to_565; |
| + break; |
| + default: |
| + return nullptr; |
| + } |
| + break; |
| + case SkEncodedInfo::kBGRX_Color: |
| + switch (dstInfo.colorType()) { |
| + case kBGRA_8888_SkColorType: |
| + proc = &swizzle_rgb_to_rgba; |
| + break; |
| + case kRGBA_8888_SkColorType: |
| + proc = &swizzle_rgb_to_bgra; |
| + break; |
| + case kRGB_565_SkColorType: |
| + proc = &swizzle_bgr_to_565; |
| + break; |
| + default: |
| + return nullptr; |
| + } |
| + break; |
| + case SkEncodedInfo::kBGRA_Color: |
| + switch (dstInfo.colorType()) { |
| + case kBGRA_8888_SkColorType: |
| + if (premultiply) { |
| + if (SkCodec::kYes_ZeroInitialized == zeroInit) { |
| + proc = &SkipLeading8888ZerosThen<swizzle_rgba_to_rgba_premul>; |
| + fastProc = &SkipLeading8888ZerosThen |
| + <fast_swizzle_rgba_to_rgba_premul>; |
| + } else { |
| + proc = &swizzle_rgba_to_rgba_premul; |
| + fastProc = &fast_swizzle_rgba_to_rgba_premul; |
| + } |
| } else { |
| - proc = &swizzle_rgba_to_bgra_premul; |
| - fastProc = &fast_swizzle_rgba_to_bgra_premul; |
| + if (SkCodec::kYes_ZeroInitialized == zeroInit) { |
| + proc = &SkipLeading8888ZerosThen<sample4>; |
| + fastProc = &SkipLeading8888ZerosThen<copy>; |
| + } else { |
| + proc = &sample4; |
| + fastProc = © |
| + } |
| } |
| - } else { |
| - if (SkCodec::kYes_ZeroInitialized == zeroInit) { |
| - proc = &SkipLeading8888ZerosThen<swizzle_rgba_to_bgra_unpremul>; |
| - fastProc = &SkipLeading8888ZerosThen |
| - <fast_swizzle_rgba_to_bgra_unpremul>; |
| + break; |
| + case kRGBA_8888_SkColorType: |
| + if (premultiply) { |
| + if (SkCodec::kYes_ZeroInitialized == zeroInit) { |
| + proc = &SkipLeading8888ZerosThen<swizzle_rgba_to_bgra_premul>; |
| + fastProc = &SkipLeading8888ZerosThen |
| + <fast_swizzle_rgba_to_bgra_premul>; |
| + } else { |
| + proc = &swizzle_rgba_to_bgra_premul; |
| + fastProc = &fast_swizzle_rgba_to_bgra_premul; |
| + } |
| } else { |
| - proc = &swizzle_rgba_to_bgra_unpremul; |
| - fastProc = &fast_swizzle_rgba_to_bgra_unpremul; |
| + if (SkCodec::kYes_ZeroInitialized == zeroInit) { |
| + proc = &SkipLeading8888ZerosThen<swizzle_rgba_to_bgra_unpremul>; |
| + fastProc = &SkipLeading8888ZerosThen |
| + <fast_swizzle_rgba_to_bgra_unpremul>; |
| + } else { |
| + proc = &swizzle_rgba_to_bgra_unpremul; |
| + fastProc = &fast_swizzle_rgba_to_bgra_unpremul; |
| + } |
| } |
| - } |
| - break; |
| - default: |
| - return nullptr; |
| - } |
| - break; |
| - case SkEncodedInfo::kInvertedCMYK_Color: |
| - switch (dstInfo.colorType()) { |
| - case kRGBA_8888_SkColorType: |
| - proc = &swizzle_cmyk_to_rgba; |
| - fastProc = &fast_swizzle_cmyk_to_rgba; |
| - break; |
| - case kBGRA_8888_SkColorType: |
| - proc = &swizzle_cmyk_to_bgra; |
| - fastProc = &fast_swizzle_cmyk_to_bgra; |
| - break; |
| - case kRGB_565_SkColorType: |
| - proc = &swizzle_cmyk_to_565; |
| - break; |
| - default: |
| - return nullptr; |
| - } |
| - break; |
| - case SkEncodedInfo::kPreSwizzled_Color: |
| - switch (dstInfo.colorType()) { |
| - case kGray_8_SkColorType: |
| - proc = &sample1; |
| - fastProc = © |
| - break; |
| - case kRGB_565_SkColorType: |
| - proc = &sample2; |
| - fastProc = © |
| - break; |
| - case kRGBA_8888_SkColorType: |
| - case kBGRA_8888_SkColorType: |
| - proc = &sample4; |
| - fastProc = © |
| - break; |
| - default: |
| - return nullptr; |
| - } |
| - break; |
| - default: |
| - return nullptr; |
| + break; |
| + default: |
| + return nullptr; |
| + } |
| + break; |
| + case SkEncodedInfo::kInvertedCMYK_Color: |
| + switch (dstInfo.colorType()) { |
| + case kRGBA_8888_SkColorType: |
| + proc = &swizzle_cmyk_to_rgba; |
| + fastProc = &fast_swizzle_cmyk_to_rgba; |
| + break; |
| + case kBGRA_8888_SkColorType: |
| + proc = &swizzle_cmyk_to_bgra; |
| + fastProc = &fast_swizzle_cmyk_to_bgra; |
| + break; |
| + case kRGB_565_SkColorType: |
| + proc = &swizzle_cmyk_to_565; |
| + break; |
| + default: |
| + return nullptr; |
| + } |
| + break; |
| + default: |
| + return nullptr; |
| + } |
| } |
| - int dstBPP = SkColorTypeBytesPerPixel(dstInfo.colorType()); |
| int srcBPP; |
| - if (SkEncodedInfo::kPreSwizzled_Color == encodedInfo.color()) { |
| + const int dstBPP = SkColorTypeBytesPerPixel(dstInfo.colorType()); |
| + if (preSwizzled) { |
| srcBPP = dstBPP; |
| } else { |
| // Store bpp in bytes if it is an even multiple, otherwise use bits |