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

Unified Diff: src/core/SkColorSpace_XYZTRC.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_XYZTRC.h
diff --git a/src/core/SkColorSpace_XYZTRC.h b/src/core/SkColorSpace_XYZTRC.h
new file mode 100644
index 0000000000000000000000000000000000000000..2000a3cc384a5645518f03a615b2fb4c997d7866
--- /dev/null
+++ b/src/core/SkColorSpace_XYZTRC.h
@@ -0,0 +1,60 @@
+/*
+ * 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_XYZTRC_DEFINED
+#define SkColorSpace_XYZTRC_DEFINED
+
+#include "SkColorSpace_Base.h"
+#include "SkData.h"
+#include "SkOnce.h"
+
+class SkColorSpace_XYZTRC : public SkColorSpace_Base {
+public:
+ SkGammaNamed gammaNamed() const { return fGammaNamed; }
+
+ const SkGammas* gammas() const { return fGammas.get(); }
+
+ const SkMatrix44& toXYZD50() const { return fToXYZD50; }
+
+ const SkMatrix44& fromXYZD50() const;
+
+private:
+ SkColorSpace_XYZTRC(SkGammaNamed gammaNamed, const SkMatrix44& toXYZ);
+
+ SkColorSpace_XYZTRC(SkGammaNamed gammaNamed, sk_sp<SkGammas> gammas,
+ const SkMatrix44& toXYZ, sk_sp<SkData> profileData);
+
+ const SkGammaNamed fGammaNamed;
+ sk_sp<SkGammas> fGammas;
+ sk_sp<SkData> fProfileData;
msarett 2016/10/05 19:05:53 nit: This field is already on the base.
+ const SkMatrix44 fToXYZD50;
+
+ mutable SkMatrix44 fFromXYZD50;
+ mutable SkOnce fFromXYZOnce;
+
+ friend class SkColorSpace;
+ friend class SkColorSpace_Base;
+ friend class ColorSpaceXformTest;
+ typedef SkColorSpace_Base INHERITED;
+};
+
+inline SkColorSpace_XYZTRC* as_CSXYZ(SkColorSpace* colorSpace) {
msarett 2016/10/05 19:05:53 These casts are convenient in SkColorSpace_Base be
+ SkASSERT(as_CSB(colorSpace)->type() == SkColorSpace_Base::Type::kXYZTRC);
+ return static_cast<SkColorSpace_XYZTRC*>(colorSpace);
+}
+
+inline const SkColorSpace_XYZTRC* as_CSXYZ(const SkColorSpace* colorSpace) {
+ SkASSERT(as_CSB(colorSpace)->type() == SkColorSpace_Base::Type::kXYZTRC);
+ return static_cast<const SkColorSpace_XYZTRC*>(colorSpace);
+}
+
+inline SkColorSpace_XYZTRC* as_CSXYZ(const sk_sp<SkColorSpace>& colorSpace) {
+ SkASSERT(as_CSB(colorSpace)->type() == SkColorSpace_Base::Type::kXYZTRC);
+ return static_cast<SkColorSpace_XYZTRC*>(colorSpace.get());
+}
+
+#endif

Powered by Google App Engine
This is Rietveld 408576698