Salome HOME
Upgrade to paraview 5.4
[modules/gui.git] / src / OCCViewer / OCCViewer_VService.cxx
old mode 100755 (executable)
new mode 100644 (file)
index fe2a8a6..a9cd79f
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -6,7 +6,7 @@
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 #include <V3d_Viewer.hxx>
 #include <V3d_View.hxx>
 
-#include <Aspect_DisplayConnection.hxx>
+#include <Basics_OCCTVersion.hxx>
+#if OCC_VERSION_LARGE > 0x06070200 // for OCC-6.7.3 and higher version
+#include <OpenGl_GraphicDriver.hxx>
+#else
 #include <Graphic3d.hxx>
 #include <Graphic3d_GraphicDriver.hxx>
-#ifdef WIN32
+#endif
+#include <Aspect_DisplayConnection.hxx>
+
+#if defined(WIN32)
 #include <WNT_Window.hxx>
+#elif defined(__APPLE__)
+#include <Cocoa_Window.hxx>
 #else
 #include <Xw_Window.hxx>
 #endif
@@ -41,8 +49,10 @@ Handle(Aspect_Window) OCCViewer_VService::CreateWindow( const Handle(V3d_View)&
                                                        WId winId )
 {
   Aspect_Handle aWindowHandle = (Aspect_Handle)winId;
-#ifdef WIN32
+#if defined(WIN32)
   Handle(WNT_Window) viewWindow = new WNT_Window( aWindowHandle );
+#elif defined(__APPLE__)
+  Handle(Cocoa_Window) viewWindow = new Cocoa_Window( (NSView*)winId );
 #else
   Handle(Aspect_DisplayConnection) aDispConnection = view->Viewer()->Driver()->GetDisplayConnection();
   Handle(Xw_Window) viewWindow = new Xw_Window( aDispConnection, aWindowHandle );
@@ -61,19 +71,38 @@ Handle(V3d_Viewer) OCCViewer_VService::CreateViewer( const Standard_ExtString na
                                                     const Standard_Boolean computedMode,
                                                     const Standard_Boolean defaultComputedMode )
 {
+#if OCC_VERSION_LARGE > 0x06070200 // for OCC-6.7.3 and higher version
+  static Handle(OpenGl_GraphicDriver) aGraphicDriver;
+#else
   static Handle(Graphic3d_GraphicDriver) aGraphicDriver;
+#endif
   if (aGraphicDriver.IsNull())
   {
     Handle(Aspect_DisplayConnection) aDisplayConnection;
-#ifndef WIN32
+#if !defined WIN32 && !defined __APPLE__
     aDisplayConnection = new Aspect_DisplayConnection( displayName );
 #else
     aDisplayConnection = new Aspect_DisplayConnection();
 #endif
+#if OCC_VERSION_LARGE > 0x06070200 // for OCC-6.7.3 and higher version
+    aGraphicDriver = new OpenGl_GraphicDriver(aDisplayConnection);
+#else
     aGraphicDriver = Graphic3d::InitGraphicDriver( aDisplayConnection );
+#endif
   }
 
+#if OCC_VERSION_LARGE > 0x07010001
+  return new V3d_Viewer( aGraphicDriver, name, domain, viewSize, viewProjection,
+                        Quantity_NOC_GRAY30, V3d_ZBUFFER, V3d_GOURAUD,
+                        computedMode, defaultComputedMode );
+  
+#elif OCC_VERSION_LARGE > 0x07000000
+  return new V3d_Viewer( aGraphicDriver, name, domain, viewSize, viewProjection,
+                        Quantity_NOC_GRAY30, V3d_ZBUFFER, V3d_GOURAUD, V3d_WAIT,
+                        computedMode, defaultComputedMode );  
+#else
   return new V3d_Viewer( aGraphicDriver, name, domain, viewSize, viewProjection,
                         Quantity_NOC_GRAY30, V3d_ZBUFFER, V3d_GOURAUD, V3d_WAIT,
                         computedMode, defaultComputedMode, V3d_TEX_NONE );
+#endif
 }