OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2012 Google Inc. | 2 * Copyright 2012 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 #include "SkSweepGradient.h" | 8 #include "SkSweepGradient.h" |
9 | 9 |
10 static SkMatrix translate(SkScalar dx, SkScalar dy) { | 10 static SkMatrix translate(SkScalar dx, SkScalar dy) { |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 | 122 |
123 #include "SkGr.h" | 123 #include "SkGr.h" |
124 #include "gl/GrGLContext.h" | 124 #include "gl/GrGLContext.h" |
125 #include "glsl/GrGLSLCaps.h" | 125 #include "glsl/GrGLSLCaps.h" |
126 #include "glsl/GrGLSLFragmentShaderBuilder.h" | 126 #include "glsl/GrGLSLFragmentShaderBuilder.h" |
127 | 127 |
128 class GrSweepGradient : public GrGradientEffect { | 128 class GrSweepGradient : public GrGradientEffect { |
129 public: | 129 public: |
130 class GLSLSweepProcessor; | 130 class GLSLSweepProcessor; |
131 | 131 |
132 static sk_sp<GrFragmentProcessor> Make(GrContext* ctx, const SkSweepGradient
& shader, | 132 static sk_sp<GrFragmentProcessor> Make(const CreateArgs& args) { |
133 const SkMatrix& m) { | 133 return sk_sp<GrFragmentProcessor>(new GrSweepGradient(args)); |
134 return sk_sp<GrFragmentProcessor>(new GrSweepGradient(ctx, shader, m)); | |
135 } | 134 } |
136 virtual ~GrSweepGradient() { } | 135 virtual ~GrSweepGradient() { } |
137 | 136 |
138 const char* name() const override { return "Sweep Gradient"; } | 137 const char* name() const override { return "Sweep Gradient"; } |
139 | 138 |
140 private: | 139 private: |
141 GrSweepGradient(GrContext* ctx, | 140 GrSweepGradient(const CreateArgs& args) |
142 const SkSweepGradient& shader, | 141 : INHERITED(args) { |
143 const SkMatrix& matrix) | |
144 : INHERITED(ctx, shader, matrix, SkShader::kClamp_TileMode) { | |
145 this->initClassID<GrSweepGradient>(); | 142 this->initClassID<GrSweepGradient>(); |
146 } | 143 } |
147 | 144 |
148 GrGLSLFragmentProcessor* onCreateGLSLInstance() const override; | 145 GrGLSLFragmentProcessor* onCreateGLSLInstance() const override; |
149 | 146 |
150 virtual void onGetGLSLProcessorKey(const GrGLSLCaps& caps, | 147 virtual void onGetGLSLProcessorKey(const GrGLSLCaps& caps, |
151 GrProcessorKeyBuilder* b) const override; | 148 GrProcessorKeyBuilder* b) const override; |
152 | 149 |
153 GR_DECLARE_FRAGMENT_PROCESSOR_TEST; | 150 GR_DECLARE_FRAGMENT_PROCESSOR_TEST; |
154 | 151 |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
243 } | 240 } |
244 if (args.fLocalMatrix) { | 241 if (args.fLocalMatrix) { |
245 SkMatrix inv; | 242 SkMatrix inv; |
246 if (!args.fLocalMatrix->invert(&inv)) { | 243 if (!args.fLocalMatrix->invert(&inv)) { |
247 return nullptr; | 244 return nullptr; |
248 } | 245 } |
249 matrix.postConcat(inv); | 246 matrix.postConcat(inv); |
250 } | 247 } |
251 matrix.postConcat(fPtsToUnit); | 248 matrix.postConcat(fPtsToUnit); |
252 | 249 |
253 sk_sp<GrFragmentProcessor> inner(GrSweepGradient::Make(args.fContext, *this,
matrix)); | 250 sk_sp<GrFragmentProcessor> inner(GrSweepGradient::Make( |
| 251 GrGradientEffect::CreateArgs(args.fContext, this, &matrix, SkShader::kCl
amp_TileMode))); |
254 return GrFragmentProcessor::MulOutputByInputAlpha(std::move(inner)); | 252 return GrFragmentProcessor::MulOutputByInputAlpha(std::move(inner)); |
255 } | 253 } |
256 | 254 |
257 #endif | 255 #endif |
258 | 256 |
259 #ifndef SK_IGNORE_TO_STRING | 257 #ifndef SK_IGNORE_TO_STRING |
260 void SkSweepGradient::toString(SkString* str) const { | 258 void SkSweepGradient::toString(SkString* str) const { |
261 str->append("SkSweepGradient: ("); | 259 str->append("SkSweepGradient: ("); |
262 | 260 |
263 str->append("center: ("); | 261 str->append("center: ("); |
264 str->appendScalar(fCenter.fX); | 262 str->appendScalar(fCenter.fX); |
265 str->append(", "); | 263 str->append(", "); |
266 str->appendScalar(fCenter.fY); | 264 str->appendScalar(fCenter.fY); |
267 str->append(") "); | 265 str->append(") "); |
268 | 266 |
269 this->INHERITED::toString(str); | 267 this->INHERITED::toString(str); |
270 | 268 |
271 str->append(")"); | 269 str->append(")"); |
272 } | 270 } |
273 #endif | 271 #endif |
OLD | NEW |