Introduce GrColorSpaceXform, for gamut conversion on textures
[platform/upstream/libSkiaSharp.git] / include / gpu / GrColorSpaceXform.h
1 /*
2  * Copyright 2016 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7
8 #ifndef GrColorSpaceXform_DEFINED
9 #define GrColorSpaceXform_DEFINED
10
11 #include "SkMatrix44.h"
12 #include "SkRefCnt.h"
13
14 class SkColorSpace;
15
16  /**
17   * Represents a color gamut transformation (as a 4x4 color matrix)
18   */
19 class GrColorSpaceXform : public SkRefCnt {
20 public:
21     GrColorSpaceXform(const SkMatrix44& srcToDst) : fSrcToDst(srcToDst) {}
22
23     static sk_sp<GrColorSpaceXform> Make(SkColorSpace* src, SkColorSpace* dst);
24
25     const SkMatrix44& srcToDst() { return fSrcToDst; }
26
27 private:
28     SkMatrix44 fSrcToDst;
29 };
30
31 #endif