| 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 "GrDistanceFieldTextureEffect.h" | 8 #include "GrDistanceFieldTextureEffect.h" |
| 9 #include "GrInvariantOutput.h" | 9 #include "GrInvariantOutput.h" |
| 10 #include "GrTexture.h" | 10 #include "GrTexture.h" |
| (...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 209 : INHERITED(color, viewMatrix, SkMatrix::I(), opaqueVertexColors) | 209 : INHERITED(color, viewMatrix, SkMatrix::I(), opaqueVertexColors) |
| 210 , fTextureAccess(texture, params) | 210 , fTextureAccess(texture, params) |
| 211 #ifdef SK_GAMMA_APPLY_TO_A8 | 211 #ifdef SK_GAMMA_APPLY_TO_A8 |
| 212 , fGammaTextureAccess(gamma, gammaParams) | 212 , fGammaTextureAccess(gamma, gammaParams) |
| 213 , fLuminance(luminance) | 213 , fLuminance(luminance) |
| 214 #endif | 214 #endif |
| 215 , fFlags(flags & kNonLCD_DistanceFieldEffectMask) | 215 , fFlags(flags & kNonLCD_DistanceFieldEffectMask) |
| 216 , fInColor(NULL) { | 216 , fInColor(NULL) { |
| 217 SkASSERT(!(flags & ~kNonLCD_DistanceFieldEffectMask)); | 217 SkASSERT(!(flags & ~kNonLCD_DistanceFieldEffectMask)); |
| 218 this->initClassID<GrDistanceFieldTextureEffect>(); | 218 this->initClassID<GrDistanceFieldTextureEffect>(); |
| 219 fInPosition = &this->addVertexAttrib(GrAttribute("inPosition", kVec2f_GrVert
exAttribType)); | 219 fInPosition = &this->addVertexAttrib(Attribute("inPosition", kVec2f_GrVertex
AttribType)); |
| 220 if (flags & kColorAttr_DistanceFieldEffectFlag) { | 220 if (flags & kColorAttr_DistanceFieldEffectFlag) { |
| 221 fInColor = &this->addVertexAttrib(GrAttribute("inColor", kVec4ub_GrVerte
xAttribType)); | 221 fInColor = &this->addVertexAttrib(Attribute("inColor", kVec4ub_GrVertexA
ttribType)); |
| 222 this->setHasVertexColor(); | 222 this->setHasVertexColor(); |
| 223 } | 223 } |
| 224 fInTextureCoords = &this->addVertexAttrib(GrAttribute("inTextureCoords", | 224 fInTextureCoords = &this->addVertexAttrib(Attribute("inTextureCoords", |
| 225 kVec2f_GrVertexAttribT
ype)); | 225 kVec2f_GrVertexAttribT
ype)); |
| 226 this->addTextureAccess(&fTextureAccess); | 226 this->addTextureAccess(&fTextureAccess); |
| 227 #ifdef SK_GAMMA_APPLY_TO_A8 | 227 #ifdef SK_GAMMA_APPLY_TO_A8 |
| 228 this->addTextureAccess(&fGammaTextureAccess); | 228 this->addTextureAccess(&fGammaTextureAccess); |
| 229 #endif | 229 #endif |
| 230 } | 230 } |
| 231 | 231 |
| 232 bool GrDistanceFieldTextureEffect::onIsEqual(const GrGeometryProcessor& other) c
onst { | 232 bool GrDistanceFieldTextureEffect::onIsEqual(const GrGeometryProcessor& other) c
onst { |
| 233 const GrDistanceFieldTextureEffect& cte = other.cast<GrDistanceFieldTextureE
ffect>(); | 233 const GrDistanceFieldTextureEffect& cte = other.cast<GrDistanceFieldTextureE
ffect>(); |
| 234 return | 234 return |
| (...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 473 GrTexture* texture, | 473 GrTexture* texture, |
| 474 const GrTextureParams& params, | 474 const GrTextureParams& params, |
| 475 uint32_t flags, | 475 uint32_t flags, |
| 476 bool opaqueVertexColors) | 476 bool opaqueVertexColors) |
| 477 : INHERITED(color, viewMatrix, SkMatrix::I(), opaqueVertexColors) | 477 : INHERITED(color, viewMatrix, SkMatrix::I(), opaqueVertexColors) |
| 478 , fTextureAccess(texture, params) | 478 , fTextureAccess(texture, params) |
| 479 , fFlags(flags & kNonLCD_DistanceFieldEffectMask) | 479 , fFlags(flags & kNonLCD_DistanceFieldEffectMask) |
| 480 , fInColor(NULL) { | 480 , fInColor(NULL) { |
| 481 SkASSERT(!(flags & ~kNonLCD_DistanceFieldEffectMask)); | 481 SkASSERT(!(flags & ~kNonLCD_DistanceFieldEffectMask)); |
| 482 this->initClassID<GrDistanceFieldNoGammaTextureEffect>(); | 482 this->initClassID<GrDistanceFieldNoGammaTextureEffect>(); |
| 483 fInPosition = &this->addVertexAttrib(GrAttribute("inPosition", kVec2f_GrVert
exAttribType)); | 483 fInPosition = &this->addVertexAttrib(Attribute("inPosition", kVec2f_GrVertex
AttribType)); |
| 484 if (flags & kColorAttr_DistanceFieldEffectFlag) { | 484 if (flags & kColorAttr_DistanceFieldEffectFlag) { |
| 485 fInColor = &this->addVertexAttrib(GrAttribute("inColor", kVec4ub_GrVerte
xAttribType)); | 485 fInColor = &this->addVertexAttrib(Attribute("inColor", kVec4ub_GrVertexA
ttribType)); |
| 486 this->setHasVertexColor(); | 486 this->setHasVertexColor(); |
| 487 } | 487 } |
| 488 fInTextureCoords = &this->addVertexAttrib(GrAttribute("inTextureCoords", | 488 fInTextureCoords = &this->addVertexAttrib(Attribute("inTextureCoords", |
| 489 kVec2f_GrVertexAttribT
ype)); | 489 kVec2f_GrVertexAttribT
ype)); |
| 490 this->addTextureAccess(&fTextureAccess); | 490 this->addTextureAccess(&fTextureAccess); |
| 491 } | 491 } |
| 492 | 492 |
| 493 bool GrDistanceFieldNoGammaTextureEffect::onIsEqual(const GrGeometryProcessor& o
ther) const { | 493 bool GrDistanceFieldNoGammaTextureEffect::onIsEqual(const GrGeometryProcessor& o
ther) const { |
| 494 const GrDistanceFieldNoGammaTextureEffect& cte = | 494 const GrDistanceFieldNoGammaTextureEffect& cte = |
| 495 other.cast<GrDistanceFieldNoGam
maTextureEffect>(); | 495 other.cast<GrDistanceFieldNoGam
maTextureEffect>(); |
| 496 return fFlags == cte.fFlags; | 496 return fFlags == cte.fFlags; |
| 497 } | 497 } |
| 498 | 498 |
| (...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 794 GrTexture* gamma, const GrText
ureParams& gParams, | 794 GrTexture* gamma, const GrText
ureParams& gParams, |
| 795 SkColor textColor, | 795 SkColor textColor, |
| 796 uint32_t flags) | 796 uint32_t flags) |
| 797 : INHERITED(color, viewMatrix, SkMatrix::I()) | 797 : INHERITED(color, viewMatrix, SkMatrix::I()) |
| 798 , fTextureAccess(texture, params) | 798 , fTextureAccess(texture, params) |
| 799 , fGammaTextureAccess(gamma, gParams) | 799 , fGammaTextureAccess(gamma, gParams) |
| 800 , fTextColor(textColor) | 800 , fTextColor(textColor) |
| 801 , fFlags(flags & kLCD_DistanceFieldEffectMask){ | 801 , fFlags(flags & kLCD_DistanceFieldEffectMask){ |
| 802 SkASSERT(!(flags & ~kLCD_DistanceFieldEffectMask) && (flags & kUseLCD_Distan
ceFieldEffectFlag)); | 802 SkASSERT(!(flags & ~kLCD_DistanceFieldEffectMask) && (flags & kUseLCD_Distan
ceFieldEffectFlag)); |
| 803 this->initClassID<GrDistanceFieldLCDTextureEffect>(); | 803 this->initClassID<GrDistanceFieldLCDTextureEffect>(); |
| 804 fInPosition = &this->addVertexAttrib(GrAttribute("inPosition", kVec2f_GrVert
exAttribType)); | 804 fInPosition = &this->addVertexAttrib(Attribute("inPosition", kVec2f_GrVertex
AttribType)); |
| 805 fInTextureCoords = &this->addVertexAttrib(GrAttribute("inTextureCoords", | 805 fInTextureCoords = &this->addVertexAttrib(Attribute("inTextureCoords", |
| 806 kVec2f_GrVertexAttribT
ype)); | 806 kVec2f_GrVertexAttribT
ype)); |
| 807 this->addTextureAccess(&fTextureAccess); | 807 this->addTextureAccess(&fTextureAccess); |
| 808 this->addTextureAccess(&fGammaTextureAccess); | 808 this->addTextureAccess(&fGammaTextureAccess); |
| 809 } | 809 } |
| 810 | 810 |
| 811 bool GrDistanceFieldLCDTextureEffect::onIsEqual(const GrGeometryProcessor& other
) const { | 811 bool GrDistanceFieldLCDTextureEffect::onIsEqual(const GrGeometryProcessor& other
) const { |
| 812 const GrDistanceFieldLCDTextureEffect& cte = other.cast<GrDistanceFieldLCDTe
xtureEffect>(); | 812 const GrDistanceFieldLCDTextureEffect& cte = other.cast<GrDistanceFieldLCDTe
xtureEffect>(); |
| 813 return (fTextColor == cte.fTextColor && | 813 return (fTextColor == cte.fTextColor && |
| 814 fFlags == cte.fFlags); | 814 fFlags == cte.fFlags); |
| 815 } | 815 } |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 881 uint32_t flags = kUseLCD_DistanceFieldEffectFlag; | 881 uint32_t flags = kUseLCD_DistanceFieldEffectFlag; |
| 882 flags |= random->nextBool() ? kUniformScale_DistanceFieldEffectMask : 0; | 882 flags |= random->nextBool() ? kUniformScale_DistanceFieldEffectMask : 0; |
| 883 flags |= random->nextBool() ? kBGR_DistanceFieldEffectFlag : 0; | 883 flags |= random->nextBool() ? kBGR_DistanceFieldEffectFlag : 0; |
| 884 return GrDistanceFieldLCDTextureEffect::Create(GrRandomColor(random), | 884 return GrDistanceFieldLCDTextureEffect::Create(GrRandomColor(random), |
| 885 GrProcessorUnitTest::TestMatr
ix(random), | 885 GrProcessorUnitTest::TestMatr
ix(random), |
| 886 textures[texIdx], params, | 886 textures[texIdx], params, |
| 887 textures[texIdx2], params2, | 887 textures[texIdx2], params2, |
| 888 textColor, | 888 textColor, |
| 889 flags); | 889 flags); |
| 890 } | 890 } |
| OLD | NEW |