6 #include <OGRE/OgreSceneManager.h>
7 #include <OGRE/OgreRoot.h>
8 #include <OGRE/OgreHlms.h>
9 #include <OGRE/OgreHlmsManager.h>
10 #include <Strings/components/utils/list/list.h>
21 std::vector<std::string> ignored_datablocks = std::vector<std::string>();
29 void DrawHlmsGroup(std::string name, Ogre::Hlms* hlms)
33 Ogre::Hlms::HlmsDatablockMap datablocks = hlms->getDatablockMap();
34 Ogre::Hlms::HlmsDatablockMap::iterator it;
42 for (it = datablocks.begin(); it != datablocks.end(); it++)
44 Ogre::Hlms::DatablockEntry entry = it->second;
45 ignored_datablocks.push_back(entry.name);
49 std::string total_datablocks =
"total datablocks: " + std::to_string(hlms->getDatablockMap().size());
52 for (it = datablocks.begin(); it != datablocks.end(); it++)
54 Ogre::Hlms::DatablockEntry entry = it->second;
56 if (BlamStrings::Utils::List::Contains(ignored_datablocks, entry.name))
63 std::string name =
"name: " + entry.name;
64 std::string visible_to_manager =
"visible to manager: " + std::to_string(entry.visibleToManager);
69 if (hlms->getType() == Ogre::HlmsTypes::HLMS_UNLIT)
71 Ogre::HlmsUnlitDatablock* datablock = (Ogre::HlmsUnlitDatablock*)entry.datablock;
72 std::string datablock_name =
"datablock name: " + std::string(datablock->getName().mDebugString);
75 BlamVector4
color = BlamVector4(datablock->getColour().r, datablock->getColour().g,
76 datablock->getColour().b, datablock->getColour().a);
83 else if (hlms->getType() == Ogre::HlmsTypes::HLMS_PBS)
85 Ogre::HlmsPbsDatablock* datablock = (Ogre::HlmsPbsDatablock*)entry.datablock;
113 if (ignored_datablocks.size() > 0)
115 std::string total_datablocks =
"ignored datablocks: " + std::to_string(ignored_datablocks.size());
120 ignored_datablocks.clear();