MCPcopy Create free account
hub / github.com/OGRECave/ogre / translateShadowReceiverProgramRef

Method translateShadowReceiverProgramRef

OgreMain/src/OgreScriptTranslator.cpp:2282–2307  ·  view source on GitHub ↗

-------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

2280 }
2281 //-------------------------------------------------------------------------
2282 void PassTranslator::translateShadowReceiverProgramRef(GpuProgramType type,ScriptCompiler *compiler, ObjectAbstractNode *node)
2283 {
2284 auto program = getProgram(compiler, node);
2285 if(!program) return;
2286 auto pass = any_cast<Pass*>(node->parent->context);
2287
2288 compiler->addError(ScriptCompiler::CE_DEPRECATEDSYMBOL, node->file, node->line,
2289 node->cls + ". Use shadow_receiver_material instead");
2290
2291 auto receiver_mat = pass->getParent()->getShadowReceiverMaterial();
2292 if(!receiver_mat)
2293 {
2294 auto src_mat = pass->getParent()->getParent();
2295 // only first pass of this will be used
2296 receiver_mat = src_mat->clone(src_mat->getName()+"/ReceiverFallback");
2297 pass->getParent()->setShadowReceiverMaterial(receiver_mat);
2298 }
2299 auto receiver_pass = receiver_mat->getTechnique(0)->getPass(0);
2300
2301 receiver_pass->setGpuProgram(type, program);
2302 if(program->isSupported())
2303 {
2304 GpuProgramParametersSharedPtr params = receiver_pass->getGpuProgramParameters(type);
2305 GpuProgramTranslator::translateProgramParameters(compiler, params, node);
2306 }
2307 }
2308 /**************************************************************************
2309 * TextureUnitTranslator
2310 *************************************************************************/

Callers

nothing calls this directly

Calls 11

getProgramFunction · 0.85
addErrorMethod · 0.80
getPassMethod · 0.80
getParentMethod · 0.45
cloneMethod · 0.45
getNameMethod · 0.45
getTechniqueMethod · 0.45
setGpuProgramMethod · 0.45
isSupportedMethod · 0.45

Tested by

no test coverage detected