aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkColorSpace_XYZ.cpp
diff options
context:
space:
mode:
authorGravatar raftias <raftias@google.com>2016-12-01 15:31:29 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2016-12-01 21:25:28 +0000
commit197e311ac9d15696fae929d8f5fcf9d93ec55e18 (patch)
tree0ffeec5bb09757f1c94a4516170d7b2615d8ca6e /src/core/SkColorSpace_XYZ.cpp
parent35455f931c94715d6e98b2a2ab8717d125e97de3 (diff)
Optimized gamma table inversion.
Brought calculation into a central place so the loop did not have to recalculate everything before the previous entry to find the inverse index. O(n) vs O(n^2). Assumes an increasing (or at least non-decreasing) table gamma just as the previous code did. BUG=skia: Change-Id: I7ea200c06511b3d74745fe4a6e3dde706bbee02f Reviewed-on: https://skia-review.googlesource.com/5402 Commit-Queue: Robert Aftias <raftias@google.com> Reviewed-by: Matt Sarett <msarett@google.com>
Diffstat (limited to 'src/core/SkColorSpace_XYZ.cpp')
-rw-r--r--src/core/SkColorSpace_XYZ.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/core/SkColorSpace_XYZ.cpp b/src/core/SkColorSpace_XYZ.cpp
index 4b90cae6a4..b91789614f 100644
--- a/src/core/SkColorSpace_XYZ.cpp
+++ b/src/core/SkColorSpace_XYZ.cpp
@@ -33,6 +33,13 @@ SkColorSpace_XYZ::SkColorSpace_XYZ(SkGammaNamed gammaNamed, sk_sp<SkGammas> gamm
, fToXYZD50Hash(SkGoodHash()(toXYZD50))
, fFromXYZD50(SkMatrix44::kUninitialized_Constructor) {
SkASSERT(!fGammas || 3 == fGammas->channels());
+ if (fGammas) {
+ for (int i = 0; i < fGammas->channels(); ++i) {
+ if (SkGammas::Type::kTable_Type == fGammas->type(i)) {
+ SkASSERT(fGammas->data(i).fTable.fSize >= 2);
+ }
+ }
+ }
}
const SkMatrix44* SkColorSpace_XYZ::fromXYZD50() const {