| 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 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 205 : INHERITED(color, viewMatrix, SkMatrix::I(), opaqueVertexColors) | 205 : INHERITED(color, viewMatrix, SkMatrix::I(), opaqueVertexColors) |
| 206 , fTextureAccess(texture, params) | 206 , fTextureAccess(texture, params) |
| 207 #ifdef SK_GAMMA_APPLY_TO_A8 | 207 #ifdef SK_GAMMA_APPLY_TO_A8 |
| 208 , fGammaTextureAccess(gamma, gammaParams) | 208 , fGammaTextureAccess(gamma, gammaParams) |
| 209 , fLuminance(luminance) | 209 , fLuminance(luminance) |
| 210 #endif | 210 #endif |
| 211 , fFlags(flags & kNonLCD_DistanceFieldEffectMask) | 211 , fFlags(flags & kNonLCD_DistanceFieldEffectMask) |
| 212 , fInColor(NULL) { | 212 , fInColor(NULL) { |
| 213 SkASSERT(!(flags & ~kNonLCD_DistanceFieldEffectMask)); | 213 SkASSERT(!(flags & ~kNonLCD_DistanceFieldEffectMask)); |
| 214 this->initClassID<GrDistanceFieldTextureEffect>(); | 214 this->initClassID<GrDistanceFieldTextureEffect>(); |
| 215 fInPosition = &this->addVertexAttrib(GrAttribute("inPosition", kVec2f_GrVert
exAttribType)); | 215 fInPosition = &this->addVertexAttrib(Attribute("inPosition", kVec2f_GrVertex
AttribType)); |
| 216 if (flags & kColorAttr_DistanceFieldEffectFlag) { | 216 if (flags & kColorAttr_DistanceFieldEffectFlag) { |
| 217 fInColor = &this->addVertexAttrib(GrAttribute("inColor", kVec4ub_GrVerte
xAttribType)); | 217 fInColor = &this->addVertexAttrib(Attribute("inColor", kVec4ub_GrVertexA
ttribType)); |
| 218 this->setHasVertexColor(); | 218 this->setHasVertexColor(); |
| 219 } | 219 } |
| 220 fInTextureCoords = &this->addVertexAttrib(GrAttribute("inTextureCoords", | 220 fInTextureCoords = &this->addVertexAttrib(Attribute("inTextureCoords", |
| 221 kVec2f_GrVertexAttribT
ype)); | 221 kVec2f_GrVertexAttribT
ype)); |
| 222 this->addTextureAccess(&fTextureAccess); | 222 this->addTextureAccess(&fTextureAccess); |
| 223 #ifdef SK_GAMMA_APPLY_TO_A8 | 223 #ifdef SK_GAMMA_APPLY_TO_A8 |
| 224 this->addTextureAccess(&fGammaTextureAccess); | 224 this->addTextureAccess(&fGammaTextureAccess); |
| 225 #endif | 225 #endif |
| 226 } | 226 } |
| 227 | 227 |
| 228 bool GrDistanceFieldTextureEffect::onIsEqual(const GrGeometryProcessor& other) c
onst { | 228 bool GrDistanceFieldTextureEffect::onIsEqual(const GrGeometryProcessor& other) c
onst { |
| 229 const GrDistanceFieldTextureEffect& cte = other.cast<GrDistanceFieldTextureE
ffect>(); | 229 const GrDistanceFieldTextureEffect& cte = other.cast<GrDistanceFieldTextureE
ffect>(); |
| 230 return | 230 return |
| (...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 465 GrTexture* texture, | 465 GrTexture* texture, |
| 466 const GrTextureParams& params, | 466 const GrTextureParams& params, |
| 467 uint32_t flags, | 467 uint32_t flags, |
| 468 bool opaqueVertexColors) | 468 bool opaqueVertexColors) |
| 469 : INHERITED(color, viewMatrix, SkMatrix::I(), opaqueVertexColors) | 469 : INHERITED(color, viewMatrix, SkMatrix::I(), opaqueVertexColors) |
| 470 , fTextureAccess(texture, params) | 470 , fTextureAccess(texture, params) |
| 471 , fFlags(flags & kNonLCD_DistanceFieldEffectMask) | 471 , fFlags(flags & kNonLCD_DistanceFieldEffectMask) |
| 472 , fInColor(NULL) { | 472 , fInColor(NULL) { |
| 473 SkASSERT(!(flags & ~kNonLCD_DistanceFieldEffectMask)); | 473 SkASSERT(!(flags & ~kNonLCD_DistanceFieldEffectMask)); |
| 474 this->initClassID<GrDistanceFieldNoGammaTextureEffect>(); | 474 this->initClassID<GrDistanceFieldNoGammaTextureEffect>(); |
| 475 fInPosition = &this->addVertexAttrib(GrAttribute("inPosition", kVec2f_GrVert
exAttribType)); | 475 fInPosition = &this->addVertexAttrib(Attribute("inPosition", kVec2f_GrVertex
AttribType)); |
| 476 if (flags & kColorAttr_DistanceFieldEffectFlag) { | 476 if (flags & kColorAttr_DistanceFieldEffectFlag) { |
| 477 fInColor = &this->addVertexAttrib(GrAttribute("inColor", kVec4ub_GrVerte
xAttribType)); | 477 fInColor = &this->addVertexAttrib(Attribute("inColor", kVec4ub_GrVertexA
ttribType)); |
| 478 this->setHasVertexColor(); | 478 this->setHasVertexColor(); |
| 479 } | 479 } |
| 480 fInTextureCoords = &this->addVertexAttrib(GrAttribute("inTextureCoords", | 480 fInTextureCoords = &this->addVertexAttrib(Attribute("inTextureCoords", |
| 481 kVec2f_GrVertexAttribT
ype)); | 481 kVec2f_GrVertexAttribT
ype)); |
| 482 this->addTextureAccess(&fTextureAccess); | 482 this->addTextureAccess(&fTextureAccess); |
| 483 } | 483 } |
| 484 | 484 |
| 485 bool GrDistanceFieldNoGammaTextureEffect::onIsEqual(const GrGeometryProcessor& o
ther) const { | 485 bool GrDistanceFieldNoGammaTextureEffect::onIsEqual(const GrGeometryProcessor& o
ther) const { |
| 486 const GrDistanceFieldNoGammaTextureEffect& cte = | 486 const GrDistanceFieldNoGammaTextureEffect& cte = |
| 487 other.cast<GrDistanceFieldNoGam
maTextureEffect>(); | 487 other.cast<GrDistanceFieldNoGam
maTextureEffect>(); |
| 488 return fFlags == cte.fFlags; | 488 return fFlags == cte.fFlags; |
| 489 } | 489 } |
| 490 | 490 |
| (...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 782 GrTexture* gamma, const GrText
ureParams& gParams, | 782 GrTexture* gamma, const GrText
ureParams& gParams, |
| 783 SkColor textColor, | 783 SkColor textColor, |
| 784 uint32_t flags) | 784 uint32_t flags) |
| 785 : INHERITED(color, viewMatrix, SkMatrix::I()) | 785 : INHERITED(color, viewMatrix, SkMatrix::I()) |
| 786 , fTextureAccess(texture, params) | 786 , fTextureAccess(texture, params) |
| 787 , fGammaTextureAccess(gamma, gParams) | 787 , fGammaTextureAccess(gamma, gParams) |
| 788 , fTextColor(textColor) | 788 , fTextColor(textColor) |
| 789 , fFlags(flags & kLCD_DistanceFieldEffectMask){ | 789 , fFlags(flags & kLCD_DistanceFieldEffectMask){ |
| 790 SkASSERT(!(flags & ~kLCD_DistanceFieldEffectMask) && (flags & kUseLCD_Distan
ceFieldEffectFlag)); | 790 SkASSERT(!(flags & ~kLCD_DistanceFieldEffectMask) && (flags & kUseLCD_Distan
ceFieldEffectFlag)); |
| 791 this->initClassID<GrDistanceFieldLCDTextureEffect>(); | 791 this->initClassID<GrDistanceFieldLCDTextureEffect>(); |
| 792 fInPosition = &this->addVertexAttrib(GrAttribute("inPosition", kVec2f_GrVert
exAttribType)); | 792 fInPosition = &this->addVertexAttrib(Attribute("inPosition", kVec2f_GrVertex
AttribType)); |
| 793 fInTextureCoords = &this->addVertexAttrib(GrAttribute("inTextureCoords", | 793 fInTextureCoords = &this->addVertexAttrib(Attribute("inTextureCoords", |
| 794 kVec2f_GrVertexAttribT
ype)); | 794 kVec2f_GrVertexAttribT
ype)); |
| 795 this->addTextureAccess(&fTextureAccess); | 795 this->addTextureAccess(&fTextureAccess); |
| 796 this->addTextureAccess(&fGammaTextureAccess); | 796 this->addTextureAccess(&fGammaTextureAccess); |
| 797 } | 797 } |
| 798 | 798 |
| 799 bool GrDistanceFieldLCDTextureEffect::onIsEqual(const GrGeometryProcessor& other
) const { | 799 bool GrDistanceFieldLCDTextureEffect::onIsEqual(const GrGeometryProcessor& other
) const { |
| 800 const GrDistanceFieldLCDTextureEffect& cte = other.cast<GrDistanceFieldLCDTe
xtureEffect>(); | 800 const GrDistanceFieldLCDTextureEffect& cte = other.cast<GrDistanceFieldLCDTe
xtureEffect>(); |
| 801 return (fTextColor == cte.fTextColor && | 801 return (fTextColor == cte.fTextColor && |
| 802 fFlags == cte.fFlags); | 802 fFlags == cte.fFlags); |
| 803 } | 803 } |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 869 uint32_t flags = kUseLCD_DistanceFieldEffectFlag; | 869 uint32_t flags = kUseLCD_DistanceFieldEffectFlag; |
| 870 flags |= random->nextBool() ? kUniformScale_DistanceFieldEffectMask : 0; | 870 flags |= random->nextBool() ? kUniformScale_DistanceFieldEffectMask : 0; |
| 871 flags |= random->nextBool() ? kBGR_DistanceFieldEffectFlag : 0; | 871 flags |= random->nextBool() ? kBGR_DistanceFieldEffectFlag : 0; |
| 872 return GrDistanceFieldLCDTextureEffect::Create(GrRandomColor(random), | 872 return GrDistanceFieldLCDTextureEffect::Create(GrRandomColor(random), |
| 873 GrProcessorUnitTest::TestMatr
ix(random), | 873 GrProcessorUnitTest::TestMatr
ix(random), |
| 874 textures[texIdx], params, | 874 textures[texIdx], params, |
| 875 textures[texIdx2], params2, | 875 textures[texIdx2], params2, |
| 876 textColor, | 876 textColor, |
| 877 flags); | 877 flags); |
| 878 } | 878 } |
| OLD | NEW |