OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |