| 135 | } |
| 136 | |
| 137 | void ProgramBuilder::emitAndInstallXferProc(const std::string& colorIn, |
| 138 | const std::string& coverageIn) { |
| 139 | auto xferProcessor = programInfo->getXferProcessor(); |
| 140 | ProcessorGuard processorGuard(this, xferProcessor); |
| 141 | fragmentShaderBuilder()->codeAppendf("{ // Processor%d : %s\n", |
| 142 | programInfo->getProcessorIndex(xferProcessor), |
| 143 | xferProcessor->name().c_str()); |
| 144 | |
| 145 | SamplerHandle dstTextureSamplerHandle; |
| 146 | if (auto dstTextureView = xferProcessor->dstTextureView()) { |
| 147 | dstTextureSamplerHandle = emitSampler(dstTextureView->getTexture(), "DstTextureSampler"); |
| 148 | } |
| 149 | |
| 150 | std::string inputColor = !colorIn.empty() ? colorIn : "vec4(1.0)"; |
| 151 | std::string inputCoverage = !coverageIn.empty() ? coverageIn : "vec4(1.0)"; |
| 152 | XferProcessor::EmitArgs args(fragmentShaderBuilder(), uniformHandler(), inputColor, inputCoverage, |
| 153 | fragmentShaderBuilder()->colorOutputName(), dstTextureSamplerHandle); |
| 154 | xferProcessor->emitCode(args); |
| 155 | fragmentShaderBuilder()->codeAppend("}"); |
| 156 | } |
| 157 | |
| 158 | SamplerHandle ProgramBuilder::emitSampler(GPUTexture* texture, const std::string& name) { |
| 159 | ++numFragmentSamplers; |
nothing calls this directly
no test coverage detected