1 // Created on: 2011-10-20
2 // Created by: Sergey ZERCHANINOV
3 // Copyright (c) 2011-2012 OPEN CASCADE SAS
5 // The content of this file is subject to the Open CASCADE Technology Public
6 // License Version 6.5 (the "License"). You may not use the content of this file
7 // except in compliance with the License. Please obtain a copy of the License
8 // at http://www.opencascade.org and read it completely before using this file.
10 // The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
11 // main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13 // The Original Code and all software distributed under the License is
14 // distributed on an "AS IS" basis, without warranty of any kind, and the
15 // Initial Developer hereby disclaims all such warranties, including without
16 // limitation, any warranties of merchantability, fitness for a particular
17 // purpose or non-infringement. Please see the License for the specific terms
18 // and conditions governing the rights and limitations under the License.
21 #include <OpenGl_GraphicDriver.hxx>
23 #include <Standard_ErrorHandler.hxx>
24 #include <Standard_Failure.hxx>
26 #include <OpenGl_CView.hxx>
27 #include <OpenGl_Display.hxx>
29 //=======================================================================
32 //=======================================================================
34 Standard_Boolean OpenGl_GraphicDriver::Begin (const Standard_CString ADisplay)
38 openglDisplay = new OpenGl_Display(ADisplay);
41 catch (Standard_Failure)
44 return Standard_False;
47 //=======================================================================
50 //=======================================================================
52 Standard_Boolean OpenGl_GraphicDriver::Begin (const Aspect_Display ADisplay)
56 openglDisplay = new OpenGl_Display(ADisplay);
59 catch (Standard_Failure)
62 return Standard_False;
65 //=======================================================================
68 //=======================================================================
70 void OpenGl_GraphicDriver::End ()
72 // This is unsafe to realease global object here
73 // because noone guaranteed that only one instance of OpenGl_GraphicDriver is used!
74 // So we disable this destructor here until openglDisplay not moved to OpenGl_GraphicDriver class definition.
75 ///openglDisplay.Nullify();
78 //=======================================================================
79 //function : BeginAnimation
81 //=======================================================================
83 void OpenGl_GraphicDriver::BeginAnimation (const Graphic3d_CView& ACView)
85 const OpenGl_CView *aCView = (const OpenGl_CView *)ACView.ptrView;
88 const Standard_Boolean UpdateAM = (ACView.IsDegenerates && !ACView.IsDegeneratesPrev) || (!ACView.IsDegenerates && ACView.IsDegeneratesPrev);
89 aCView->WS->BeginAnimation(ACView.IsDegenerates != 0,UpdateAM);
90 ((Graphic3d_CView*)(&ACView))->IsDegeneratesPrev = ACView.IsDegenerates; //szvgl: temporary
94 //=======================================================================
95 //function : EndAnimation
97 //=======================================================================
99 void OpenGl_GraphicDriver::EndAnimation (const Graphic3d_CView& ACView)
101 const OpenGl_CView *aCView = (const OpenGl_CView *)ACView.ptrView;
103 aCView->WS->EndAnimation();