diff options
author | Mike Klein <mtklein@chromium.org> | 2018-05-22 10:32:20 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-05-23 12:30:36 +0000 |
commit | 6747f52778135ee59debe52ac27d8f19333d75f2 (patch) | |
tree | a4971615d99d6c5268354a81ff71c23bd97026e4 /src/core/SkColorSpaceXform_Base.h | |
parent | bb9cad053ba577e7e20e03c15a5243faa82ece5b (diff) |
Reland "start cleaning up non-skcms SkColorSpaceXforms"
This is a reland of 339133f82c30cd3080672db28e6f72c894cba05a
Original change's description:
> start cleaning up non-skcms SkColorSpaceXforms
>
> I think this gets rid of
> - SkColorSpaceXform_Base
> - SkColorSpaceXform_XYZ
> - SkColorSpaceXform_A2B
> and lots of support code. Might be more left to clean up?
>
> Change-Id: I560d974d1e879dfd6a63ee2244a3dd88bd495c8a
> Reviewed-on: https://skia-review.googlesource.com/129512
> Commit-Queue: Brian Osman <brianosman@google.com>
> Auto-Submit: Mike Klein <mtklein@chromium.org>
> Reviewed-by: Brian Osman <brianosman@google.com>
Change-Id: I33ee0d8bcfd72c401823a2e7d5168c9ecc9a5181
Reviewed-on: https://skia-review.googlesource.com/129624
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Diffstat (limited to 'src/core/SkColorSpaceXform_Base.h')
-rw-r--r-- | src/core/SkColorSpaceXform_Base.h | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/src/core/SkColorSpaceXform_Base.h b/src/core/SkColorSpaceXform_Base.h deleted file mode 100644 index 2e0202360e..0000000000 --- a/src/core/SkColorSpaceXform_Base.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright 2016 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef SkColorSpaceXform_Base_DEFINED -#define SkColorSpaceXform_Base_DEFINED - -#include "SkColorSpace.h" -#include "SkColorSpaceXform.h" -#include "SkTemplates.h" - -class SkColorSpace_XYZ; - -class SkColorSpaceXform_Base { -public: - // A somewhat more powerful SkColorSpaceXform::New() that allows tweaking premulBehavior. - static std::unique_ptr<SkColorSpaceXform> New(SkColorSpace* srcSpace, - SkColorSpace* dstSpace, - SkTransferFunctionBehavior premulBehavior); - - static constexpr int kDstGammaTableSize = 1024; - static void BuildDstGammaTables(const uint8_t* outGammaTables[3], - uint8_t* gammaTableStorage, - const SkColorSpace_XYZ* space, - bool gammasAreMatching); -}; - -class SkColorSpaceXform_XYZ : public SkColorSpaceXform { -public: - SkColorSpaceXform_XYZ(SkColorSpace_XYZ* src, SkColorSpace_XYZ* dst, SkTransferFunctionBehavior); - - bool apply(ColorFormat dstFormat, void* dst, - ColorFormat srcFormat, const void* src, - int count, SkAlphaType alphaType) const override; - - void pretendNotToBeIdentityForTesting() { - fSrcToDstIsIdentity = false; - } - -private: - enum SrcGamma { - kLinear_SrcGamma, - kTable_SrcGamma, - kSRGB_SrcGamma, - }; - - enum DstGamma { - kLinear_DstGamma, - kSRGB_DstGamma, - k2Dot2_DstGamma, - kTable_DstGamma, - }; - - // These tables pointers may point into fSrcStorage/fDstStorage or into pre-baked tables. - const float* fSrcGammaTables[3]; - const uint8_t* fDstGammaTables[3]; - SkAutoTMalloc<float> fSrcStorage; - sk_sp<SkData> fDstStorage; - - float fSrcToDst[12]; - bool fSrcToDstIsIdentity; - bool fColorSpacesAreIdentical; - SrcGamma fSrcGamma; - DstGamma fDstGamma; - SkTransferFunctionBehavior fPremulBehavior; -}; - -// For testing. Bypasses opts for when src and dst color spaces are equal. -std::unique_ptr<SkColorSpaceXform> SlowIdentityXform(SkColorSpace_XYZ* space); - -#if defined(SK_USE_SKCMS) -std::unique_ptr<SkColorSpaceXform> MakeSkcmsXform(SkColorSpace* src, SkColorSpace* dst, - SkTransferFunctionBehavior premulBehavior); -#endif - -#endif |