-// 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
// 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 WNT
+#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
WId winId )
{
Aspect_Handle aWindowHandle = (Aspect_Handle)winId;
-#ifdef WNT
+#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 );
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 WNT
+#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
}