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 "GrFontAtlasSizes.h" | 9 #include "GrFontAtlasSizes.h" |
10 #include "GrInvariantOutput.h" | 10 #include "GrInvariantOutput.h" |
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
198 , fViewMatrix(viewMatrix) | 198 , fViewMatrix(viewMatrix) |
199 , fTextureAccess(texture, params) | 199 , fTextureAccess(texture, params) |
200 #ifdef SK_GAMMA_APPLY_TO_A8 | 200 #ifdef SK_GAMMA_APPLY_TO_A8 |
201 , fDistanceAdjust(distanceAdjust) | 201 , fDistanceAdjust(distanceAdjust) |
202 #endif | 202 #endif |
203 , fFlags(flags & kNonLCD_DistanceFieldEffectMask) | 203 , fFlags(flags & kNonLCD_DistanceFieldEffectMask) |
204 , fInColor(NULL) | 204 , fInColor(NULL) |
205 , fUsesLocalCoords(usesLocalCoords) { | 205 , fUsesLocalCoords(usesLocalCoords) { |
206 SkASSERT(!(flags & ~kNonLCD_DistanceFieldEffectMask)); | 206 SkASSERT(!(flags & ~kNonLCD_DistanceFieldEffectMask)); |
207 this->initClassID<GrDistanceFieldA8TextGeoProc>(); | 207 this->initClassID<GrDistanceFieldA8TextGeoProc>(); |
208 fInPosition = &this->addVertexAttrib(Attribute("inPosition", kVec2f_GrVertex AttribType)); | 208 fInPosition = &this->addVertexAttrib(Attribute("inPosition", kVec2f_GrVertex AttribType, kHigh_GrSLPrecision)); |
joshualitt
2015/05/20 20:36:11
newline
Stephen White
2015/05/20 20:47:43
Done.
| |
209 if (flags & kColorAttr_DistanceFieldEffectFlag) { | 209 if (flags & kColorAttr_DistanceFieldEffectFlag) { |
210 fInColor = &this->addVertexAttrib(Attribute("inColor", kVec4ub_GrVertexA ttribType)); | 210 fInColor = &this->addVertexAttrib(Attribute("inColor", kVec4ub_GrVertexA ttribType)); |
211 } | 211 } |
212 fInTextureCoords = &this->addVertexAttrib(Attribute("inTextureCoords", | 212 fInTextureCoords = &this->addVertexAttrib(Attribute("inTextureCoords", |
213 kVec2s_GrVertexAttribT ype)); | 213 kVec2s_GrVertexAttribT ype)); |
214 this->addTextureAccess(&fTextureAccess); | 214 this->addTextureAccess(&fTextureAccess); |
215 } | 215 } |
216 | 216 |
217 void GrDistanceFieldA8TextGeoProc::getGLProcessorKey(const GrBatchTracker& bt, | 217 void GrDistanceFieldA8TextGeoProc::getGLProcessorKey(const GrBatchTracker& bt, |
218 const GrGLSLCaps& caps, | 218 const GrGLSLCaps& caps, |
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
413 uint32_t flags, | 413 uint32_t flags, |
414 bool usesLocalCoords) | 414 bool usesLocalCoords) |
415 : fColor(color) | 415 : fColor(color) |
416 , fViewMatrix(viewMatrix) | 416 , fViewMatrix(viewMatrix) |
417 , fTextureAccess(texture, params) | 417 , fTextureAccess(texture, params) |
418 , fFlags(flags & kNonLCD_DistanceFieldEffectMask) | 418 , fFlags(flags & kNonLCD_DistanceFieldEffectMask) |
419 , fInColor(NULL) | 419 , fInColor(NULL) |
420 , fUsesLocalCoords(usesLocalCoords) { | 420 , fUsesLocalCoords(usesLocalCoords) { |
421 SkASSERT(!(flags & ~kNonLCD_DistanceFieldEffectMask)); | 421 SkASSERT(!(flags & ~kNonLCD_DistanceFieldEffectMask)); |
422 this->initClassID<GrDistanceFieldPathGeoProc>(); | 422 this->initClassID<GrDistanceFieldPathGeoProc>(); |
423 fInPosition = &this->addVertexAttrib(Attribute("inPosition", kVec2f_GrVertex AttribType)); | 423 fInPosition = &this->addVertexAttrib(Attribute("inPosition", kVec2f_GrVertex AttribType, kHigh_GrSLPrecision)); |
joshualitt
2015/05/20 20:36:11
newline
Stephen White
2015/05/20 20:47:43
Done.
| |
424 if (flags & kColorAttr_DistanceFieldEffectFlag) { | 424 if (flags & kColorAttr_DistanceFieldEffectFlag) { |
425 fInColor = &this->addVertexAttrib(Attribute("inColor", kVec4ub_GrVertexA ttribType)); | 425 fInColor = &this->addVertexAttrib(Attribute("inColor", kVec4ub_GrVertexA ttribType)); |
426 } | 426 } |
427 fInTextureCoords = &this->addVertexAttrib(Attribute("inTextureCoords", | 427 fInTextureCoords = &this->addVertexAttrib(Attribute("inTextureCoords", |
428 kVec2f_GrVertexAttribTyp e)); | 428 kVec2f_GrVertexAttribTyp e)); |
429 this->addTextureAccess(&fTextureAccess); | 429 this->addTextureAccess(&fTextureAccess); |
430 } | 430 } |
431 | 431 |
432 void GrDistanceFieldPathGeoProc::getGLProcessorKey(const GrBatchTracker& bt, | 432 void GrDistanceFieldPathGeoProc::getGLProcessorKey(const GrBatchTracker& bt, |
433 const GrGLSLCaps& caps, | 433 const GrGLSLCaps& caps, |
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
667 DistanceAdjust distanceAdjust, | 667 DistanceAdjust distanceAdjust, |
668 uint32_t flags, bool usesLocal Coords) | 668 uint32_t flags, bool usesLocal Coords) |
669 : fColor(color) | 669 : fColor(color) |
670 , fViewMatrix(viewMatrix) | 670 , fViewMatrix(viewMatrix) |
671 , fTextureAccess(texture, params) | 671 , fTextureAccess(texture, params) |
672 , fDistanceAdjust(distanceAdjust) | 672 , fDistanceAdjust(distanceAdjust) |
673 , fFlags(flags & kLCD_DistanceFieldEffectMask) | 673 , fFlags(flags & kLCD_DistanceFieldEffectMask) |
674 , fUsesLocalCoords(usesLocalCoords) { | 674 , fUsesLocalCoords(usesLocalCoords) { |
675 SkASSERT(!(flags & ~kLCD_DistanceFieldEffectMask) && (flags & kUseLCD_Distan ceFieldEffectFlag)); | 675 SkASSERT(!(flags & ~kLCD_DistanceFieldEffectMask) && (flags & kUseLCD_Distan ceFieldEffectFlag)); |
676 this->initClassID<GrDistanceFieldLCDTextGeoProc>(); | 676 this->initClassID<GrDistanceFieldLCDTextGeoProc>(); |
677 fInPosition = &this->addVertexAttrib(Attribute("inPosition", kVec2f_GrVertex AttribType)); | 677 fInPosition = &this->addVertexAttrib(Attribute("inPosition", kVec2f_GrVertex AttribType, kHigh_GrSLPrecision)); |
joshualitt
2015/05/20 20:36:11
newline
Stephen White
2015/05/20 20:47:43
Done.
| |
678 fInTextureCoords = &this->addVertexAttrib(Attribute("inTextureCoords", | 678 fInTextureCoords = &this->addVertexAttrib(Attribute("inTextureCoords", |
679 kVec2s_GrVertexAttribTyp e)); | 679 kVec2s_GrVertexAttribTyp e)); |
680 this->addTextureAccess(&fTextureAccess); | 680 this->addTextureAccess(&fTextureAccess); |
681 } | 681 } |
682 | 682 |
683 void GrDistanceFieldLCDTextGeoProc::getGLProcessorKey(const GrBatchTracker& bt, | 683 void GrDistanceFieldLCDTextGeoProc::getGLProcessorKey(const GrBatchTracker& bt, |
684 const GrGLSLCaps& caps, | 684 const GrGLSLCaps& caps, |
685 GrProcessorKeyBuilder* b) const { | 685 GrProcessorKeyBuilder* b) const { |
686 GrGLDistanceFieldLCDTextGeoProc::GenKey(*this, bt, caps, b); | 686 GrGLDistanceFieldLCDTextGeoProc::GenKey(*this, bt, caps, b); |
687 } | 687 } |
(...skipping 29 matching lines...) Expand all Loading... | |
717 uint32_t flags = kUseLCD_DistanceFieldEffectFlag; | 717 uint32_t flags = kUseLCD_DistanceFieldEffectFlag; |
718 flags |= random->nextBool() ? kUniformScale_DistanceFieldEffectMask : 0; | 718 flags |= random->nextBool() ? kUniformScale_DistanceFieldEffectMask : 0; |
719 flags |= random->nextBool() ? kBGR_DistanceFieldEffectFlag : 0; | 719 flags |= random->nextBool() ? kBGR_DistanceFieldEffectFlag : 0; |
720 return GrDistanceFieldLCDTextGeoProc::Create(GrRandomColor(random), | 720 return GrDistanceFieldLCDTextGeoProc::Create(GrRandomColor(random), |
721 GrTest::TestMatrix(random), | 721 GrTest::TestMatrix(random), |
722 textures[texIdx], params, | 722 textures[texIdx], params, |
723 wa, | 723 wa, |
724 flags, | 724 flags, |
725 random->nextBool()); | 725 random->nextBool()); |
726 } | 726 } |
OLD | NEW |