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;
73 #
if OGRE_DEBUG_MODE >= OGRE_DEBUG_MEDIUM || OGRE_IDSTRING_ALWAYS_READABLE
74 std::string datablock_name =
"datablock name: " + datablock->getName().getFriendlyText()
75 +
" [" + std::string(datablock->getName().mDebugString) +
"]";
77 std::string datablock_name =
"datablock name: " + datablock->getName().getFriendlyText();
82 BlamVector4
color = BlamVector4(datablock->getColour().r, datablock->getColour().g,
83 datablock->getColour().b, datablock->getColour().a);
90 else if (hlms->getType() == Ogre::HlmsTypes::HLMS_PBS)
92 Ogre::HlmsPbsDatablock* datablock = (Ogre::HlmsPbsDatablock*)
entry.datablock;
120 if (ignored_datablocks.size() > 0)
122 std::string total_datablocks =
"ignored datablocks: " + std::to_string(ignored_datablocks.size());
127 ignored_datablocks.clear();