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

Side by Side Diff: src/gpu/effects/GrBezierEffect.cpp

Issue 1441683008: Move GrGLPrimitive/GeometryProc to GLSL (Closed) Base URL: https://skia.googlesource.com/skia.git@xferProcs
Patch Set: nits Created 5 years, 1 month 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
« no previous file with comments | « src/gpu/effects/GrBezierEffect.h ('k') | src/gpu/effects/GrBitmapTextGeoProc.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2013 Google Inc. 2 * Copyright 2013 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 "GrBezierEffect.h" 8 #include "GrBezierEffect.h"
9 9
10 #include "gl/GrGLGeometryProcessor.h" 10 #include "glsl/GrGLSLGeometryProcessor.h"
11 #include "glsl/GrGLSLFragmentProcessor.h"
12 #include "glsl/GrGLSLProgramBuilder.h" 11 #include "glsl/GrGLSLProgramBuilder.h"
13 #include "glsl/GrGLSLProgramDataManager.h" 12 #include "glsl/GrGLSLProgramDataManager.h"
14 #include "glsl/GrGLSLUtil.h" 13 #include "glsl/GrGLSLUtil.h"
15 14
16 class GrGLConicEffect : public GrGLGeometryProcessor { 15 class GrGLConicEffect : public GrGLSLGeometryProcessor {
17 public: 16 public:
18 GrGLConicEffect(const GrGeometryProcessor&); 17 GrGLConicEffect(const GrGeometryProcessor&);
19 18
20 void onEmitCode(EmitArgs&, GrGPArgs*) override; 19 void onEmitCode(EmitArgs&, GrGPArgs*) override;
21 20
22 static inline void GenKey(const GrGeometryProcessor&, 21 static inline void GenKey(const GrGeometryProcessor&,
23 const GrGLSLCaps&, 22 const GrGLSLCaps&,
24 GrProcessorKeyBuilder*); 23 GrProcessorKeyBuilder*);
25 24
26 void setData(const GrGLSLProgramDataManager& pdman, 25 void setData(const GrGLSLProgramDataManager& pdman,
(...skipping 29 matching lines...) Expand all
56 55
57 private: 56 private:
58 SkMatrix fViewMatrix; 57 SkMatrix fViewMatrix;
59 GrColor fColor; 58 GrColor fColor;
60 uint8_t fCoverageScale; 59 uint8_t fCoverageScale;
61 GrPrimitiveEdgeType fEdgeType; 60 GrPrimitiveEdgeType fEdgeType;
62 UniformHandle fColorUniform; 61 UniformHandle fColorUniform;
63 UniformHandle fCoverageScaleUniform; 62 UniformHandle fCoverageScaleUniform;
64 UniformHandle fViewMatrixUniform; 63 UniformHandle fViewMatrixUniform;
65 64
66 typedef GrGLGeometryProcessor INHERITED; 65 typedef GrGLSLGeometryProcessor INHERITED;
67 }; 66 };
68 67
69 GrGLConicEffect::GrGLConicEffect(const GrGeometryProcessor& processor) 68 GrGLConicEffect::GrGLConicEffect(const GrGeometryProcessor& processor)
70 : fViewMatrix(SkMatrix::InvalidMatrix()), fColor(GrColor_ILLEGAL), fCoverage Scale(0xff) { 69 : fViewMatrix(SkMatrix::InvalidMatrix()), fColor(GrColor_ILLEGAL), fCoverage Scale(0xff) {
71 const GrConicEffect& ce = processor.cast<GrConicEffect>(); 70 const GrConicEffect& ce = processor.cast<GrConicEffect>();
72 fEdgeType = ce.getEdgeType(); 71 fEdgeType = ce.getEdgeType();
73 } 72 }
74 73
75 void GrGLConicEffect::onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) { 74 void GrGLConicEffect::onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) {
76 GrGLSLGPBuilder* pb = args.fPB; 75 GrGLSLGPBuilder* pb = args.fPB;
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 180
182 ////////////////////////////////////////////////////////////////////////////// 181 //////////////////////////////////////////////////////////////////////////////
183 182
184 GrConicEffect::~GrConicEffect() {} 183 GrConicEffect::~GrConicEffect() {}
185 184
186 void GrConicEffect::getGLProcessorKey(const GrGLSLCaps& caps, 185 void GrConicEffect::getGLProcessorKey(const GrGLSLCaps& caps,
187 GrProcessorKeyBuilder* b) const { 186 GrProcessorKeyBuilder* b) const {
188 GrGLConicEffect::GenKey(*this, caps, b); 187 GrGLConicEffect::GenKey(*this, caps, b);
189 } 188 }
190 189
191 GrGLPrimitiveProcessor* GrConicEffect::createGLInstance(const GrGLSLCaps&) const { 190 GrGLSLPrimitiveProcessor* GrConicEffect::createGLInstance(const GrGLSLCaps&) con st {
192 return new GrGLConicEffect(*this); 191 return new GrGLConicEffect(*this);
193 } 192 }
194 193
195 GrConicEffect::GrConicEffect(GrColor color, const SkMatrix& viewMatrix, uint8_t coverage, 194 GrConicEffect::GrConicEffect(GrColor color, const SkMatrix& viewMatrix, uint8_t coverage,
196 GrPrimitiveEdgeType edgeType, const SkMatrix& local Matrix, 195 GrPrimitiveEdgeType edgeType, const SkMatrix& local Matrix,
197 bool usesLocalCoords) 196 bool usesLocalCoords)
198 : fColor(color) 197 : fColor(color)
199 , fViewMatrix(viewMatrix) 198 , fViewMatrix(viewMatrix)
200 , fLocalMatrix(viewMatrix) 199 , fLocalMatrix(viewMatrix)
201 , fUsesLocalCoords(usesLocalCoords) 200 , fUsesLocalCoords(usesLocalCoords)
(...skipping 20 matching lines...) Expand all
222 edgeType, *d->fCaps, 221 edgeType, *d->fCaps,
223 GrTest::TestMatrix(d->fRandom), d->fRandom->n extBool()); 222 GrTest::TestMatrix(d->fRandom), d->fRandom->n extBool());
224 } while (nullptr == gp); 223 } while (nullptr == gp);
225 return gp; 224 return gp;
226 } 225 }
227 226
228 ////////////////////////////////////////////////////////////////////////////// 227 //////////////////////////////////////////////////////////////////////////////
229 // Quad 228 // Quad
230 ////////////////////////////////////////////////////////////////////////////// 229 //////////////////////////////////////////////////////////////////////////////
231 230
232 class GrGLQuadEffect : public GrGLGeometryProcessor { 231 class GrGLQuadEffect : public GrGLSLGeometryProcessor {
233 public: 232 public:
234 GrGLQuadEffect(const GrGeometryProcessor&); 233 GrGLQuadEffect(const GrGeometryProcessor&);
235 234
236 void onEmitCode(EmitArgs&, GrGPArgs*) override; 235 void onEmitCode(EmitArgs&, GrGPArgs*) override;
237 236
238 static inline void GenKey(const GrGeometryProcessor&, 237 static inline void GenKey(const GrGeometryProcessor&,
239 const GrGLSLCaps&, 238 const GrGLSLCaps&,
240 GrProcessorKeyBuilder*); 239 GrProcessorKeyBuilder*);
241 240
242 void setData(const GrGLSLProgramDataManager& pdman, 241 void setData(const GrGLSLProgramDataManager& pdman,
(...skipping 29 matching lines...) Expand all
272 271
273 private: 272 private:
274 SkMatrix fViewMatrix; 273 SkMatrix fViewMatrix;
275 GrColor fColor; 274 GrColor fColor;
276 uint8_t fCoverageScale; 275 uint8_t fCoverageScale;
277 GrPrimitiveEdgeType fEdgeType; 276 GrPrimitiveEdgeType fEdgeType;
278 UniformHandle fColorUniform; 277 UniformHandle fColorUniform;
279 UniformHandle fCoverageScaleUniform; 278 UniformHandle fCoverageScaleUniform;
280 UniformHandle fViewMatrixUniform; 279 UniformHandle fViewMatrixUniform;
281 280
282 typedef GrGLGeometryProcessor INHERITED; 281 typedef GrGLSLGeometryProcessor INHERITED;
283 }; 282 };
284 283
285 GrGLQuadEffect::GrGLQuadEffect(const GrGeometryProcessor& processor) 284 GrGLQuadEffect::GrGLQuadEffect(const GrGeometryProcessor& processor)
286 : fViewMatrix(SkMatrix::InvalidMatrix()), fColor(GrColor_ILLEGAL), fCoverage Scale(0xff) { 285 : fViewMatrix(SkMatrix::InvalidMatrix()), fColor(GrColor_ILLEGAL), fCoverage Scale(0xff) {
287 const GrQuadEffect& ce = processor.cast<GrQuadEffect>(); 286 const GrQuadEffect& ce = processor.cast<GrQuadEffect>();
288 fEdgeType = ce.getEdgeType(); 287 fEdgeType = ce.getEdgeType();
289 } 288 }
290 289
291 void GrGLQuadEffect::onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) { 290 void GrGLQuadEffect::onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) {
292 GrGLSLGPBuilder* pb = args.fPB; 291 GrGLSLGPBuilder* pb = args.fPB;
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 381
383 ////////////////////////////////////////////////////////////////////////////// 382 //////////////////////////////////////////////////////////////////////////////
384 383
385 GrQuadEffect::~GrQuadEffect() {} 384 GrQuadEffect::~GrQuadEffect() {}
386 385
387 void GrQuadEffect::getGLProcessorKey(const GrGLSLCaps& caps, 386 void GrQuadEffect::getGLProcessorKey(const GrGLSLCaps& caps,
388 GrProcessorKeyBuilder* b) const { 387 GrProcessorKeyBuilder* b) const {
389 GrGLQuadEffect::GenKey(*this, caps, b); 388 GrGLQuadEffect::GenKey(*this, caps, b);
390 } 389 }
391 390
392 GrGLPrimitiveProcessor* GrQuadEffect::createGLInstance(const GrGLSLCaps&) const { 391 GrGLSLPrimitiveProcessor* GrQuadEffect::createGLInstance(const GrGLSLCaps&) cons t {
393 return new GrGLQuadEffect(*this); 392 return new GrGLQuadEffect(*this);
394 } 393 }
395 394
396 GrQuadEffect::GrQuadEffect(GrColor color, const SkMatrix& viewMatrix, uint8_t co verage, 395 GrQuadEffect::GrQuadEffect(GrColor color, const SkMatrix& viewMatrix, uint8_t co verage,
397 GrPrimitiveEdgeType edgeType, const SkMatrix& localMa trix, 396 GrPrimitiveEdgeType edgeType, const SkMatrix& localMa trix,
398 bool usesLocalCoords) 397 bool usesLocalCoords)
399 : fColor(color) 398 : fColor(color)
400 , fViewMatrix(viewMatrix) 399 , fViewMatrix(viewMatrix)
401 , fLocalMatrix(localMatrix) 400 , fLocalMatrix(localMatrix)
402 , fUsesLocalCoords(usesLocalCoords) 401 , fUsesLocalCoords(usesLocalCoords)
(...skipping 21 matching lines...) Expand all
424 GrTest::TestMatrix(d->fRandom), 423 GrTest::TestMatrix(d->fRandom),
425 d->fRandom->nextBool()); 424 d->fRandom->nextBool());
426 } while (nullptr == gp); 425 } while (nullptr == gp);
427 return gp; 426 return gp;
428 } 427 }
429 428
430 ////////////////////////////////////////////////////////////////////////////// 429 //////////////////////////////////////////////////////////////////////////////
431 // Cubic 430 // Cubic
432 ////////////////////////////////////////////////////////////////////////////// 431 //////////////////////////////////////////////////////////////////////////////
433 432
434 class GrGLCubicEffect : public GrGLGeometryProcessor { 433 class GrGLCubicEffect : public GrGLSLGeometryProcessor {
435 public: 434 public:
436 GrGLCubicEffect(const GrGeometryProcessor&); 435 GrGLCubicEffect(const GrGeometryProcessor&);
437 436
438 void onEmitCode(EmitArgs&, GrGPArgs*) override; 437 void onEmitCode(EmitArgs&, GrGPArgs*) override;
439 438
440 static inline void GenKey(const GrGeometryProcessor&, 439 static inline void GenKey(const GrGeometryProcessor&,
441 const GrGLSLCaps&, 440 const GrGLSLCaps&,
442 GrProcessorKeyBuilder*); 441 GrProcessorKeyBuilder*);
443 442
444 void setData(const GrGLSLProgramDataManager& pdman, 443 void setData(const GrGLSLProgramDataManager& pdman,
(...skipping 15 matching lines...) Expand all
460 } 459 }
461 } 460 }
462 461
463 private: 462 private:
464 SkMatrix fViewMatrix; 463 SkMatrix fViewMatrix;
465 GrColor fColor; 464 GrColor fColor;
466 GrPrimitiveEdgeType fEdgeType; 465 GrPrimitiveEdgeType fEdgeType;
467 UniformHandle fColorUniform; 466 UniformHandle fColorUniform;
468 UniformHandle fViewMatrixUniform; 467 UniformHandle fViewMatrixUniform;
469 468
470 typedef GrGLGeometryProcessor INHERITED; 469 typedef GrGLSLGeometryProcessor INHERITED;
471 }; 470 };
472 471
473 GrGLCubicEffect::GrGLCubicEffect(const GrGeometryProcessor& processor) 472 GrGLCubicEffect::GrGLCubicEffect(const GrGeometryProcessor& processor)
474 : fViewMatrix(SkMatrix::InvalidMatrix()), fColor(GrColor_ILLEGAL) { 473 : fViewMatrix(SkMatrix::InvalidMatrix()), fColor(GrColor_ILLEGAL) {
475 const GrCubicEffect& ce = processor.cast<GrCubicEffect>(); 474 const GrCubicEffect& ce = processor.cast<GrCubicEffect>();
476 fEdgeType = ce.getEdgeType(); 475 fEdgeType = ce.getEdgeType();
477 } 476 }
478 477
479 void GrGLCubicEffect::onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) { 478 void GrGLCubicEffect::onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) {
480 GrGLSLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder(); 479 GrGLSLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder();
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
598 } 597 }
599 598
600 ////////////////////////////////////////////////////////////////////////////// 599 //////////////////////////////////////////////////////////////////////////////
601 600
602 GrCubicEffect::~GrCubicEffect() {} 601 GrCubicEffect::~GrCubicEffect() {}
603 602
604 void GrCubicEffect::getGLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuil der* b) const { 603 void GrCubicEffect::getGLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuil der* b) const {
605 GrGLCubicEffect::GenKey(*this, caps, b); 604 GrGLCubicEffect::GenKey(*this, caps, b);
606 } 605 }
607 606
608 GrGLPrimitiveProcessor* GrCubicEffect::createGLInstance(const GrGLSLCaps&) const { 607 GrGLSLPrimitiveProcessor* GrCubicEffect::createGLInstance(const GrGLSLCaps&) con st {
609 return new GrGLCubicEffect(*this); 608 return new GrGLCubicEffect(*this);
610 } 609 }
611 610
612 GrCubicEffect::GrCubicEffect(GrColor color, const SkMatrix& viewMatrix, 611 GrCubicEffect::GrCubicEffect(GrColor color, const SkMatrix& viewMatrix,
613 GrPrimitiveEdgeType edgeType) 612 GrPrimitiveEdgeType edgeType)
614 : fColor(color) 613 : fColor(color)
615 , fViewMatrix(viewMatrix) 614 , fViewMatrix(viewMatrix)
616 , fEdgeType(edgeType) { 615 , fEdgeType(edgeType) {
617 this->initClassID<GrCubicEffect>(); 616 this->initClassID<GrCubicEffect>();
618 fInPosition = &this->addVertexAttrib(Attribute("inPosition", kVec2f_GrVertex AttribType, 617 fInPosition = &this->addVertexAttrib(Attribute("inPosition", kVec2f_GrVertex AttribType,
(...skipping 11 matching lines...) Expand all
630 do { 629 do {
631 GrPrimitiveEdgeType edgeType = 630 GrPrimitiveEdgeType edgeType =
632 static_cast<GrPrimitiveEdgeType>( 631 static_cast<GrPrimitiveEdgeType>(
633 d->fRandom->nextULessThan(kGrProcessorEdgeTypeCnt)); 632 d->fRandom->nextULessThan(kGrProcessorEdgeTypeCnt));
634 gp = GrCubicEffect::Create(GrRandomColor(d->fRandom), 633 gp = GrCubicEffect::Create(GrRandomColor(d->fRandom),
635 GrTest::TestMatrix(d->fRandom), edgeType, *d- >fCaps); 634 GrTest::TestMatrix(d->fRandom), edgeType, *d- >fCaps);
636 } while (nullptr == gp); 635 } while (nullptr == gp);
637 return gp; 636 return gp;
638 } 637 }
639 638
OLDNEW
« no previous file with comments | « src/gpu/effects/GrBezierEffect.h ('k') | src/gpu/effects/GrBitmapTextGeoProc.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698