From c825acd69f9c3b7cf118a2922687f48157214dda Mon Sep 17 00:00:00 2001 From: Mark Vejvoda Date: Sun, 17 Nov 2013 08:01:45 +0000 Subject: [PATCH] - bugfix for g3d viewer to work in wxwidgets 2.9.4 --- source/g3d_viewer/main.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/source/g3d_viewer/main.cpp b/source/g3d_viewer/main.cpp index a847dc44..7a5936fb 100644 --- a/source/g3d_viewer/main.cpp +++ b/source/g3d_viewer/main.cpp @@ -602,8 +602,16 @@ void MainWindow::onPaint(wxPaintEvent &event) { // notice that we use GetSize() here and not GetClientSize() because // the latter doesn't return correct results for the minimized windows // (at least not under Windows) + +#if defined(WIN32) int viewportW = GetClientSize().x; int viewportH = GetClientSize().y; +#else + int viewportW = GetSize().x; + int viewportH = GetSize().y; +#endif + + printf("%d x %d\n",viewportW,viewportH); #if defined(WIN32) renderer->reset(viewportW, viewportH, playerColor); @@ -611,6 +619,8 @@ void MainWindow::onPaint(wxPaintEvent &event) { renderer->reset(viewportW, viewportH, playerColor); #endif + + renderer->transform(rotX, rotY, zoom); renderer->renderGrid(); @@ -636,7 +646,7 @@ void MainWindow::onPaint(wxPaintEvent &event) { bool haveLoadedParticles = (particleProjectilePathList.empty() == false || particleSplashPathList.empty() == false); - if(autoScreenShotAndExit == true) { + if(autoScreenShotAndExit == true && viewportW > 0 && viewportH > 0) { printf("Auto exiting app...\n"); fflush(stdout); @@ -648,6 +658,9 @@ void MainWindow::onPaint(wxPaintEvent &event) { glCanvas->SwapBuffers(); + if(autoScreenShotAndExit == true && viewportW == 0 && viewportH == 0) { + return; + } if((modelPathList.empty() == false) && resetAnimation && haveLoadedParticles) { if(anim >= resetAnim && resetAnim > 0) { printf("RESETTING EVERYTHING [%f][%f]...\n",anim,resetAnim);