| 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 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 199 | 199 |
| 200 bool GrDistanceFieldTextureEffect::onIsEqual(const GrGeometryProcessor& other) c
onst { | 200 bool GrDistanceFieldTextureEffect::onIsEqual(const GrGeometryProcessor& other) c
onst { |
| 201 const GrDistanceFieldTextureEffect& cte = other.cast<GrDistanceFieldTextureE
ffect>(); | 201 const GrDistanceFieldTextureEffect& cte = other.cast<GrDistanceFieldTextureE
ffect>(); |
| 202 return | 202 return |
| 203 #ifdef SK_GAMMA_APPLY_TO_A8 | 203 #ifdef SK_GAMMA_APPLY_TO_A8 |
| 204 fLuminance == cte.fLuminance && | 204 fLuminance == cte.fLuminance && |
| 205 #endif | 205 #endif |
| 206 fFlags == cte.fFlags; | 206 fFlags == cte.fFlags; |
| 207 } | 207 } |
| 208 | 208 |
| 209 void GrDistanceFieldTextureEffect::onGetInvariantOutputCoverage(GrInitInvariantO
utput* out) const { | 209 void GrDistanceFieldTextureEffect::onComputeInvariantOutput(GrInvariantOutput* i
nout) const { |
| 210 out->setUnknownSingleComponent(); | 210 inout->mulByUnknownAlpha(); |
| 211 } | 211 } |
| 212 | 212 |
| 213 void GrDistanceFieldTextureEffect::getGLProcessorKey(const GrBatchTracker& bt, | 213 void GrDistanceFieldTextureEffect::getGLProcessorKey(const GrBatchTracker& bt, |
| 214 const GrGLCaps& caps, | 214 const GrGLCaps& caps, |
| 215 GrProcessorKeyBuilder* b) c
onst { | 215 GrProcessorKeyBuilder* b) c
onst { |
| 216 GrGLDistanceFieldTextureEffect::GenKey(*this, bt, caps, b); | 216 GrGLDistanceFieldTextureEffect::GenKey(*this, bt, caps, b); |
| 217 } | 217 } |
| 218 | 218 |
| 219 GrGLGeometryProcessor* | 219 GrGLGeometryProcessor* |
| 220 GrDistanceFieldTextureEffect::createGLInstance(const GrBatchTracker& bt) const { | 220 GrDistanceFieldTextureEffect::createGLInstance(const GrBatchTracker& bt) const { |
| (...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 400 kVec2f_GrVertexAttribT
ype)); | 400 kVec2f_GrVertexAttribT
ype)); |
| 401 this->addTextureAccess(&fTextureAccess); | 401 this->addTextureAccess(&fTextureAccess); |
| 402 } | 402 } |
| 403 | 403 |
| 404 bool GrDistanceFieldNoGammaTextureEffect::onIsEqual(const GrGeometryProcessor& o
ther) const { | 404 bool GrDistanceFieldNoGammaTextureEffect::onIsEqual(const GrGeometryProcessor& o
ther) const { |
| 405 const GrDistanceFieldNoGammaTextureEffect& cte = | 405 const GrDistanceFieldNoGammaTextureEffect& cte = |
| 406 other.cast<GrDistanceFieldNoGam
maTextureEffect>(); | 406 other.cast<GrDistanceFieldNoGam
maTextureEffect>(); |
| 407 return fFlags == cte.fFlags; | 407 return fFlags == cte.fFlags; |
| 408 } | 408 } |
| 409 | 409 |
| 410 void GrDistanceFieldNoGammaTextureEffect::onGetInvariantOutputCoverage(GrInitInv
ariantOutput* out) const{ | 410 void GrDistanceFieldNoGammaTextureEffect::onComputeInvariantOutput(GrInvariantOu
tput* inout) const { |
| 411 out->setUnknownSingleComponent(); | 411 inout->mulByUnknownAlpha(); |
| 412 } | 412 } |
| 413 | 413 |
| 414 void GrDistanceFieldNoGammaTextureEffect::getGLProcessorKey(const GrBatchTracker
& bt, | 414 void GrDistanceFieldNoGammaTextureEffect::getGLProcessorKey(const GrBatchTracker
& bt, |
| 415 const GrGLCaps& caps
, | 415 const GrGLCaps& caps
, |
| 416 GrProcessorKeyBuilde
r* b) const { | 416 GrProcessorKeyBuilde
r* b) const { |
| 417 GrGLDistanceFieldNoGammaTextureEffect::GenKey(*this, bt, caps, b); | 417 GrGLDistanceFieldNoGammaTextureEffect::GenKey(*this, bt, caps, b); |
| 418 } | 418 } |
| 419 | 419 |
| 420 GrGLGeometryProcessor* | 420 GrGLGeometryProcessor* |
| 421 GrDistanceFieldNoGammaTextureEffect::createGLInstance(const GrBatchTracker& bt)
const { | 421 GrDistanceFieldNoGammaTextureEffect::createGLInstance(const GrBatchTracker& bt)
const { |
| (...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 658 this->addTextureAccess(&fTextureAccess); | 658 this->addTextureAccess(&fTextureAccess); |
| 659 this->addTextureAccess(&fGammaTextureAccess); | 659 this->addTextureAccess(&fGammaTextureAccess); |
| 660 } | 660 } |
| 661 | 661 |
| 662 bool GrDistanceFieldLCDTextureEffect::onIsEqual(const GrGeometryProcessor& other
) const { | 662 bool GrDistanceFieldLCDTextureEffect::onIsEqual(const GrGeometryProcessor& other
) const { |
| 663 const GrDistanceFieldLCDTextureEffect& cte = other.cast<GrDistanceFieldLCDTe
xtureEffect>(); | 663 const GrDistanceFieldLCDTextureEffect& cte = other.cast<GrDistanceFieldLCDTe
xtureEffect>(); |
| 664 return (fTextColor == cte.fTextColor && | 664 return (fTextColor == cte.fTextColor && |
| 665 fFlags == cte.fFlags); | 665 fFlags == cte.fFlags); |
| 666 } | 666 } |
| 667 | 667 |
| 668 void GrDistanceFieldLCDTextureEffect::onGetInvariantOutputCoverage(GrInitInvaria
ntOutput* out) const { | 668 void GrDistanceFieldLCDTextureEffect::onComputeInvariantOutput(GrInvariantOutput
* inout) const { |
| 669 out->setUnknownFourComponents(); | 669 inout->mulByUnknownColor(); |
| 670 out->setUsingLCDCoverage(); | 670 inout->setUsingLCDCoverage(); |
| 671 } | 671 } |
| 672 | 672 |
| 673 void GrDistanceFieldLCDTextureEffect::getGLProcessorKey(const GrBatchTracker& bt
, | 673 void GrDistanceFieldLCDTextureEffect::getGLProcessorKey(const GrBatchTracker& bt
, |
| 674 const GrGLCaps& caps, | 674 const GrGLCaps& caps, |
| 675 GrProcessorKeyBuilder* b
) const { | 675 GrProcessorKeyBuilder* b
) const { |
| 676 GrGLDistanceFieldLCDTextureEffect::GenKey(*this, bt, caps, b); | 676 GrGLDistanceFieldLCDTextureEffect::GenKey(*this, bt, caps, b); |
| 677 } | 677 } |
| 678 | 678 |
| 679 GrGLGeometryProcessor* | 679 GrGLGeometryProcessor* |
| 680 GrDistanceFieldLCDTextureEffect::createGLInstance(const GrBatchTracker& bt) cons
t { | 680 GrDistanceFieldLCDTextureEffect::createGLInstance(const GrBatchTracker& bt) cons
t { |
| (...skipping 30 matching lines...) Expand all Loading... |
| 711 random->nextULessThan(256), | 711 random->nextULessThan(256), |
| 712 random->nextULessThan(256)); | 712 random->nextULessThan(256)); |
| 713 uint32_t flags = kUseLCD_DistanceFieldEffectFlag; | 713 uint32_t flags = kUseLCD_DistanceFieldEffectFlag; |
| 714 flags |= random->nextBool() ? kUniformScale_DistanceFieldEffectMask : 0; | 714 flags |= random->nextBool() ? kUniformScale_DistanceFieldEffectMask : 0; |
| 715 flags |= random->nextBool() ? kBGR_DistanceFieldEffectFlag : 0; | 715 flags |= random->nextBool() ? kBGR_DistanceFieldEffectFlag : 0; |
| 716 return GrDistanceFieldLCDTextureEffect::Create(GrRandomColor(random), textur
es[texIdx], params, | 716 return GrDistanceFieldLCDTextureEffect::Create(GrRandomColor(random), textur
es[texIdx], params, |
| 717 textures[texIdx2], params2, | 717 textures[texIdx2], params2, |
| 718 textColor, | 718 textColor, |
| 719 flags); | 719 flags); |
| 720 } | 720 } |
| OLD | NEW |