| 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 "GrDistanceFieldGeoProc.h" |    8 #include "GrDistanceFieldGeoProc.h" | 
|    9 #include "GrInvariantOutput.h" |    9 #include "GrInvariantOutput.h" | 
|   10 #include "GrTexture.h" |   10 #include "GrTexture.h" | 
| (...skipping 615 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  626             fsBuilder->codeAppend("}"); |  626             fsBuilder->codeAppend("}"); | 
|  627             fsBuilder->codeAppend("vec2 grad = vec2(dist_grad.x*Jdx.x + dist_gra
     d.y*Jdy.x,"); |  627             fsBuilder->codeAppend("vec2 grad = vec2(dist_grad.x*Jdx.x + dist_gra
     d.y*Jdy.x,"); | 
|  628             fsBuilder->codeAppend("                 dist_grad.x*Jdx.y + dist_gra
     d.y*Jdy.y);"); |  628             fsBuilder->codeAppend("                 dist_grad.x*Jdx.y + dist_gra
     d.y*Jdy.y);"); | 
|  629  |  629  | 
|  630             // this gives us a smooth step across approximately one fragment |  630             // this gives us a smooth step across approximately one fragment | 
|  631             fsBuilder->codeAppend("afwidth = " SK_DistanceFieldAAFactor "*length
     (grad);"); |  631             fsBuilder->codeAppend("afwidth = " SK_DistanceFieldAAFactor "*length
     (grad);"); | 
|  632         } |  632         } | 
|  633  |  633  | 
|  634         fsBuilder->codeAppend( |  634         fsBuilder->codeAppend( | 
|  635                       "vec4 val = vec4(smoothstep(vec3(-afwidth), vec3(afwidth),
      distance), 1.0);"); |  635                       "vec4 val = vec4(smoothstep(vec3(-afwidth), vec3(afwidth),
      distance), 1.0);"); | 
 |  636         // set alpha to be max of rgb coverage | 
 |  637         fsBuilder->codeAppend("val.a = max(max(val.r, val.g), val.b);"); | 
|  636  |  638  | 
|  637         fsBuilder->codeAppendf("%s = vec4(val);", args.fOutputCoverage); |  639         fsBuilder->codeAppendf("%s = val;", args.fOutputCoverage); | 
|  638     } |  640     } | 
|  639  |  641  | 
|  640     void setData(const GrGLProgramDataManager& pdman, |  642     void setData(const GrGLProgramDataManager& pdman, | 
|  641                  const GrPrimitiveProcessor& processor) override { |  643                  const GrPrimitiveProcessor& processor) override { | 
|  642         SkASSERT(fDistanceAdjustUni.isValid()); |  644         SkASSERT(fDistanceAdjustUni.isValid()); | 
|  643  |  645  | 
|  644         const GrDistanceFieldLCDTextGeoProc& dflcd = processor.cast<GrDistanceFi
     eldLCDTextGeoProc>(); |  646         const GrDistanceFieldLCDTextGeoProc& dflcd = processor.cast<GrDistanceFi
     eldLCDTextGeoProc>(); | 
|  645         GrDistanceFieldLCDTextGeoProc::DistanceAdjust wa = dflcd.getDistanceAdju
     st(); |  647         GrDistanceFieldLCDTextGeoProc::DistanceAdjust wa = dflcd.getDistanceAdju
     st(); | 
|  646         if (wa != fDistanceAdjust) { |  648         if (wa != fDistanceAdjust) { | 
|  647             pdman.set3f(fDistanceAdjustUni, |  649             pdman.set3f(fDistanceAdjustUni, | 
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  748     uint32_t flags = kUseLCD_DistanceFieldEffectFlag; |  750     uint32_t flags = kUseLCD_DistanceFieldEffectFlag; | 
|  749     flags |= d->fRandom->nextBool() ? kUniformScale_DistanceFieldEffectMask : 0; |  751     flags |= d->fRandom->nextBool() ? kUniformScale_DistanceFieldEffectMask : 0; | 
|  750     flags |= d->fRandom->nextBool() ? kBGR_DistanceFieldEffectFlag : 0; |  752     flags |= d->fRandom->nextBool() ? kBGR_DistanceFieldEffectFlag : 0; | 
|  751     return GrDistanceFieldLCDTextGeoProc::Create(GrRandomColor(d->fRandom), |  753     return GrDistanceFieldLCDTextGeoProc::Create(GrRandomColor(d->fRandom), | 
|  752                                                  GrTest::TestMatrix(d->fRandom), |  754                                                  GrTest::TestMatrix(d->fRandom), | 
|  753                                                  d->fTextures[texIdx], params, |  755                                                  d->fTextures[texIdx], params, | 
|  754                                                  wa, |  756                                                  wa, | 
|  755                                                  flags, |  757                                                  flags, | 
|  756                                                  d->fRandom->nextBool()); |  758                                                  d->fRandom->nextBool()); | 
|  757 } |  759 } | 
| OLD | NEW |