Factor out UnPreMultiplyPreservingByteOrder
BUG=
R=reed@google.com
Author: mtklein@google.com
Review URL: https://codereview.chromium.org/130303005
git-svn-id: http://skia.googlecode.com/svn/trunk@13103 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/dm/DMWriteTask.cpp b/dm/DMWriteTask.cpp
index 11a71fa..faa20a2 100644
--- a/dm/DMWriteTask.cpp
+++ b/dm/DMWriteTask.cpp
@@ -137,17 +137,11 @@
unpremul.setConfig(info);
unpremul.allocPixels();
- // Unpremultiply without changing native byte order.
SkAutoLockPixels lockSrc(bitmap), lockDst(unpremul);
const SkPMColor* src = (SkPMColor*)bitmap.getPixels();
uint32_t* dst = (uint32_t*)unpremul.getPixels();
for (size_t i = 0; i < bitmap.getSize()/4; i++) {
- const U8CPU a = SkGetPackedA32(src[i]);
- const SkUnPreMultiply::Scale s = SkUnPreMultiply::GetScale(a);
- dst[i] = SkPackARGB32NoCheck(a,
- SkUnPreMultiply::ApplyScale(s, SkGetPackedR32(src[i])),
- SkUnPreMultiply::ApplyScale(s, SkGetPackedG32(src[i])),
- SkUnPreMultiply::ApplyScale(s, SkGetPackedB32(src[i])));
+ dst[i] = SkUnPreMultiply::UnPreMultiplyPreservingByteOrder(src[i]);
}
bitmap.swap(unpremul);
}