MCPcopy Create free account
hub / github.com/Tencent/tgfx / emitAndInstallXferProc

Method emitAndInstallXferProc

src/gpu/ProgramBuilder.cpp:137–156  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

135}
136
137void 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
158SamplerHandle ProgramBuilder::emitSampler(GPUTexture* texture, const std::string& name) {
159 ++numFragmentSamplers;

Callers

nothing calls this directly

Calls 11

getXferProcessorMethod · 0.80
codeAppendfMethod · 0.80
getProcessorIndexMethod · 0.80
c_strMethod · 0.80
colorOutputNameMethod · 0.80
codeAppendMethod · 0.80
nameMethod · 0.45
dstTextureViewMethod · 0.45
getTextureMethod · 0.45
emptyMethod · 0.45
emitCodeMethod · 0.45

Tested by

no test coverage detected