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 |