| OLD | NEW |
| 1 #include "DMWriteTask.h" | 1 #include "DMWriteTask.h" |
| 2 | 2 |
| 3 #include "DMUtil.h" | 3 #include "DMUtil.h" |
| 4 #include "SkColorPriv.h" | 4 #include "SkColorPriv.h" |
| 5 #include "SkCommandLineFlags.h" | 5 #include "SkCommandLineFlags.h" |
| 6 #include "SkImageDecoder.h" | 6 #include "SkImageDecoder.h" |
| 7 #include "SkImageEncoder.h" | 7 #include "SkImageEncoder.h" |
| 8 #include "SkString.h" | 8 #include "SkString.h" |
| 9 #include "SkUnPreMultiply.h" | 9 #include "SkUnPreMultiply.h" |
| 10 | 10 |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 84 // Remove the suffix and tack on a .png. | 84 // Remove the suffix and tack on a .png. |
| 85 filename.remove(filename.size() - suffixLength, suffixLength); | 85 filename.remove(filename.size() - suffixLength, suffixLength); |
| 86 filename.append(".png"); | 86 filename.append(".png"); |
| 87 | 87 |
| 88 //SkDebugf("dir %s, filename %s\n", dir.c_str(), filename.c_str()); | 88 //SkDebugf("dir %s, filename %s\n", dir.c_str(), filename.c_str()); |
| 89 | 89 |
| 90 return SkOSPath::SkPathJoin(dir.c_str(), filename.c_str()); | 90 return SkOSPath::SkPathJoin(dir.c_str(), filename.c_str()); |
| 91 } | 91 } |
| 92 | 92 |
| 93 bool WriteTask::Expectations::check(const Task& task, SkBitmap bitmap) const { | 93 bool WriteTask::Expectations::check(const Task& task, SkBitmap bitmap) const { |
| 94 if (!FLAGS_writePath.isEmpty() && 0 == strcmp(FLAGS_writePath[0], fRoot)) { |
| 95 SkDebugf("We seem to be reading and writing %s concurrently. This won't
work.\n", fRoot); |
| 96 return false; |
| 97 } |
| 98 |
| 94 // PNG is stored unpremultiplied, and going from premul to unpremul to premu
l is lossy. To | 99 // PNG is stored unpremultiplied, and going from premul to unpremul to premu
l is lossy. To |
| 95 // skirt this problem, we decode the PNG into an unpremul bitmap, convert ou
r bitmap to unpremul | 100 // skirt this problem, we decode the PNG into an unpremul bitmap, convert ou
r bitmap to unpremul |
| 96 // if needed, and compare those. Each image goes once from premul to unprem
ul, never back. | 101 // if needed, and compare those. Each image goes once from premul to unprem
ul, never back. |
| 97 const SkString path = path_to_expected_image(fRoot, task); | 102 const SkString path = path_to_expected_image(fRoot, task); |
| 98 | 103 |
| 99 SkAutoTUnref<SkStreamRewindable> stream(SkStream::NewFromFile(path.c_str()))
; | 104 SkAutoTUnref<SkStreamRewindable> stream(SkStream::NewFromFile(path.c_str()))
; |
| 100 if (NULL == stream.get()) { | 105 if (NULL == stream.get()) { |
| 101 SkDebugf("Could not read %s.\n", path.c_str()); | 106 SkDebugf("Could not read %s.\n", path.c_str()); |
| 102 return false; | 107 return false; |
| 103 } | 108 } |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 143 for (size_t i = 0; i < bitmap.getSize()/4; i++) { | 148 for (size_t i = 0; i < bitmap.getSize()/4; i++) { |
| 144 dst[i] = SkUnPreMultiply::UnPreMultiplyPreservingByteOrder(src[i]); | 149 dst[i] = SkUnPreMultiply::UnPreMultiplyPreservingByteOrder(src[i]); |
| 145 } | 150 } |
| 146 bitmap.swap(unpremul); | 151 bitmap.swap(unpremul); |
| 147 } | 152 } |
| 148 | 153 |
| 149 return BitmapsEqual(expected, bitmap); | 154 return BitmapsEqual(expected, bitmap); |
| 150 } | 155 } |
| 151 | 156 |
| 152 } // namespace DM | 157 } // namespace DM |
| OLD | NEW |