aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkColorSpaceXform_Base.h
diff options
context:
space:
mode:
authorGravatar Mike Klein <mtklein@chromium.org>2018-05-22 10:32:20 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-05-23 12:30:36 +0000
commit6747f52778135ee59debe52ac27d8f19333d75f2 (patch)
treea4971615d99d6c5268354a81ff71c23bd97026e4 /src/core/SkColorSpaceXform_Base.h
parentbb9cad053ba577e7e20e03c15a5243faa82ece5b (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.h79
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