本文整理汇总了C++中ogre::UTFString::asWStr_c_str方法的典型用法代码示例。如果您正苦于以下问题:C++ UTFString::asWStr_c_str方法的具体用法?C++ UTFString::asWStr_c_str怎么用?C++ UTFString::asWStr_c_str使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ogre::UTFString
的用法示例。
在下文中一共展示了UTFString::asWStr_c_str方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: showMsgBox
int showMsgBox(Ogre::UTFString title, Ogre::UTFString err, int type)
{
// we might call the showMsgBox without having ogre created yet!
//LOG("message box: " + title + ": " + err);
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
int mtype = MB_ICONERROR;
if(type == 1) mtype = MB_ICONINFORMATION;
MessageBoxW( NULL, err.asWStr_c_str(), title.asWStr_c_str(), MB_OK | mtype | MB_TOPMOST);
#elif OGRE_PLATFORM == OGRE_PLATFORM_LINUX
printf("\n\n%s: %s\n\n", title.asUTF8_c_str(), err.asUTF8_c_str());
#elif OGRE_PLATFORM == OGRE_PLATFORM_APPLE
printf("\n\n%s: %s\n\n", title.asUTF8_c_str(), err.asUTF8_c_str());
//CFOptionFlags flgs;
//CFUserNotificationDisplayAlert(0, kCFUserNotificationStopAlertLevel, NULL, NULL, NULL, T("A network error occured"), T("Bad server port."), NULL, NULL, NULL, &flgs);
#endif
return 0;
}
示例2: showWebError
int showWebError(Ogre::UTFString title, Ogre::UTFString err, Ogre::UTFString url)
{
// NO logmanager use, because it could be that its not initialized yet!
//LOG("web message box: " + title + ": " + err + " / url: " + url);
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
Ogre::UTFString additional = _L("\n\nYou can eventually get help here:\n\n") + url + _L("\n\nDo you want to open that address in your default browser now?");
err = err + additional;
int Response = MessageBoxW( NULL, err.asWStr_c_str(), title.asWStr_c_str(), MB_YESNO | MB_ICONERROR | MB_TOPMOST | MB_SYSTEMMODAL | MB_SETFOREGROUND );
// 6 (IDYES) = yes, 7 (IDNO) = no
if(Response == IDYES)
{
// Microsoft conversion hell follows :|
wchar_t *command = L"open";
ShellExecuteW(NULL, command, url.asWStr_c_str(), NULL, NULL, SW_SHOWNORMAL);
}
#elif OGRE_PLATFORM == OGRE_PLATFORM_LINUX
printf("\n\n%s: %s / url: %s\n\n", title.asUTF8_c_str(), err.asUTF8_c_str(), url.asUTF8_c_str());
#elif OGRE_PLATFORM == OGRE_PLATFORM_APPLE
printf("\n\n%s: %s / url: %s\n\n", title.asUTF8_c_str(), err.asUTF8_c_str(), url.asUTF8_c_str());
//CFOptionFlags flgs;
//CFUserNotificationDisplayAlert(0, kCFUserNotificationStopAlertLevel, NULL, NULL, NULL, "An exception has occured!", err.c_str(), NULL, NULL, NULL, &flgs);
#endif
return 0;
}
示例3: UpdateStats
void CLASS::UpdateStats(float dt, Beam *truck)
{
if (!MAIN_WIDGET->getVisible()) return;
if (b_fpsbox)
{
const Ogre::RenderTarget::FrameStats& stats = Application::GetOgreSubsystem()->GetRenderWindow()->getStatistics();
m_cur_fps->setCaptionWithReplacing("Current FPS: " + Ogre::StringConverter::toString(stats.lastFPS));
m_avg_fps->setCaptionWithReplacing("Average FPS: " + Ogre::StringConverter::toString(stats.avgFPS));
m_worst_fps->setCaptionWithReplacing("Worst FPS: " + Ogre::StringConverter::toString(stats.worstFPS));
m_best_fps->setCaptionWithReplacing("Best FPS: " + Ogre::StringConverter::toString(stats.bestFPS));
m_triangle_count->setCaptionWithReplacing("Triangle count: " + Ogre::StringConverter::toString(stats.triangleCount));
m_batch_count->setCaptionWithReplacing("Batch count: " + Ogre::StringConverter::toString(stats.batchCount));
}
else
m_fpscounter_box->setVisible(false);
if (b_truckinfo && truck != nullptr)
{
m_truck_name->setCaptionWithReplacing(truck->getTruckName());
truckstats = "\n"; //always reset on each frame + space
//taken from TruckHUD.cpp, needs cleanup
beam_t *beam = truck->getBeams();
float average_deformation = 0.0f;
float beamstress = 0.0f;
float current_deformation = 0.0f;
float mass = truck->getTotalMass();
int beamCount = truck->getBeamCount();
int beambroken = 0;
int beamdeformed = 0;
for (int i = 0; i < beamCount; i++, beam++)
{
if (beam->broken != 0)
{
beambroken++;
}
beamstress += beam->stress;
current_deformation = fabs(beam->L - beam->refL);
if (fabs(current_deformation) > 0.0001f && beam->type != BEAM_HYDRO && beam->type != BEAM_INVISIBLE_HYDRO)
{
beamdeformed++;
}
average_deformation += current_deformation;
}
float health = ((float)beambroken / (float)beamCount) * 10.0f + ((float)beamdeformed / (float)beamCount);
if (health < 1.0f)
{
truckstats = truckstats + MainThemeColor + "Vehicle's health: " + WhiteColor + TOUTFSTRING(Round((1.0f - health) * 100.0f, 2)) + U("%") + "\n";
}
else if (health >= 1.0f)
{
//When this condition is true, it means that health is at 0% which means 100% of destruction.
truckstats = truckstats + MainThemeColor + "Vehicle's destruction: " + WhiteColor + U("100%") + "\n";
}
truckstats = truckstats + MainThemeColor + "Beam count: " + WhiteColor + TOUTFSTRING(beamCount) + "\n";
truckstats = truckstats + MainThemeColor + "Broken Beams count: " + WhiteColor + TOUTFSTRING(beambroken) + U(" (") + TOUTFSTRING(Round((float)beambroken / (float)beamCount, 2) * 100.0f) + U("%)") + "\n";
truckstats = truckstats + MainThemeColor + "Deformed Beams count: " + WhiteColor + TOUTFSTRING(beamdeformed) + U(" (") + TOUTFSTRING(Round((float)beamdeformed / (float)beamCount, 2) * 100.0f) + U("%)") + "\n";
truckstats = truckstats + MainThemeColor + "Average Deformation: " + WhiteColor + TOUTFSTRING(Round((float)average_deformation / (float)beamCount, 4) * 100.0f) + "\n";
//Taken from TruckHUD.cpp ..
wchar_t beamstressstr[256];
swprintf(beamstressstr, 256, L"%+08.0f", 1 - (float)beamstress / (float)beamCount);
truckstats = truckstats + MainThemeColor + "Average Stress: " + WhiteColor + Ogre::UTFString(beamstressstr) + "\n";
truckstats = truckstats + "\n"; //Some space
int ncount = truck->getNodeCount();
int wcount = truck->getWheelNodeCount();
wchar_t nodecountstr[256];
swprintf(nodecountstr, 256, L"%d (wheels: %d)", ncount, wcount);
truckstats = truckstats + MainThemeColor + "Node count: " + WhiteColor + Ogre::UTFString(nodecountstr) + "\n";
wchar_t truckmassstr[256];
Ogre::UTFString massstr;
swprintf(truckmassstr, 256, L"%ls %8.2f kg (%.2f tons)", massstr.asWStr_c_str(), mass, mass / 1000.0f);
truckstats = truckstats + MainThemeColor + "Total mass: " + WhiteColor + Ogre::UTFString(truckmassstr) + "\n";
truckstats = truckstats + "\n"; //Some space
if (truck->driveable == TRUCK && truck->engine)
{
if (truck->engine->getRPM() > truck->engine->getMaxRPM())
truckstats = truckstats + MainThemeColor + "Engine RPM: " + RedColor + TOUTFSTRING(Round(truck->engine->getRPM())) + U(" / ") + TOUTFSTRING(Round(truck->engine->getMaxRPM())) + "\n";
else
truckstats = truckstats + MainThemeColor + "Engine RPM: " + WhiteColor + TOUTFSTRING(Round(truck->engine->getRPM())) + U(" / ") + TOUTFSTRING(Round(truck->engine->getMaxRPM())) + "\n";
float currentKw = (((truck->engine->getRPM() * truck->engine->getEngineTorque() *(3.14159265358979323846 /* pi.. */ / 30)) / 1000));
truckstats = truckstats + MainThemeColor + "Current Power: " + WhiteColor + TOUTFSTRING(Round(currentKw *1.34102209)) + U(" hp / ") + TOUTFSTRING(Round(currentKw)) + U(" Kw") + "\n";
float velocityKMH = truck->WheelSpeed* 3.6f;
float velocityMPH = truck->WheelSpeed * 2.23693629f;
float carSpeedKPH = truck->nodes[0].Velocity.length() * 3.6f;
float carSpeedMPH = truck->nodes[0].Velocity.length() * 2.23693629f;
//.........这里部分代码省略.........