From 0003c4b2875da273de3e5058ae369f37a01c0ca7 Mon Sep 17 00:00:00 2001 From: kgv Date: Thu, 22 Mar 2012 14:30:31 +0400 Subject: [PATCH] 0023035: TKOpenGl redesign regression caused by destruction of global OpenGl_Display instance Do not destroy global openglDisplay instance --- src/OpenGl/OpenGl_GraphicDriver_1.cxx | 5 ++++- src/OpenGl/OpenGl_telem_view.cxx | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/OpenGl/OpenGl_GraphicDriver_1.cxx b/src/OpenGl/OpenGl_GraphicDriver_1.cxx index 9189043108..fb963ab952 100755 --- a/src/OpenGl/OpenGl_GraphicDriver_1.cxx +++ b/src/OpenGl/OpenGl_GraphicDriver_1.cxx @@ -69,7 +69,10 @@ Standard_Boolean OpenGl_GraphicDriver::Begin (const Aspect_Display ADisplay) void OpenGl_GraphicDriver::End () { - openglDisplay.Nullify(); + // This is unsafe to realease global object here + // because noone guaranteed that only one instance of OpenGl_GraphicDriver is used! + // So we disable this destructor here until openglDisplay not moved to OpenGl_GraphicDriver class definition. + ///openglDisplay.Nullify(); } //======================================================================= diff --git a/src/OpenGl/OpenGl_telem_view.cxx b/src/OpenGl/OpenGl_telem_view.cxx index e5075f5589..c751245f82 100644 --- a/src/OpenGl/OpenGl_telem_view.cxx +++ b/src/OpenGl/OpenGl_telem_view.cxx @@ -85,7 +85,7 @@ EvalViewMappingMatrix( tel_view_mapping mapping /* View Mapping */, } /* prp between front and back planes */ - if (!openglDisplay.IsNull() || !openglDisplay->Walkthrough()) + if (openglDisplay.IsNull() || !openglDisplay->Walkthrough()) { if( mapping->prp[2] < mapping->fpd && mapping->prp[2] > mapping->bpd )