| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2014 Google Inc. | 2 * Copyright 2014 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 "GrDashingEffect.h" | 8 #include "GrDashingEffect.h" |
| 9 | 9 |
| 10 #include "../GrAARectRenderer.h" | 10 #include "../GrAARectRenderer.h" |
| (...skipping 521 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 532 fPrevCenterX = SK_ScalarMin; | 532 fPrevCenterX = SK_ScalarMin; |
| 533 fPrevIntervalLength = SK_ScalarMax; | 533 fPrevIntervalLength = SK_ScalarMax; |
| 534 } | 534 } |
| 535 | 535 |
| 536 void GLDashingCircleEffect::emitCode(const EmitArgs& args) { | 536 void GLDashingCircleEffect::emitCode(const EmitArgs& args) { |
| 537 const DashingCircleEffect& dce = args.fGP.cast<DashingCircleEffect>(); | 537 const DashingCircleEffect& dce = args.fGP.cast<DashingCircleEffect>(); |
| 538 const char *paramName; | 538 const char *paramName; |
| 539 // The param uniforms, xyz, refer to circle radius - 0.5, cicles center x co
ord, and | 539 // The param uniforms, xyz, refer to circle radius - 0.5, cicles center x co
ord, and |
| 540 // the total interval length of the dash. | 540 // the total interval length of the dash. |
| 541 fParamUniform = args.fPB->addUniform(GrGLProgramBuilder::kFragment_Visibilit
y, | 541 fParamUniform = args.fPB->addUniform(GrGLProgramBuilder::kFragment_Visibilit
y, |
| 542 kVec3f_GrSLType, | 542 kVec3f_GrSLType, kDefault_GrSLPrecision
, |
| 543 "params", | 543 "params", ¶mName); |
| 544 ¶mName); | |
| 545 | 544 |
| 546 GrGLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder(); | 545 GrGLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder(); |
| 547 | 546 |
| 548 GrGLVertToFrag v(kVec2f_GrSLType); | 547 GrGLVertToFrag v(kVec2f_GrSLType); |
| 549 args.fPB->addVarying("Coord", &v); | 548 args.fPB->addVarying("Coord", &v); |
| 550 vsBuilder->codeAppendf("%s = %s;", v.vsOut(), dce.inCoord()->fName); | 549 vsBuilder->codeAppendf("%s = %s;", v.vsOut(), dce.inCoord()->fName); |
| 551 | 550 |
| 552 // setup coord outputs | 551 // setup coord outputs |
| 553 vsBuilder->codeAppendf("%s = %s;", vsBuilder->positionCoords(), dce.inPositi
on()->fName); | 552 vsBuilder->codeAppendf("%s = %s;", vsBuilder->positionCoords(), dce.inPositi
on()->fName); |
| 554 vsBuilder->codeAppendf("%s = %s;", vsBuilder->localCoords(), dce.inPosition(
)->fName); | 553 vsBuilder->codeAppendf("%s = %s;", vsBuilder->localCoords(), dce.inPosition(
)->fName); |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 755 fPrevRect.fLeft = SK_ScalarNaN; | 754 fPrevRect.fLeft = SK_ScalarNaN; |
| 756 fPrevIntervalLength = SK_ScalarMax; | 755 fPrevIntervalLength = SK_ScalarMax; |
| 757 } | 756 } |
| 758 | 757 |
| 759 void GLDashingLineEffect::emitCode(const EmitArgs& args) { | 758 void GLDashingLineEffect::emitCode(const EmitArgs& args) { |
| 760 const DashingLineEffect& de = args.fGP.cast<DashingLineEffect>(); | 759 const DashingLineEffect& de = args.fGP.cast<DashingLineEffect>(); |
| 761 const char *rectName; | 760 const char *rectName; |
| 762 // The rect uniform's xyzw refer to (left + 0.5, top + 0.5, right - 0.5, bot
tom - 0.5), | 761 // The rect uniform's xyzw refer to (left + 0.5, top + 0.5, right - 0.5, bot
tom - 0.5), |
| 763 // respectively. | 762 // respectively. |
| 764 fRectUniform = args.fPB->addUniform(GrGLProgramBuilder::kFragment_Visibility
, | 763 fRectUniform = args.fPB->addUniform(GrGLProgramBuilder::kFragment_Visibility
, |
| 765 kVec4f_GrSLType, | 764 kVec4f_GrSLType, kDefault_GrSLPrecision, |
| 766 "rect", | 765 "rect", |
| 767 &rectName); | 766 &rectName); |
| 768 const char *intervalName; | 767 const char *intervalName; |
| 769 // The interval uniform's refers to the total length of the interval (on + o
ff) | 768 // The interval uniform's refers to the total length of the interval (on + o
ff) |
| 770 fIntervalUniform = args.fPB->addUniform(GrGLProgramBuilder::kFragment_Visibi
lity, | 769 fIntervalUniform = args.fPB->addUniform(GrGLProgramBuilder::kFragment_Visibi
lity, |
| 771 kFloat_GrSLType, | 770 kFloat_GrSLType, kDefault_GrSLPrecis
ion, |
| 772 "interval", | 771 "interval", |
| 773 &intervalName); | 772 &intervalName); |
| 774 | 773 |
| 775 | 774 |
| 776 GrGLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder(); | 775 GrGLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder(); |
| 777 | 776 |
| 778 GrGLVertToFrag v(kVec2f_GrSLType); | 777 GrGLVertToFrag v(kVec2f_GrSLType); |
| 779 args.fPB->addVarying("Coord", &v); | 778 args.fPB->addVarying("Coord", &v); |
| 780 vsBuilder->codeAppendf("%s = %s;", v.vsOut(), de.inCoord()->fName); | 779 vsBuilder->codeAppendf("%s = %s;", v.vsOut(), de.inCoord()->fName); |
| 781 | 780 |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 913 switch (cap) { | 912 switch (cap) { |
| 914 case GrDashingEffect::kRound_DashCap: | 913 case GrDashingEffect::kRound_DashCap: |
| 915 return DashingCircleEffect::Create(edgeType, info, SkScalarHalf(stro
keWidth)); | 914 return DashingCircleEffect::Create(edgeType, info, SkScalarHalf(stro
keWidth)); |
| 916 case GrDashingEffect::kNonRound_DashCap: | 915 case GrDashingEffect::kNonRound_DashCap: |
| 917 return DashingLineEffect::Create(edgeType, info, strokeWidth); | 916 return DashingLineEffect::Create(edgeType, info, strokeWidth); |
| 918 default: | 917 default: |
| 919 SkFAIL("Unexpected dashed cap."); | 918 SkFAIL("Unexpected dashed cap."); |
| 920 } | 919 } |
| 921 return NULL; | 920 return NULL; |
| 922 } | 921 } |
| OLD | NEW |