diff options
author | egdaniel <egdaniel@google.com> | 2015-11-20 14:01:22 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-11-20 14:01:22 -0800 |
commit | 0eafe79f42e3c675f3c504aed4a41abf511df2b7 (patch) | |
tree | 564912e8c811c3eb1bff5fd18131e9015b4a9fd6 /src/gpu/GrDefaultGeoProcFactory.cpp | |
parent | a7006d45217d128a94fa53cb4b827cca79bc7049 (diff) |
Create GrGLSLVaryingHandler class for program building
BUG=skia:
Review URL: https://codereview.chromium.org/1462123003
Diffstat (limited to 'src/gpu/GrDefaultGeoProcFactory.cpp')
-rw-r--r-- | src/gpu/GrDefaultGeoProcFactory.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/gpu/GrDefaultGeoProcFactory.cpp b/src/gpu/GrDefaultGeoProcFactory.cpp index 7b9213315d..85339ea9b5 100644 --- a/src/gpu/GrDefaultGeoProcFactory.cpp +++ b/src/gpu/GrDefaultGeoProcFactory.cpp @@ -12,6 +12,7 @@ #include "glsl/GrGLSLGeometryProcessor.h" #include "glsl/GrGLSLProgramBuilder.h" #include "glsl/GrGLSLVertexShaderBuilder.h" +#include "glsl/GrGLSLVarying.h" #include "glsl/GrGLSLUtil.h" /* @@ -66,14 +67,15 @@ public: GrGLSLGPBuilder* pb = args.fPB; GrGLSLVertexBuilder* vertBuilder = args.fVertBuilder; GrGLSLFragmentBuilder* fragBuilder = args.fFragBuilder; + GrGLSLVaryingHandler* varyingHandler = args.fVaryingHandler; // emit attributes - vertBuilder->emitAttributes(gp); + varyingHandler->emitAttributes(gp); // Setup pass through color if (!gp.colorIgnored()) { if (gp.hasVertexColor()) { - pb->addPassThroughAttribute(gp.inColor(), args.fOutputColor); + varyingHandler->addPassThroughAttribute(gp.inColor(), args.fOutputColor); } else { this->setupUniformColor(pb, fragBuilder, args.fOutputColor, &fColorUniform); } @@ -91,6 +93,7 @@ public: // emit transforms with explicit local coords this->emitTransforms(pb, vertBuilder, + varyingHandler, gpArgs->fPositionVar, gp.inLocalCoords()->fName, gp.localMatrix(), @@ -100,6 +103,7 @@ public: // transforms have already been applied to vertex attributes on the cpu this->emitTransforms(pb, vertBuilder, + varyingHandler, gp.inLocalCoords()->fName, args.fTransformsIn, args.fTransformsOut); @@ -107,6 +111,7 @@ public: // emit transforms with position this->emitTransforms(pb, vertBuilder, + varyingHandler, gpArgs->fPositionVar, gp.inPosition()->fName, gp.localMatrix(), @@ -118,7 +123,7 @@ public: if (!gp.coverageWillBeIgnored()) { if (gp.hasVertexCoverage()) { fragBuilder->codeAppendf("float alpha = 1.0;"); - args.fPB->addPassThroughAttribute(gp.inCoverage(), "alpha"); + varyingHandler->addPassThroughAttribute(gp.inCoverage(), "alpha"); fragBuilder->codeAppendf("%s = vec4(alpha);", args.fOutputCoverage); } else if (gp.coverage() == 0xff) { fragBuilder->codeAppendf("%s = vec4(1);", args.fOutputCoverage); |