Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1098)

Unified Diff: dm/DMWriteTask.cpp

Issue 139943002: DM: don't change byte order when unpremultiplying to compare to PNGs. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: reorder headers Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: dm/DMWriteTask.cpp
diff --git a/dm/DMWriteTask.cpp b/dm/DMWriteTask.cpp
index 326d454150946f9584333e2977f964796568caa7..11a71faed60e96695cd92c903cc1c633c497c820 100644
--- a/dm/DMWriteTask.cpp
+++ b/dm/DMWriteTask.cpp
@@ -1,6 +1,7 @@
#include "DMWriteTask.h"
#include "DMUtil.h"
+#include "SkColorPriv.h"
#include "SkCommandLineFlags.h"
#include "SkImageDecoder.h"
#include "SkImageEncoder.h"
@@ -136,12 +137,17 @@ bool WriteTask::Expectations::check(const Task& task, SkBitmap bitmap) const {
unpremul.setConfig(info);
unpremul.allocPixels();
+ // Unpremultiply without changing native byte order.
SkAutoLockPixels lockSrc(bitmap), lockDst(unpremul);
const SkPMColor* src = (SkPMColor*)bitmap.getPixels();
- SkColor* dst = (SkColor*)unpremul.getPixels();
-
+ uint32_t* dst = (uint32_t*)unpremul.getPixels();
for (size_t i = 0; i < bitmap.getSize()/4; i++) {
- dst[i] = SkUnPreMultiply::PMColorToColor(src[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])));
}
bitmap.swap(unpremul);
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698