Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(121)

Side by Side Diff: src/effects/gradients/SkSweepGradient.cpp

Issue 1388113002: Bye bye processor data manager (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: remove files Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2012 Google Inc. 3 * Copyright 2012 Google Inc.
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 #include "SkSweepGradient.h" 9 #include "SkSweepGradient.h"
10 10
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 private: 184 private:
185 185
186 typedef GrGLGradientEffect INHERITED; 186 typedef GrGLGradientEffect INHERITED;
187 187
188 }; 188 };
189 189
190 ///////////////////////////////////////////////////////////////////// 190 /////////////////////////////////////////////////////////////////////
191 191
192 class GrSweepGradient : public GrGradientEffect { 192 class GrSweepGradient : public GrGradientEffect {
193 public: 193 public:
194 static GrFragmentProcessor* Create(GrContext* ctx, GrProcessorDataManager* p rocDataManager, 194 static GrFragmentProcessor* Create(GrContext* ctx, const SkSweepGradient& sh ader,
195 const SkSweepGradient& shader, const SkMa trix& m) { 195 const SkMatrix& m) {
196 return new GrSweepGradient(ctx, procDataManager, shader, m); 196 return new GrSweepGradient(ctx, shader, m);
197 } 197 }
198 virtual ~GrSweepGradient() { } 198 virtual ~GrSweepGradient() { }
199 199
200 const char* name() const override { return "Sweep Gradient"; } 200 const char* name() const override { return "Sweep Gradient"; }
201 201
202 private: 202 private:
203 GrSweepGradient(GrContext* ctx, 203 GrSweepGradient(GrContext* ctx,
204 GrProcessorDataManager* procDataManager,
205 const SkSweepGradient& shader, 204 const SkSweepGradient& shader,
206 const SkMatrix& matrix) 205 const SkMatrix& matrix)
207 : INHERITED(ctx, procDataManager, shader, matrix, SkShader::kClamp_TileMode) { 206 : INHERITED(ctx, shader, matrix, SkShader::kClamp_TileMode) {
208 this->initClassID<GrSweepGradient>(); 207 this->initClassID<GrSweepGradient>();
209 } 208 }
210 209
211 GrGLFragmentProcessor* onCreateGLInstance() const override { 210 GrGLFragmentProcessor* onCreateGLInstance() const override {
212 return new GrGLSweepGradient(*this); 211 return new GrGLSweepGradient(*this);
213 } 212 }
214 213
215 virtual void onGetGLProcessorKey(const GrGLSLCaps& caps, 214 virtual void onGetGLProcessorKey(const GrGLSLCaps& caps,
216 GrProcessorKeyBuilder* b) const override { 215 GrProcessorKeyBuilder* b) const override {
217 GrGLSweepGradient::GenKey(*this, caps, b); 216 GrGLSweepGradient::GenKey(*this, caps, b);
(...skipping 13 matching lines...) Expand all
231 230
232 SkColor colors[kMaxRandomGradientColors]; 231 SkColor colors[kMaxRandomGradientColors];
233 SkScalar stopsArray[kMaxRandomGradientColors]; 232 SkScalar stopsArray[kMaxRandomGradientColors];
234 SkScalar* stops = stopsArray; 233 SkScalar* stops = stopsArray;
235 SkShader::TileMode tmIgnored; 234 SkShader::TileMode tmIgnored;
236 int colorCount = RandomGradientParams(d->fRandom, colors, &stops, &tmIgnored ); 235 int colorCount = RandomGradientParams(d->fRandom, colors, &stops, &tmIgnored );
237 SkAutoTUnref<SkShader> shader(SkGradientShader::CreateSweep(center.fX, cente r.fY, 236 SkAutoTUnref<SkShader> shader(SkGradientShader::CreateSweep(center.fX, cente r.fY,
238 colors, stops, c olorCount)); 237 colors, stops, c olorCount));
239 const GrFragmentProcessor* fp = shader->asFragmentProcessor(d->fContext, 238 const GrFragmentProcessor* fp = shader->asFragmentProcessor(d->fContext,
240 GrTest::TestMatr ix(d->fRandom), 239 GrTest::TestMatr ix(d->fRandom),
241 NULL, kNone_SkFi lterQuality, 240 NULL, kNone_SkFi lterQuality);
242 d->fProcDataMana ger);
243 GrAlwaysAssert(fp); 241 GrAlwaysAssert(fp);
244 return fp; 242 return fp;
245 } 243 }
246 244
247 ///////////////////////////////////////////////////////////////////// 245 /////////////////////////////////////////////////////////////////////
248 246
249 void GrGLSweepGradient::emitCode(EmitArgs& args) { 247 void GrGLSweepGradient::emitCode(EmitArgs& args) {
250 const GrSweepGradient& ge = args.fFp.cast<GrSweepGradient>(); 248 const GrSweepGradient& ge = args.fFp.cast<GrSweepGradient>();
251 this->emitUniforms(args.fBuilder, ge); 249 this->emitUniforms(args.fBuilder, ge);
252 SkString coords2D = args.fBuilder->getFragmentShaderBuilder() 250 SkString coords2D = args.fBuilder->getFragmentShaderBuilder()
(...skipping 13 matching lines...) Expand all
266 this->emitColor(args.fBuilder, ge, t.c_str(), args.fOutputColor, args.fInput Color, 264 this->emitColor(args.fBuilder, ge, t.c_str(), args.fOutputColor, args.fInput Color,
267 args.fSamplers); 265 args.fSamplers);
268 } 266 }
269 267
270 ///////////////////////////////////////////////////////////////////// 268 /////////////////////////////////////////////////////////////////////
271 269
272 const GrFragmentProcessor* SkSweepGradient::asFragmentProcessor( 270 const GrFragmentProcessor* SkSweepGradient::asFragmentProcessor(
273 GrContext* context, 271 GrContext* context,
274 const SkMatrix& viewM, 272 const SkMatrix& viewM,
275 const SkMatrix* localMatrix, 273 const SkMatrix* localMatrix,
276 SkFilterQuality, 274 SkFilterQuality) const {
277 GrProcessorDataManager* proc DataManager) const {
278 275
279 SkMatrix matrix; 276 SkMatrix matrix;
280 if (!this->getLocalMatrix().invert(&matrix)) { 277 if (!this->getLocalMatrix().invert(&matrix)) {
281 return nullptr; 278 return nullptr;
282 } 279 }
283 if (localMatrix) { 280 if (localMatrix) {
284 SkMatrix inv; 281 SkMatrix inv;
285 if (!localMatrix->invert(&inv)) { 282 if (!localMatrix->invert(&inv)) {
286 return nullptr; 283 return nullptr;
287 } 284 }
288 matrix.postConcat(inv); 285 matrix.postConcat(inv);
289 } 286 }
290 matrix.postConcat(fPtsToUnit); 287 matrix.postConcat(fPtsToUnit);
291 288
292 SkAutoTUnref<const GrFragmentProcessor> inner( 289 SkAutoTUnref<const GrFragmentProcessor> inner(
293 GrSweepGradient::Create(context, procDataManager, *this, matrix)); 290 GrSweepGradient::Create(context, *this, matrix));
294 return GrFragmentProcessor::MulOutputByInputAlpha(inner); 291 return GrFragmentProcessor::MulOutputByInputAlpha(inner);
295 } 292 }
296 293
297 #endif 294 #endif
298 295
299 #ifndef SK_IGNORE_TO_STRING 296 #ifndef SK_IGNORE_TO_STRING
300 void SkSweepGradient::toString(SkString* str) const { 297 void SkSweepGradient::toString(SkString* str) const {
301 str->append("SkSweepGradient: ("); 298 str->append("SkSweepGradient: (");
302 299
303 str->append("center: ("); 300 str->append("center: (");
304 str->appendScalar(fCenter.fX); 301 str->appendScalar(fCenter.fX);
305 str->append(", "); 302 str->append(", ");
306 str->appendScalar(fCenter.fY); 303 str->appendScalar(fCenter.fY);
307 str->append(") "); 304 str->append(") ");
308 305
309 this->INHERITED::toString(str); 306 this->INHERITED::toString(str);
310 307
311 str->append(")"); 308 str->append(")");
312 } 309 }
313 #endif 310 #endif
OLDNEW
« no previous file with comments | « src/effects/gradients/SkSweepGradient.h ('k') | src/effects/gradients/SkTwoPointConicalGradient.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698