diff options
author | 2016-06-22 14:07:48 -0700 | |
---|---|---|
committer | 2016-06-22 14:07:48 -0700 | |
commit | b39067696ad08a26bbe49b71a71f0546dc42a075 (patch) | |
tree | d7d23f625faed8e8cafe3026b657254aa678022d /src/core/SkColorSpaceXform.h | |
parent | 57e98530c113066c4c2d9c64505c52dc25e66c00 (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.h | 19 |
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 |