From 0ec9a9492f9665166e303a64768ba0b9eb254db4 Mon Sep 17 00:00:00 2001 From: James Turner Date: Tue, 24 May 2011 23:56:44 +0100 Subject: [PATCH] Minor cleanup of resize() handler, while tracing down an OS-X Windowing issue. --- src/Main/renderer.cxx | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/src/Main/renderer.cxx b/src/Main/renderer.cxx index 7dfe81f3f..72f7b4dad 100644 --- a/src/Main/renderer.cxx +++ b/src/Main/renderer.cxx @@ -772,7 +772,6 @@ FGRenderer::update( bool refresh_camera_settings ) { // Handle new window size or exposure void FGRenderer::resize( int width, int height ) { - int view_h = height; // the following breaks aspect-ratio of the main 3D scenery window when 2D panels are moved // in y direction - causing issues for aircraft with 2D panels (/sim/virtual_cockpit=false). @@ -782,20 +781,26 @@ FGRenderer::resize( int width, int height ) { // view_h = (int)(height * (globals->get_current_panel()->getViewHeight() - // globals->get_current_panel()->getYOffset()) / 768.0); // } - static int lastwidth = 0; - static int lastheight = 0; - if (width != lastwidth) - _xsize->setIntValue(lastwidth = width); - if (height != lastheight) - _ysize->setIntValue(lastheight = height); + + int curWidth = _xsize->getIntValue(), + curHeight = _ysize->getIntValue(); + + if ((width == curWidth) && (height == curHeight)) { + return; + } + + SG_LOG(SG_GENERAL, SG_INFO, "renderer resized to " << width << "," << height); + + _xsize->setIntValue(width); + _ysize->setIntValue(height); + double aspect = height / (double) width; // for all views FGViewMgr *viewmgr = globals->get_viewmgr(); if (viewmgr) { - for ( int i = 0; i < viewmgr->size(); ++i ) { - viewmgr->get_view(i)-> - set_aspect_ratio((float)view_h / (float)width); - } + for ( int i = 0; i < viewmgr->size(); ++i ) { + viewmgr->get_view(i)->set_aspect_ratio(aspect); + } } } -- 2.39.5