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::onComputeInvariantOutput(GrInvariantOutput* i
nout) const { | 209 void GrDistanceFieldTextureEffect::onComputeOutputCoverage(GrInitInvariantOutput
* out) const { |
210 inout->mulByUnknownAlpha(); | 210 out->setIsUnknownSingleComponent(); |
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::onComputeInvariantOutput(GrInvariantOu
tput* inout) const { | 410 void GrDistanceFieldNoGammaTextureEffect::onComputeOutputCoverage(GrInitInvarian
tOutput* out) const{ |
411 inout->mulByUnknownAlpha(); | 411 out->setIsUnknownSingleComponent(); |
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::onComputeInvariantOutput(GrInvariantOutput
* inout) const { | 668 void GrDistanceFieldLCDTextureEffect::onComputeOutputCoverage(GrInitInvariantOut
put* out) const { |
669 inout->mulByUnknownColor(); | 669 out->setIsUnknownFourComponents(); |
670 inout->setUsingLCDCoverage(); | 670 out->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 |