本文整理汇总了C++中OverlayContainer类的典型用法代码示例。如果您正苦于以下问题:C++ OverlayContainer类的具体用法?C++ OverlayContainer怎么用?C++ OverlayContainer使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了OverlayContainer类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: createOverlay
OverlayContainer* MenuSheet::createOverlay(int id, const std::string& text, int x, int y, int w, int h) {
std::string ovname = mName + "/" + Ogre::StringConverter::toString(id);
OverlayContainer* ov;
if (text.empty())
ov = static_cast<OverlayContainer*>(OverlayManager::getSingleton().createOverlayElement("Panel", ovname));
else
ov = static_cast<OverlayContainer*>(OverlayManager::getSingleton().createOverlayElement("TextArea", ovname));
ov->setMetricsMode(GMM_PIXELS);
// text area centered around X point, so we create it with w/2 surplus
if (text.empty())
ov->setPosition(x, y);
else
ov->setPosition(x + w/2, y);
ov->setDimensions(w, h);
ov->setCaption(text);
ov->setParameter("font_name", mFont);
ov->setParameter("char_height", StringConverter::toString(mFontSize));
ov->setParameter("alignment", "center");
ov->show();
mOverlay->add2D(ov);
return ov;
}
示例2: OGRE_EXCEPT
void GraphicsController::addTextureDebugOverlay(const Ogre::String& texname, size_t i)
{
using namespace Ogre;
Overlay* debugOverlay = OverlayManager::getSingleton().getByName("PRJZ/DebugOverlay");
MaterialPtr debugMat = MaterialManager::getSingleton().getByName("PRJZ/BasicTexture", "PROJECT_ZOMBIE");
if(debugMat.isNull())
OGRE_EXCEPT(Ogre::Exception::ERR_INVALIDPARAMS, "PRJZ/BasicTexture material was not found.", "GraphicsController::addTextureDebugOverlay");
debugMat->getTechnique(0)->getPass(0)->setLightingEnabled(false);
TextureUnitState *t = debugMat->getTechnique(0)->getPass(0)->createTextureUnitState(texname);
t->setTextureAddressingMode(TextureUnitState::TAM_CLAMP);
Ogre::TexturePtr tex = Ogre::TextureManager::getSingleton().getByName(texname);
Ogre::Real tWidth = tex->getWidth();
Ogre::Real tHeight = tex->getHeight();
//ratio
Ogre::Real ratio = tHeight / tWidth;
OverlayContainer* debugPanel = (OverlayContainer*)
(OverlayManager::getSingleton().createOverlayElement("Panel", "Ogre/DebugTexPanel" + StringConverter::toString(i)));
debugPanel->_setPosition(0.0, 0.0);
debugPanel->_setDimensions(0.5f, 0.5f * ratio);
debugPanel->setMaterialName(debugMat->getName());
debugOverlay->add2D(debugPanel);
}
示例3: while
//---------------------------------------------------------------------
void OverlayManager::destroyAllOverlayElementsImpl(ElementMap& elementMap)
{
ElementMap::iterator i;
while ((i = elementMap.begin()) != elementMap.end())
{
OverlayElement* element = i->second;
// Get factory to delete
FactoryMap::iterator fi = mFactories.find(element->getTypeName());
if (fi == mFactories.end())
{
OGRE_EXCEPT(Exception::ERR_ITEM_NOT_FOUND, "Cannot locate factory for element "
+ element->getName(),
"OverlayManager::destroyAllOverlayElements");
}
// remove from parent, if any
OverlayContainer* parent;
if ((parent = element->getParent()) != 0)
{
parent->_removeChild(element->getName());
}
// children of containers will be auto-removed when container is destroyed.
// destroy the element and remove it from the list
fi->second->destroyOverlayElement(element);
elementMap.erase(i);
}
}
示例4: changePage
//-----------------------------------------------------------------------------------
void Sample_Compositor::setupControls(void)
{
mTrayMgr->createButton(TL_TOPLEFT, "PageButton", "Compositors", 175);
for (size_t i=0; i < COMPOSITORS_PER_PAGE; i++)
{
String checkBoxName = "Compositor_" + Ogre::StringConverter::toString(i);
CheckBox* cb = mTrayMgr->createCheckBox(TL_TOPLEFT, checkBoxName, "Compositor", 175);
cb->hide();
}
changePage(0);
mDebugTextureSelectMenu = mTrayMgr->createThickSelectMenu(TL_TOPRIGHT, "DebugRTTSelectMenu", "Debug RTT", 180, 5);
mDebugTextureSelectMenu->addItem("None");
mTrayMgr->createSeparator(TL_TOPRIGHT, "DebugRTTSep1"); // this is a hack to give the debug RTT a bit more room
DecorWidget* debugRTTPanel = mTrayMgr->createDecorWidget(TL_NONE, "DebugRTTPanel", "SdkTrays/Picture");
OverlayContainer* debugRTTContainer = (OverlayContainer*)debugRTTPanel->getOverlayElement();
mDebugTextureTUS = debugRTTContainer->getMaterial()->getBestTechnique()->getPass(0)->getTextureUnitState(0);
//mDebugTextureTUS->setTextureName("CompositorDemo/DebugView");
debugRTTContainer->setDimensions(128, 128);
debugRTTContainer->getChild("DebugRTTPanel/PictureFrame")->setDimensions(144, 144);
debugRTTPanel->hide();
mTrayMgr->createSeparator(TL_TOPRIGHT, "DebugRTTSep2"); // this is a hack to give the debug RTT a bit more room
mTrayMgr->showCursor();
mTrayMgr->showLogo(TL_BOTTOMLEFT);
mTrayMgr->toggleAdvancedFrameStats();
}
示例5: processTextureShadows
int ShadowManager::updateShadowTechnique()
{
float scoef = 0.5;
gEnv->sceneManager->setShadowColour(Ogre::ColourValue(0.563 + scoef, 0.578 + scoef, 0.625 + scoef));
gEnv->sceneManager->setShowDebugShadows(false);
RoR::App::GfxShadowType type = RoR::App::GetGfxShadowType();
if (type == RoR::App::GFX_SHADOW_TYPE_TEXTURE)
{
gEnv->sceneManager->setShadowFarDistance(RoR::App::GetGfxSightRange());
processTextureShadows();
}
else if (type == RoR::App::GFX_SHADOW_TYPE_PSSM)
{
processPSSM();
if (gEnv->sceneManager->getShowDebugShadows())
{
// add the overlay elements to show the shadow maps:
// init overlay elements
OverlayManager& mgr = Ogre::OverlayManager::getSingleton();
Overlay* overlay = mgr.create("DebugOverlay");
for (int i = 0; i < PSSM_Shadows.ShadowsTextureNum; ++i)
{
TexturePtr tex = gEnv->sceneManager->getShadowTexture(i);
// Set up a debug panel to display the shadow
MaterialPtr debugMat = MaterialManager::getSingleton().create("Ogre/DebugTexture" + StringConverter::toString(i), ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME);
debugMat->getTechnique(0)->getPass(0)->setLightingEnabled(false);
TextureUnitState* t = debugMat->getTechnique(0)->getPass(0)->createTextureUnitState(tex->getName());
t->setTextureAddressingMode(TextureUnitState::TAM_CLAMP);
OverlayContainer* debugPanel = (OverlayContainer*)(OverlayManager::getSingleton().createOverlayElement("Panel", "Ogre/DebugTexPanel" + StringConverter::toString(i)));
debugPanel->_setPosition(0.8, i * 0.25);
debugPanel->_setDimensions(0.2, 0.24);
debugPanel->setMaterialName(debugMat->getName());
debugPanel->setEnabled(true);
overlay->add2D(debugPanel);
overlay->show();
}
}
}
return 0;
}
示例6: mListener
// -------------------------------------------------------------------------
OgreBulletGuiListener::OgreBulletGuiListener(OgreBulletListener *listener, Ogre::RenderWindow *win) :
mListener(listener),
mWindow(win),
mMouseOverlay(0),
mMousePanel(0)
{
/******************* CREATE Cursor Overlay ***************************/
mMouseOverlay = (Overlay*)OverlayManager::getSingleton().getByName("GuiOverlay");
if (mMouseOverlay)
{
mMousePanel = OverlayManager::getSingleton().getOverlayElement ("GUIMouse");
}
else
{
mMouseOverlay = OverlayManager::getSingletonPtr()->create("GuiOverlay");
mMouseOverlay->setZOrder(600);
mMousePanel = (Ogre::OverlayElement *)
OverlayManager::getSingletonPtr()->createOverlayElement("Panel", "GUIMouse");
mMousePanel->setMaterialName("OgreBulletDemos/TargetSights");
TexturePtr mouseTex = TextureManager::getSingleton().load("target.png", "Bullet");
mMousePanel->setWidth (mouseTex->getWidth() / (float)win->getWidth());
mMousePanel->setHeight (mouseTex->getHeight() / (float)win->getHeight());
Ogre::OverlayContainer *mouseContainer = (Ogre::OverlayContainer*)
OverlayManager::getSingletonPtr()->createOverlayElement("Panel", "GUIContainer");
mMouseOverlay->add2D(mouseContainer);
mouseContainer->addChild(mMousePanel);
}
mMouseOverlay->show();
TexturePtr mouseTex = TextureManager::getSingleton().load("target.png", "Bullet");
mMouseCursorHalfWidth = (Real(mouseTex->getWidth()) / mWindow->getWidth()) * 0.5;
mMouseCursorHalfHeight = (Real(mouseTex->getHeight()) / mWindow->getHeight ()) * 0.5;
/******************* CREATE GUI ***************************/
mGui = new BetaGUI::GUI("OgreBulletGui", "BlueHighway", 14, win);
OverlayContainer* mouseCursor = mGui->createMousePointer(Vector2(32, 32), "bgui.pointer");
mouseCursor->hide();
mGui->injectMouse(mWindow->getWidth() * 0.5, mWindow->getHeight() * 0.5, false);
}
示例7: clone
OverlayElement* OverlayContainer::clone(const String& instanceName)
{
OverlayContainer *newContainer;
newContainer = static_cast<OverlayContainer*>(OverlayElement::clone(instanceName));
ChildIterator it = getChildIterator();
while (it.hasMoreElements())
{
OverlayElement* oldChildElement = it.getNext();
if (oldChildElement->isCloneable())
{
OverlayElement* newChildElement = oldChildElement->clone(instanceName);
newContainer->_addChild(newChildElement);
}
}
return newContainer;
}
示例8: PlaneGenerator
//-------------------------------------------------------------------------------------
void ScriptInterpreter::createScene(void)
{
if (mScriptSourceMode == SSM_SCRIPTDIR)
{
ResourceGroupManager::getSingleton().destroyResourceGroup("Scripts");
ResourceGroupManager::getSingleton().createResourceGroup("Scripts");
ResourceGroupManager::getSingleton().addResourceLocation(mScriptDir, "FileSystem", "Scripts");
}
mDefaultTriangleBuffer = PlaneGenerator().buildTriangleBuffer();
Overlay* o = OverlayManager::getSingleton().create("myOverlay");
OverlayContainer* cont = (OverlayContainer*)OverlayManager::getSingleton().createOverlayElement("Panel","myCont");
o->add2D(cont);
mTextMessage = OverlayManager::getSingleton().createOverlayElement("TextArea","myText");
cont->addChild(mTextMessage);
mTextMessage->setCaption("Ogre program");
mTextMessage->setParameter("font_name","SdkTrays/Caption");
o->show();
checkScriptModified();
}
示例9: while
//-----------------------------------------------------------------------
void OverlayProfileSessionListener::finializeSession()
{
OverlayContainer* container = dynamic_cast<OverlayContainer*>(mProfileGui);
if (container)
{
OverlayContainer::ChildIterator children = container->getChildIterator();
while (children.hasMoreElements())
{
OverlayElement* element = children.getNext();
OverlayContainer* parent = element->getParent();
if (parent) parent->removeChild(element->getName());
OverlayManager::getSingleton().destroyOverlayElement(element);
}
}
if(mProfileGui)
OverlayManager::getSingleton().destroyOverlayElement(mProfileGui);
if(mOverlay)
OverlayManager::getSingleton().destroy(mOverlay);
mProfileBars.clear();
}
示例10: multiplayer
void HUD::multiplayer()
{
OverlayManager& overlayManager = OverlayManager::getSingleton();
// Create a panel
OverlayContainer* panel = static_cast<OverlayContainer*>(
overlayManager.createOverlayElement("Panel", "MultiplayerPanel"));
panel->setMetricsMode(Ogre::GMM_PIXELS);
panel->setPosition(20, 20);
panel->setDimensions(200, 250);
panel->setMaterialName("PanelAchtergrondImage"); // Optional background material
// Create a text area
m_textMessages = static_cast<TextAreaOverlayElement*>(
overlayManager.createOverlayElement("TextArea", "MultiplayerTextArea"));
m_textMessages->setMetricsMode(Ogre::GMM_PIXELS);
m_textMessages->setPosition(10, 50);
m_textMessages->setDimensions(150, 100);
m_textMessages->setCaption("GoClient 0.1");
m_textMessages->setCharHeight(16);
m_textMessages->setFontName("ArialFont");
m_textMessages->setColourBottom(ColourValue(0.6, 0.6, 0.6));
m_textMessages->setColourTop(ColourValue(1, 1, 1));
// Create an overlay, and add the panel
m_overlay = overlayManager.create("MultiplayerOverlay");
m_overlay->add2D(panel);
// Add the text area to the panel
panel->addChild(m_textMessages);
// Show the overlay
m_overlay->show();
}
示例11: while
void OverlayHelper::SafeDestroyOverlayElement(OverlayElement *item)
{
if (item->isContainer())
{
OverlayContainer *container = (OverlayContainer*) item;
// Arrggghh the variable is protected
// ((OverlayContainer*)item)->mOverlay->remove2D((OverlayContainer*)item);
OverlayManager::OverlayMapIterator iter1 = OverlayManager::getSingleton().getOverlayIterator();
while (iter1.hasMoreElements())
{
iter1.getNext()->remove2D(container);
}
OverlayContainer::ChildIterator iter2 = container->getChildIterator();
while (iter2.hasMoreElements())
{
iter2.getNext()->_setParent(0);
}
OverlayContainer::ChildContainerIterator iter3 = container->getChildContainerIterator();
while (iter3.hasMoreElements())
{
iter3.getNext()->_setParent(0);
}
}
if (item->getParent())
item->getParent()->removeChild(item->getName());
OverlayManager::getSingleton().destroyOverlayElement(item);
unsigned i;
i=0;
while (i < timedOverlays.Size())
{
if (timedOverlays[i].overlayElement==item)
timedOverlays.RemoveAtIndex(i);
else
i++;
}
}
示例12: initialize
//-----------------------------------------------------------------------
void Profiler::setEnabled(bool enabled)
{
if (!mInitialized && enabled)
{
// the user wants to enable the Profiler for the first time
// so we initialize the GUI stuff
initialize();
mInitialized = true;
}
else
{
OverlayContainer* container = dynamic_cast<OverlayContainer*>(mProfileGui);
if (container)
{
OverlayContainer::ChildIterator children = container->getChildIterator();
while (children.hasMoreElements())
{
OverlayElement* element = children.getNext();
OverlayContainer* parent = element->getParent();
if (parent) parent->removeChild(element->getName());
OverlayManager::getSingleton().destroyOverlayElement(element);
}
}
if(mProfileGui)
OverlayManager::getSingleton().destroyOverlayElement(mProfileGui);
if(mOverlay)
OverlayManager::getSingleton().destroy(mOverlay);
mProfileBars.clear();
mInitialized = false;
mEnabled = false;
}
// We store this enable/disable request until the frame ends
// (don't want to screw up any open profiles!)
mNewEnableState = enabled;
}
示例13: log
void Splash::createScene()
{
log("[Loading] Creating the splash screen...");
// Loading picture
overlayManager = &OverlayManager::getSingleton();
overlay = overlayManager->create("LoadingOverlay");
((MaterialPtr)MaterialManager::getSingleton().create("LoadingMaterial","splash"))->getTechnique(0)->getPass(0)->createTextureUnitState("loading.png");
OverlayContainer* panel = static_cast<OverlayContainer*>(overlayManager->createOverlayElement("Panel","LoadingPanel"));
panel->setMaterialName("LoadingMaterial");
panel->setDimensions(1,0.96f);
// Progess bar
OverlayContainer* progressBar = static_cast<OverlayContainer*>(overlayManager->createOverlayElement("Panel","ProgressBar"));
progressBar->setDimensions(1,0.04f);
progressBar->setPosition(0,0.96f);
MaterialPtr progressBGMat = MaterialManager::getSingleton().create("progressBG","splash");
progressBGMat->getTechnique(0)->getPass(0)->createTextureUnitState()->setColourOperationEx(LBX_SOURCE1,LBS_MANUAL,LBS_CURRENT,ColourValue(0.9f, 0.9f, 0.9f));;
MaterialPtr progressFGMat = MaterialManager::getSingleton().create("progressFG","splash");
progressFGMat->getTechnique(0)->getPass(0)->createTextureUnitState()->setColourOperationEx(LBX_SOURCE1,LBS_MANUAL,LBS_CURRENT,ColourValue(0.23f, 0.88f, 0.5f));;
progressBG = static_cast<OverlayContainer*>(overlayManager->createOverlayElement("Panel","ProgressBarBG"));
progressBG->setMaterialName("progressBG");
progressBG->setDimensions(1,1);
progressFG = static_cast<OverlayContainer*>(overlayManager->createOverlayElement("Panel","ProgressBarFG"));
progressFG->setMaterialName("progressFG");
progressFG->setDimensions(0,1);
// Loading text
FontManager::getSingleton().getByName("BlueHighway")->load(); // HACK: Workaround for bug #324 in Ogre
progressText = static_cast<TextAreaOverlayElement*>(overlayManager->createOverlayElement("TextArea", "text"));
progressText->setMetricsMode(GuiMetricsMode::GMM_RELATIVE);
progressText->setLeft(0.01f);
progressText->setTop(0.01f);
progressText->setHorizontalAlignment(GHA_LEFT);
progressText->setVerticalAlignment(GVA_TOP);
progressText->setFontName("BlueHighway");
progressText->setCharHeight(0.03f);
progressText->setColour(Ogre::ColourValue(0,0,0));
progressBar->addChild(progressBG);
progressBar->addChild(progressFG);
progressBar->addChild(progressText);
overlay->add2D(panel);
overlay->add2D(progressBar);
overlay->show();
}
示例14: createContainer
//-----------------------------------------------------------------------
OverlayContainer* Profiler::createContainer() {
OverlayContainer* container = (OverlayContainer*)
OverlayManager::getSingleton().createOverlayElement(
"BorderPanel", "profiler");
container->setMetricsMode(GMM_PIXELS);
container->setMaterialName("Core/StatsBlockCenter");
container->setHeight(mGuiHeight);
container->setWidth(mGuiWidth * 2 + 15);
container->setParameter("border_size", "1 1 1 1");
container->setParameter("border_material", "Core/StatsBlockBorder");
container->setParameter("border_topleft_uv", "0.0000 1.0000 0.0039 0.9961");
container->setParameter("border_top_uv", "0.0039 1.0000 0.9961 0.9961");
container->setParameter("border_topright_uv", "0.9961 1.0000 1.0000 0.9961");
container->setParameter("border_left_uv","0.0000 0.9961 0.0039 0.0039");
container->setParameter("border_right_uv","0.9961 0.9961 1.0000 0.0039");
container->setParameter("border_bottomleft_uv","0.0000 0.0039 0.0039 0.0000");
container->setParameter("border_bottom_uv","0.0039 0.0039 0.9961 0.0000");
container->setParameter("border_bottomright_uv","0.9961 0.0039 1.0000 0.0000");
container->setLeft(5);
container->setTop(5);
return container;
}
示例15: ShadowCameraSetupPtr
//.........这里部分代码省略.........
}
mSceneMgr->setShadowTextureSelfShadow(bDepth ? true : false); //-?
mSceneMgr->setShadowCasterRenderBackFaces((bDepth && !bSoft) ? true : false);
mSceneMgr->setShadowTextureCasterMaterial(bDepth ? "shadowcaster_default" : "");
}
mSceneMgr->setShadowColour(Ogre::ColourValue(0,0,0,1));
#if 0 /// TEST overlays
// add overlay elements to show shadow or terrain maps
OverlayManager& mgr = OverlayManager::getSingleton();
Overlay* overlay = mgr.getByName("DebugOverlay");
if (overlay)
mgr.destroy(overlay);
overlay = mgr.create("DebugOverlay");
TexturePtr tex;
#if 0 /// shadow
for (int i = 0; i < pSet->shadow_count; ++i)
{
TexturePtr tex = mSceneMgr->getShadowTexture(i);
#else /// terrain
for (int i = 0; i < 2/*pSet->shadow_count*/; ++i)
{
TexturePtr tex = !terrain ? mSceneMgr->getShadowTexture(i) :
i==0 ? terrain->getCompositeMap() : terrain->getLightmap();
#endif
// Set up a debug panel to display the shadow
if (MaterialManager::getSingleton().resourceExists("Ogre/DebugTexture" + toStr(i)))
MaterialManager::getSingleton().remove("Ogre/DebugTexture" + toStr(i));
MaterialPtr debugMat = MaterialManager::getSingleton().create(
"Ogre/DebugTexture" + toStr(i), rgDef);
debugMat->getTechnique(0)->getPass(0)->setLightingEnabled(false);
TextureUnitState *t = debugMat->getTechnique(0)->getPass(0)->createTextureUnitState(tex->getName());
t->setTextureAddressingMode(TextureUnitState::TAM_CLAMP);
OverlayContainer* debugPanel;
// destroy container if exists
try
{
if (debugPanel = static_cast<OverlayContainer*>(mgr.getOverlayElement("Ogre/DebugTexPanel" + toStr(i))))
mgr.destroyOverlayElement(debugPanel);
}
catch (Ogre::Exception&) {}
debugPanel = (OverlayContainer*)
(OverlayManager::getSingleton().createOverlayElement("Panel", "Ogre/DebugTexPanel" + StringConverter::toString(i)));
debugPanel->_setPosition(0.8, i*0.31); //aspect.. 0.25 0.24
debugPanel->_setDimensions(0.2, 0.3);
debugPanel->setMaterialName(debugMat->getName());
debugPanel->show();
overlay->add2D(debugPanel);
overlay->show();
}
#endif
UpdPSSMMaterials();
// rebuild static geom after materials change
if (vdrTrack)
{
vdrTrack->destroy();
vdrTrack->build();
}
LogO(String("::: Time Shadows: ") + fToStr(ti.getMilliseconds(),0,3) + " ms");
}
/// . . . . . . . .
void CScene::UpdPSSMMaterials()
{
if (app->pSet->shadow_type == Sh_None) return;
if (app->pSet->shadow_count == 1) // 1 tex
{
float dist = app->pSet->shadow_dist;
sh::Vector3* splits = new sh::Vector3(dist, 0,0); //dist*2, dist*3);
sh::Factory::getInstance().setSharedParameter("pssmSplitPoints", sh::makeProperty<sh::Vector3>(splits));
return;
}
if (!mPSSMSetup.get()) return;
//-- pssm params
PSSMShadowCameraSetup* pssmSetup = static_cast<PSSMShadowCameraSetup*>(mPSSMSetup.get());
const PSSMShadowCameraSetup::SplitPointList& sp = pssmSetup->getSplitPoints();
const int last = sp.size()-1;
sh::Vector3* splits = new sh::Vector3(
sp[std::min(1,last)], sp[std::min(2,last)], sp[std::min(3,last)] );
sh::Factory::getInstance().setSharedParameter("pssmSplitPoints", sh::makeProperty<sh::Vector3>(splits));
}