aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkColorSpaceXform.h
diff options
context:
space:
mode:
authorGravatar msarett <msarett@google.com>2016-06-22 14:07:48 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-06-22 14:07:48 -0700
commitb39067696ad08a26bbe49b71a71f0546dc42a075 (patch)
treed7d23f625faed8e8cafe3026b657254aa678022d /src/core/SkColorSpaceXform.h
parent57e98530c113066c4c2d9c64505c52dc25e66c00 (diff)
Use a table-based implementation of SkDefaultXform
BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2084673002 CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review-Url: https://codereview.chromium.org/2084673002
Diffstat (limited to 'src/core/SkColorSpaceXform.h')
-rw-r--r--src/core/SkColorSpaceXform.h19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/core/SkColorSpaceXform.h b/src/core/SkColorSpaceXform.h
index e6abdbb992..583386a8a2 100644
--- a/src/core/SkColorSpaceXform.h
+++ b/src/core/SkColorSpaceXform.h
@@ -57,15 +57,22 @@ public:
void xform_RGB1_8888(uint32_t* dst, const uint32_t* src, uint32_t len) const override;
private:
- SkDefaultXform(const sk_sp<SkGammas>& srcGammas, const SkMatrix44& srcToDst,
- const sk_sp<SkGammas>& dstGammas);
+ SkDefaultXform(const sk_sp<SkColorSpace>& srcSpace, const SkMatrix44& srcToDst,
+ const sk_sp<SkColorSpace>& dstSpace);
- sk_sp<SkGammas> fSrcGammas;
- const SkMatrix44 fSrcToDst;
- sk_sp<SkGammas> fDstGammas;
+ static constexpr int kDstGammaTableSize = 1024;
+
+ // May contain pointers into storage or pointers into precomputed tables.
+ const float* fSrcGammaTables[3];
+ float fSrcGammaTableStorage[3 * 256];
+
+ const SkMatrix44 fSrcToDst;
+
+ // May contain pointers into storage or pointers into precomputed tables.
+ const uint8_t* fDstGammaTables[3];
+ uint8_t fDstGammaTableStorage[3 * kDstGammaTableSize];
friend class SkColorSpaceXform;
- friend class ColorSpaceXformTest;
};
#endif