diff options
author | reed <reed@google.com> | 2016-05-03 12:13:21 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-05-03 12:13:21 -0700 |
commit | 50d3b57c8aaa0f026b981101c45ea30361382940 (patch) | |
tree | ca3b1319d55b7fc495406bd13fd238171b48c2d8 /src/codec/SkPngCodec.cpp | |
parent | 676ab68b04597c997e3152f31c08090c0d2ccbe4 (diff) |
return 4x4 matrix from SkColorSpace
move SkMatrix44 into core (with alias in utils to transition chrome)
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1943833002
Review-Url: https://codereview.chromium.org/1943833002
Diffstat (limited to 'src/codec/SkPngCodec.cpp')
-rw-r--r-- | src/codec/SkPngCodec.cpp | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/codec/SkPngCodec.cpp b/src/codec/SkPngCodec.cpp index b34c80c6ed..1ca3586c6c 100644 --- a/src/codec/SkPngCodec.cpp +++ b/src/codec/SkPngCodec.cpp @@ -208,7 +208,7 @@ sk_sp<SkColorSpace> read_color_space(png_structp png_ptr, png_infop info_ptr) { // Next, check for chromaticities. png_fixed_point XYZ[9]; - SkFloat3x3 toXYZD50; + float toXYZD50[9]; png_fixed_point gamma; SkColorSpace::SkGammas gammas; if (png_get_cHRM_XYZ_fixed(png_ptr, info_ptr, &XYZ[0], &XYZ[1], &XYZ[2], &XYZ[3], &XYZ[4], @@ -221,7 +221,7 @@ sk_sp<SkColorSpace> read_color_space(png_structp png_ptr, png_infop info_ptr) { // we should add a new constructor to SkColorSpace that accepts // XYZ with D-Unkown? for (int i = 0; i < 9; i++) { - toXYZD50.fMat[i] = png_fixed_point_to_float(XYZ[i]); + toXYZD50[i] = png_fixed_point_to_float(XYZ[i]); } if (PNG_INFO_gAMA == png_get_gAMA_fixed(png_ptr, info_ptr, &gamma)) { @@ -234,8 +234,9 @@ sk_sp<SkColorSpace> read_color_space(png_structp png_ptr, png_infop info_ptr) { gammas = SkColorSpace::SkGammas(2.2f, 2.2f, 2.2f); } - - return SkColorSpace::NewRGB(toXYZD50, std::move(gammas)); + SkMatrix44 mat(SkMatrix44::kUninitialized_Constructor); + mat.set3x3ColMajorf(toXYZD50); + return SkColorSpace::NewRGB(mat, std::move(gammas)); } // Last, check for gamma. @@ -243,15 +244,12 @@ sk_sp<SkColorSpace> read_color_space(png_structp png_ptr, png_infop info_ptr) { // Guess a default value for cHRM? Or should we just give up? // Here we use the identity matrix as a default. - // FIXME (msarett): Should SkFloat3x3 have a method to set the identity matrix? - memset(toXYZD50.fMat, 0, 9 * sizeof(float)); - toXYZD50.fMat[0] = toXYZD50.fMat[4] = toXYZD50.fMat[8] = 1.0f; // Set the gammas. float value = png_inverted_fixed_point_to_float(gamma); gammas = SkColorSpace::SkGammas(value, value, value); - return SkColorSpace::NewRGB(toXYZD50, std::move(gammas)); + return SkColorSpace::NewRGB(SkMatrix44::I(), std::move(gammas)); } #endif // LIBPNG >= 1.6 |