-------------------------------------------------------------------------
| 11674 | } |
| 11675 | //------------------------------------------------------------------------- |
| 11676 | ScriptTranslator *BuiltinScriptTranslatorManager::getTranslator(const AbstractNodePtr &node) |
| 11677 | { |
| 11678 | ScriptTranslator *translator = 0; |
| 11679 | |
| 11680 | if(node->type == ANT_OBJECT) |
| 11681 | { |
| 11682 | ObjectAbstractNode *obj = static_cast<ObjectAbstractNode*>(node.get()); |
| 11683 | ObjectAbstractNode *parent = obj->parent ? static_cast<ObjectAbstractNode*>(obj->parent) : 0; |
| 11684 | if(obj->id == ID_HLMS) |
| 11685 | translator = &mHlmsTranslator; |
| 11686 | else if(obj->id == ID_MATERIAL) |
| 11687 | translator = &mMaterialTranslator; |
| 11688 | else if(obj->id == ID_TECHNIQUE && parent && parent->id == ID_MATERIAL) |
| 11689 | translator = &mTechniqueTranslator; |
| 11690 | else if(obj->id == ID_PASS && parent && parent->id == ID_TECHNIQUE) |
| 11691 | translator = &mPassTranslator; |
| 11692 | else if(obj->id == ID_TEXTURE_UNIT && parent && parent->id == ID_PASS) |
| 11693 | translator = &mTextureUnitTranslator; |
| 11694 | else if(obj->id == ID_TEXTURE_SOURCE && parent && parent->id == ID_TEXTURE_UNIT) |
| 11695 | translator = &mTextureSourceTranslator; |
| 11696 | else if(obj->id == ID_FRAGMENT_PROGRAM || |
| 11697 | obj->id == ID_VERTEX_PROGRAM || |
| 11698 | obj->id == ID_GEOMETRY_PROGRAM || |
| 11699 | obj->id == ID_TESSELLATION_HULL_PROGRAM || |
| 11700 | obj->id == ID_TESSELLATION_DOMAIN_PROGRAM || |
| 11701 | obj->id == ID_COMPUTE_PROGRAM) |
| 11702 | translator = &mGpuProgramTranslator; |
| 11703 | else if(obj->id == ID_SHARED_PARAMS) |
| 11704 | translator = &mSharedParamsTranslator; |
| 11705 | else if(obj->id == ID_PARTICLE_SYSTEM) |
| 11706 | translator = &mParticleSystemTranslator; |
| 11707 | else if(obj->id == ID_EMITTER) |
| 11708 | translator = &mParticleEmitterTranslator; |
| 11709 | else if(obj->id == ID_AFFECTOR) |
| 11710 | translator = &mParticleAffectorTranslator; |
| 11711 | else if(obj->id == ID_WORKSPACE) |
| 11712 | translator = &mCompositorWorkspaceTranslator; |
| 11713 | else if(obj->id == ID_COMPOSITOR_NODE) |
| 11714 | translator = &mCompositorNodeTranslator; |
| 11715 | else if(obj->id == ID_SHADOW_NODE) |
| 11716 | translator = &mCompositorShadowNodeTranslator; |
| 11717 | else if(obj->id == ID_TARGET && parent && |
| 11718 | (parent->id == ID_COMPOSITOR_NODE || parent->id == ID_SHADOW_NODE || |
| 11719 | parent->id == ID_SHADOW_MAP_REPEAT)) |
| 11720 | translator = &mCompositorTargetTranslator; |
| 11721 | else if( obj->id == ID_RTV && (parent->id == ID_COMPOSITOR_NODE || |
| 11722 | parent->id == ID_SHADOW_NODE) ) |
| 11723 | translator = &mCompositorRenderTargetViewTranslator; |
| 11724 | else if(obj->id == ID_SHADOW_MAP_TARGET_TYPE && parent && parent->id == ID_SHADOW_NODE) |
| 11725 | translator = &mCompositorShadowMapTargetTypeTranslator; |
| 11726 | else if(obj->id == ID_SHADOW_MAP_REPEAT && parent && parent->id == ID_SHADOW_MAP_TARGET_TYPE) |
| 11727 | translator = &mCompositorShadowMapRepeatTranslator; |
| 11728 | else if(obj->id == ID_SHADOW_MAP && parent && |
| 11729 | (parent->id == ID_SHADOW_MAP_TARGET_TYPE || parent->id == ID_SHADOW_MAP_REPEAT)) |
| 11730 | translator = &mCompositorShadowMapTargetTranslator; |
| 11731 | else if(obj->id == ID_LOAD && parent && parent->id == ID_PASS) |
| 11732 | translator = &mCompositorLoadActionTranslator; |
| 11733 | else if(obj->id == ID_STORE && parent && parent->id == ID_PASS) |