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

Function loadMaterialControlsFile

Samples/OceanDemo/src/MaterialControls.cpp:67–119  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

65}
66
67void loadMaterialControlsFile(MaterialControlsContainer& controlsContainer, const Ogre::String& filename)
68{
69 // Load material controls from config file
70 Ogre::ConfigFile cf;
71
72 try
73 {
74
75 cf.loadFromResourceSystem(filename, Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, "\t;=", true);
76
77 // Go through all sections & controls in the file
78 Ogre::String secName, typeName, materialName, dataString;
79
80 Ogre::ConfigFile::SettingsBySection_::const_iterator seci;
81 for(seci = cf.getSettingsBySection().begin(); seci != cf.getSettingsBySection().end(); ++seci) {
82 secName = seci->first;
83 const Ogre::ConfigFile::SettingsMultiMap& settings = seci->second;
84 if (!secName.empty())
85 {
86 materialName = cf.getSetting("material", secName);
87
88 Ogre::MaterialPtr curMat = Ogre::MaterialManager::getSingleton().getByName(materialName);
89 curMat->load();
90 Ogre::Technique * curTec = curMat->getBestTechnique();
91 if (!curTec || !curTec->isSupported())
92 {
93 continue;
94 }
95
96 MaterialControls newMaaterialControls(secName, materialName);
97 controlsContainer.push_back(newMaaterialControls);
98
99 size_t idx = controlsContainer.size() - 1;
100
101 Ogre::ConfigFile::SettingsMultiMap::const_iterator i;
102
103 for (i = settings.begin(); i != settings.end(); ++i)
104 {
105 typeName = i->first;
106 dataString = i->second;
107 if (typeName == "control")
108 controlsContainer[idx].addControl(dataString);
109 }
110 }
111 }
112
113 Ogre::LogManager::getSingleton().logMessage( "Material Controls setup" );
114 }
115 catch (Ogre::Exception& e)
116 {
117 // Guess the file didn't exist
118 }
119}
120
121
122void loadAllMaterialControlFiles(MaterialControlsContainer& controlsContainer)

Callers 1

Calls 13

getBestTechniqueMethod · 0.80
addControlMethod · 0.80
beginMethod · 0.45
endMethod · 0.45
emptyMethod · 0.45
getSettingMethod · 0.45
getByNameMethod · 0.45
loadMethod · 0.45
isSupportedMethod · 0.45
push_backMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected