diff options
Diffstat (limited to 'src/gpu')
26 files changed, 88 insertions, 104 deletions
diff --git a/src/gpu/GrDefaultGeoProcFactory.cpp b/src/gpu/GrDefaultGeoProcFactory.cpp index 25da4dcae9..99b72993a3 100644 --- a/src/gpu/GrDefaultGeoProcFactory.cpp +++ b/src/gpu/GrDefaultGeoProcFactory.cpp @@ -129,12 +129,11 @@ public: fragBuilder->codeAppendf("%s = vec4(1);", args.fOutputCoverage); } else { const char* fragCoverage; - fCoverageUniform = uniformHandler->addUniform( - GrGLSLUniformHandler::kFragment_Visibility, - kFloat_GrSLType, - kDefault_GrSLPrecision, - "Coverage", - &fragCoverage); + fCoverageUniform = uniformHandler->addUniform(kFragment_GrShaderFlag, + kFloat_GrSLType, + kDefault_GrSLPrecision, + "Coverage", + &fragCoverage); fragBuilder->codeAppendf("%s = vec4(%s);", args.fOutputCoverage, fragCoverage); } } diff --git a/src/gpu/GrFragmentProcessor.cpp b/src/gpu/GrFragmentProcessor.cpp index ca2298c663..571f78da11 100644 --- a/src/gpu/GrFragmentProcessor.cpp +++ b/src/gpu/GrFragmentProcessor.cpp @@ -226,10 +226,10 @@ const GrFragmentProcessor* GrFragmentProcessor::OverrideInput(const GrFragmentPr GLFP() : fHaveSetColor(false) {} void emitCode(EmitArgs& args) override { const char* colorName; - fColorUni = args.fUniformHandler->addUniform( - GrGLSLUniformHandler::kFragment_Visibility, - kVec4f_GrSLType, kDefault_GrSLPrecision, - "Color", &colorName); + fColorUni = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, + kVec4f_GrSLType, + kDefault_GrSLPrecision, + "Color", &colorName); this->emitChild(0, colorName, args); } diff --git a/src/gpu/GrPathProcessor.cpp b/src/gpu/GrPathProcessor.cpp index 405152cea8..cb33010f7e 100644 --- a/src/gpu/GrPathProcessor.cpp +++ b/src/gpu/GrPathProcessor.cpp @@ -35,12 +35,11 @@ public: // Setup uniform color if (pathProc.overrides().readsColor()) { const char* stagedLocalVarName; - fColorUniform = args.fUniformHandler->addUniform( - GrGLSLUniformHandler::kFragment_Visibility, - kVec4f_GrSLType, - kDefault_GrSLPrecision, - "Color", - &stagedLocalVarName); + fColorUniform = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, + kVec4f_GrSLType, + kDefault_GrSLPrecision, + "Color", + &stagedLocalVarName); fragBuilder->codeAppendf("%s = %s;", args.fOutputColor, stagedLocalVarName); } diff --git a/src/gpu/batches/GrPLSPathRenderer.cpp b/src/gpu/batches/GrPLSPathRenderer.cpp index 1f61192a66..b4f6ce4210 100644 --- a/src/gpu/batches/GrPLSPathRenderer.cpp +++ b/src/gpu/batches/GrPLSPathRenderer.cpp @@ -672,7 +672,7 @@ public: GrGLSLVaryingHandler* varyingHandler = args.fVaryingHandler; GrGLSLUniformHandler* uniformHandler = args.fUniformHandler; - fUseEvenOdd = uniformHandler->addUniform(GrGLUniformHandler::kFragment_Visibility, + fUseEvenOdd = uniformHandler->addUniform(kFragment_GrShaderFlag, kFloat_GrSLType, kLow_GrSLPrecision, "useEvenOdd"); const char* useEvenOdd = uniformHandler->getUniformCStr(fUseEvenOdd); diff --git a/src/gpu/effects/GrBezierEffect.cpp b/src/gpu/effects/GrBezierEffect.cpp index fdb737dab4..2f378c3aa3 100644 --- a/src/gpu/effects/GrBezierEffect.cpp +++ b/src/gpu/effects/GrBezierEffect.cpp @@ -215,12 +215,11 @@ void GrGLConicEffect::onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) { // TODO should we really be doing this? if (gp.coverageScale() != 0xff) { const char* coverageScale; - fCoverageScaleUniform = uniformHandler->addUniform( - GrGLSLUniformHandler::kFragment_Visibility, - kFloat_GrSLType, - kHigh_GrSLPrecision, - "Coverage", - &coverageScale); + fCoverageScaleUniform = uniformHandler->addUniform(kFragment_GrShaderFlag, + kFloat_GrSLType, + kHigh_GrSLPrecision, + "Coverage", + &coverageScale); fragBuilder->codeAppendf("%s = vec4(%s * %s);", args.fOutputCoverage, coverageScale, edgeAlpha.c_str()); } else { @@ -433,12 +432,11 @@ void GrGLQuadEffect::onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) { if (0xff != gp.coverageScale()) { const char* coverageScale; - fCoverageScaleUniform = uniformHandler->addUniform( - GrGLSLUniformHandler::kFragment_Visibility, - kFloat_GrSLType, - kDefault_GrSLPrecision, - "Coverage", - &coverageScale); + fCoverageScaleUniform = uniformHandler->addUniform(kFragment_GrShaderFlag, + kFloat_GrSLType, + kDefault_GrSLPrecision, + "Coverage", + &coverageScale); fragBuilder->codeAppendf("%s = vec4(%s * edgeAlpha);", args.fOutputCoverage, coverageScale); } else { fragBuilder->codeAppendf("%s = vec4(edgeAlpha);", args.fOutputCoverage); diff --git a/src/gpu/effects/GrBicubicEffect.cpp b/src/gpu/effects/GrBicubicEffect.cpp index cc38d626a9..567c38c7a8 100644 --- a/src/gpu/effects/GrBicubicEffect.cpp +++ b/src/gpu/effects/GrBicubicEffect.cpp @@ -48,10 +48,10 @@ void GrGLBicubicEffect::emitCode(EmitArgs& args) { const GrTextureDomain& domain = args.fFp.cast<GrBicubicEffect>().domain(); GrGLSLUniformHandler* uniformHandler = args.fUniformHandler; - fCoefficientsUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visibility, + fCoefficientsUni = uniformHandler->addUniform(kFragment_GrShaderFlag, kMat44f_GrSLType, kDefault_GrSLPrecision, "Coefficients"); - fImageIncrementUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visibility, + fImageIncrementUni = uniformHandler->addUniform(kFragment_GrShaderFlag, kVec2f_GrSLType, kDefault_GrSLPrecision, "ImageIncrement"); diff --git a/src/gpu/effects/GrConstColorProcessor.cpp b/src/gpu/effects/GrConstColorProcessor.cpp index 7544b7b64a..52108e5780 100644 --- a/src/gpu/effects/GrConstColorProcessor.cpp +++ b/src/gpu/effects/GrConstColorProcessor.cpp @@ -19,7 +19,7 @@ public: void emitCode(EmitArgs& args) override { GrGLSLFragmentBuilder* fragBuilder = args.fFragBuilder; const char* colorUni; - fColorUniform = args.fUniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visibility, + fColorUniform = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kVec4f_GrSLType, kMedium_GrSLPrecision, "constantColor", &colorUni); diff --git a/src/gpu/effects/GrConvexPolyEffect.cpp b/src/gpu/effects/GrConvexPolyEffect.cpp index fdc4a3977b..31ace6083e 100644 --- a/src/gpu/effects/GrConvexPolyEffect.cpp +++ b/src/gpu/effects/GrConvexPolyEffect.cpp @@ -104,7 +104,7 @@ void GLAARectEffect::emitCode(EmitArgs& args) { const char *rectName; // The rect uniform's xyzw refer to (left + 0.5, top + 0.5, right - 0.5, bottom - 0.5), // respectively. - fRectUniform = args.fUniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visibility, + fRectUniform = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kVec4f_GrSLType, kDefault_GrSLPrecision, "rect", @@ -188,7 +188,7 @@ void GrGLConvexPolyEffect::emitCode(EmitArgs& args) { const GrConvexPolyEffect& cpe = args.fFp.cast<GrConvexPolyEffect>(); const char *edgeArrayName; - fEdgeUniform = args.fUniformHandler->addUniformArray(GrGLSLUniformHandler::kFragment_Visibility, + fEdgeUniform = args.fUniformHandler->addUniformArray(kFragment_GrShaderFlag, kVec3f_GrSLType, kDefault_GrSLPrecision, "edges", diff --git a/src/gpu/effects/GrConvolutionEffect.cpp b/src/gpu/effects/GrConvolutionEffect.cpp index f3bd028c2c..0b2adac1c8 100644 --- a/src/gpu/effects/GrConvolutionEffect.cpp +++ b/src/gpu/effects/GrConvolutionEffect.cpp @@ -35,18 +35,18 @@ void GrGLConvolutionEffect::emitCode(EmitArgs& args) { const GrConvolutionEffect& ce = args.fFp.cast<GrConvolutionEffect>(); GrGLSLUniformHandler* uniformHandler = args.fUniformHandler; - fImageIncrementUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visibility, + fImageIncrementUni = uniformHandler->addUniform(kFragment_GrShaderFlag, kVec2f_GrSLType, kDefault_GrSLPrecision, "ImageIncrement"); if (ce.useBounds()) { - fBoundsUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visibility, + fBoundsUni = uniformHandler->addUniform(kFragment_GrShaderFlag, kVec2f_GrSLType, kDefault_GrSLPrecision, "Bounds"); } int width = Gr1DKernelEffect::WidthFromRadius(ce.radius()); - fKernelUni = uniformHandler->addUniformArray(GrGLSLUniformHandler::kFragment_Visibility, + fKernelUni = uniformHandler->addUniformArray(kFragment_GrShaderFlag, kFloat_GrSLType, kDefault_GrSLPrecision, "Kernel", width); diff --git a/src/gpu/effects/GrDistanceFieldGeoProc.cpp b/src/gpu/effects/GrDistanceFieldGeoProc.cpp index 7a63a62dec..395de32786 100644 --- a/src/gpu/effects/GrDistanceFieldGeoProc.cpp +++ b/src/gpu/effects/GrDistanceFieldGeoProc.cpp @@ -49,7 +49,7 @@ public: // adjust based on gamma const char* distanceAdjustUniName = nullptr; // width, height, 1/(3*width) - fDistanceAdjustUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visibility, + fDistanceAdjustUni = uniformHandler->addUniform(kFragment_GrShaderFlag, kFloat_GrSLType, kDefault_GrSLPrecision, "DistanceAdjust", &distanceAdjustUniName); #endif @@ -316,7 +316,7 @@ public: args.fTransformsOut); const char* textureSizeUniName = nullptr; - fTextureSizeUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visibility, + fTextureSizeUni = uniformHandler->addUniform(kFragment_GrShaderFlag, kVec2f_GrSLType, kDefault_GrSLPrecision, "TextureSize", &textureSizeUniName); @@ -594,7 +594,7 @@ public: // adjust width based on gamma const char* distanceAdjustUniName = nullptr; - fDistanceAdjustUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visibility, + fDistanceAdjustUni = uniformHandler->addUniform(kFragment_GrShaderFlag, kVec3f_GrSLType, kDefault_GrSLPrecision, "DistanceAdjust", &distanceAdjustUniName); fragBuilder->codeAppendf("distance -= %s;", distanceAdjustUniName); diff --git a/src/gpu/effects/GrMatrixConvolutionEffect.cpp b/src/gpu/effects/GrMatrixConvolutionEffect.cpp index a7f829e766..ac7889d0b2 100644 --- a/src/gpu/effects/GrMatrixConvolutionEffect.cpp +++ b/src/gpu/effects/GrMatrixConvolutionEffect.cpp @@ -40,19 +40,19 @@ void GrGLMatrixConvolutionEffect::emitCode(EmitArgs& args) { int kHeight = mce.kernelSize().height(); GrGLSLUniformHandler* uniformHandler = args.fUniformHandler; - fImageIncrementUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visibility, + fImageIncrementUni = uniformHandler->addUniform(kFragment_GrShaderFlag, kVec2f_GrSLType, kDefault_GrSLPrecision, "ImageIncrement"); - fKernelUni = uniformHandler->addUniformArray(GrGLSLUniformHandler::kFragment_Visibility, + fKernelUni = uniformHandler->addUniformArray(kFragment_GrShaderFlag, kFloat_GrSLType, kDefault_GrSLPrecision, "Kernel", kWidth * kHeight); - fKernelOffsetUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visibility, + fKernelOffsetUni = uniformHandler->addUniform(kFragment_GrShaderFlag, kVec2f_GrSLType, kDefault_GrSLPrecision, "KernelOffset"); - fGainUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visibility, + fGainUni = uniformHandler->addUniform(kFragment_GrShaderFlag, kFloat_GrSLType, kDefault_GrSLPrecision, "Gain"); - fBiasUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visibility, + fBiasUni = uniformHandler->addUniform(kFragment_GrShaderFlag, kFloat_GrSLType, kDefault_GrSLPrecision, "Bias"); const char* kernelOffset = uniformHandler->getUniformCStr(fKernelOffsetUni); diff --git a/src/gpu/effects/GrOvalEffect.cpp b/src/gpu/effects/GrOvalEffect.cpp index 150b5b3718..aea73e15fd 100644 --- a/src/gpu/effects/GrOvalEffect.cpp +++ b/src/gpu/effects/GrOvalEffect.cpp @@ -115,7 +115,7 @@ void GLCircleEffect::emitCode(EmitArgs& args) { const char *circleName; // The circle uniform is (center.x, center.y, radius + 0.5, 1 / (radius + 0.5)) for regular // fills and (..., radius - 0.5, 1 / (radius - 0.5)) for inverse fills. - fCircleUniform = args.fUniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visibility, + fCircleUniform = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kVec4f_GrSLType, kDefault_GrSLPrecision, "circle", &circleName); @@ -286,7 +286,7 @@ void GLEllipseEffect::emitCode(EmitArgs& args) { const char *ellipseName; // The ellipse uniform is (center.x, center.y, 1 / rx^2, 1 / ry^2) // The last two terms can underflow on mediump, so we use highp. - fEllipseUniform = args.fUniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visibility, + fEllipseUniform = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kVec4f_GrSLType, kHigh_GrSLPrecision, "ellipse", &ellipseName); @@ -297,7 +297,7 @@ void GLEllipseEffect::emitCode(EmitArgs& args) { const char* scaleName = nullptr; if (args.fGLSLCaps->floatPrecisionVaries()) { fScaleUniform = args.fUniformHandler->addUniform( - GrGLSLUniformHandler::kFragment_Visibility, kVec2f_GrSLType, kDefault_GrSLPrecision, + kFragment_GrShaderFlag, kVec2f_GrSLType, kDefault_GrSLPrecision, "scale", &scaleName); } diff --git a/src/gpu/effects/GrRRectEffect.cpp b/src/gpu/effects/GrRRectEffect.cpp index 84e49cb059..a91b8f131d 100644 --- a/src/gpu/effects/GrRRectEffect.cpp +++ b/src/gpu/effects/GrRRectEffect.cpp @@ -156,12 +156,12 @@ void GLCircularRRectEffect::emitCode(EmitArgs& args) { // edges correspond to components x, y, z, and w, respectively. When a side of the rrect has // only rectangular corners, that side's value corresponds to the rect edge's value outset by // half a pixel. - fInnerRectUniform = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visibility, + fInnerRectUniform = uniformHandler->addUniform(kFragment_GrShaderFlag, kVec4f_GrSLType, kDefault_GrSLPrecision, "innerRect", &rectName); // x is (r + .5) and y is 1/(r + .5) - fRadiusPlusHalfUniform = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visibility, + fRadiusPlusHalfUniform = uniformHandler->addUniform(kFragment_GrShaderFlag, kVec2f_GrSLType, kDefault_GrSLPrecision, "radiusPlusHalf", &radiusPlusHalfName); @@ -508,7 +508,7 @@ void GLEllipticalRRectEffect::emitCode(EmitArgs& args) { GrGLSLUniformHandler* uniformHandler = args.fUniformHandler; const char *rectName; // The inner rect is the rrect bounds inset by the x/y radii - fInnerRectUniform = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visibility, + fInnerRectUniform = uniformHandler->addUniform(kFragment_GrShaderFlag, kVec4f_GrSLType, kDefault_GrSLPrecision, "innerRect", &rectName); @@ -535,7 +535,7 @@ void GLEllipticalRRectEffect::emitCode(EmitArgs& args) { // radii uniform values are already in this normalized space. const char* scaleName = nullptr; if (args.fGLSLCaps->floatPrecisionVaries()) { - fScaleUniform = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visibility, + fScaleUniform = uniformHandler->addUniform(kFragment_GrShaderFlag, kVec2f_GrSLType, kDefault_GrSLPrecision, "scale", &scaleName); } @@ -544,11 +544,11 @@ void GLEllipticalRRectEffect::emitCode(EmitArgs& args) { switch (erre.getRRect().getType()) { case SkRRect::kSimple_Type: { const char *invRadiiXYSqdName; - fInvRadiiSqdUniform = uniformHandler->addUniform( - GrGLSLUniformHandler::kFragment_Visibility, - kVec2f_GrSLType, kDefault_GrSLPrecision, - "invRadiiXY", - &invRadiiXYSqdName); + fInvRadiiSqdUniform = uniformHandler->addUniform(kFragment_GrShaderFlag, + kVec2f_GrSLType, + kDefault_GrSLPrecision, + "invRadiiXY", + &invRadiiXYSqdName); fragBuilder->codeAppend("vec2 dxy = max(max(dxy0, dxy1), 0.0);"); if (scaleName) { fragBuilder->codeAppendf("dxy *= %s.y;", scaleName); @@ -559,11 +559,11 @@ void GLEllipticalRRectEffect::emitCode(EmitArgs& args) { } case SkRRect::kNinePatch_Type: { const char *invRadiiLTRBSqdName; - fInvRadiiSqdUniform = uniformHandler->addUniform( - GrGLSLUniformHandler::kFragment_Visibility, - kVec4f_GrSLType, kDefault_GrSLPrecision, - "invRadiiLTRB", - &invRadiiLTRBSqdName); + fInvRadiiSqdUniform = uniformHandler->addUniform(kFragment_GrShaderFlag, + kVec4f_GrSLType, + kDefault_GrSLPrecision, + "invRadiiLTRB", + &invRadiiLTRBSqdName); if (scaleName) { fragBuilder->codeAppendf("dxy0 *= %s.y;", scaleName); fragBuilder->codeAppendf("dxy1 *= %s.y;", scaleName); diff --git a/src/gpu/effects/GrTextureDomain.cpp b/src/gpu/effects/GrTextureDomain.cpp index 2bba9b6ea4..16bca7c6d7 100644 --- a/src/gpu/effects/GrTextureDomain.cpp +++ b/src/gpu/effects/GrTextureDomain.cpp @@ -60,7 +60,7 @@ void GrTextureDomain::GLDomain::sampleTexture(GrGLSLShaderBuilder* builder, if (textureDomain.fIndex >= 0) { uniName.appendS32(textureDomain.fIndex); } - fDomainUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visibility, + fDomainUni = uniformHandler->addUniform(kFragment_GrShaderFlag, kVec4f_GrSLType, kDefault_GrSLPrecision, uniName.c_str(), &name); fDomainName = name; diff --git a/src/gpu/effects/GrYUVEffect.cpp b/src/gpu/effects/GrYUVEffect.cpp index a227e05fde..9fd643bdb9 100644 --- a/src/gpu/effects/GrYUVEffect.cpp +++ b/src/gpu/effects/GrYUVEffect.cpp @@ -102,10 +102,9 @@ public: GrGLSLFragmentBuilder* fragBuilder = args.fFragBuilder; const char* colorSpaceMatrix = nullptr; - fMatrixUni = args.fUniformHandler->addUniform( - GrGLSLUniformHandler::kFragment_Visibility, - kMat44f_GrSLType, kDefault_GrSLPrecision, - "ColorSpaceMatrix", &colorSpaceMatrix); + fMatrixUni = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, + kMat44f_GrSLType, kDefault_GrSLPrecision, + "ColorSpaceMatrix", &colorSpaceMatrix); fragBuilder->codeAppendf("%s = vec4(", args.fOutputColor); fragBuilder->appendTextureLookup(args.fSamplers[0], args.fCoords[0].c_str(), args.fCoords[0].getType()); @@ -236,7 +235,7 @@ public: switch (oc) { case kYUV_OutputChannels: fRGBToYUVUni = args.fUniformHandler->addUniformArray( - GrGLSLUniformHandler::kFragment_Visibility, + kFragment_GrShaderFlag, kVec4f_GrSLType, kDefault_GrSLPrecision, "RGBToYUV", 3, &uniName); fragBuilder->codeAppendf("%s = vec4(dot(rgbColor.rgb, %s[0].rgb) + %s[0].a," @@ -248,7 +247,7 @@ public: break; case kUV_OutputChannels: fRGBToYUVUni = args.fUniformHandler->addUniformArray( - GrGLSLUniformHandler::kFragment_Visibility, + kFragment_GrShaderFlag, kVec4f_GrSLType, kDefault_GrSLPrecision, "RGBToUV", 2, &uniName); fragBuilder->codeAppendf("%s = vec4(dot(rgbColor.rgb, %s[0].rgb) + %s[0].a," @@ -261,7 +260,7 @@ public: case kU_OutputChannels: case kV_OutputChannels: fRGBToYUVUni = args.fUniformHandler->addUniform( - GrGLSLUniformHandler::kFragment_Visibility, + kFragment_GrShaderFlag, kVec4f_GrSLType, kDefault_GrSLPrecision, "RGBToYUorV", &uniName); fragBuilder->codeAppendf("%s = vec4(dot(rgbColor.rgb, %s.rgb) + %s.a);\n", diff --git a/src/gpu/gl/GrGLProgramDataManager.cpp b/src/gpu/gl/GrGLProgramDataManager.cpp index a03f1b2922..a75ecde635 100644 --- a/src/gpu/gl/GrGLProgramDataManager.cpp +++ b/src/gpu/gl/GrGLProgramDataManager.cpp @@ -32,12 +32,12 @@ GrGLProgramDataManager::GrGLProgramDataManager(GrGLGpu* gpu, GrGLuint programID, ); // TODO: Move the Xoom uniform array in both FS and VS bug workaround here. - if (GrGLSLUniformHandler::kVertex_Visibility & builderUniform.fVisibility) { + if (kVertex_GrShaderFlag & builderUniform.fVisibility) { uniform.fVSLocation = builderUniform.fLocation; } else { uniform.fVSLocation = kUnusedUniform; } - if (GrGLSLUniformHandler::kFragment_Visibility & builderUniform.fVisibility) { + if (kFragment_GrShaderFlag & builderUniform.fVisibility) { uniform.fFSLocation = builderUniform.fLocation; } else { uniform.fFSLocation = kUnusedUniform; diff --git a/src/gpu/gl/GrGLUniformHandler.cpp b/src/gpu/gl/GrGLUniformHandler.cpp index 5335c19da3..856afb4b9a 100644 --- a/src/gpu/gl/GrGLUniformHandler.cpp +++ b/src/gpu/gl/GrGLUniformHandler.cpp @@ -23,8 +23,8 @@ GrGLSLUniformHandler::UniformHandle GrGLUniformHandler::internalAddUniformArray( int arrayCount, const char** outName) { SkASSERT(name && strlen(name)); - SkDEBUGCODE(static const uint32_t kVisibilityMask = kVertex_Visibility | kFragment_Visibility); - SkASSERT(0 == (~kVisibilityMask & visibility)); + SkDEBUGCODE(static const uint32_t kVisMask = kVertex_GrShaderFlag | kFragment_GrShaderFlag); + SkASSERT(0 == (~kVisMask & visibility)); SkASSERT(0 != visibility); SkASSERT(kDefault_GrSLPrecision == precision || GrSLTypeIsNumeric(type)); @@ -52,7 +52,7 @@ GrGLSLUniformHandler::UniformHandle GrGLUniformHandler::internalAddUniformArray( return GrGLSLUniformHandler::UniformHandle(fUniforms.count() - 1); } -void GrGLUniformHandler::appendUniformDecls(ShaderVisibility visibility, SkString* out) const { +void GrGLUniformHandler::appendUniformDecls(GrShaderFlags visibility, SkString* out) const { for (int i = 0; i < fUniforms.count(); ++i) { if (fUniforms[i].fVisibility & visibility) { fUniforms[i].fVariable.appendDecl(fProgramBuilder->glslCaps(), out); diff --git a/src/gpu/gl/GrGLUniformHandler.h b/src/gpu/gl/GrGLUniformHandler.h index a782bcb1c3..7ce826cc5d 100644 --- a/src/gpu/gl/GrGLUniformHandler.h +++ b/src/gpu/gl/GrGLUniformHandler.h @@ -38,7 +38,7 @@ private: int arrayCount, const char** outName) override; - void appendUniformDecls(ShaderVisibility, SkString*) const override; + void appendUniformDecls(GrShaderFlags visibility, SkString*) const override; // Manually set uniform locations for all our uniforms. void bindUniformLocations(GrGLuint programID, const GrGLCaps& caps); diff --git a/src/gpu/gl/builders/GrGLProgramBuilder.cpp b/src/gpu/gl/builders/GrGLProgramBuilder.cpp index b1d59801b9..9f4291513c 100644 --- a/src/gpu/gl/builders/GrGLProgramBuilder.cpp +++ b/src/gpu/gl/builders/GrGLProgramBuilder.cpp @@ -88,10 +88,8 @@ void GrGLProgramBuilder::emitSamplers(const GrProcessor& processor, for (int t = 0; t < numTextures; ++t) { name.printf("Sampler%d", t); GrSLType samplerType = get_sampler_type(processor.textureAccess(t)); - localSamplerUniforms[t] = - fUniformHandler.addUniform(GrGLSLUniformHandler::kFragment_Visibility, - samplerType, kDefault_GrSLPrecision, - name.c_str()); + localSamplerUniforms[t] = fUniformHandler.addUniform(kFragment_GrShaderFlag, samplerType, + kDefault_GrSLPrecision, name.c_str()); outSamplers->emplace_back(localSamplerUniforms[t], processor.textureAccess(t)); if (kSamplerExternal_GrSLType == samplerType) { const char* externalFeatureString = this->glslCaps()->externalTextureExtensionString(); diff --git a/src/gpu/glsl/GrGLSLGeometryProcessor.cpp b/src/gpu/glsl/GrGLSLGeometryProcessor.cpp index 967c18d284..b8951be551 100644 --- a/src/gpu/glsl/GrGLSLGeometryProcessor.cpp +++ b/src/gpu/glsl/GrGLSLGeometryProcessor.cpp @@ -50,7 +50,7 @@ void GrGLSLGeometryProcessor::emitTransforms(GrGLSLVertexBuilder* vb, const char* uniName; fInstalledTransforms[i][t].fHandle = - uniformHandler->addUniform(GrGLSLUniformHandler::kVertex_Visibility, + uniformHandler->addUniform(kVertex_GrShaderFlag, kMat33f_GrSLType, precision, strUniName.c_str(), &uniName).toIndex(); @@ -139,7 +139,7 @@ void GrGLSLGeometryProcessor::setupPosition(GrGLSLVertexBuilder* vertBuilder, vertBuilder->codeAppendf("vec2 %s = %s;", gpArgs->fPositionVar.c_str(), posName); } else { const char* viewMatrixName; - *viewMatrixUniform = uniformHandler->addUniform(GrGLSLUniformHandler::kVertex_Visibility, + *viewMatrixUniform = uniformHandler->addUniform(kVertex_GrShaderFlag, kMat33f_GrSLType, kHigh_GrSLPrecision, "uViewM", &viewMatrixName); diff --git a/src/gpu/glsl/GrGLSLPrimitiveProcessor.cpp b/src/gpu/glsl/GrGLSLPrimitiveProcessor.cpp index 23bb249af7..c2c4d4ec13 100644 --- a/src/gpu/glsl/GrGLSLPrimitiveProcessor.cpp +++ b/src/gpu/glsl/GrGLSLPrimitiveProcessor.cpp @@ -40,7 +40,7 @@ void GrGLSLPrimitiveProcessor::setupUniformColor(GrGLSLFragmentBuilder* fragBuil UniformHandle* colorUniform) { SkASSERT(colorUniform); const char* stagedLocalVarName; - *colorUniform = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visibility, + *colorUniform = uniformHandler->addUniform(kFragment_GrShaderFlag, kVec4f_GrSLType, kDefault_GrSLPrecision, "Color", diff --git a/src/gpu/glsl/GrGLSLProgramBuilder.cpp b/src/gpu/glsl/GrGLSLProgramBuilder.cpp index 45570c2d40..9201da946c 100644 --- a/src/gpu/glsl/GrGLSLProgramBuilder.cpp +++ b/src/gpu/glsl/GrGLSLProgramBuilder.cpp @@ -255,8 +255,7 @@ void GrGLSLProgramBuilder::nameExpression(GrGLSLExpr4* output, const char* baseN *output = outName; } -void GrGLSLProgramBuilder::appendUniformDecls(ShaderVisibility visibility, - SkString* out) const { +void GrGLSLProgramBuilder::appendUniformDecls(GrShaderFlags visibility, SkString* out) const { this->uniformHandler()->appendUniformDecls(visibility, out); } @@ -265,7 +264,7 @@ void GrGLSLProgramBuilder::addRTAdjustmentUniform(GrSLPrecision precision, const char** outName) { SkASSERT(!fUniformHandles.fRTAdjustmentUni.isValid()); fUniformHandles.fRTAdjustmentUni = - this->uniformHandler()->addUniform(GrGLSLUniformHandler::kVertex_Visibility, + this->uniformHandler()->addUniform(kVertex_GrShaderFlag, kVec4f_GrSLType, precision, name, @@ -276,7 +275,7 @@ void GrGLSLProgramBuilder::addRTHeightUniform(const char* name, const char** out SkASSERT(!fUniformHandles.fRTHeightUni.isValid()); GrGLSLUniformHandler* uniformHandler = this->uniformHandler(); fUniformHandles.fRTHeightUni = - uniformHandler->internalAddUniformArray(GrGLSLUniformHandler::kFragment_Visibility, + uniformHandler->internalAddUniformArray(kFragment_GrShaderFlag, kFloat_GrSLType, kDefault_GrSLPrecision, name, false, 0, outName); } @@ -289,7 +288,7 @@ void GrGLSLProgramBuilder::cleanupFragmentProcessors() { void GrGLSLProgramBuilder::finalizeShaders() { this->varyingHandler()->finalize(); - fVS.finalize(GrGLSLUniformHandler::kVertex_Visibility); - fFS.finalize(GrGLSLUniformHandler::kFragment_Visibility); + fVS.finalize(kVertex_GrShaderFlag); + fFS.finalize(kFragment_GrShaderFlag); } diff --git a/src/gpu/glsl/GrGLSLProgramBuilder.h b/src/gpu/glsl/GrGLSLProgramBuilder.h index fae8df0e97..164423cce9 100644 --- a/src/gpu/glsl/GrGLSLProgramBuilder.h +++ b/src/gpu/glsl/GrGLSLProgramBuilder.h @@ -28,7 +28,6 @@ typedef SkSTArray<8, GrGLSLFragmentProcessor*, true> GrGLSLFragProcs; class GrGLSLProgramBuilder { public: typedef GrGpu::DrawArgs DrawArgs; - typedef GrGLSLUniformHandler::ShaderVisibility ShaderVisibility; typedef GrGLSLUniformHandler::UniformHandle UniformHandle; virtual ~GrGLSLProgramBuilder() {} @@ -41,7 +40,7 @@ public: const GrProgramDesc& desc() const { return *fArgs.fDesc; } const GrProgramDesc::KeyHeader& header() const { return fArgs.fDesc->header(); } - void appendUniformDecls(ShaderVisibility, SkString*) const; + void appendUniformDecls(GrShaderFlags visibility, SkString*) const; // Handles for program uniforms (other than per-effect uniforms) struct BuiltinUniformHandles { diff --git a/src/gpu/glsl/GrGLSLShaderBuilder.cpp b/src/gpu/glsl/GrGLSLShaderBuilder.cpp index a2cf66cb40..c94a85534f 100644 --- a/src/gpu/glsl/GrGLSLShaderBuilder.cpp +++ b/src/gpu/glsl/GrGLSLShaderBuilder.cpp @@ -158,8 +158,7 @@ void GrGLSLShaderBuilder::finalize(uint32_t visibility) { this->versionDecl() = fProgramBuilder->glslCaps()->versionDeclString(); this->compileAndAppendLayoutQualifiers(); SkASSERT(visibility); - fProgramBuilder->appendUniformDecls((GrGLSLUniformHandler::ShaderVisibility) visibility, - &this->uniforms()); + fProgramBuilder->appendUniformDecls((GrShaderFlags) visibility, &this->uniforms()); this->appendDecls(fInputs, &this->inputs()); this->appendDecls(fOutputs, &this->outputs()); this->onFinalize(); diff --git a/src/gpu/glsl/GrGLSLUniformHandler.h b/src/gpu/glsl/GrGLSLUniformHandler.h index e72716d04e..14835fbd26 100644 --- a/src/gpu/glsl/GrGLSLUniformHandler.h +++ b/src/gpu/glsl/GrGLSLUniformHandler.h @@ -15,19 +15,13 @@ class GrGLSLProgramBuilder; class GrGLSLUniformHandler { public: - enum ShaderVisibility { - kVertex_Visibility = 1 << kVertex_GrShaderType, - kGeometry_Visibility = 1 << kGeometry_GrShaderType, - kFragment_Visibility = 1 << kFragment_GrShaderType, - }; - virtual ~GrGLSLUniformHandler() {} typedef GrGLSLProgramDataManager::UniformHandle UniformHandle; /** Add a uniform variable to the current program, that has visibility in one or more shaders. - visibility is a bitfield of ShaderVisibility values indicating from which shaders the - uniform should be accessible. At least one bit must be set. Geometry shader uniforms are not + visibility is a bitfield of GrShaderFlag values indicating from which shaders the uniform + should be accessible. At least one bit must be set. Geometry shader uniforms are not supported at this time. The actual uniform name will be mangled. If outName is not nullptr then it will refer to the final uniform name after return. Use the addUniformArray variant to add an array of uniforms. */ @@ -70,7 +64,7 @@ private: int arrayCount, const char** outName) = 0; - virtual void appendUniformDecls(ShaderVisibility, SkString*) const = 0; + virtual void appendUniformDecls(GrShaderFlags visibility, SkString*) const = 0; friend class GrGLSLProgramBuilder; }; diff --git a/src/gpu/glsl/GrGLSLXferProcessor.cpp b/src/gpu/glsl/GrGLSLXferProcessor.cpp index 9d2538f081..c4b62be525 100644 --- a/src/gpu/glsl/GrGLSLXferProcessor.cpp +++ b/src/gpu/glsl/GrGLSLXferProcessor.cpp @@ -36,12 +36,12 @@ void GrGLSLXferProcessor::emitCode(const EmitArgs& args) { const char* dstTopLeftName; const char* dstCoordScaleName; - fDstTopLeftUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visibility, + fDstTopLeftUni = uniformHandler->addUniform(kFragment_GrShaderFlag, kVec2f_GrSLType, kDefault_GrSLPrecision, "DstTextureUpperLeft", &dstTopLeftName); - fDstScaleUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visibility, + fDstScaleUni = uniformHandler->addUniform(kFragment_GrShaderFlag, kVec2f_GrSLType, kDefault_GrSLPrecision, "DstTextureCoordScale", |