diff options
Diffstat (limited to 'src/gpu/effects/GrExtractAlphaFragmentProcessor.cpp')
-rw-r--r-- | src/gpu/effects/GrExtractAlphaFragmentProcessor.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/gpu/effects/GrExtractAlphaFragmentProcessor.cpp b/src/gpu/effects/GrExtractAlphaFragmentProcessor.cpp index c5ee9b8571..8f6af65ca7 100644 --- a/src/gpu/effects/GrExtractAlphaFragmentProcessor.cpp +++ b/src/gpu/effects/GrExtractAlphaFragmentProcessor.cpp @@ -14,9 +14,13 @@ public: GLExtractAlphaFragmentProcessor() {} void emitCode(EmitArgs& args) override { - GrGLFragmentBuilder* fsBuilder = args.fBuilder->getFragmentShaderBuilder(); - fsBuilder->codeAppendf("vec4 alpha4 = %s.aaaa;", args.fInputColor); - this->emitChild(0, "alpha4", args.fOutputColor, args); + if (args.fInputColor) { + GrGLFragmentBuilder* fsBuilder = args.fBuilder->getFragmentShaderBuilder(); + fsBuilder->codeAppendf("vec4 alpha4 = %s.aaaa;", args.fInputColor); + this->emitChild(0, "alpha4", args.fOutputColor, args); + } else { + this->emitChild(0, nullptr, args.fOutputColor, args); + } } private: |