| 25 | } |
| 26 | |
| 27 | void GLSLAlphaThresholdFragmentProcessor::emitCode(EmitArgs& args) const { |
| 28 | auto uniformHandler = args.uniformHandler; |
| 29 | auto thresholdUniformName = |
| 30 | uniformHandler->addUniform("Threshold", UniformFormat::Float, ShaderStage::Fragment); |
| 31 | |
| 32 | auto fragBuilder = args.fragBuilder; |
| 33 | fragBuilder->codeAppendf("%s.rgb = %s.rgb / %s.a;", args.outputColor.c_str(), |
| 34 | args.inputColor.c_str(), args.inputColor.c_str()); |
| 35 | fragBuilder->codeAppendf("%s.a = step(%s, %s.a);", args.outputColor.c_str(), |
| 36 | thresholdUniformName.c_str(), args.inputColor.c_str()); |
| 37 | fragBuilder->codeAppendf("%s = clamp(%s, 0.0, 1.0);", args.outputColor.c_str(), |
| 38 | args.outputColor.c_str()); |
| 39 | } |
| 40 | |
| 41 | void GLSLAlphaThresholdFragmentProcessor::onSetData(UniformBuffer* /*vertexUniformBuffer*/, |
| 42 | UniformBuffer* fragmentUniformBuffer) const { |
nothing calls this directly
no test coverage detected