Index: include/core/SkColorSpaceXform.h |
diff --git a/src/core/SkColorSpaceXform.h b/include/core/SkColorSpaceXform.h |
similarity index 56% |
rename from src/core/SkColorSpaceXform.h |
rename to include/core/SkColorSpaceXform.h |
index bb99071fe03388057c63e30327ca95bdb6ba23b5..1f53886860909e7332e2d68f7e9d1d61e0f133b9 100644 |
--- a/src/core/SkColorSpaceXform.h |
+++ b/include/core/SkColorSpaceXform.h |
@@ -8,10 +8,10 @@ |
#ifndef SkColorSpaceXform_DEFINED |
#define SkColorSpaceXform_DEFINED |
-#include "SkColorSpace.h" |
-#include "SkColorSpace_Base.h" |
#include "SkImageInfo.h" |
+class SkColorSpace; |
+ |
class SkColorSpaceXform : SkNoncopyable { |
public: |
@@ -34,6 +34,9 @@ public: |
/** |
* Apply the color conversion to a |src| buffer, storing the output in the |dst| buffer. |
* |
+ * F16 and F32 are only supported as dst color formats, and only when the dst color space |
+ * is linear. This function will assert on invalid or unsupported uses. |
+ * |
* @param dst Stored in the format described by |dstColorFormat| |
* @param src Stored in the format described by |srcColorFormat| |
* @param len Number of pixels in the buffers |
@@ -52,51 +55,4 @@ public: |
virtual ~SkColorSpaceXform() {} |
}; |
-enum SrcGamma { |
- kLinear_SrcGamma, |
- kTable_SrcGamma, |
-}; |
- |
-enum DstGamma { |
- kLinear_DstGamma, |
- kSRGB_DstGamma, |
- k2Dot2_DstGamma, |
- kTable_DstGamma, |
-}; |
- |
-enum ColorSpaceMatch { |
- kNone_ColorSpaceMatch, |
- kGamut_ColorSpaceMatch, |
- kFull_ColorSpaceMatch, |
-}; |
- |
-template <SrcGamma kSrc, DstGamma kDst, ColorSpaceMatch kCSM> |
-class SkColorSpaceXform_Base : public SkColorSpaceXform { |
-public: |
- |
- void apply(void* dst, const uint32_t* src, int len, ColorFormat dstColorFormat, |
- ColorFormat srcColorFormat, SkAlphaType alphaType) const override; |
- |
- static constexpr int kDstGammaTableSize = 1024; |
- |
-private: |
- SkColorSpaceXform_Base(SkColorSpace* srcSpace, const SkMatrix44& srcToDst, |
- SkColorSpace* dstSpace); |
- |
- sk_sp<SkColorLookUpTable> fColorLUT; |
- |
- // Contain pointers into storage or pointers into precomputed tables. |
- const float* fSrcGammaTables[3]; |
- const uint8_t* fDstGammaTables[3]; |
- SkAutoMalloc fStorage; |
- |
- float fSrcToDst[16]; |
- |
- friend class SkColorSpaceXform; |
- friend std::unique_ptr<SkColorSpaceXform> SlowIdentityXform(SkColorSpace* space); |
-}; |
- |
-// For testing. Bypasses opts for when src and dst color spaces are equal. |
-std::unique_ptr<SkColorSpaceXform> SlowIdentityXform(SkColorSpace* space); |
- |
#endif |