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

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

Issue 2248323003: Simplify adding attributes to GrGeometryProcessor (Closed) Base URL: https://chromium.googlesource.com/skia.git@xformhelper
Patch Set: Revert removal of fAttribNames Created 4 years, 4 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
« no previous file with comments | « src/gpu/effects/GrDashingEffect.cpp ('k') | src/gpu/instanced/InstanceProcessor.cpp » ('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 "GrDistanceFieldGeoProc.h" 8 #include "GrDistanceFieldGeoProc.h"
9 #include "GrInvariantOutput.h" 9 #include "GrInvariantOutput.h"
10 #include "GrTexture.h" 10 #include "GrTexture.h"
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 , fViewMatrix(viewMatrix) 241 , fViewMatrix(viewMatrix)
242 , fTextureAccess(texture, params) 242 , fTextureAccess(texture, params)
243 #ifdef SK_GAMMA_APPLY_TO_A8 243 #ifdef SK_GAMMA_APPLY_TO_A8
244 , fDistanceAdjust(distanceAdjust) 244 , fDistanceAdjust(distanceAdjust)
245 #endif 245 #endif
246 , fFlags(flags & kNonLCD_DistanceFieldEffectMask) 246 , fFlags(flags & kNonLCD_DistanceFieldEffectMask)
247 , fInColor(nullptr) 247 , fInColor(nullptr)
248 , fUsesLocalCoords(usesLocalCoords) { 248 , fUsesLocalCoords(usesLocalCoords) {
249 SkASSERT(!(flags & ~kNonLCD_DistanceFieldEffectMask)); 249 SkASSERT(!(flags & ~kNonLCD_DistanceFieldEffectMask));
250 this->initClassID<GrDistanceFieldA8TextGeoProc>(); 250 this->initClassID<GrDistanceFieldA8TextGeoProc>();
251 fInPosition = &this->addVertexAttrib(Attribute("inPosition", kVec2f_GrVertex AttribType, 251 fInPosition = &this->addVertexAttrib("inPosition", kVec2f_GrVertexAttribType ,
252 kHigh_GrSLPrecision)); 252 kHigh_GrSLPrecision);
253 fInColor = &this->addVertexAttrib(Attribute("inColor", kVec4ub_GrVertexAttri bType)); 253 fInColor = &this->addVertexAttrib("inColor", kVec4ub_GrVertexAttribType);
254 fInTextureCoords = &this->addVertexAttrib(Attribute("inTextureCoords", 254 fInTextureCoords = &this->addVertexAttrib("inTextureCoords", kVec2us_GrVerte xAttribType,
255 kVec2us_GrVertexAttribTy pe, 255 kHigh_GrSLPrecision);
256 kHigh_GrSLPrecision));
257 this->addTextureAccess(&fTextureAccess); 256 this->addTextureAccess(&fTextureAccess);
258 } 257 }
259 258
260 void GrDistanceFieldA8TextGeoProc::getGLSLProcessorKey(const GrGLSLCaps& caps, 259 void GrDistanceFieldA8TextGeoProc::getGLSLProcessorKey(const GrGLSLCaps& caps,
261 GrProcessorKeyBuilder* b) const { 260 GrProcessorKeyBuilder* b) const {
262 GrGLDistanceFieldA8TextGeoProc::GenKey(*this, caps, b); 261 GrGLDistanceFieldA8TextGeoProc::GenKey(*this, caps, b);
263 } 262 }
264 263
265 GrGLSLPrimitiveProcessor* GrDistanceFieldA8TextGeoProc::createGLSLInstance(const GrGLSLCaps&) const { 264 GrGLSLPrimitiveProcessor* GrDistanceFieldA8TextGeoProc::createGLSLInstance(const GrGLSLCaps&) const {
266 return new GrGLDistanceFieldA8TextGeoProc(); 265 return new GrGLDistanceFieldA8TextGeoProc();
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
486 uint32_t flags, 485 uint32_t flags,
487 bool usesLocalCoords) 486 bool usesLocalCoords)
488 : fColor(color) 487 : fColor(color)
489 , fViewMatrix(viewMatrix) 488 , fViewMatrix(viewMatrix)
490 , fTextureAccess(texture, params) 489 , fTextureAccess(texture, params)
491 , fFlags(flags & kNonLCD_DistanceFieldEffectMask) 490 , fFlags(flags & kNonLCD_DistanceFieldEffectMask)
492 , fInColor(nullptr) 491 , fInColor(nullptr)
493 , fUsesLocalCoords(usesLocalCoords) { 492 , fUsesLocalCoords(usesLocalCoords) {
494 SkASSERT(!(flags & ~kNonLCD_DistanceFieldEffectMask)); 493 SkASSERT(!(flags & ~kNonLCD_DistanceFieldEffectMask));
495 this->initClassID<GrDistanceFieldPathGeoProc>(); 494 this->initClassID<GrDistanceFieldPathGeoProc>();
496 fInPosition = &this->addVertexAttrib(Attribute("inPosition", kVec2f_GrVertex AttribType, 495 fInPosition = &this->addVertexAttrib("inPosition", kVec2f_GrVertexAttribType ,
497 kHigh_GrSLPrecision)); 496 kHigh_GrSLPrecision);
498 fInColor = &this->addVertexAttrib(Attribute("inColor", kVec4ub_GrVertexAttri bType)); 497 fInColor = &this->addVertexAttrib("inColor", kVec4ub_GrVertexAttribType);
499 fInTextureCoords = &this->addVertexAttrib(Attribute("inTextureCoords", 498 fInTextureCoords = &this->addVertexAttrib("inTextureCoords", kVec2f_GrVertex AttribType);
500 kVec2f_GrVertexAttribTyp e));
501 this->addTextureAccess(&fTextureAccess); 499 this->addTextureAccess(&fTextureAccess);
502 } 500 }
503 501
504 void GrDistanceFieldPathGeoProc::getGLSLProcessorKey(const GrGLSLCaps& caps, 502 void GrDistanceFieldPathGeoProc::getGLSLProcessorKey(const GrGLSLCaps& caps,
505 GrProcessorKeyBuilder* b) c onst { 503 GrProcessorKeyBuilder* b) c onst {
506 GrGLDistanceFieldPathGeoProc::GenKey(*this, caps, b); 504 GrGLDistanceFieldPathGeoProc::GenKey(*this, caps, b);
507 } 505 }
508 506
509 GrGLSLPrimitiveProcessor* GrDistanceFieldPathGeoProc::createGLSLInstance(const G rGLSLCaps&) const { 507 GrGLSLPrimitiveProcessor* GrDistanceFieldPathGeoProc::createGLSLInstance(const G rGLSLCaps&) const {
510 return new GrGLDistanceFieldPathGeoProc(); 508 return new GrGLDistanceFieldPathGeoProc();
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
792 DistanceAdjust distanceAdjust, 790 DistanceAdjust distanceAdjust,
793 uint32_t flags, bool usesLocal Coords) 791 uint32_t flags, bool usesLocal Coords)
794 : fColor(color) 792 : fColor(color)
795 , fViewMatrix(viewMatrix) 793 , fViewMatrix(viewMatrix)
796 , fTextureAccess(texture, params) 794 , fTextureAccess(texture, params)
797 , fDistanceAdjust(distanceAdjust) 795 , fDistanceAdjust(distanceAdjust)
798 , fFlags(flags & kLCD_DistanceFieldEffectMask) 796 , fFlags(flags & kLCD_DistanceFieldEffectMask)
799 , fUsesLocalCoords(usesLocalCoords) { 797 , fUsesLocalCoords(usesLocalCoords) {
800 SkASSERT(!(flags & ~kLCD_DistanceFieldEffectMask) && (flags & kUseLCD_Distan ceFieldEffectFlag)); 798 SkASSERT(!(flags & ~kLCD_DistanceFieldEffectMask) && (flags & kUseLCD_Distan ceFieldEffectFlag));
801 this->initClassID<GrDistanceFieldLCDTextGeoProc>(); 799 this->initClassID<GrDistanceFieldLCDTextGeoProc>();
802 fInPosition = &this->addVertexAttrib(Attribute("inPosition", kVec2f_GrVertex AttribType, 800 fInPosition = &this->addVertexAttrib("inPosition", kVec2f_GrVertexAttribType ,
803 kHigh_GrSLPrecision)); 801 kHigh_GrSLPrecision);
804 fInColor = &this->addVertexAttrib(Attribute("inColor", kVec4ub_GrVertexAttri bType)); 802 fInColor = &this->addVertexAttrib("inColor", kVec4ub_GrVertexAttribType);
805 fInTextureCoords = &this->addVertexAttrib(Attribute("inTextureCoords", 803 fInTextureCoords = &this->addVertexAttrib("inTextureCoords", kVec2us_GrVerte xAttribType,
806 kVec2us_GrVertexAttribTy pe, 804 kHigh_GrSLPrecision);
807 kHigh_GrSLPrecision));
808 this->addTextureAccess(&fTextureAccess); 805 this->addTextureAccess(&fTextureAccess);
809 } 806 }
810 807
811 void GrDistanceFieldLCDTextGeoProc::getGLSLProcessorKey(const GrGLSLCaps& caps, 808 void GrDistanceFieldLCDTextGeoProc::getGLSLProcessorKey(const GrGLSLCaps& caps,
812 GrProcessorKeyBuilder* b ) const { 809 GrProcessorKeyBuilder* b ) const {
813 GrGLDistanceFieldLCDTextGeoProc::GenKey(*this, caps, b); 810 GrGLDistanceFieldLCDTextGeoProc::GenKey(*this, caps, b);
814 } 811 }
815 812
816 GrGLSLPrimitiveProcessor* GrDistanceFieldLCDTextGeoProc::createGLSLInstance(cons t GrGLSLCaps&) const { 813 GrGLSLPrimitiveProcessor* GrDistanceFieldLCDTextGeoProc::createGLSLInstance(cons t GrGLSLCaps&) const {
817 return new GrGLDistanceFieldLCDTextGeoProc(); 814 return new GrGLDistanceFieldLCDTextGeoProc();
(...skipping 24 matching lines...) Expand all
842 flags |= d->fRandom->nextBool() ? kScaleOnly_DistanceFieldEffectFlag : 0 ; 839 flags |= d->fRandom->nextBool() ? kScaleOnly_DistanceFieldEffectFlag : 0 ;
843 } 840 }
844 flags |= d->fRandom->nextBool() ? kBGR_DistanceFieldEffectFlag : 0; 841 flags |= d->fRandom->nextBool() ? kBGR_DistanceFieldEffectFlag : 0;
845 return GrDistanceFieldLCDTextGeoProc::Make(GrRandomColor(d->fRandom), 842 return GrDistanceFieldLCDTextGeoProc::Make(GrRandomColor(d->fRandom),
846 GrTest::TestMatrix(d->fRandom), 843 GrTest::TestMatrix(d->fRandom),
847 d->fTextures[texIdx], params, 844 d->fTextures[texIdx], params,
848 wa, 845 wa,
849 flags, 846 flags,
850 d->fRandom->nextBool()); 847 d->fRandom->nextBool());
851 } 848 }
OLDNEW
« no previous file with comments | « src/gpu/effects/GrDashingEffect.cpp ('k') | src/gpu/instanced/InstanceProcessor.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698