static inline void check_primaries(skiatest::Reporter* r, const SkColorSpacePrimaries& primaries, const skcms_Matrix3x3& reference) { skcms_Matrix3x3 toXYZ; bool result = primaries.toXYZD50(&toXYZ); REPORTER_ASSERT(r, result); REPORTER_ASSERT(r, matrix_almost_equal(toXYZ, reference)); }
static sk_sp<SkColorSpace> make_parametric_transfer_fn(const SkColorSpacePrimaries& primaries) { SkMatrix44 toXYZD50(SkMatrix44::kUninitialized_Constructor); SkAssertResult(primaries.toXYZD50(&toXYZD50)); SkColorSpaceTransferFn fn; fn.fA = 1.f; fn.fB = 0.f; fn.fC = 0.f; fn.fD = 0.f; fn.fE = 0.f; fn.fF = 0.f; fn.fG = 1.8f; return SkColorSpace::MakeRGB(fn, toXYZD50); }