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