本文整理汇总了C++中ogre::resourcemanager::ResourceMapIterator类的典型用法代码示例。如果您正苦于以下问题:C++ ResourceMapIterator类的具体用法?C++ ResourceMapIterator怎么用?C++ ResourceMapIterator使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ResourceMapIterator类的18个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: test_loadPlayWithFade
void test_loadPlayWithFade()
{
xtime xt;
Ogre::ResourceManager::ResourceMapIterator it =
SoundManager::getSingleton().getResourceIterator();
while (it.hasMoreElements())
{
SoundResourcePtr soundres = it.getNext();
SoundStream *sound = new SoundStream(soundres);
SoundChannel *channel = new SoundChannel(sound, soundres->getName());
if (channel)
{
channel->play();
xtime_get(&xt, boost::TIME_UTC);
xt.sec += 10;
thread::sleep(xt);
channel->stop();
xtime_get(&xt, boost::TIME_UTC);
xt.sec += 5;
thread::sleep(xt);
}
}
CPPUNIT_ASSERT(true);
}
开发者ID:BackupTheBerlios,项目名称:dsa-hl-svn,代码行数:28,代码来源:SoundStreamTest.cpp
示例2: mSceneManager
World::World(Ogre::SceneManager *sceneManager, InputHandler *input) : mSceneManager(sceneManager), mInputHandler(input)
{
/* Necessary booleans for computing physics */
start = true;
hitTopWall = false;
hitBottomWall = false;
hitByAI = false;
hitByUser = false;
userScored = false;
AIScored = false;
ballSpeed = 35;
// Global illumination for now. Adding individual light sources will make you scene look more realistic
mSceneManager->setAmbientLight(Ogre::ColourValue(1,1,1));
createModels();
// Yeah, this should be done automatically for all fonts referenced in an overlay file.
// But there is a bug in the OGRE code so we need to do it manually.
Ogre::ResourceManager::ResourceMapIterator iter = Ogre::FontManager::getSingleton().getResourceIterator();
while (iter.hasMoreElements())
{
iter.getNext()->load();
}
// Display scoreboard
Scoreboard();
}
开发者ID:jpbullalayao,项目名称:projects,代码行数:29,代码来源:World.cpp
示例3: loadResources
//-------------------------------------------------------------------------------------
void BaseApplication::loadResources(void)
{
Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups();
Ogre::ResourceManager::ResourceMapIterator iter = Ogre::FontManager::getSingleton().getResourceIterator();
while ( iter.hasMoreElements() ) { iter.getNext()->load(); }
}
开发者ID:andyhebear,项目名称:ogre-toon-shading,代码行数:8,代码来源:BaseApplication.cpp
示例4: wxBusyInfo
void
MaterialSelector::Reload(void)
{
if (!Ogre::ResourceGroupManager::getSingletonPtr())
return;
wxBusyInfo* busyInfo = new wxBusyInfo(_("正在读取材质数据 ..."), this);
mMaterialList->Freeze();
mMaterialList->ClearAll();
Ogre::ResourceManager::ResourceMapIterator resourceMapIterator = Ogre::MaterialManager::getSingleton().getResourceIterator();
while ( resourceMapIterator.hasMoreElements() )
{
long index = mMaterialList->GetItemCount();
mMaterialList->InsertItem( index, AS_STRING( resourceMapIterator.peekNextValue()->getName()));
resourceMapIterator.moveNext();
}
mMaterialList->Thaw();
delete busyInfo;
}
开发者ID:gitrider,项目名称:wxsj2,代码行数:27,代码来源:MaterialSelector.cpp
示例5: loadResources
void ResourcesManager::loadResources()
{
Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups();
// Load the system fonts
Ogre::ResourceManager::ResourceMapIterator iter = Ogre::FontManager::getSingleton().getResourceIterator();
while (iter.hasMoreElements()) { iter.getNext()->load(); }
}
开发者ID:EmbiaWu,项目名称:the-pintos-within,代码行数:8,代码来源:ResourcesManager.cpp
示例6: setupResources
//-------------------------------------------------------------------------------------
void SpaceLogin::setupResources(void)
{
// ogre²»ÏÔʾÎÄ×Öbug
// http://www.ogre3d.org/forums/viewtopic.php?f=4&t=59197
Ogre::ResourceManager::ResourceMapIterator iter = Ogre::FontManager::getSingleton().getResourceIterator();
while (iter.hasMoreElements()) {
iter.getNext()->load();
}
}
开发者ID:JangoOs,项目名称:kbengine_ogre_demo,代码行数:10,代码来源:space_login.cpp
示例7: reloadShaders
bool reloadShaders(std_srvs::Empty::Request&, std_srvs::Empty::Response&)
{
ROS_INFO("Reloading materials.");
{
Ogre::ResourceManager::ResourceMapIterator it = Ogre::MaterialManager::getSingleton().getResourceIterator();
while (it.hasMoreElements())
{
Ogre::ResourcePtr resource = it.getNext();
resource->reload();
}
}
ROS_INFO("Reloading high-level gpu shaders.");
{
Ogre::ResourceManager::ResourceMapIterator it = Ogre::HighLevelGpuProgramManager::getSingleton().getResourceIterator();
while (it.hasMoreElements())
{
Ogre::ResourcePtr resource = it.getNext();
resource->reload();
}
}
ROS_INFO("Reloading gpu shaders.");
{
Ogre::ResourceManager::ResourceMapIterator it = Ogre::GpuProgramManager::getSingleton().getResourceIterator();
while (it.hasMoreElements())
{
Ogre::ResourcePtr resource = it.getNext();
resource->reload();
}
}
return true;
}
开发者ID:JoSungUk,项目名称:My_1st_ROScode,代码行数:31,代码来源:visualizer_app.cpp
示例8: getMaterialAlternatives
void SkinManager::getMaterialAlternatives(Ogre::String materialName, std::vector<Skin *> &skinVector)
{
Ogre::ResourceManager::ResourceMapIterator it = getResourceIterator();
while (it.hasMoreElements())
{
Skin *skin = (Skin *)it.getNext().getPointer();
if (skin->hasReplacementForMaterial(materialName))
{
skinVector.push_back(skin);
}
}
}
开发者ID:tizbac,项目名称:ror-ng,代码行数:13,代码来源:SkinManager.cpp
示例9:
//Initial UI
void
World::showInitUI(){
Ogre::ResourceManager::ResourceMapIterator iter = Ogre::FontManager::getSingleton().getResourceIterator();
while (iter.hasMoreElements())
{
iter.getNext()->load();
}
mShowInitialUI = true;
mInitialUIOverlay->show();
}
开发者ID:zhangang15,项目名称:Game_Engineering,代码行数:15,代码来源:World.cpp
示例10: hasSkinForGUID
bool SkinManager::hasSkinForGUID(Ogre::String guid)
{
Ogre::ResourceManager::ResourceMapIterator it = getResourceIterator();
while (it.hasMoreElements())
{
Skin *skin = (Skin *)it.getNext().getPointer();
if (skin->guid == guid)
{
return true;
}
}
return false;
}
开发者ID:tizbac,项目名称:ror-ng,代码行数:14,代码来源:SkinManager.cpp
示例11: File
//.........这里部分代码省略.........
// It is a PBS; Note, that there is also a default (so always 1)
Ogre::Hlms::HlmsDatablockMap::const_iterator itor = hlmsPbs->getDatablockMap().begin();
Ogre::Hlms::HlmsDatablockMap::const_iterator end = hlmsPbs->getDatablockMap().end();
Ogre::HlmsPbsDatablock* newDatablock;
Ogre::String newDatablockName;
while( itor != end )
{
newDatablock = static_cast<Ogre::HlmsPbsDatablock*>(itor->second.datablock);
if (newDatablock != hlmsPbs->getDefaultDatablock() && newDatablock != hlmsUnlit->getDefaultDatablock())
{
// Get the first datablock
newDatablockName = *newDatablock->getFullName();
if (oldDatablockName != newDatablockName)
{
// Assign the datablock to the item (and destroy the items' old datablock, if still available)
item->setDatablock(newDatablock);
if (oldDatablock != hlmsPbs->getDefaultDatablock() && oldDatablock != hlmsUnlit->getDefaultDatablock())
{
if (oldDatablock->getCreator()->getType() == Ogre::HLMS_PBS)
hlmsPbs->destroyDatablock(oldDatablockId);
else if (hlmsUnlit && oldDatablock->getCreator()->getType() == Ogre::HLMS_UNLIT)
hlmsUnlit->destroyDatablock(oldDatablockId);
}
// Create the node structure
QString s = newDatablockName.c_str();
mNodeEditorDockWidget->createPbsNodeStructure(s);
mPropertiesDockWidget->setTextureTypePropertyVisible(true);
mPropertiesDockWidget->setMapWeightPropertyVisible(true);
break;
}
}
++itor;
}
return;
}
}
if (hlmsUnlit)
{
int size = hlmsUnlit->getDatablockMap().size();
//QMessageBox::information(0, QString("info"), QVariant(size).toString());
if (size > 1)
{
// It is an Unlit; Note, that there is also a default (so always 1)
Ogre::Hlms::HlmsDatablockMap::const_iterator itor = hlmsUnlit->getDatablockMap().begin();
Ogre::Hlms::HlmsDatablockMap::const_iterator end = hlmsUnlit->getDatablockMap().end();
Ogre::HlmsUnlitDatablock* newDatablock;
Ogre::String newDatablockName;
while( itor != end )
{
newDatablock = static_cast<Ogre::HlmsUnlitDatablock*>(itor->second.datablock);
if (newDatablock != hlmsPbs->getDefaultDatablock() && newDatablock != hlmsUnlit->getDefaultDatablock())
{
// Get the first datablock
newDatablockName = *newDatablock->getFullName();
if (oldDatablockName != newDatablockName)
{
// Assign the datablock to the item (and destroy the items' old datablock, if still available)
item->setDatablock(newDatablock);
if (oldDatablock != hlmsPbs->getDefaultDatablock() && oldDatablock != hlmsUnlit->getDefaultDatablock())
{
if (oldDatablock->getCreator()->getType() == Ogre::HLMS_UNLIT)
hlmsUnlit->destroyDatablock(oldDatablockId);
else if (hlmsPbs && oldDatablock->getCreator()->getType() == Ogre::HLMS_PBS)
hlmsPbs->destroyDatablock(oldDatablockId);
}
// Create the node structure
QString s = newDatablockName.c_str();
mNodeEditorDockWidget->createUnlitNodeStructure(s);
mPropertiesDockWidget->setTextureTypePropertyVisible(false);
mPropertiesDockWidget->setMapWeightPropertyVisible(false);
break;
}
}
++itor;
}
return;
}
}
}
//****************************************************************************/
void MainWindow::getListOfResources(void)
{
Ogre::ResourceGroupManager::ResourceManagerIterator it =
Ogre::ResourceGroupManager::getSingletonPtr()->getResourceManagerIterator();
while (it.hasMoreElements())
{
Ogre::ResourceManager* man = it.getNext();
Ogre::LogManager::getSingleton().logMessage("Resource Type = " + man->getResourceType());
Ogre::ResourceManager::ResourceMapIterator mapit = man->getResourceIterator() ;
while (mapit.hasMoreElements())
{
Ogre::ResourcePtr ptr = mapit.getNext();
Ogre::LogManager::getSingleton().logMessage("Resource Name = " + ptr->getName());
}
}
}
开发者ID:OgreTransporter,项目名称:HLMSEditor,代码行数:101,代码来源:mainwindow.cpp
示例12: InitMaterialCombo
void MaterialEditorDialog::InitMaterialCombo(void)
{
typedef std::list<Ogre::String> MaterialFileNameList;
MaterialFileNameList materialFileNameList;
Ogre::FileInfoListPtr fileInfoList =
Ogre::ResourceGroupManager::getSingleton().findResourceFileInfo(
Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,
"*.material");
for (Ogre::FileInfoList::const_iterator it = fileInfoList->begin(); it != fileInfoList->end(); ++it)
{
if ( it->archive->getName() == EFFECT_PATH)
{
materialFileNameList.push_back(it->filename);
}
}
Ogre::ResourceManager::ResourceMapIterator resourceMapIterator = Ogre::MaterialManager::getSingleton().getResourceIterator();
while ( resourceMapIterator.hasMoreElements() )
{
Ogre::String matName = resourceMapIterator.peekNextValue()->getName();
for ( MaterialFileNameList::iterator i = materialFileNameList.begin();
i != materialFileNameList.end(); ++i )
{
if ( *i == resourceMapIterator.peekNextValue()->getOrigin() )
{
mMaterialComboBox->Append(matName);
break;
}
}
resourceMapIterator.moveNext();
}
}
开发者ID:jjiezheng,项目名称:pap_full,代码行数:39,代码来源:WXMaterialEditorDialog.cpp
示例13: pos
void test_playWith3D()
{
xtime xt;
Ogre::ResourceManager::ResourceMapIterator it =
SoundManager::getSingleton().getResourceIterator();
while (it.hasMoreElements())
{
SoundResourcePtr soundres = it.getNext();
SoundStream *sound = new SoundStream(soundres);
SoundChannel *channel = new SoundChannel(sound, soundres->getName());
if (channel)
{
channel->play();
float angle = 0.0f;
xtime_get(&xt, TIME_UTC);
xt.sec++;
thread::sleep(xt);
while (channel->isPlaying()) {
xtime_get(&xt, TIME_UTC);
xt.nsec+=100000;
thread::sleep(xt);
Vector3 pos(1.0f*sinf(angle), 20.0f*cosf(angle), 0.0f);
channel->setPosition(pos);
angle += 0.005;
if (angle > 2 * M_PI)
{
angle = 0.0f;
}
FSOUND_Update();
}
delete channel;
}
}
}
开发者ID:BackupTheBerlios,项目名称:dsa-hl-svn,代码行数:38,代码来源:SoundStreamTest.cpp
示例14: GetUsableSkins
void SkinManager::GetUsableSkins(String guid, std::vector<Skin *> &skins)
{
Ogre::ResourceManager::ResourceMapIterator it = getResourceIterator();
while (it.hasMoreElements())
{
Skin *skin = (Skin *)it.getNext().getPointer();
// fix some possible problems
String g1 = guid;
String g2 = skin->guid;
StringUtil::trim(g1);
StringUtil::trim(g2);
StringUtil::toLowerCase(g1);
StringUtil::toLowerCase(g2);
// then compare
if (g1 == g2)
{
skins.push_back(skin);
}
}
}
开发者ID:Bob-Z,项目名称:rigs-of-rods,代码行数:24,代码来源:SkinManager.cpp
示例15: LiquidCreator
void
LiquidCreatorDialog::OnInitDialog(wxInitDialogEvent &e)
{
wxDialog::OnInitDialog(e);
wxSizer* sizer = LiquidCreator(this, true, true);
/// 获取各控件的引用
mComboBox = wxDynamicCast(this->FindWindow(ID_MATERIALCOMBO),wxComboBox);
assert (mComboBox);
Ogre::ResourceManager::ResourceMapIterator resourceMapIterator = Ogre::MaterialManager::getSingleton().getResourceIterator();
while ( resourceMapIterator.hasMoreElements() )
{
if ( resourceMapIterator.peekNextValue()->getGroup() == Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME )
{
Ogre::String matName = resourceMapIterator.peekNextValue()->getName();
// 只有材质名称中包含“水”才加入到combobox中
if (matName.find("water") != Ogre::String::npos ||
matName.find("Water") != Ogre::String::npos ||
matName.find("水01") != Ogre::String::npos)
mComboBox->AppendString( matName.c_str() );
}
resourceMapIterator.moveNext();
}
resourceMapIterator = Ogre::MaterialManager::getSingleton().getResourceIterator();
mComboBox->SetValue( resourceMapIterator.peekNextValue()->getName().c_str() );
mSubDivideTextCtrl = wxDynamicCast(this->FindWindow(ID_SUBDIVISIONTEXTCTRL),wxTextCtrl);
assert (mSubDivideTextCtrl);
mTexScaleTextCtrl = wxDynamicCast(this->FindWindow(ID_TEXCOORDSCALETEXTCTRL),wxTextCtrl);
assert (mTexScaleTextCtrl);
mDiffuseTextCtrl = wxDynamicCast(this->FindWindow(ID_DIFFUSETEXTCTRL),wxTextCtrl);
assert (mDiffuseTextCtrl);
mDepthTextCtrl = wxDynamicCast(this->FindWindow(ID_DEPTHTEXTCTRL),wxTextCtrl);
assert (mDepthTextCtrl);
}
开发者ID:jjiezheng,项目名称:pap_full,代码行数:44,代码来源:LiquidCreatorDialog.cpp
示例16: if
wxPGConstants * FairySkillEditDialog::PopulateConstants(const Ogre::String& name)
{
size_t id = reinterpret_cast<size_t>(&name);
wxPGConstants* constants = wxPropertyGrid::GetConstantsArray(id);
if (constants)
{
for (std::list<wxPGConstants*>::iterator it = mConstantList.begin(); it != mConstantList.end(); ++it)
{
if (constants == *it)
{
if (constants->UnRef())
delete constants;
mConstantList.erase(it);
break;
}
}
}
// if (!constants)
// {
constants = wxPropertyGrid::CreateConstantsArray(id);
if ( name == "Animation" )
{
// 第一个为空,表示设置这个元素的材质是用原mesh的材质
for ( unsigned short i = 0; i < mDObject->getSkeletonAnimationCount(); ++i )
{
Ogre::Animation *anim = mDObject->getSkeletonAnimation(i);
if ( anim )
{
constants->Add(anim->getName().c_str());
}
}
}
else if ( name == "EffectTemplateName" )
{
WX::EffectManager::EffectTemplateIterator it =
WX::EffectManager::getSingleton().getEffectTemplateIterator();
while ( it.hasMoreElements() )
{
constants->Add(it.peekNextKey().c_str());
it.moveNext();
}
}
else if ( name == "AttachPoint" )
{
for ( unsigned short i=0; i<mDObject->getNumBones(); ++i )
{
constants->Add(mDObject->getBoneName(i).c_str());
}
Ogre::StringVector locatorNames;
mDObject->getLocatorNames(locatorNames);
for ( size_t i=0; i<locatorNames.size(); ++i )
{
constants->Add(locatorNames[i].c_str());
}
}
else if ( name == "Material" )
{
typedef std::list<Ogre::String> MaterialFileNameList;
MaterialFileNameList materialFileNameList;
Ogre::FileInfoListPtr fileInfoList =
Ogre::ResourceGroupManager::getSingleton().findResourceFileInfo(
Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,
"*.material");
for (Ogre::FileInfoList::const_iterator it = fileInfoList->begin(); it != fileInfoList->end(); ++it)
{
if ( it->archive->getName() == MATERIAL_PATH)
{
materialFileNameList.push_back(it->filename);
}
}
Ogre::ResourceManager::ResourceMapIterator resourceMapIterator = Ogre::MaterialManager::getSingleton().getResourceIterator();
while ( resourceMapIterator.hasMoreElements() )
{
Ogre::String matName = resourceMapIterator.peekNextValue()->getName();
for ( MaterialFileNameList::iterator i = materialFileNameList.begin();
i != materialFileNameList.end(); ++i )
{
if ( *i == resourceMapIterator.peekNextValue()->getOrigin() )
{
constants->Add(matName.c_str());
break;
}
}
resourceMapIterator.moveNext();
}
//.........这里部分代码省略.........
开发者ID:ueverything,项目名称:mmo-resourse,代码行数:101,代码来源:WXSkillEditDialog.cpp
示例17: if
wxPGConstants * WXEffectEditDialog::PopulateConstants(const Ogre::String& type)
{
size_t id = reinterpret_cast<size_t>(&type);
wxPGConstants* constants = wxPropertyGrid::GetConstantsArray(id);
if (constants)
{
for (std::list<wxPGConstants*>::iterator it = mConstantList.begin(); it != mConstantList.end(); ++it)
{
if (constants == *it)
{
if (constants->UnRef())
delete constants;
mConstantList.erase(it);
break;
}
}
}
// if (!constants)
// {
constants = wxPropertyGrid::CreateConstantsArray(id);
if ( type == "Material" )
{
typedef std::list<Ogre::String> MaterialFileNameList;
MaterialFileNameList materialFileNameList;
Ogre::FileInfoListPtr fileInfoList =
Ogre::ResourceGroupManager::getSingleton().findResourceFileInfo(
Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,
"*.material");
for (Ogre::FileInfoList::const_iterator it = fileInfoList->begin(); it != fileInfoList->end(); ++it)
{
if ( it->archive->getName() == EFFECT_PATH)
{
materialFileNameList.push_back(it->filename);
}
}
// 第一个为空,表示设置这个元素的材质是用原mesh的材质
constants->Add("none");
Ogre::ResourceManager::ResourceMapIterator resourceMapIterator = Ogre::MaterialManager::getSingleton().getResourceIterator();
while ( resourceMapIterator.hasMoreElements() )
{
Ogre::String matName = resourceMapIterator.peekNextValue()->getName();
for ( MaterialFileNameList::iterator i = materialFileNameList.begin();
i != materialFileNameList.end(); ++i )
{
if ( *i == resourceMapIterator.peekNextValue()->getOrigin() )
{
constants->Add(matName.c_str());
break;
}
}
resourceMapIterator.moveNext();
}
}
else if ( type == "MeshName" )
{
constants->Add("none");
Ogre::FileInfoListPtr fileInfoList =
Ogre::ResourceGroupManager::getSingleton().findResourceFileInfo(
Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,
"*.mesh");
for (Ogre::FileInfoList::const_iterator it = fileInfoList->begin(); it != fileInfoList->end(); ++it)
{
if ( it->archive->getName() == EFFECT_PATH)
{
const Fairy::String& name = it->filename;
constants->Add(name.c_str());
}
}
}
else if ( type == "ParticleSystem" )
{
Ogre::ParticleSystemManager::ParticleSystemTemplateIterator iterator = Ogre::ParticleSystemManager::getSingleton().getTemplateIterator();
while ( iterator.hasMoreElements() )
{
// 获取到粒子系统的名称
Ogre::String parName = iterator.peekNextKey();
constants->Add(parName.c_str());
// 使iterator往后移
iterator.moveNext();
}
}
registerConstants(constants);
// }
return constants;
}
开发者ID:gitrider,项目名称:wxsj2,代码行数:100,代码来源:WXEffectEditDialog.cpp
示例18: diagnose
void OgreInfo::diagnose(std::ostream& outputStream)
{
Ogre::SceneManagerEnumerator::SceneManagerIterator sceneManagerI = Ogre::Root::getSingleton().getSceneManagerIterator();
while (sceneManagerI.hasMoreElements()) {
Ogre::SceneManager* sceneManager = sceneManagerI.getNext();
outputStream << "Scenemanager(" << sceneManager->getTypeName() << ") " << sceneManager->getName() << std::endl;
outputStream << " Number of scene nodes: " << countNodes(sceneManager->getRootSceneNode()) << std::endl;
outputStream << " Movable objects:" << std::endl;
unsigned int movableObjectCounter = 0;
Ogre::Root::MovableObjectFactoryIterator movableObjectFactoryI = Ogre::Root::getSingleton().getMovableObjectFactoryIterator();
while (movableObjectFactoryI.hasMoreElements()) {
Ogre::MovableObjectFactory* factory = movableObjectFactoryI.getNext();
std::string type(factory->getType());
{
Ogre::SceneManager::MovableObjectIterator I = sceneManager->getMovableObjectIterator(type);
while (I.hasMoreElements()) {
movableObjectCounter++;
Ogre::MovableObject* movable = I.getNext();
if (movable->getMovableType() == "Light") {
Ogre::Light* light = static_cast<Ogre::Light*> (movable);
outputStream << " * Light " << light->getName() << "(" << (light->isInScene() ? "in scene" : "not in scene") << ")" << std::endl;
outputStream << " Pos: " << light->getDerivedPosition() << std::endl;
outputStream << " Direction: " << light->getDerivedDirection() << std::endl;
} else {
std::stringstream ssPosAndOrientation;
if (movable->getParentSceneNode() && movable->isInScene()) {
ssPosAndOrientation << " pos: " << movable->getParentSceneNode()->getPosition() << " orientation: " << movable->getParentSceneNode()->getOrientation();
}
outputStream << " * " << type << " " << movable->getName() << "(" << (movable->isInScene() ? "in scene" : "not in scene") << ")" << ssPosAndOrientation.str() << std::endl;
// outputStream << " Pos: " << light->getDerivedPosition() << std::endl;
// outputStream << " Direction: " << light->getDerivedDirection() << std::endl;
}
}
}
}
outputStream << " Number of movable objects: " << movableObjectCounter << std::endl;
outputStream << " Cameras:" << std::endl;
{
Ogre::SceneManager::CameraIterator I = sceneManager->getCameraIterator();
while (I.hasMoreElements()) {
Ogre::Camera* camera = I.getNext();
outputStream << " Camera " << camera->getName() << "(" << (camera->isInScene() ? "in scene" : "not in scene") << ")" << std::endl;
outputStream << " Pos: " << camera->getDerivedPosition() << std::endl;
outputStream << " Direction: " << camera->getDerivedDirection() << std::endl;
outputStream << " Clip distances: " << camera->getNearClipDistance() << " - " << camera->getFarClipDistance() << std::endl;
}
}
}
size_t resourceMemoryUsage = 0;
outputStream << "Resource Managers:" << std::endl;
Ogre::ResourceGroupManager::ResourceManagerIterator I = Ogre::ResourceGroupManager::getSingleton().getResourceManagerIterator();
while (I.hasMoreElements()) {
std::string name = I.peekNextKey();
Ogre::ResourceManager* manager = I.getNext();
outputStream << " Resource Manager: " << name << std::endl;
if (manager->getMemoryBudget() == std::numeric_limits<size_t>::max()) {
outputStream << " Memory budget: not set" << std::endl;
} else {
outputStream << " Memory budget: " << manager->getMemoryBudget() << " bytes" << std::endl;
}
outputStream << " Memory usage: " << manager->getMemoryUsage() << " bytes" << std::endl;
resourceMemoryUsage += manager->getMemoryUsage();
Ogre::ResourceManager::ResourceMapIterator resourceI = manager->getResourceIterator();
if (resourceI.hasMoreElements()) {
outputStream << " Resources: " << std::endl;
int resourceCount = 0;
int loadedResourceCount = 0;
while (resourceI.hasMoreElements()) {
Ogre::ResourcePtr resource = resourceI.getNext();
if (resource->isLoaded()) {
std::string reloadable = resource->isReloadable() ? " reloadable" : "";
outputStream << " " << resource->getName() << " ( " << resource->getSize() << " bytes)" << reloadable;
Ogre::Texture* texture = dynamic_cast<Ogre::Texture*>(resource.get());
if (texture) {
outputStream << texture->getWidth() << "x" << texture->getHeight() << " ";
}
outputStream << std::endl;
loadedResourceCount++;
}
resourceCount++;
}
outputStream << " Total number of resources: " << resourceCount << std::endl;
outputStream << " Number of loaded resources: " << loadedResourceCount << std::endl;
}
}
outputStream << "Total memory usage for all resource manager: " << resourceMemoryUsage << " bytes" << std::endl;
outputStream << std::flush;
}
开发者ID:Chimangoo,项目名称:ember,代码行数:96,代码来源:OgreInfo.cpp
注:本文中的ogre::resourcemanager::ResourceMapIterator类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论