-------------------------------------------------------------------------
| 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 | *************************************************************************/ |
nothing calls this directly
no test coverage detected