diff options
author | don bright <hugh.m.bright@gmail.com> | 2013-09-15 06:04:43 (GMT) |
---|---|---|
committer | don bright <hugh.m.bright@gmail.com> | 2013-09-15 06:04:43 (GMT) |
commit | a36b5f740ac4af8907db9dccb3e37df0c32dc2c0 (patch) | |
tree | eb55a1a071a5258d28672f4a0412b300e8129414 /src | |
parent | b779d6a93b67d3b8bdc7e55e4b308d968b55f680 (diff) |
fix issue with gcc 4.4.5. pointer to renderer in export_png segfaulted
worked fine in clang
Diffstat (limited to 'src')
-rw-r--r-- | src/export_png.cc | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/export_png.cc b/src/export_png.cc index 744d681..6d64d65 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 ); |