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 |