-----------------------------------------------------------------------
| 682 | |
| 683 | //----------------------------------------------------------------------- |
| 684 | SubRenderState* FFPTexturingFactory::createInstance(const ScriptProperty& prop, Pass* pass, |
| 685 | SGScriptTranslator* translator) |
| 686 | { |
| 687 | if (prop.name == "texturing_stage") |
| 688 | { |
| 689 | if(prop.values.size() == 1) |
| 690 | { |
| 691 | auto inst = createOrRetrieveInstance(translator); |
| 692 | |
| 693 | if (prop.values[0] == "ffp") |
| 694 | return inst; |
| 695 | |
| 696 | if (prop.values[0] == "late_add_blend") |
| 697 | inst->setParameter(prop.values[0], "true"); |
| 698 | |
| 699 | if (prop.values[0] == "uv_mixing") |
| 700 | inst->setParameter(prop.values[0], Vector4(4, 0.5, 0, 0)); |
| 701 | |
| 702 | return inst; |
| 703 | } |
| 704 | |
| 705 | if(prop.values.size() >= 2 && prop.values[0] == "uv_mixing") |
| 706 | { |
| 707 | auto inst = createOrRetrieveInstance(translator); |
| 708 | |
| 709 | Vector4 uvMixingParams(0, 0.5, 0, 0); |
| 710 | for(size_t i=1; i < prop.values.size() && i <=4; ++i) |
| 711 | { |
| 712 | if(!StringConverter::parse(prop.values[i], uvMixingParams[i-1])) |
| 713 | { |
| 714 | translator->emitError(prop.values[0]); |
| 715 | return inst; |
| 716 | } |
| 717 | } |
| 718 | |
| 719 | inst->setParameter(prop.values[0], uvMixingParams); |
| 720 | return inst; |
| 721 | } |
| 722 | } |
| 723 | |
| 724 | return NULL; |
| 725 | } |
| 726 | |
| 727 | //----------------------------------------------------------------------- |
| 728 | void FFPTexturingFactory::writeInstance(MaterialSerializer* ser, SubRenderState* subRenderState, |
nothing calls this directly
no test coverage detected