From a36b5f740ac4af8907db9dccb3e37df0c32dc2c0 Mon Sep 17 00:00:00 2001 From: don bright Date: Sun, 15 Sep 2013 08:04:43 +0200 Subject: [PATCH] fix issue with gcc 4.4.5. pointer to renderer in export_png segfaulted worked fine in clang --- src/export_png.cc | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/export_png.cc b/src/export_png.cc index 744d6817..6d64d650 100644 --- a/src/export_png.cc +++ b/src/export_png.cc @@ -70,16 +70,10 @@ void export_png_preview_common( Tree &tree, Camera &cam, std::ostream &output, P return; } - Renderer *renderer; - if ( previewer == OPENCSG ) { #ifdef ENABLE_OPENCSG - OpenCSGRenderer openCSGRenderer(csgInfo.root_chain, csgInfo.highlights_chain, csgInfo.background_chain, csgInfo.glview->shaderinfo); - renderer = &openCSGRenderer; + OpenCSGRenderer openCSGRenderer(csgInfo.root_chain, csgInfo.highlights_chain, csgInfo.background_chain, csgInfo.glview->shaderinfo); #endif - } else { - ThrownTogetherRenderer thrownTogetherRenderer( csgInfo.root_chain, csgInfo.highlights_chain, csgInfo.background_chain ); - renderer = &thrownTogetherRenderer; - } + ThrownTogetherRenderer thrownTogetherRenderer( csgInfo.root_chain, csgInfo.highlights_chain, csgInfo.background_chain ); if (cam.type == Camera::NONE) { cam.type = Camera::VECTOR; @@ -94,7 +88,10 @@ void export_png_preview_common( Tree &tree, Camera &cam, std::ostream &output, P } csgInfo.glview->setCamera( cam ); - csgInfo.glview->setRenderer( renderer ); + if ( previewer == OPENCSG ) + csgInfo.glview->setRenderer( &openCSGRenderer ); + else + csgInfo.glview->setRenderer( &thrownTogetherRenderer ); #ifdef ENABLE_OPENCSG OpenCSG::setContext( 0 ); OpenCSG::setOption( OpenCSG::OffscreenSetting, OpenCSG::FrameBufferObject );