| 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 "GrBezierEffect.h" | 8 #include "GrBezierEffect.h" |
| 9 | 9 |
| 10 #include "gl/GrGLProcessor.h" | 10 #include "gl/GrGLProcessor.h" |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 83 this->setupColorPassThrough(args.fPB, local.fInputColorType, args.fOutputCol
or, NULL, | 83 this->setupColorPassThrough(args.fPB, local.fInputColorType, args.fOutputCol
or, NULL, |
| 84 &fColorUniform); | 84 &fColorUniform); |
| 85 | 85 |
| 86 // Setup position | 86 // Setup position |
| 87 this->setupPosition(pb, gpArgs, gp.inPosition()->fName, gp.viewMatrix()); | 87 this->setupPosition(pb, gpArgs, gp.inPosition()->fName, gp.viewMatrix()); |
| 88 | 88 |
| 89 // emit transforms with position | 89 // emit transforms with position |
| 90 this->emitTransforms(pb, gpArgs->fPositionVar, gp.inPosition()->fName, gp.lo
calMatrix(), | 90 this->emitTransforms(pb, gpArgs->fPositionVar, gp.inPosition()->fName, gp.lo
calMatrix(), |
| 91 args.fTransformsIn, args.fTransformsOut); | 91 args.fTransformsIn, args.fTransformsOut); |
| 92 | 92 |
| 93 GrGLGPFragmentBuilder* fsBuilder = args.fPB->getFragmentShaderBuilder(); | 93 GrGLFragmentBuilder* fsBuilder = args.fPB->getFragmentShaderBuilder(); |
| 94 fsBuilder->codeAppend("float edgeAlpha;"); | 94 fsBuilder->codeAppend("float edgeAlpha;"); |
| 95 | 95 |
| 96 switch (fEdgeType) { | 96 switch (fEdgeType) { |
| 97 case kHairlineAA_GrProcessorEdgeType: { | 97 case kHairlineAA_GrProcessorEdgeType: { |
| 98 SkAssertResult(fsBuilder->enableFeature( | 98 SkAssertResult(fsBuilder->enableFeature( |
| 99 GrGLFragmentShaderBuilder::kStandardDerivatives_GLSLFeature)
); | 99 GrGLFragmentShaderBuilder::kStandardDerivatives_GLSLFeature)
); |
| 100 fsBuilder->codeAppendf("vec3 dklmdx = dFdx(%s.xyz);", v.fsIn()); | 100 fsBuilder->codeAppendf("vec3 dklmdx = dFdx(%s.xyz);", v.fsIn()); |
| 101 fsBuilder->codeAppendf("vec3 dklmdy = dFdy(%s.xyz);", v.fsIn()); | 101 fsBuilder->codeAppendf("vec3 dklmdy = dFdy(%s.xyz);", v.fsIn()); |
| 102 fsBuilder->codeAppendf("float dfdx =" | 102 fsBuilder->codeAppendf("float dfdx =" |
| 103 "2.0 * %s.x * dklmdx.x - %s.y * dklmdx.z - %s
.z * dklmdx.y;", | 103 "2.0 * %s.x * dklmdx.x - %s.y * dklmdx.z - %s
.z * dklmdx.y;", |
| (...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 318 this->setupColorPassThrough(args.fPB, local.fInputColorType, args.fOutputCol
or, NULL, | 318 this->setupColorPassThrough(args.fPB, local.fInputColorType, args.fOutputCol
or, NULL, |
| 319 &fColorUniform); | 319 &fColorUniform); |
| 320 | 320 |
| 321 // Setup position | 321 // Setup position |
| 322 this->setupPosition(pb, gpArgs, gp.inPosition()->fName, gp.viewMatrix()); | 322 this->setupPosition(pb, gpArgs, gp.inPosition()->fName, gp.viewMatrix()); |
| 323 | 323 |
| 324 // emit transforms with position | 324 // emit transforms with position |
| 325 this->emitTransforms(pb, gpArgs->fPositionVar, gp.inPosition()->fName, gp.lo
calMatrix(), | 325 this->emitTransforms(pb, gpArgs->fPositionVar, gp.inPosition()->fName, gp.lo
calMatrix(), |
| 326 args.fTransformsIn, args.fTransformsOut); | 326 args.fTransformsIn, args.fTransformsOut); |
| 327 | 327 |
| 328 GrGLGPFragmentBuilder* fsBuilder = args.fPB->getFragmentShaderBuilder(); | 328 GrGLFragmentBuilder* fsBuilder = args.fPB->getFragmentShaderBuilder(); |
| 329 fsBuilder->codeAppendf("float edgeAlpha;"); | 329 fsBuilder->codeAppendf("float edgeAlpha;"); |
| 330 | 330 |
| 331 switch (fEdgeType) { | 331 switch (fEdgeType) { |
| 332 case kHairlineAA_GrProcessorEdgeType: { | 332 case kHairlineAA_GrProcessorEdgeType: { |
| 333 SkAssertResult(fsBuilder->enableFeature( | 333 SkAssertResult(fsBuilder->enableFeature( |
| 334 GrGLFragmentShaderBuilder::kStandardDerivatives_GLSLFeature)
); | 334 GrGLFragmentShaderBuilder::kStandardDerivatives_GLSLFeature)
); |
| 335 fsBuilder->codeAppendf("vec2 duvdx = dFdx(%s.xy);", v.fsIn()); | 335 fsBuilder->codeAppendf("vec2 duvdx = dFdx(%s.xy);", v.fsIn()); |
| 336 fsBuilder->codeAppendf("vec2 duvdy = dFdy(%s.xy);", v.fsIn()); | 336 fsBuilder->codeAppendf("vec2 duvdy = dFdy(%s.xy);", v.fsIn()); |
| 337 fsBuilder->codeAppendf("vec2 gF = vec2(2.0 * %s.x * duvdx.x - duvdx.
y," | 337 fsBuilder->codeAppendf("vec2 gF = vec2(2.0 * %s.x * duvdx.x - duvdx.
y," |
| 338 " 2.0 * %s.x * duvdy.x - duvdy.
y);", | 338 " 2.0 * %s.x * duvdy.x - duvdy.
y);", |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 532 this->setupColorPassThrough(args.fPB, local.fInputColorType, args.fOutputCol
or, NULL, | 532 this->setupColorPassThrough(args.fPB, local.fInputColorType, args.fOutputCol
or, NULL, |
| 533 &fColorUniform); | 533 &fColorUniform); |
| 534 | 534 |
| 535 // Setup position | 535 // Setup position |
| 536 this->setupPosition(args.fPB, gpArgs, gp.inPosition()->fName, gp.viewMatrix(
)); | 536 this->setupPosition(args.fPB, gpArgs, gp.inPosition()->fName, gp.viewMatrix(
)); |
| 537 | 537 |
| 538 // emit transforms with position | 538 // emit transforms with position |
| 539 this->emitTransforms(args.fPB, gpArgs->fPositionVar, gp.inPosition()->fName,
gp.localMatrix(), | 539 this->emitTransforms(args.fPB, gpArgs->fPositionVar, gp.inPosition()->fName,
gp.localMatrix(), |
| 540 args.fTransformsIn, args.fTransformsOut); | 540 args.fTransformsIn, args.fTransformsOut); |
| 541 | 541 |
| 542 GrGLGPFragmentBuilder* fsBuilder = args.fPB->getFragmentShaderBuilder(); | 542 GrGLFragmentBuilder* fsBuilder = args.fPB->getFragmentShaderBuilder(); |
| 543 | 543 |
| 544 GrGLShaderVar edgeAlpha("edgeAlpha", kFloat_GrSLType, 0, kHigh_GrSLPrecision
); | 544 GrGLShaderVar edgeAlpha("edgeAlpha", kFloat_GrSLType, 0, kHigh_GrSLPrecision
); |
| 545 GrGLShaderVar dklmdx("dklmdx", kVec3f_GrSLType, 0, kHigh_GrSLPrecision); | 545 GrGLShaderVar dklmdx("dklmdx", kVec3f_GrSLType, 0, kHigh_GrSLPrecision); |
| 546 GrGLShaderVar dklmdy("dklmdy", kVec3f_GrSLType, 0, kHigh_GrSLPrecision); | 546 GrGLShaderVar dklmdy("dklmdy", kVec3f_GrSLType, 0, kHigh_GrSLPrecision); |
| 547 GrGLShaderVar dfdx("dfdx", kFloat_GrSLType, 0, kHigh_GrSLPrecision); | 547 GrGLShaderVar dfdx("dfdx", kFloat_GrSLType, 0, kHigh_GrSLPrecision); |
| 548 GrGLShaderVar dfdy("dfdy", kFloat_GrSLType, 0, kHigh_GrSLPrecision); | 548 GrGLShaderVar dfdy("dfdy", kFloat_GrSLType, 0, kHigh_GrSLPrecision); |
| 549 GrGLShaderVar gF("gF", kVec2f_GrSLType, 0, kHigh_GrSLPrecision); | 549 GrGLShaderVar gF("gF", kVec2f_GrSLType, 0, kHigh_GrSLPrecision); |
| 550 GrGLShaderVar gFM("gFM", kFloat_GrSLType, 0, kHigh_GrSLPrecision); | 550 GrGLShaderVar gFM("gFM", kFloat_GrSLType, 0, kHigh_GrSLPrecision); |
| 551 GrGLShaderVar func("func", kFloat_GrSLType, 0, kHigh_GrSLPrecision); | 551 GrGLShaderVar func("func", kFloat_GrSLType, 0, kHigh_GrSLPrecision); |
| 552 | 552 |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 696 GrGeometryProcessor* gp; | 696 GrGeometryProcessor* gp; |
| 697 do { | 697 do { |
| 698 GrPrimitiveEdgeType edgeType = static_cast<GrPrimitiveEdgeType>( | 698 GrPrimitiveEdgeType edgeType = static_cast<GrPrimitiveEdgeType>( |
| 699 random->nextULessThan(kGrPro
cessorEdgeTypeCnt)); | 699 random->nextULessThan(kGrPro
cessorEdgeTypeCnt)); |
| 700 gp = GrCubicEffect::Create(GrRandomColor(random), | 700 gp = GrCubicEffect::Create(GrRandomColor(random), |
| 701 GrTest::TestMatrix(random), edgeType, caps); | 701 GrTest::TestMatrix(random), edgeType, caps); |
| 702 } while (NULL == gp); | 702 } while (NULL == gp); |
| 703 return gp; | 703 return gp; |
| 704 } | 704 } |
| 705 | 705 |
| OLD | NEW |