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

Method createInstance

Components/RTShaderSystem/src/OgreShaderFFPTexturing.cpp:684–725  ·  view source on GitHub ↗

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

Source from the content-addressed store, hash-verified

682
683//-----------------------------------------------------------------------
684SubRenderState* 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//-----------------------------------------------------------------------
728void FFPTexturingFactory::writeInstance(MaterialSerializer* ser, SubRenderState* subRenderState,

Callers

nothing calls this directly

Calls 3

emitErrorMethod · 0.80
sizeMethod · 0.45
setParameterMethod · 0.45

Tested by

no test coverage detected