From 341a4804766abaaeddeb3333333f6d593ef8b91c Mon Sep 17 00:00:00 2001 From: Pavel Rojtberg Date: Tue, 10 Sep 2024 23:06:41 +0200 Subject: [PATCH] Main: RenderWindow - provide default resize impl --- OgreMain/include/OgreRenderWindow.h | 2 +- OgreMain/src/OgreRenderWindow.cpp | 11 +++++++++ .../include/OgreD3D11RenderWindow.h | 2 -- .../Direct3D11/src/OgreD3D11RenderWindow.cpp | 23 ++++--------------- .../Direct3D9/src/OgreD3D9RenderWindow.cpp | 20 ++++------------ .../GLES2/src/EAGL/OgreEAGL2Window.mm | 20 ++++------------ .../GLSupport/include/EGL/OgreEGLWindow.h | 2 -- .../src/EGL/Android/OgreAndroidEGLWindow.cpp | 9 +------- .../Emscripten/OgreEmscriptenEGLWindow.cpp | 17 ++------------ .../src/EGL/WIN32/OgreWin32EGLWindow.cpp | 10 +------- .../src/EGL/Wayland/OgreWaylandEGLWindow.cpp | 6 +---- .../src/EGL/X11/OgreX11EGLWindow.cpp | 7 +----- .../GLSupport/src/GLX/OgreGLXWindow.cpp | 7 +----- .../GLSupport/src/OSX/OgreOSXCocoaWindow.mm | 15 +++--------- .../GLSupport/src/win32/OgreWin32Window.cpp | 11 +-------- .../Metal/src/OgreMetalRenderWindow.mm | 12 +--------- RenderSystems/Tiny/src/OgreTinyWindow.cpp | 3 +-- RenderSystems/Vulkan/src/OgreVulkanWindow.cpp | 7 +----- 18 files changed, 38 insertions(+), 146 deletions(-) diff --git a/OgreMain/include/OgreRenderWindow.h b/OgreMain/include/OgreRenderWindow.h index 8a0b00a41c2..68617c278d3 100644 --- a/OgreMain/include/OgreRenderWindow.h +++ b/OgreMain/include/OgreRenderWindow.h @@ -121,7 +121,7 @@ namespace Ogre /** Alter the size of the window. */ - virtual void resize(unsigned int widthPt, unsigned int heightPt) = 0; + virtual void resize(unsigned int widthPt, unsigned int heightPt); /** Query the current size and position from an external window handle. @note most of the time you already know the size and should call @ref resize instead. diff --git a/OgreMain/src/OgreRenderWindow.cpp b/OgreMain/src/OgreRenderWindow.cpp index ad9170af80b..c64d8ef4f0b 100644 --- a/OgreMain/src/OgreRenderWindow.cpp +++ b/OgreMain/src/OgreRenderWindow.cpp @@ -27,6 +27,7 @@ THE SOFTWARE. */ #include "OgreStableHeaders.h" #include "OgreRenderWindow.h" +#include "OgreViewport.h" namespace Ogre { @@ -36,6 +37,16 @@ namespace Ogre { mAutoDeactivatedOnFocusChange = true; } + void RenderWindow::resize(unsigned int widthPt, unsigned int heightPt) + { + mWidth = widthPt; + mHeight = heightPt; + + // Notify viewports of resize + for (auto it : mViewportList) + it.second->_updateDimensions(); + } + //----------------------------------------------------------------------- void RenderWindow::getMetrics(unsigned int& width, unsigned int& height, int& left, int& top) const diff --git a/RenderSystems/Direct3D11/include/OgreD3D11RenderWindow.h b/RenderSystems/Direct3D11/include/OgreD3D11RenderWindow.h index aa054d7c9c8..af018689b47 100644 --- a/RenderSystems/Direct3D11/include/OgreD3D11RenderWindow.h +++ b/RenderSystems/Direct3D11/include/OgreD3D11RenderWindow.h @@ -90,8 +90,6 @@ namespace Ogre ComPtr _queryDxgiDevice() { ComPtr res; _queryDxgiDeviceImpl(res.GetAddressOf()); return res; } void _queryDxgiDeviceImpl(IDXGIDeviceN** dxgiDevice); // release after use - void _updateViewportsDimensions(); - protected: D3D11Device & mDevice; // D3D11 driver bool mIsExternal; // window not created by Ogre diff --git a/RenderSystems/Direct3D11/src/OgreD3D11RenderWindow.cpp b/RenderSystems/Direct3D11/src/OgreD3D11RenderWindow.cpp index 88bb3353c30..6c8108b239e 100644 --- a/RenderSystems/Direct3D11/src/OgreD3D11RenderWindow.cpp +++ b/RenderSystems/Direct3D11/src/OgreD3D11RenderWindow.cpp @@ -32,7 +32,6 @@ THE SOFTWARE. #include "OgreRoot.h" #include "OgreD3D11DepthBuffer.h" #include "OgreD3D11Texture.h" -#include "OgreViewport.h" #include "OgreLogManager.h" #include "OgreHardwarePixelBuffer.h" #if OGRE_NO_QUAD_BUFFER_STEREO == 0 @@ -222,14 +221,6 @@ namespace Ogre RenderWindow::updateImpl(); } //--------------------------------------------------------------------- - void D3D11RenderWindowBase::_updateViewportsDimensions() - { - // Notify viewports of resize - ViewportList::iterator it = mViewportList.begin(); - while( it != mViewportList.end() ) - (*it++).second->_updateDimensions(); - } - //--------------------------------------------------------------------- void D3D11RenderWindowBase::_queryDxgiDeviceImpl(IDXGIDeviceN** dxgiDevice) { if (mDevice.isNull()) @@ -478,9 +469,7 @@ namespace Ogre } _createSizeDependedD3DResources(); - - // Notify viewports of resize - _updateViewportsDimensions(); + rsys->_setViewport(NULL); // force reset viewport settings rsys->fireDeviceEvent(&mDevice,"RenderWindowResized",this); } //--------------------------------------------------------------------- @@ -522,7 +511,7 @@ namespace Ogre _createSizeDependedD3DResources(); // Notify viewports of resize - _updateViewportsDimensions(); + RenderWindow::resize(mWidth, mHeight); rsys->fireDeviceEvent(&mDevice,"RenderWindowResized",this); } @@ -1063,7 +1052,7 @@ namespace Ogre if ((oldFullscreen && fullScreen) || mIsExternal) { // Notify viewports of resize - _updateViewportsDimensions(); + RenderWindow::resize(mWidth, mHeight); } } } @@ -1716,13 +1705,9 @@ namespace Ogre _destroySizeDependedD3DResources(); - mWidth = width; - mHeight = height; + RenderWindow::resize(width, height); _createSizeDependedD3DResources(); - - // Notify viewports of resize - _updateViewportsDimensions(); } //--------------------------------------------------------------------- void D3D11RenderWindowImageSource::getCustomAttribute( const String& name, void* pData ) diff --git a/RenderSystems/Direct3D9/src/OgreD3D9RenderWindow.cpp b/RenderSystems/Direct3D9/src/OgreD3D9RenderWindow.cpp index 89cdd9b739f..0a8a145bde0 100644 --- a/RenderSystems/Direct3D9/src/OgreD3D9RenderWindow.cpp +++ b/RenderSystems/Direct3D9/src/OgreD3D9RenderWindow.cpp @@ -27,12 +27,10 @@ THE SOFTWARE. */ #include "OgreD3D9RenderWindow.h" #include "OgreLogManager.h" -#include "OgreViewport.h" #include "OgreException.h" #include "OgreD3D9RenderSystem.h" #include "OgreRenderSystem.h" #include "OgreBitwise.h" -#include "OgreImageCodec.h" #include "OgreStringConverter.h" #include "OgreRoot.h" #include "OgreD3D9DeviceManager.h" @@ -434,10 +432,8 @@ namespace Ogre // NB don't use windowMovedOrResized since Win32 doesn't know // about the size change yet mDevice->invalidate(this); - // Notify viewports of resize - ViewportList::iterator it = mViewportList.begin(); - while( it != mViewportList.end() ) - (*it++).second->_updateDimensions(); + + RenderWindow::resize(mWidth, mHeight); } } @@ -918,18 +914,10 @@ namespace Ogre unsigned int width = rc.right - rc.left; unsigned int height = rc.bottom - rc.top; - // Case window resized. if (width != mWidth || height != mHeight) { - mWidth = rc.right - rc.left; - mHeight = rc.bottom - rc.top; - - // Notify viewports of resize - ViewportList::iterator it = mViewportList.begin(); - while( it != mViewportList.end() ) - (*it++).second->_updateDimensions(); - } - + RenderWindow::resize(rc.right - rc.left, rc.bottom - rc.top); + } } //----------------------------------------------------------------------------- void D3D9RenderWindow::updateStats( void ) diff --git a/RenderSystems/GLES2/src/EAGL/OgreEAGL2Window.mm b/RenderSystems/GLES2/src/EAGL/OgreEAGL2Window.mm index f670d0de49d..bf6c9cfbcac 100644 --- a/RenderSystems/GLES2/src/EAGL/OgreEAGL2Window.mm +++ b/RenderSystems/GLES2/src/EAGL/OgreEAGL2Window.mm @@ -33,7 +33,6 @@ of this software and associated documentation files (the "Software"), to deal #include "OgreRoot.h" #include "OgreGLES2RenderSystem.h" #include "OgreGLES2PixelFormat.h" -#include "OgreViewport.h" #include "OgreLogManager.h" #include @@ -129,16 +128,10 @@ of this software and associated documentation files (the "Software"), to deal EAGLContextGuard ctx_guard(mContext->getContext()); mContext->destroyFramebuffer(); - - mWidth = widthPx; - mHeight = heightPx; + + RenderWindow::resize(widthPx, heightPx); mContext->createFramebuffer(); - - for (ViewportList::iterator it = mViewportList.begin(); it != mViewportList.end(); ++it) - { - (*it).second->_updateDimensions(); - } } void EAGL2Window::windowMovedOrResized() @@ -155,17 +148,12 @@ of this software and associated documentation files (the "Software"), to deal EAGLContextGuard ctx_guard(mContext->getContext()); mContext->destroyFramebuffer(); - mWidth = width; - mHeight = height; mLeft = left; mTop = top; - mContext->createFramebuffer(); + RenderWindow::resize(width, height); - for (ViewportList::iterator it = mViewportList.begin(); it != mViewportList.end(); ++it) - { - (*it).second->_updateDimensions(); - } + mContext->createFramebuffer(); } void EAGL2Window::createNativeWindow(uint widthPt, uint heightPt, const NameValuePairList *miscParams) diff --git a/RenderSystems/GLSupport/include/EGL/OgreEGLWindow.h b/RenderSystems/GLSupport/include/EGL/OgreEGLWindow.h index b3780c2e673..cd60b13010b 100644 --- a/RenderSystems/GLSupport/include/EGL/OgreEGLWindow.h +++ b/RenderSystems/GLSupport/include/EGL/OgreEGLWindow.h @@ -66,8 +66,6 @@ namespace Ogre { void create(const String& name, unsigned int width, unsigned int height, bool fullScreen, const NameValuePairList* miscParams) override; - void resize(unsigned int width, unsigned int height) override {} - void setFullscreen (bool fullscreen, uint width, uint height) override; void destroy(void) override; void swapBuffers() override; diff --git a/RenderSystems/GLSupport/src/EGL/Android/OgreAndroidEGLWindow.cpp b/RenderSystems/GLSupport/src/EGL/Android/OgreAndroidEGLWindow.cpp index 8c875176aaa..353497efb66 100644 --- a/RenderSystems/GLSupport/src/EGL/Android/OgreAndroidEGLWindow.cpp +++ b/RenderSystems/GLSupport/src/EGL/Android/OgreAndroidEGLWindow.cpp @@ -35,7 +35,6 @@ THE SOFTWARE. #include "OgreAndroidEGLSupport.h" #include "OgreAndroidEGLWindow.h" -#include "OgreViewport.h" #include @@ -65,13 +64,7 @@ namespace Ogre { if (!mActive || (mWidth == width && mHeight == height)) return; - mWidth = width; - mHeight = height; - - // Notify viewports of resize - ViewportList::iterator it = mViewportList.begin(); - while (it != mViewportList.end()) - (*it++).second->_updateDimensions(); + RenderWindow::resize(width, height); EGLint format; eglGetConfigAttrib(mEglDisplay, mEglConfig, EGL_NATIVE_VISUAL_ID, &format); diff --git a/RenderSystems/GLSupport/src/EGL/Emscripten/OgreEmscriptenEGLWindow.cpp b/RenderSystems/GLSupport/src/EGL/Emscripten/OgreEmscriptenEGLWindow.cpp index 925a5987cf1..6133c670028 100644 --- a/RenderSystems/GLSupport/src/EGL/Emscripten/OgreEmscriptenEGLWindow.cpp +++ b/RenderSystems/GLSupport/src/EGL/Emscripten/OgreEmscriptenEGLWindow.cpp @@ -35,7 +35,6 @@ THE SOFTWARE. #include "OgreEmscriptenEGLSupport.h" #include "OgreEmscriptenEGLWindow.h" -#include "OgreViewport.h" #include #include @@ -68,9 +67,7 @@ namespace Ogre { void EmscriptenEGLWindow::resize(uint width, uint height) { - mWidth = width; - mHeight = height; - + RenderWindow::resize(width, height); EMSCRIPTEN_RESULT result = emscripten_set_canvas_element_size(mCanvasSelector.c_str(), width, height); // This is a workaroud for issue: https://github.com/emscripten-core/emscripten/issues/3283. @@ -86,11 +83,6 @@ namespace Ogre { LogManager::getSingleton().logMessage("EmscriptenEGLWindow::resize "+mCanvasSelector+" w:" + Ogre::StringConverter::toString(mWidth) + " h:" + Ogre::StringConverter::toString(mHeight)); - - // Notify viewports of resize - ViewportList::iterator it = mViewportList.begin(); - while( it != mViewportList.end() ) - (*it++).second->_updateDimensions(); } void EmscriptenEGLWindow::windowMovedOrResized() @@ -99,13 +91,8 @@ namespace Ogre { int w, h; emscripten_get_canvas_element_size(mCanvasSelector.c_str(), &w, &h); - mWidth = w; - mHeight = h; - // Notify viewports of resize - ViewportList::iterator it = mViewportList.begin(); - while( it != mViewportList.end() ) - (*it++).second->_updateDimensions(); + RenderWindow::resize(w, h); } void EmscriptenEGLWindow::switchFullScreen(bool fullscreen) diff --git a/RenderSystems/GLSupport/src/EGL/WIN32/OgreWin32EGLWindow.cpp b/RenderSystems/GLSupport/src/EGL/WIN32/OgreWin32EGLWindow.cpp index fde8548886d..4cd9f9f0a5a 100644 --- a/RenderSystems/GLSupport/src/EGL/WIN32/OgreWin32EGLWindow.cpp +++ b/RenderSystems/GLSupport/src/EGL/WIN32/OgreWin32EGLWindow.cpp @@ -31,8 +31,6 @@ THE SOFTWARE. #include "OgreLogManager.h" #include "OgreStringConverter.h" -#include "OgreViewport.h" - #include "OgreWin32EGLSupport.h" #include "OgreWin32EGLWindow.h" @@ -265,13 +263,7 @@ namespace Ogre { // Case window resized. if (width != mWidth || height != mHeight) { - mWidth = rc.right - rc.left; - mHeight = rc.bottom - rc.top; - - // Notify viewports of resize - ViewportList::iterator it = mViewportList.begin(); - while( it != mViewportList.end() ) - (*it++).second->_updateDimensions(); + RenderWindow::resize(width, height); } } diff --git a/RenderSystems/GLSupport/src/EGL/Wayland/OgreWaylandEGLWindow.cpp b/RenderSystems/GLSupport/src/EGL/Wayland/OgreWaylandEGLWindow.cpp index 34c9551a1ed..851e54e7b42 100644 --- a/RenderSystems/GLSupport/src/EGL/Wayland/OgreWaylandEGLWindow.cpp +++ b/RenderSystems/GLSupport/src/EGL/Wayland/OgreWaylandEGLWindow.cpp @@ -7,7 +7,6 @@ #include "OgreLogManager.h" #include "OgreRoot.h" #include "OgreStringConverter.h" -#include "OgreViewport.h" #include "OgreWaylandEGLSupport.h" #include "OgreWaylandEGLWindow.h" @@ -92,11 +91,8 @@ void WaylandEGLWindow::resize(uint width, uint height) if (mWindow) { wl_egl_window_resize(mWindow, width, height, 0, 0); - mWidth = width; - mHeight = height; - for (auto& it : mViewportList) - it.second->_updateDimensions(); + RenderWindow::resize(width, height); wl_surface_damage(mWlSurface, 0, 0, mWidth, mHeight); wl_surface_commit(mWlSurface); diff --git a/RenderSystems/GLSupport/src/EGL/X11/OgreX11EGLWindow.cpp b/RenderSystems/GLSupport/src/EGL/X11/OgreX11EGLWindow.cpp index ffcb99af8ce..c3249bf2d0d 100644 --- a/RenderSystems/GLSupport/src/EGL/X11/OgreX11EGLWindow.cpp +++ b/RenderSystems/GLSupport/src/EGL/X11/OgreX11EGLWindow.cpp @@ -30,7 +30,6 @@ THE SOFTWARE. #include "OgreException.h" #include "OgreLogManager.h" #include "OgreStringConverter.h" -#include "OgreViewport.h" #include "OgreX11EGLSupport.h" #include "OgreX11EGLWindow.h" @@ -187,11 +186,7 @@ namespace Ogre { XFlush(mGLSupport->getNativeDisplay()); } - mWidth = width; - mHeight = height; - - for (auto & it : mViewportList) - it.second->_updateDimensions(); + RenderWindow::resize(width, height); } } diff --git a/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp b/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp index 14a10b3f760..c6ad14a29c7 100644 --- a/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp +++ b/RenderSystems/GLSupport/src/GLX/OgreGLXWindow.cpp @@ -33,7 +33,6 @@ #include "OgreException.h" #include "OgreLogManager.h" #include "OgreStringConverter.h" -#include "OgreViewport.h" #include "OgreGLXContext.h" #include "OgreGLXGLSupport.h" @@ -465,11 +464,7 @@ namespace Ogre XFlush(mGLSupport->getXDisplay()); } - mWidth = width; - mHeight = height; - - for (ViewportList::iterator it = mViewportList.begin(); it != mViewportList.end(); ++it) - (*it).second->_updateDimensions(); + RenderWindow::resize(width, height); } } diff --git a/RenderSystems/GLSupport/src/OSX/OgreOSXCocoaWindow.mm b/RenderSystems/GLSupport/src/OSX/OgreOSXCocoaWindow.mm index 36004c4f72c..269a2a177ed 100644 --- a/RenderSystems/GLSupport/src/OSX/OgreOSXCocoaWindow.mm +++ b/RenderSystems/GLSupport/src/OSX/OgreOSXCocoaWindow.mm @@ -37,7 +37,6 @@ of this software and associated documentation files (the "Software"), to deal #import #import #import -#import "OgreViewport.h" #import @implementation OgreGLWindow @@ -531,8 +530,7 @@ - (BOOL)acceptsFirstResponder if(mWidth == widthPx && mHeight == heightPx) return; - mWidth = widthPx; - mHeight = heightPx; + RenderWindow::resize(widthPx, heightPx); if(mIsExternal) { @@ -563,10 +561,6 @@ - (BOOL)acceptsFirstResponder } //make sure the context is current NSOpenGLContextGuard ctx_guard(mGLContext); - for (ViewportList::iterator it = mViewportList.begin(); it != mViewportList.end(); ++it) - { - (*it).second->_updateDimensions(); - } [mGLContext update]; } @@ -592,15 +586,12 @@ - (BOOL)acceptsFirstResponder mLeft = _getPixelFromPoint((int)leftPt); mTop = _getPixelFromPoint((int)topPt); + RenderWindow::resize(mWidth, mHeight); + mWindowOriginPt = NSMakePoint(leftPt, topPt); //make sure the context is current NSOpenGLContextGuard ctx_guard(mGLContext); - - for (ViewportList::iterator it = mViewportList.begin(); it != mViewportList.end(); ++it) - { - (*it).second->_updateDimensions(); - } [mGLContext update]; } diff --git a/RenderSystems/GLSupport/src/win32/OgreWin32Window.cpp b/RenderSystems/GLSupport/src/win32/OgreWin32Window.cpp index f543825661d..db199251aab 100644 --- a/RenderSystems/GLSupport/src/win32/OgreWin32Window.cpp +++ b/RenderSystems/GLSupport/src/win32/OgreWin32Window.cpp @@ -31,10 +31,8 @@ THE SOFTWARE. #endif #include "OgreWin32Window.h" #include "OgreRoot.h" -#include "OgreViewport.h" #include "OgreLogManager.h" #include "OgreRenderSystem.h" -#include "OgreImageCodec.h" #include "OgreStringConverter.h" #include "OgreException.h" #include "OgreWin32GLSupport.h" @@ -751,16 +749,9 @@ namespace Ogre { unsigned int width = rc.right - rc.left; unsigned int height = rc.bottom - rc.top; - // Case window resized. if (width != mWidth || height != mHeight) { - mWidth = rc.right - rc.left; - mHeight = rc.bottom - rc.top; - - // Notify viewports of resize - ViewportList::iterator it = mViewportList.begin(); - while( it != mViewportList.end() ) - (*it++).second->_updateDimensions(); + RenderWindow::resize(rc.right - rc.left, rc.bottom - rc.top); } } diff --git a/RenderSystems/Metal/src/OgreMetalRenderWindow.mm b/RenderSystems/Metal/src/OgreMetalRenderWindow.mm index a10f519935e..a313e9b32de 100644 --- a/RenderSystems/Metal/src/OgreMetalRenderWindow.mm +++ b/RenderSystems/Metal/src/OgreMetalRenderWindow.mm @@ -29,7 +29,6 @@ of this software and associated documentation files (the "Software"), to deal #include "OgreMetalRenderWindow.h" #include "OgreMetalMappings.h" #include "OgreMetalRenderSystem.h" -#include "OgreViewport.h" namespace Ogre { @@ -113,8 +112,7 @@ of this software and associated documentation files (the "Software"), to deal if( mWidth != mMetalLayer.drawableSize.width || mHeight != mMetalLayer.drawableSize.height ) { - mWidth = mMetalLayer.drawableSize.width; - mHeight = mMetalLayer.drawableSize.height; + RenderWindow::resize(mMetalLayer.drawableSize.width, mMetalLayer.drawableSize.height); if( mFSAA > 1 && mWidth > 0 && mHeight > 0 ) { @@ -133,14 +131,6 @@ of this software and associated documentation files (the "Software"), to deal } detachDepthBuffer(); - - ViewportList::iterator itor = mViewportList.begin(); - ViewportList::iterator end = mViewportList.end(); - while( itor != end ) - { - (*itor).second->_updateDimensions(); - ++itor; - } } } diff --git a/RenderSystems/Tiny/src/OgreTinyWindow.cpp b/RenderSystems/Tiny/src/OgreTinyWindow.cpp index 5744535afcf..d221f9d9fe8 100644 --- a/RenderSystems/Tiny/src/OgreTinyWindow.cpp +++ b/RenderSystems/Tiny/src/OgreTinyWindow.cpp @@ -37,9 +37,8 @@ void TinyWindow::create(const String& name, uint width, uint height, void TinyWindow::resize(uint width, uint height) { - mWidth = width; - mHeight = height; mBuffer.create(PF_BYTE_RGB, width, height); + RenderWindow::resize(width, height); } void TinyWindow::swapBuffers() diff --git a/RenderSystems/Vulkan/src/OgreVulkanWindow.cpp b/RenderSystems/Vulkan/src/OgreVulkanWindow.cpp index 1a522d264e0..47b428ca007 100644 --- a/RenderSystems/Vulkan/src/OgreVulkanWindow.cpp +++ b/RenderSystems/Vulkan/src/OgreVulkanWindow.cpp @@ -37,7 +37,6 @@ THE SOFTWARE. #include "OgrePixelFormat.h" #include "OgreVulkanTextureGpuManager.h" #include "OgreHardwarePixelBuffer.h" -#include "OgreViewport.h" #if OGRE_PLATFORM == OGRE_PLATFORM_ANDROID #include #elif OGRE_PLATFORM == OGRE_PLATFORM_WIN32 @@ -315,16 +314,12 @@ namespace Ogre if (width != 0 && height != 0) { - mWidth = width; - mHeight = height; + RenderWindow::resize(width, height); // recreate swapchain mDevice->stall(); destroySwapchain(); createSwapchain(); - - for (auto it : mViewportList) - it.second->_updateDimensions(); } }