Chromium Code Reviews| Index: src/core/SkColorSpace.cpp |
| diff --git a/src/core/SkColorSpace.cpp b/src/core/SkColorSpace.cpp |
| index 18b07bca289860dbcea49b4395a67d870ad85027..d479aae03af6af1ca3dccc3bae20c792c2e5e17b 100644 |
| --- a/src/core/SkColorSpace.cpp |
| +++ b/src/core/SkColorSpace.cpp |
| @@ -675,19 +675,21 @@ bool load_matrix(SkMatrix44* toXYZ, const uint8_t* src, size_t len) { |
| return false; |
| } |
| + // For this matrix to behave like our "to XYZ D50" matrices, it needs to be scaled. |
| + const float scale = 65535.0 / 32768.0; |
|
msarett
2016/06/03 19:12:12
We now support testing on Upper_Left.jpg (because
scroggo
2016/06/06 14:06:44
nit: I think this can be constexpr?
msarett
2016/06/06 17:33:43
Ahh yes!
|
| float array[16]; |
| - array[ 0] = SkFixedToFloat(read_big_endian_int(src)); |
| - array[ 1] = SkFixedToFloat(read_big_endian_int(src + 4)); |
| - array[ 2] = SkFixedToFloat(read_big_endian_int(src + 8)); |
| - array[ 3] = SkFixedToFloat(read_big_endian_int(src + 36)); // translate R |
| - array[ 4] = SkFixedToFloat(read_big_endian_int(src + 12)); |
| - array[ 5] = SkFixedToFloat(read_big_endian_int(src + 16)); |
| - array[ 6] = SkFixedToFloat(read_big_endian_int(src + 20)); |
| - array[ 7] = SkFixedToFloat(read_big_endian_int(src + 40)); // translate G |
| - array[ 8] = SkFixedToFloat(read_big_endian_int(src + 24)); |
| - array[ 9] = SkFixedToFloat(read_big_endian_int(src + 28)); |
| - array[10] = SkFixedToFloat(read_big_endian_int(src + 32)); |
| - array[11] = SkFixedToFloat(read_big_endian_int(src + 44)); // translate B |
| + array[ 0] = scale * SkFixedToFloat(read_big_endian_int(src)); |
| + array[ 1] = scale * SkFixedToFloat(read_big_endian_int(src + 4)); |
| + array[ 2] = scale * SkFixedToFloat(read_big_endian_int(src + 8)); |
| + array[ 3] = scale * SkFixedToFloat(read_big_endian_int(src + 36)); // translate R |
| + array[ 4] = scale * SkFixedToFloat(read_big_endian_int(src + 12)); |
| + array[ 5] = scale * SkFixedToFloat(read_big_endian_int(src + 16)); |
| + array[ 6] = scale * SkFixedToFloat(read_big_endian_int(src + 20)); |
| + array[ 7] = scale * SkFixedToFloat(read_big_endian_int(src + 40)); // translate G |
| + array[ 8] = scale * SkFixedToFloat(read_big_endian_int(src + 24)); |
| + array[ 9] = scale * SkFixedToFloat(read_big_endian_int(src + 28)); |
| + array[10] = scale * SkFixedToFloat(read_big_endian_int(src + 32)); |
| + array[11] = scale * SkFixedToFloat(read_big_endian_int(src + 44)); // translate B |
| array[12] = 0.0f; |
| array[13] = 0.0f; |
| array[14] = 0.0f; |