| 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 |