OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2015 Google Inc. | 2 * Copyright 2015 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #ifndef SkArithmeticMode_gpu_DEFINED | 8 #ifndef SkArithmeticMode_gpu_DEFINED |
9 #define SkArithmeticMode_gpu_DEFINED | 9 #define SkArithmeticMode_gpu_DEFINED |
10 | 10 |
(...skipping 13 matching lines...) Expand all Loading... |
24 class GrTexture; | 24 class GrTexture; |
25 | 25 |
26 /////////////////////////////////////////////////////////////////////////////// | 26 /////////////////////////////////////////////////////////////////////////////// |
27 // Fragment Processor | 27 // Fragment Processor |
28 /////////////////////////////////////////////////////////////////////////////// | 28 /////////////////////////////////////////////////////////////////////////////// |
29 | 29 |
30 class GrGLArtithmeticFP; | 30 class GrGLArtithmeticFP; |
31 | 31 |
32 class GrArithmeticFP : public GrFragmentProcessor { | 32 class GrArithmeticFP : public GrFragmentProcessor { |
33 public: | 33 public: |
34 static const GrFragmentProcessor* Create(float k1, float k2, float k3, float
k4, | 34 static sk_sp<GrFragmentProcessor> Make(float k1, float k2, float k3, float k
4, |
35 bool enforcePMColor, const GrFragme
ntProcessor* dst) { | 35 bool enforcePMColor, sk_sp<GrFragment
Processor> dst) { |
36 return new GrArithmeticFP(k1, k2, k3, k4, enforcePMColor, dst); | 36 return sk_sp<GrFragmentProcessor>(new GrArithmeticFP(k1, k2, k3, k4, enf
orcePMColor, |
| 37 std::move(dst))); |
37 } | 38 } |
38 | 39 |
39 ~GrArithmeticFP() override {}; | 40 ~GrArithmeticFP() override {}; |
40 | 41 |
41 const char* name() const override { return "Arithmetic"; } | 42 const char* name() const override { return "Arithmetic"; } |
42 | 43 |
43 SkString dumpInfo() const override { | 44 SkString dumpInfo() const override { |
44 SkString str; | 45 SkString str; |
45 str.appendf("K1: %.2f K2: %.2f K3: %.2f K4: %.2f", fK1, fK2, fK3, fK4); | 46 str.appendf("K1: %.2f K2: %.2f K3: %.2f K4: %.2f", fK1, fK2, fK3, fK4); |
46 return str; | 47 return str; |
47 } | 48 } |
48 | 49 |
49 float k1() const { return fK1; } | 50 float k1() const { return fK1; } |
50 float k2() const { return fK2; } | 51 float k2() const { return fK2; } |
51 float k3() const { return fK3; } | 52 float k3() const { return fK3; } |
52 float k4() const { return fK4; } | 53 float k4() const { return fK4; } |
53 bool enforcePMColor() const { return fEnforcePMColor; } | 54 bool enforcePMColor() const { return fEnforcePMColor; } |
54 | 55 |
55 private: | 56 private: |
56 GrGLSLFragmentProcessor* onCreateGLSLInstance() const override; | 57 GrGLSLFragmentProcessor* onCreateGLSLInstance() const override; |
57 | 58 |
58 void onGetGLSLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b)
const override; | 59 void onGetGLSLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b)
const override; |
59 | 60 |
60 bool onIsEqual(const GrFragmentProcessor&) const override; | 61 bool onIsEqual(const GrFragmentProcessor&) const override; |
61 | 62 |
62 void onComputeInvariantOutput(GrInvariantOutput* inout) const override; | 63 void onComputeInvariantOutput(GrInvariantOutput* inout) const override; |
63 | 64 |
64 GrArithmeticFP(float k1, float k2, float k3, float k4, bool enforcePMColor, | 65 GrArithmeticFP(float k1, float k2, float k3, float k4, bool enforcePMColor, |
65 const GrFragmentProcessor* dst); | 66 sk_sp<GrFragmentProcessor> dst); |
66 | 67 |
67 float fK1, fK2, fK3, fK4; | 68 float fK1, fK2, fK3, fK4; |
68 bool fEnforcePMColor; | 69 bool fEnforcePMColor; |
69 | 70 |
70 GR_DECLARE_FRAGMENT_PROCESSOR_TEST; | 71 GR_DECLARE_FRAGMENT_PROCESSOR_TEST; |
71 typedef GrFragmentProcessor INHERITED; | 72 typedef GrFragmentProcessor INHERITED; |
72 }; | 73 }; |
73 | 74 |
74 /////////////////////////////////////////////////////////////////////////////// | 75 /////////////////////////////////////////////////////////////////////////////// |
75 // Xfer Processor | 76 // Xfer Processor |
76 /////////////////////////////////////////////////////////////////////////////// | 77 /////////////////////////////////////////////////////////////////////////////// |
77 | 78 |
78 class GrArithmeticXPFactory : public GrXPFactory { | 79 class GrArithmeticXPFactory : public GrXPFactory { |
79 public: | 80 public: |
80 static GrXPFactory* Create(float k1, float k2, float k3, float k4, bool enfo
rcePMColor) { | 81 static sk_sp<GrXPFactory> Make(float k1, float k2, float k3, float k4, bool
enforcePMColor) { |
81 return new GrArithmeticXPFactory(k1, k2, k3, k4, enforcePMColor); | 82 return sk_sp<GrXPFactory>(new GrArithmeticXPFactory(k1, k2, k3, k4, enfo
rcePMColor)); |
82 } | 83 } |
83 | 84 |
84 void getInvariantBlendedColor(const GrProcOptInfo& colorPOI, | 85 void getInvariantBlendedColor(const GrProcOptInfo& colorPOI, |
85 GrXPFactory::InvariantBlendedColor*) const ove
rride; | 86 GrXPFactory::InvariantBlendedColor*) const ove
rride; |
86 | 87 |
87 private: | 88 private: |
88 GrArithmeticXPFactory(float k1, float k2, float k3, float k4, bool enforcePM
Color); | 89 GrArithmeticXPFactory(float k1, float k2, float k3, float k4, bool enforcePM
Color); |
89 | 90 |
90 GrXferProcessor* onCreateXferProcessor(const GrCaps& caps, | 91 GrXferProcessor* onCreateXferProcessor(const GrCaps& caps, |
91 const GrPipelineOptimizations& optimi
zations, | 92 const GrPipelineOptimizations& optimi
zations, |
(...skipping 19 matching lines...) Expand all Loading... |
111 GR_DECLARE_XP_FACTORY_TEST; | 112 GR_DECLARE_XP_FACTORY_TEST; |
112 | 113 |
113 float fK1, fK2, fK3, fK4; | 114 float fK1, fK2, fK3, fK4; |
114 bool fEnforcePMColor; | 115 bool fEnforcePMColor; |
115 | 116 |
116 typedef GrXPFactory INHERITED; | 117 typedef GrXPFactory INHERITED; |
117 }; | 118 }; |
118 | 119 |
119 #endif | 120 #endif |
120 #endif | 121 #endif |
OLD | NEW |