| Index: src/core/SkColorSpace.h
 | 
| diff --git a/src/core/SkColorSpace.h b/src/core/SkColorSpace.h
 | 
| index 777be9da2b4ebaae9e918197517775adb2a82777..e14ab1c3c03aa72990e6b9c02de409d6b1a4d4a4 100644
 | 
| --- a/src/core/SkColorSpace.h
 | 
| +++ b/src/core/SkColorSpace.h
 | 
| @@ -35,6 +35,27 @@ struct SkFloat3x3 {
 | 
|      void dump() const;
 | 
|  };
 | 
|  
 | 
| +struct SkColorLookUpTable {
 | 
| +    static const uint8_t kMaxChannels = 16;
 | 
| +
 | 
| +    uint8_t                  fInputChannels;
 | 
| +    uint8_t                  fOutputChannels;
 | 
| +    uint8_t                  fGridPoints[kMaxChannels];
 | 
| +    std::unique_ptr<float[]> fTable;
 | 
| +
 | 
| +    SkColorLookUpTable() {
 | 
| +        memset(this, 0, sizeof(struct SkColorLookUpTable));
 | 
| +    }
 | 
| +
 | 
| +    SkColorLookUpTable(SkColorLookUpTable&& that)
 | 
| +        : fInputChannels(that.fInputChannels)
 | 
| +        , fOutputChannels(that.fOutputChannels)
 | 
| +        , fTable(std::move(that.fTable))
 | 
| +    {
 | 
| +        memcpy(fGridPoints, that.fGridPoints, kMaxChannels);
 | 
| +    }
 | 
| +};
 | 
| +
 | 
|  struct SkPM4f;
 | 
|  void SkApply3x3ToPM4f(const SkFloat3x3&, const SkPM4f src[], SkPM4f dst[], int count);
 | 
|  
 | 
| @@ -57,6 +78,7 @@ public:
 | 
|  
 | 
|      SkFloat3 gamma() const { return fGamma; }
 | 
|      SkFloat3x3 xyz() const { return fToXYZD50; }
 | 
| +    SkFloat3 xyzOffset() const { return fToXYZOffset; }
 | 
|      Named named() const { return fNamed; }
 | 
|      uint32_t uniqueID() const { return fUniqueID; }
 | 
|  
 | 
| @@ -75,14 +97,19 @@ public:
 | 
|      static void Test();
 | 
|      void dump() const;
 | 
|  
 | 
| -protected:
 | 
| -    SkColorSpace(const SkFloat3x3& toXYZ, const SkFloat3& gamma, Named);
 | 
| -
 | 
|  private:
 | 
| -    const SkFloat3x3 fToXYZD50;
 | 
| -    const SkFloat3   fGamma;
 | 
| -    const uint32_t   fUniqueID;
 | 
| -    const Named      fNamed;
 | 
| +    SkColorSpace(const SkFloat3& gamma, const SkFloat3x3& toXYZ, Named);
 | 
| +
 | 
| +    SkColorSpace(SkColorLookUpTable colorLUT, const SkFloat3& gamma, const SkFloat3x3& toXYZ,
 | 
| +                 const SkFloat3& toXYZOffset);
 | 
| +
 | 
| +    const SkColorLookUpTable fColorLUT;
 | 
| +    const SkFloat3           fGamma;
 | 
| +    const SkFloat3x3         fToXYZD50;
 | 
| +    const SkFloat3           fToXYZOffset;
 | 
| +
 | 
| +    const uint32_t           fUniqueID;
 | 
| +    const Named              fNamed;
 | 
|  };
 | 
|  
 | 
|  #endif
 | 
| 
 |