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

Unified Diff: src/codec/SkPngCodec.cpp

Issue 1943833002: return 4x4 matrix from SkColorSpace (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 4 years, 8 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
Index: src/codec/SkPngCodec.cpp
diff --git a/src/codec/SkPngCodec.cpp b/src/codec/SkPngCodec.cpp
index 1ad7f8006ee85a0a8016e129dd15104993fe8108..55b3238ef4d5d69fcdb2bfe5ec09a489f4b1e750 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;
SkFloat3 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)) {
@@ -233,8 +233,9 @@ sk_sp<SkColorSpace> read_color_space(png_structp png_ptr, png_infop info_ptr) {
gammas.fVec[0] = gammas.fVec[1] = gammas.fVec[2] = 1.0f;
}
-
- return SkColorSpace::NewRGB(toXYZD50, gammas);
+ SkMatrix44 mat(SkMatrix44::kUninitialized_Constructor);
+ mat.set3x3ColMajorf(toXYZD50);
+ return SkColorSpace::NewRGB(mat, gammas);
}
// Last, check for gamma.
@@ -242,14 +243,11 @@ 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.
gammas.fVec[0] = gammas.fVec[1] = gammas.fVec[2] = png_inverted_fixed_point_to_float(gamma);
- return SkColorSpace::NewRGB(toXYZD50, gammas);
+ return SkColorSpace::NewRGB(SkMatrix44::I(), gammas);
}
#endif // LIBPNG >= 1.6
« no previous file with comments | « include/utils/SkMatrix44.h ('k') | src/core/SkColorSpace.h » ('j') | tests/ColorSpaceTest.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698