//--------------------------------------------------------------------- void OverlayManager::_queueOverlaysForRendering(Camera* cam, RenderQueue* pQueue, Viewport* vp) { // Flag for update pixel-based GUIElements if viewport has changed dimensions if (mLastViewportWidth != vp->getActualWidth() || mLastViewportHeight != vp->getActualHeight()) { mViewportDimensionsChanged = true; mLastViewportWidth = vp->getActualWidth(); mLastViewportHeight = vp->getActualHeight(); } else { mViewportDimensionsChanged = false; } OverlayMap::iterator i, iend; iend = mOverlayMap.end(); for (i = mOverlayMap.begin(); i != iend; ++i) { Overlay* o = i->second; o->_findVisibleObjects(cam, pQueue); } }
//--------------------------------------------------------------------- void OverlayManager::_queueOverlaysForRendering(Camera* cam, RenderQueue* pQueue, Viewport* vp) { bool orientationModeChanged = false; #if OGRE_NO_VIEWPORT_ORIENTATIONMODE == 0 orientationModeChanged = (mLastViewportOrientationMode != vp->getOrientationMode()); #endif // Flag for update pixel-based GUIElements if viewport has changed dimensions if (mLastViewportWidth != vp->getActualWidth() || mLastViewportHeight != vp->getActualHeight() || orientationModeChanged) { mViewportDimensionsChanged = true; #if OGRE_NO_VIEWPORT_ORIENTATIONMODE == 0 mLastViewportOrientationMode = vp->getOrientationMode(); #endif mLastViewportWidth = vp->getActualWidth(); mLastViewportHeight = vp->getActualHeight(); } else { mViewportDimensionsChanged = false; } OverlayMap::iterator i, iend; iend = mOverlayMap.end(); for (i = mOverlayMap.begin(); i != iend; ++i) { Overlay* o = i->second; #if OGRE_NO_VIEWPORT_ORIENTATIONMODE == 0 if (orientationModeChanged) { // trick to trigger transform update of the overlay o->scroll(0.f, 0.f); } #endif o->_findVisibleObjects(cam, pQueue); } }