| Index: src/gpu/glsl/GrGLSLGeometryProcessor.cpp
|
| diff --git a/src/gpu/glsl/GrGLSLGeometryProcessor.cpp b/src/gpu/glsl/GrGLSLGeometryProcessor.cpp
|
| index 8a1e81a1f8ee400bc1ff15df4eb9d915d93d258a..a6fd04e154c3b1f8e6828dc182afe25c7b699924 100644
|
| --- a/src/gpu/glsl/GrGLSLGeometryProcessor.cpp
|
| +++ b/src/gpu/glsl/GrGLSLGeometryProcessor.cpp
|
| @@ -7,9 +7,10 @@
|
|
|
| #include "GrGLSLGeometryProcessor.h"
|
|
|
| +#include "GrCoordTransform.h"
|
| #include "glsl/GrGLSLFragmentShaderBuilder.h"
|
| #include "glsl/GrGLSLProcessorTypes.h"
|
| -#include "glsl/GrGLSLProgramBuilder.h"
|
| +#include "glsl/GrGLSLUniformHandler.h"
|
| #include "glsl/GrGLSLVarying.h"
|
| #include "glsl/GrGLSLVertexShaderBuilder.h"
|
|
|
| @@ -17,12 +18,12 @@ void GrGLSLGeometryProcessor::emitCode(EmitArgs& args) {
|
| GrGLSLVertexBuilder* vBuilder = args.fVertBuilder;
|
| GrGPArgs gpArgs;
|
| this->onEmitCode(args, &gpArgs);
|
| - vBuilder->transformToNormalizedDeviceSpace(gpArgs.fPositionVar);
|
| + vBuilder->transformToNormalizedDeviceSpace(args.fUniformHandler, gpArgs.fPositionVar);
|
| }
|
|
|
| -void GrGLSLGeometryProcessor::emitTransforms(GrGLSLGPBuilder* pb,
|
| - GrGLSLVertexBuilder* vb,
|
| +void GrGLSLGeometryProcessor::emitTransforms(GrGLSLVertexBuilder* vb,
|
| GrGLSLVaryingHandler* varyingHandler,
|
| + GrGLSLUniformHandler* uniformHandler,
|
| const GrShaderVar& posVar,
|
| const char* localCoords,
|
| const SkMatrix& localMatrix,
|
| @@ -49,10 +50,10 @@ void GrGLSLGeometryProcessor::emitTransforms(GrGLSLGPBuilder* pb,
|
|
|
| const char* uniName;
|
| fInstalledTransforms[i][t].fHandle =
|
| - pb->addUniform(GrGLSLProgramBuilder::kVertex_Visibility,
|
| - kMat33f_GrSLType, precision,
|
| - strUniName.c_str(),
|
| - &uniName).toIndex();
|
| + uniformHandler->addUniform(GrGLSLUniformHandler::kVertex_Visibility,
|
| + kMat33f_GrSLType, precision,
|
| + strUniName.c_str(),
|
| + &uniName).toIndex();
|
|
|
| SkString strVaryingName("MatrixCoord");
|
| strVaryingName.appendf("_%i_%i", i, t);
|
| @@ -94,8 +95,7 @@ void GrGLSLGeometryProcessor::emitTransforms(GrGLSLGPBuilder* pb,
|
| }
|
| }
|
|
|
| -void GrGLSLGeometryProcessor::emitTransforms(GrGLSLGPBuilder* pb,
|
| - GrGLSLVertexBuilder* vb,
|
| +void GrGLSLGeometryProcessor::emitTransforms(GrGLSLVertexBuilder* vb,
|
| GrGLSLVaryingHandler* varyingHandler,
|
| const char* localCoords,
|
| const TransformsIn& tin,
|
| @@ -124,16 +124,15 @@ void GrGLSLGeometryProcessor::emitTransforms(GrGLSLGPBuilder* pb,
|
| }
|
| }
|
|
|
| -void GrGLSLGeometryProcessor::setupPosition(GrGLSLGPBuilder* pb,
|
| - GrGLSLVertexBuilder* vertBuilder,
|
| +void GrGLSLGeometryProcessor::setupPosition(GrGLSLVertexBuilder* vertBuilder,
|
| GrGPArgs* gpArgs,
|
| const char* posName) {
|
| gpArgs->fPositionVar.set(kVec2f_GrSLType, "pos2");
|
| vertBuilder->codeAppendf("vec2 %s = %s;", gpArgs->fPositionVar.c_str(), posName);
|
| }
|
|
|
| -void GrGLSLGeometryProcessor::setupPosition(GrGLSLGPBuilder* pb,
|
| - GrGLSLVertexBuilder* vertBuilder,
|
| +void GrGLSLGeometryProcessor::setupPosition(GrGLSLVertexBuilder* vertBuilder,
|
| + GrGLSLUniformHandler* uniformHandler,
|
| GrGPArgs* gpArgs,
|
| const char* posName,
|
| const SkMatrix& mat,
|
| @@ -143,10 +142,10 @@ void GrGLSLGeometryProcessor::setupPosition(GrGLSLGPBuilder* pb,
|
| vertBuilder->codeAppendf("vec2 %s = %s;", gpArgs->fPositionVar.c_str(), posName);
|
| } else {
|
| const char* viewMatrixName;
|
| - *viewMatrixUniform = pb->addUniform(GrGLSLProgramBuilder::kVertex_Visibility,
|
| - kMat33f_GrSLType, kHigh_GrSLPrecision,
|
| - "uViewM",
|
| - &viewMatrixName);
|
| + *viewMatrixUniform = uniformHandler->addUniform(GrGLSLUniformHandler::kVertex_Visibility,
|
| + kMat33f_GrSLType, kHigh_GrSLPrecision,
|
| + "uViewM",
|
| + &viewMatrixName);
|
| if (!mat.hasPerspective()) {
|
| gpArgs->fPositionVar.set(kVec2f_GrSLType, "pos2");
|
| vertBuilder->codeAppendf("vec2 %s = vec2(%s * vec3(%s, 1));",
|
|
|