本文整理汇总了C++中ogre::FileInfoListPtr::empty方法的典型用法代码示例。如果您正苦于以下问题:C++ FileInfoListPtr::empty方法的具体用法?C++ FileInfoListPtr::empty怎么用?C++ FileInfoListPtr::empty使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ogre::FileInfoListPtr
的用法示例。
在下文中一共展示了FileInfoListPtr::empty方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
const VectorString& Ogre2DataManager::getDataListNames(const std::string& _pattern, bool _fullpath)
{
static VectorString result;
result.clear();
VectorString search;
if (mAllGroups)
{
Ogre::StringVector sp = Ogre::ResourceGroupManager::getSingleton().getResourceGroups();
search.reserve(sp.size());
for (size_t i = 0; i < sp.size(); i++)
search.push_back(sp[i]);
}
else
search.push_back(mGroup);
std::vector<Ogre::FileInfoListPtr> pFileInfos;
int resultSize = 0;
for (size_t i = 0; i < search.size(); i++)
{
Ogre::FileInfoListPtr pFileInfo = Ogre::ResourceGroupManager::getSingleton().findResourceFileInfo(search[i], _pattern);
resultSize += pFileInfo->size();
if (!pFileInfo->empty())
pFileInfos.push_back(pFileInfo);
else
pFileInfo.setNull();
}
result.reserve(resultSize);
for (size_t i = 0; i < pFileInfos.size(); i++)
{
Ogre::FileInfoListPtr pFileInfo = pFileInfos[i];
for (Ogre::FileInfoList::iterator fi = pFileInfo->begin(); fi != pFileInfo->end(); ++fi )
{
if (fi->path.empty())
{
bool found = false;
for (VectorString::iterator iter = result.begin(); iter != result.end(); ++iter)
{
if (*iter == fi->filename)
{
found = true;
break;
}
}
if (!found)
{
result.push_back(_fullpath ? fi->archive->getName() + "/" + fi->filename : fi->filename);
}
}
}
pFileInfo.setNull();
}
return result;
}
示例2: if
void RoR::GUI::GameSettings::Draw()
{
bool is_visible = true;
const int flags = ImGuiWindowFlags_NoCollapse;
ImGui::SetNextWindowSize(ImVec2(600.f, 400.f), ImGuiSetCond_FirstUseEver);
ImGui::SetNextWindowPosCenter(ImGuiSetCond_Appearing);
ImGui::Begin(_LC("GameSettings", "Game settings"), &is_visible, flags);
if (! is_visible)
{
this->SetVisible(false);
if (App::app_state.GetActive() == RoR::AppState::MAIN_MENU)
{
App::GetGuiManager()->SetVisible_GameMainMenu(true);
}
ImGui::End();
return;
}
// 'Tabs' buttons
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(4.f, 8.f));
if (ImGui::Button(_LC("GameSettings", "Render System"))) { m_tab = SettingsTab::RENDER_SYSTEM; }
ImGui::SameLine();
if (ImGui::Button(_LC("GameSettings", "General"))) { m_tab = SettingsTab::GENERAL; }
ImGui::SameLine();
if (ImGui::Button(_LC("GameSettings", "Graphics"))) { m_tab = SettingsTab::GRAPHICS; }
ImGui::SameLine();
#ifdef USE_OPENAL
if (ImGui::Button(_LC("GameSettings", "Audio"))) { m_tab = SettingsTab::AUDIO; }
ImGui::SameLine();
#endif // USE_OPENAL
if (ImGui::Button(_LC("GameSettings", "Controls"))) { m_tab = SettingsTab::CONTROL; }
ImGui::SameLine();
if (ImGui::Button(_LC("GameSettings", "Diagnostic"))) { m_tab = SettingsTab::DIAG; }
ImGui::SameLine();
if (ImGui::Button(_LC("GameSettings", "Update cache")))
{
App::app_force_cache_udpate.SetActive(true);
}
ImGui::PopStyleVar(1);
ImGui::SetCursorPosY(ImGui::GetCursorPosY() + 4.f);
ImGui::Separator();
if (m_tab == SettingsTab::RENDER_SYSTEM)
{
ImGui::TextDisabled(_LC("GameSettings", "Render system (changes require a restart)"));
const auto ogre_root = App::GetOgreSubsystem()->GetOgreRoot();
const auto render_systems = ogre_root->getAvailableRenderers();
std::string render_system_names;
for (auto rs : render_systems)
{
render_system_names += rs->getName() + '\0';
}
const auto ro = ogre_root->getRenderSystemByName(App::app_rendersys_override.GetActive());
const auto rs = ro ? ro : ogre_root->getRenderSystem();
const auto it = std::find(render_systems.begin(), render_systems.end(), rs);
int render_id = it != render_systems.end() ? std::distance(render_systems.begin(), it) : 0;
/* Combobox for selecting the Render System*/
if (ImGui::Combo(_LC ("GameSettings", "Render System"), &render_id, render_system_names.c_str()))
{
App::app_rendersys_override.SetActive(render_systems[render_id]->getName().c_str());
}
const auto config_options = ogre_root->getRenderSystem()->getConfigOptions();
std::set<std::string> filter = {"Allow NVPerfHUD", "Colour Depth", "Fixed Pipeline Enabled",
"Floating-point mode", "Resource Creation Policy", "VSync Interval", "sRGB Gamma Conversion"};
for (auto opt : config_options)
{
auto co = opt.second;
if (co.immutable)
continue;
if (co.possibleValues.empty())
continue;
if (filter.find(co.name) != filter.end())
continue;
std::sort(co.possibleValues.rbegin(), co.possibleValues.rend());
std::string option_values;
for (auto value : co.possibleValues)
{
option_values += value + '\0';
}
const auto it = std::find(co.possibleValues.begin(), co.possibleValues.end(), opt.second.currentValue);
int option_id = it != co.possibleValues.end() ? std::distance(co.possibleValues.begin(), it) : 0;
if (ImGui::Combo(co.name.c_str(), &option_id, option_values.c_str()))
{
rs->setConfigOption(co.name, co.possibleValues[option_id]);
if (rs->validateConfigOptions().empty())
{
ogre_root->saveConfig();
}
}
}
}
else if (m_tab == SettingsTab::GENERAL)
{
ImGui::TextDisabled(_LC("GameSettings", "Application settings"));
//.........这里部分代码省略.........