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 |