diff options
author | 2014-12-10 07:43:49 -0800 | |
---|---|---|
committer | 2014-12-10 07:43:50 -0800 | |
commit | 4dffc940c430eec66d4707490eace19c9b3f7904 (patch) | |
tree | cce5e8c525a5acec67c4398c95c165223320d679 /src/gpu/gl/builders/GrGLFragmentShaderBuilder.cpp | |
parent | 28828d00b20d90b6caf91e4b0b31e80acadf2d57 (diff) |
Create xfer processor backend.
This includes:
-Having an actual XP stage at the end of the gl pipeline.
-All Blending work is handled by XP until actually setting GL blend states
-GLPrograms test to test XP
BUG=skia:
Review URL: https://codereview.chromium.org/764643004
Diffstat (limited to 'src/gpu/gl/builders/GrGLFragmentShaderBuilder.cpp')
-rw-r--r-- | src/gpu/gl/builders/GrGLFragmentShaderBuilder.cpp | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/src/gpu/gl/builders/GrGLFragmentShaderBuilder.cpp b/src/gpu/gl/builders/GrGLFragmentShaderBuilder.cpp index 49be12d8ba..b6daca7978 100644 --- a/src/gpu/gl/builders/GrGLFragmentShaderBuilder.cpp +++ b/src/gpu/gl/builders/GrGLFragmentShaderBuilder.cpp @@ -256,55 +256,6 @@ const char* GrGLFragmentShaderBuilder::getSecondaryColorOutputName() const { return dual_source_output_name(); } -void GrGLFragmentShaderBuilder::enableSecondaryOutput(const GrGLSLExpr4& inputColor, - const GrGLSLExpr4& inputCoverage) { - this->enableSecondaryOutput(); - const char* secondaryOutputName = this->getSecondaryColorOutputName(); - GrGLSLExpr4 coeff(1); - switch (fProgramBuilder->header().fSecondaryOutputType) { - case GrProgramDesc::kCoverage_SecondaryOutputType: - break; - case GrProgramDesc::kCoverageISA_SecondaryOutputType: - // Get (1-A) into coeff - coeff = GrGLSLExpr4::VectorCast(GrGLSLExpr1(1) - inputColor.a()); - break; - case GrProgramDesc::kCoverageISC_SecondaryOutputType: - // Get (1-RGBA) into coeff - coeff = GrGLSLExpr4(1) - inputColor; - break; - default: - SkFAIL("Unexpected Secondary Output"); - } - // Get coeff * coverage into modulate and then write that to the dual source output. - this->codeAppendf("\t%s = %s;\n", secondaryOutputName, (coeff * inputCoverage).c_str()); -} - -void GrGLFragmentShaderBuilder::combineColorAndCoverage(const GrGLSLExpr4& inputColor, - const GrGLSLExpr4& inputCoverage) { - GrGLSLExpr4 fragColor = inputColor * inputCoverage; - switch (fProgramBuilder->header().fPrimaryOutputType) { - case GrProgramDesc::kModulate_PrimaryOutputType: - break; - case GrProgramDesc::kCombineWithDst_PrimaryOutputType: - { - // Tack on "+(1-coverage)dst onto the frag color. - GrGLSLExpr4 dstCoeff = GrGLSLExpr4(1) - inputCoverage; - GrGLSLExpr4 dstContribution = dstCoeff * GrGLSLExpr4(this->dstColor()); - fragColor = fragColor + dstContribution; - } - break; - default: - SkFAIL("Unknown Primary Output"); - } - - // On any post 1.10 GLSL supporting GPU, we declare custom output - if (k110_GrGLSLGeneration != fProgramBuilder->gpu()->glslGeneration()) { - this->enableCustomOutput(); - } - - this->codeAppendf("\t%s = %s;\n", this->getPrimaryColorOutputName(), fragColor.c_str()); -} - bool GrGLFragmentShaderBuilder::compileAndAttachShaders(GrGLuint programId, SkTDArray<GrGLuint>* shaderIds) const { GrGpuGL* gpu = fProgramBuilder->gpu(); |