Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(131)

Unified Diff: src/core/SkColorSpace_A2B0.h

Issue 2389983002: Refactored SkColorSpace and added in a Lab PCS GM (Closed)
Patch Set: multiplied the matrix for the temporary XYZTRC profile from an A2B0 profile code to match what woul… Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/core/SkColorSpace_A2B0.h
diff --git a/src/core/SkColorSpace_A2B0.h b/src/core/SkColorSpace_A2B0.h
new file mode 100644
index 0000000000000000000000000000000000000000..9744d59ac39004e0d1c0ba1270129a21a85a9abf
--- /dev/null
+++ b/src/core/SkColorSpace_A2B0.h
@@ -0,0 +1,77 @@
+/*
+ * 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 SkColorSpace_A2B0_DEFINED
+#define SkColorSpace_A2B0_DEFINED
+
+#include "SkColorSpace_Base.h"
+
+class SkColorSpace_A2B0 : public SkColorSpace_Base {
+public:
+ enum class PCS : uint8_t {
+ kLAB,
+ kXYZ
+ };
+
+ PCS pcs() const { return fPCS; }
+
+ SkGammaNamed aCurveNamed() const { return fACurveNamed; }
+
+ const SkGammas* aCurve() const { return fACurve.get(); }
+
+ SkGammaNamed mCurveNamed() const { return fMCurveNamed; }
+
+ const SkGammas* mCurve() const { return fMCurve.get(); }
+
+ SkGammaNamed bCurveNamed() const { return fBCurveNamed; }
+
+ const SkGammas* bCurve() const { return fBCurve.get(); }
+
+ const SkColorLookUpTable* colorLUT() const { return fColorLUT.get(); }
+
+ const SkMatrix44 toPCS() const { return fToPCS; }
+
+
+private:
+ SkColorSpace_A2B0(PCS pcs, sk_sp<SkColorLookUpTable> colorLUT,
+ SkGammaNamed aCurveNamed, sk_sp<SkGammas> aCurve,
+ SkGammaNamed mCurveNamed, sk_sp<SkGammas> mCurve,
+ SkGammaNamed bCurveNamed, sk_sp<SkGammas> bCurve,
+ const SkMatrix44& toPCS, sk_sp<SkData> profileData);
+
+ PCS fPCS;
+ sk_sp<SkColorLookUpTable> fColorLUT;
+ const SkGammaNamed fACurveNamed;
+ sk_sp<SkGammas> fACurve;
+ const SkGammaNamed fMCurveNamed;
+ sk_sp<SkGammas> fMCurve;
+ const SkGammaNamed fBCurveNamed;
+ sk_sp<SkGammas> fBCurve;
+ sk_sp<SkData> fProfileData;
msarett 2016/10/05 19:05:52 nit: This field is already on the base.
raftias 2016/10/06 14:43:04 This was a mistake. I meant for it to be stored in
+ SkMatrix44 fToPCS;
+
+
+ friend class SkColorSpace;
+ typedef SkColorSpace_Base INHERITED;
+};
+
+inline SkColorSpace_A2B0* as_CSA2B(SkColorSpace* colorSpace) {
+ SkASSERT(as_CSB(colorSpace)->type() == SkColorSpace_Base::Type::kA2B0);
+ return static_cast<SkColorSpace_A2B0*>(colorSpace);
+}
+
+inline const SkColorSpace_A2B0* as_CSA2B(const SkColorSpace* colorSpace) {
+ SkASSERT(as_CSB(colorSpace)->type() == SkColorSpace_Base::Type::kA2B0);
+ return static_cast<const SkColorSpace_A2B0*>(colorSpace);
+}
+
+inline SkColorSpace_A2B0* as_CSA2B(const sk_sp<SkColorSpace>& colorSpace) {
+ SkASSERT(as_CSB(colorSpace)->type() == SkColorSpace_Base::Type::kA2B0);
+ return static_cast<SkColorSpace_A2B0*>(colorSpace.get());
+}
+
+#endif

Powered by Google App Engine
This is Rietveld 408576698