0023035: TKOpenGl redesign regression caused by destruction of global OpenGl_Display...
authorkgv <kgv@opencascade.com>
Thu, 22 Mar 2012 10:30:31 +0000 (14:30 +0400)
committerkgv <kgv@opencascade.com>
Mon, 26 Mar 2012 11:56:09 +0000 (15:56 +0400)
Do not destroy global openglDisplay instance

src/OpenGl/OpenGl_GraphicDriver_1.cxx
src/OpenGl/OpenGl_telem_view.cxx

index 9189043..fb963ab 100755 (executable)
@@ -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();
 }
 
 //=======================================================================
index e5075f5..c751245 100644 (file)
@@ -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 )