]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Patch for MacOS (from SALOME forum)
authorvsr <vsr@opencascade.com>
Fri, 20 Jan 2017 12:43:08 +0000 (15:43 +0300)
committervsr <vsr@opencascade.com>
Fri, 20 Jan 2017 12:43:08 +0000 (15:43 +0300)
33 files changed:
src/CAM/CAM_Application.cxx
src/GLViewer/CMakeLists.txt
src/GLViewer/GLViewer_BaseDrawers.cxx
src/GLViewer/GLViewer_Context.h
src/GLViewer/GLViewer_Drawer.cxx
src/GLViewer/GLViewer_Drawer.h
src/GLViewer/GLViewer_Grid.h
src/GLViewer/GLViewer_Object.h
src/GLViewer/GLViewer_Text.h
src/GLViewer/GLViewer_Tools.cxx
src/GLViewer/GLViewer_ViewPort.cxx
src/GLViewer/GLViewer_ViewPort2d.h
src/GLViewer/GLViewer_Viewer2d.h
src/LightApp/LightApp_Application.cxx
src/OCCViewer/OCCViewer_Trihedron.cxx
src/OCCViewer/OCCViewer_VService.cxx
src/OCCViewer/OCCViewer_ViewPort.cxx
src/OCCViewer/OCCViewer_ViewWindow.cxx
src/OpenGLUtils/OpenGLUtils_FrameBuffer.cxx
src/OpenGLUtils/OpenGLUtils_FrameBuffer.h
src/Qtx/Qtx.cxx
src/SALOME_PY/SalomePy.cxx
src/SALOME_PYQT/SalomePyQt/CMakeLists.txt
src/SUITApp/SUITApp_Application.cxx
src/SVTK/SVTK_RenderWindowInteractor.cxx
src/SVTK/SVTK_RenderWindowInteractor.h
src/SVTK/SVTK_SpaceMouse.cxx
src/SVTK/SVTK_SpaceMouse.h
src/SVTK/SVTK_ViewWindow.cxx
src/Session/SALOME_Session_Server.cxx
src/VTKViewer/VTKViewer_PolyDataMapper.cxx
src/VTKViewer/VTKViewer_PolyDataMapper.h
src/VTKViewer/VTKViewer_RenderWindow.cxx

index a8603ec1f358f72eab8f0669b0ef0addac5700b5..59a7f7ed82a5886bc30d9bbfcc00abb42cb586af 100755 (executable)
@@ -771,8 +771,10 @@ void CAM_Application::readModuleList()
     if ( !modLibrary.isEmpty() )
     {
       modLibrary = SUIT_Tools::file( modLibrary.trimmed() );
-#ifdef WIN32
+#if defined(WIN32)
       QString libExt = QString( "dll" );
+#elif defined(__APPLE__)
+      QString libExt = QString( "dylib" );
 #else
       QString libExt = QString( "so" );
 #endif
index 2198d7eb45e4e3593c9dca30063452f161d95a54..9d0e36c57c3044fd629632512d2a27f053b287f7 100755 (executable)
@@ -33,7 +33,7 @@ ADD_DEFINITIONS(${CAS_DEFINITIONS} ${QT_DEFINITIONS})
 
 # libraries to link to
 SET(_link_LIBRARIES ${QT_LIBRARIES} ${CAS_KERNEL} ${OPENGL_LIBRARIES} qtx suit)
-IF(NOT WIN32)
+IF(NOT (WIN32 OR APPLE))
   LIST(APPEND _link_LIBRARIES Xmu)
 ENDIF()
 
index cd27c7f04fc98f36600177f8be7903d09f719680..f675e769ef2a40f26e61f415396ca9a4db0d8bfb 100644 (file)
@@ -34,8 +34,7 @@
 // Qt includes
 #include <QColor>
 
-
-#ifndef WIN32
+#if !defined(WIN32) && !defined(__APPLE__)
 #include <GL/glx.h>
 #endif
 
index 498ef3f22f16d6bc5406fd61ac91f39c41b273ec..aa31fd70960ad0a828e6f66692dd8f1ca6f45238 100644 (file)
@@ -39,7 +39,11 @@ class QRect;
 #include <Quantity_NameOfColor.hxx>
 #include <Quantity_Color.hxx>
 
+#ifdef __APPLE__
+#include <OpenGL/gl.h>
+#else
 #include <GL/gl.h>
+#endif
 
 class GLViewer_Viewer2d;
 
index 089d8a8109c809a48852c99747aa7a12feb2b5c7..13d5e8acbef14f0b6bbaffb3abc2e4e93ceba5ec 100644 (file)
@@ -36,7 +36,9 @@
 #include <QPainter>
 #include <QFile>
 
-#ifndef WIN32
+#if defined(__APPLE__)
+#include <OpenGL/CGLCurrent.h>
+#elif !defined(WIN32)
 #include <GL/glx.h>
 #endif
 
@@ -377,7 +379,7 @@ static GLuint displayListBase( QFont* theFont )
   aFindFont.myIsUndl = theFont->underline();
   aFindFont.myPointSize = theFont->pointSize();
 
-#ifdef WIN32
+#if defined(WIN32)
   HGLRC ctx = ::wglGetCurrentContext();
   if ( !ctx )
     return aList;  
@@ -406,6 +408,33 @@ static GLuint displayListBase( QFont* theFont )
     aList = listBase;
     GLViewer_TexFont::BitmapFontCache[aFindFont] = aList;
   }
+#elif defined(__APPLE__)
+  CGLContextObj ctx = ::CGLGetCurrentContext();
+  if ( !ctx )
+    return aList;
+
+  aFindFont.myViewPortId = (long)ctx;
+
+  if ( GLViewer_TexFont::BitmapFontCache.contains( aFindFont ) )
+    aList = GLViewer_TexFont::BitmapFontCache[aFindFont];
+  else
+  {
+    GLuint listBase = 0;
+    QMap<GLViewer_TexFindId, GLuint>::iterator it = GLViewer_TexFont::BitmapFontCache.begin();
+    for ( ; it != GLViewer_TexFont::BitmapFontCache.end(); ++it )
+    {
+      if ( it.key().myViewPortId == (long)ctx && it.value() > listBase )
+        listBase = it.value();
+    }
+    listBase += 256;
+
+    //HDC glHdc = ::wglGetCurrentDC();
+    //::SelectObject( glHdc, theFont->handle() );
+    //if ( !::wglUseFontBitmaps( glHdc, 0, 256, listBase ) )
+    //  listBase = 0;
+    aList = listBase;
+    GLViewer_TexFont::BitmapFontCache[aFindFont] = aList;
+  }
 #else //X Window
   Display* aDisp = glXGetCurrentDisplay();
   if( !aDisp )
index e454081a59d4673ffd990f07da880a361d04c059..f936da990d91b8e0f573060db9b0ab5d3f288767 100644 (file)
 
 class QFile;
 
+#ifdef __APPLE__
+#include <OpenGL/gl.h>
+#else
 #include <GL/gl.h>
+#endif
 
 #include "GLViewer.h"
 #include "GLViewer_Defs.h"
@@ -79,8 +83,8 @@ struct GLVIEWER_API GLViewer_TexFindId
   bool        myIsUndl;
   //! Font Size
   int         myPointSize;
-  //! View POrt ID
-  int         myViewPortId;
+  //! View Port ID
+  long        myViewPortId;
   //! Overloaded operator for using struct as MAP key
   bool operator < (const GLViewer_TexFindId theStruct) const 
   { 
index 1a867b2e4c8a84cffb5c829418a778101287b6af..f487a0e7ed4fd8b8a2135b4c53fd71e8cca4ba49 100644 (file)
 
 #include "GLViewer.h"
 
+#ifdef __APPLE__
+#include <OpenGL/gl.h>
+#include <OpenGL/glu.h>
+#else
 #include <GL/gl.h>
 #include <GL/glu.h>
+#endif
 
 #ifdef WIN32
 #pragma warning( disable:4251 )
index 10b181ab157940dffb2c1aaffebbeec5818ce5f1..bbf4df0e16ec182b0d2fd3907c1201183c9a8897 100644 (file)
 #include "GLViewer.h"
 #include "GLViewer_Geom.h"
 
+#ifdef __APPLE__
+#include <OpenGL/gl.h>
+#else
 #include <GL/gl.h>
+#endif
 
 #include <QString>
 
index cc15d89079b0c41c6daee654484ab2f2177ae9b0..01adfd250f93d4e2bdbee6d0e41a183821a48d74 100644 (file)
 #include "GLViewer.h"
 #include "GLViewer_Defs.h"
 
+#ifdef __APPLE__
+#include <OpenGL/gl.h>
+#else
 #include <GL/gl.h>
+#endif
 
 #include <QFont>
 #include <QString>
index 7079142f8751826c4e6946d1bca8735a981b9f6b..e1df5e0ead637df43db6ce64d4b4c56de5ec925b 100644 (file)
 //
 #include "GLViewer_Tools.h"
 
+#ifdef __APPLE__
+#include <OpenGL/gl.h>
+#else
 #include <GL/gl.h>
+#endif
 
 #include <iostream>
 #include <string.h>
index 733b1a392bde11c55bf7088ad24e50df4f144e8c..75187e971d20c891434b6a878891ce3ebb49a25f 100644 (file)
@@ -42,7 +42,7 @@
 
 #include <stdlib.h>
 
-#if !defined WIN32
+#if !defined WIN32 && !defined __APPLE__
 #include <QX11Info>
 #include <GL/glx.h>
 #include <X11/Xlib.h>
@@ -353,7 +353,7 @@ void GLViewer_ViewPort::cleanup()
 */
 void GLViewer_ViewPort::selectVisualId( ViewType type )
 {
-#if !defined WIN32
+#if !defined WIN32 && !defined __APPLE__
     XVisualInfo* pVisualInfo;
     if ( QX11Info::display() )
     {
index c673b169b65b3a6d70c105eac49b95851651982e..465c2f8d77466e394944e7a383322884ec978122 100644 (file)
 #include <windows.h>
 #endif
 
+#ifdef __APPLE__
+#include <OpenGL/gl.h>
+#include <OpenGL/glu.h>
+#else
 #include <GL/gl.h>
 #include <GL/glu.h>
+#endif
 
 #include "GLViewer_ViewPort.h"
 #include "GLViewer_Widget.h"
index 875baa0b8ebdf84b75a37659c002be19866cc1ec..9cafb3bdca1209b2881c9364d73703e93fce3e36 100644 (file)
@@ -38,7 +38,11 @@ class QFile;
 
 #include <TColStd_SequenceOfInteger.hxx>
 
+#ifdef __APPLE__
+#include <OpenGL/gl.h>
+#else
 #include <GL/gl.h>
+#endif
 
 class GLViewer_Object;
 class GLViewer_ViewFrame;
index 37ca6fd0f769c8d0acde36547ff6f8d4556b7233..4b336bd65e263940649e12f4d2683a1dd76ae25a 100644 (file)
@@ -4458,8 +4458,10 @@ bool LightApp_Application::isLibExists( const QString& moduleTitle ) const
   bool isPythonLightModule = lib.contains("SalomePyQtGUILight");
 
   QStringList paths;
-#ifdef WIN32
+#if defined(WIN32)
   paths = QString(::getenv( "PATH" )).split( ";", QString::SkipEmptyParts );
+#elif defined(__APPLE__)
+  paths = QString(::getenv( "DYLD_LIBRARY_PATH" )).split( ":", QString::SkipEmptyParts );
 #else
   paths = QString(::getenv( "LD_LIBRARY_PATH" )).split( ":", QString::SkipEmptyParts );
 #endif
index 4682ce950340f2c49a33dbb4ac605b6a720256ca..d13af530ef417aa3f9362f5dc791fa6722dec3ab 100644 (file)
 #include <windows.h>
 #endif
 
+#ifdef __APPLE__
+#include <OpenGL/gl.h>
+#else
 #include <GL/gl.h>
+#endif
 
 #include "OCCViewer_Trihedron.h"
 
@@ -37,7 +41,7 @@
 #include <PrsMgr_PresentationManager3d.hxx>
 
 
-#ifndef WIN32
+#if !defined WIN32 && !defined __APPLE__
 # include <GL/glx.h>
 #endif
 
@@ -122,7 +126,7 @@ GLuint generateTextList()
   bool ok = false;
   GLuint aList = glGenLists( 256 );
 
-#ifdef WIN32
+#if defined(WIN32)
   HGLRC hglrc = wglGetCurrentContext();
   if( hglrc )
   {
@@ -142,7 +146,7 @@ GLuint generateTextList()
     SelectObject( hdc, oldFont );
     DeleteObject( font );
   }
-#else // X Window
+#elif !defined(__APPLE__) // X Window
   Display* dpy = glXGetCurrentDisplay();
   if( dpy )
   {
index ec09bc0a965243ab161adb5a9c778be75d9a3baa..e5fce614a92a5969f19a38169954a921725f868b 100644 (file)
 #endif
 #include <Aspect_DisplayConnection.hxx>
 
-#ifdef WIN32
+#if defined(WIN32)
 #include <WNT_Window.hxx>
+#elif defined(__APPLE__)
+#include <Cocoa_Window.hxx>
 #else
 #include <Xw_Window.hxx>
 #endif
@@ -47,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 );
@@ -75,7 +79,7 @@ Handle(V3d_Viewer) OCCViewer_VService::CreateViewer( const Standard_ExtString na
   if (aGraphicDriver.IsNull())
   {
     Handle(Aspect_DisplayConnection) aDisplayConnection;
-#ifndef WIN32
+#if !defined WIN32 && !defined __APPLE__
     aDisplayConnection = new Aspect_DisplayConnection( displayName );
 #else
     aDisplayConnection = new Aspect_DisplayConnection();
index d6cca3173e96a9785872ea5ebda943e1e7ad5f2a..d0d2ce19d94539ccd0747b8e3d6b41c027cf1920 100755 (executable)
@@ -40,7 +40,7 @@
 
 #include <stdlib.h>
 
-#if !defined WIN32
+#if !defined WIN32 && !defined __APPLE__
 #include <QX11Info>
 #include <GL/glx.h>
 #include <X11/Xlib.h>
@@ -236,7 +236,7 @@ void OCCViewer_ViewPort::cleanup()
 */
 void OCCViewer_ViewPort::selectVisualId()
 {
-#if !defined WIN32
+#if !defined WIN32 && !defined __APPLE__
   XVisualInfo* pVisualInfo;
   if ( QX11Info::display() )
   {
index 8959f5961f7aa48f83caaa1471571401571767f3..678a6de3c6efa794263762e8118e0e3c90705cc0 100644 (file)
@@ -115,7 +115,11 @@ static QEvent* l_mbPressEvent = 0;
 //# include <QWindowsStyle>
 //#endif
 
+#ifdef __APPLE__
+#include <OpenGL/gl.h>
+#else
 #include <GL/gl.h>
+#endif
 
 // To avoid conflict between KeyPress from the X.h (define KeyPress 2)
 // and QEvent::KeyPress (qevent.h)
index d0f822174e4680f80afa7096117bb1796cafc0db..891ae65117c4994ceca864a97cdfb8bdd8a6f4cb 100755 (executable)
 # ifndef GLX_GLXEXT_LEGACY
 #  define GLX_GLXEXT_LEGACY
 # endif
+#ifdef __APPLE__
+#import <mach-o/dyld.h>
+#import <stdlib.h>
+#import <string.h>
+void * glXGetProcAddressARB (const GLubyte *name)
+
+{
+    NSSymbol symbol;
+    char *symbolName;
+    symbolName = (char *)malloc (strlen ((const char *)name) + 2); // 1
+    strcpy(symbolName + 1, (const char *)name); // 2
+    symbolName[0] = '_'; // 3
+    symbol = NULL;
+    if (NSIsSymbolNameDefined (symbolName)) // 4
+        symbol = NSLookupAndBindSymbol (symbolName);
+    free (symbolName); // 5
+    return symbol ? NSAddressOfSymbol (symbol) : NULL; // 6
+}
+#else
 # include <GL/glx.h>
+#endif
 # include <dlfcn.h>
 #else
 # include <wingdi.h>
index 8e7efeb570ed8233edef5a037dd970cf8b4cf3eb..feb10037f875de7653bf205921095d413fed6328 100755 (executable)
 #include <windows.h>
 #endif
 
+#ifdef __APPLE__
+#include <OpenGL/gl.h>
+#else
 #include <GL/gl.h>
+#endif
 
 class OPENGLUTILS_EXPORT OpenGLUtils_FrameBuffer
 {
index 0bacef045c4ffef344561205859e81e5296d9330..d596874ce2988a8647757aed20e31913fb0f7b8e 100755 (executable)
@@ -429,13 +429,15 @@ QString Qtx::library( const QString& str )
     name = QString( "lib" ) + name;
 #endif
 
-#ifdef WIN32
+#if defined(WIN32)
   QString libExt( "dll" );
+#elif defined(__APPLE__)
+  QString libExt( "dylib" );
 #else
   QString libExt( "so" );
 #endif
 
-  if ( ext.toLower() != QString( "so" ) && ext.toLower() != QString( "dll" ) )
+  if ( ext.toLower() != QString( "so" ) && ext.toLower() != QString( "dll" ) && ext.toLower() != QString( "dylib" ) )
   {
     if ( !name.isEmpty() && !ext.isEmpty() )
       name += QString( "." );
@@ -2104,7 +2106,7 @@ QFont Qtx::stringToFont( const QString& fontDescription )
   return font;
 }
 
-#ifndef WIN32
+#if !defined WIN32 && !defined __APPLE__ 
 
 #include <X11/Xlib.h>
 #include <GL/glx.h>
index 65cf4ffe864f16434605f8c8c76c004267e10ce5..d099217b9fbd9616c526886a76074e9febff9210 100755 (executable)
@@ -449,7 +449,7 @@ extern "C" SALOMEPY_EXPORT PyObject* libSalomePy_setView( PyObject* self, PyObje
         case ViewLeft:
           aVTKViewWindow->onLeftView();   break;
         default:
-          PyErr_Format(PyExc_ValueError,"setView%: wrong parameter value; must be between %d and %d", ViewFront, ViewLeft );
+          PyErr_Format(PyExc_ValueError,"setView: wrong parameter value; must be between %d and %d", ViewFront, ViewLeft );
           break;
         }
       }
index 9760dd47a2a11c1ad2135f33a32e5677004c7bff..e5c68a0f60c63a1fd263824ec300fd056e991f9a 100755 (executable)
@@ -118,7 +118,7 @@ SET(SalomePyQt_SOURCES ${_other_SOURCES} ${_moc_SOURCES} ${_sip_SOURCES})
 
 # --- rules ---
 
-ADD_LIBRARY(SalomePyQt ${SalomePyQt_SOURCES})
+ADD_LIBRARY(SalomePyQt MODULE ${SalomePyQt_SOURCES})
 TARGET_LINK_LIBRARIES(SalomePyQt ${_link_LIBRARIES})
 INSTALL(TARGETS SalomePyQt DESTINATION ${SALOME_INSTALL_LIBS})
 
index ad1fcf01c1ea8d5a24b437cab4fcf73cecea80a2..f1590699562b1e2bd2c6740e517b1aeacc903116 100644 (file)
@@ -41,7 +41,7 @@
 */
 SUITApp_Application::SUITApp_Application( int& argc, char** argv, SUIT_ExceptionHandler* hand )
 // TODO (QT5 PORTING) Below is a temporary solution, to allow compiling with Qt 5
-#if !defined(WIN32) && (QT_VERSION < QT_VERSION_CHECK(5, 0, 0))
+#if !defined(WIN32) && !defined(__APPLE__) && (QT_VERSION < QT_VERSION_CHECK(5, 0, 0))
   // san: Opening an X display and choosing a visual most suitable for 3D visualization
   // in order to make SALOME viewers work with non-native X servers
   : QApplication( (Display*)Qtx::getDisplay(), argc, argv, Qtx::getVisual() ),
index c82c2515667ea93ea6e842fc92c1599f17802add..c6278f7c2665cbe197a689dd12bafa7907d2a69f 100644 (file)
@@ -34,7 +34,7 @@
 // QT Includes
 // Put Qt includes before the X11 includes which #define the symbol None
 // (see SVTK_SpaceMouse.h) to avoid the compilation error.
-#ifndef WIN32
+#if !defined(WIN32) && !defined(__APPLE__)
 #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
 #include <xcb/xcb.h>
 #endif
@@ -84,7 +84,7 @@ QVTK_RenderWindowInteractor
   myRenderWindow->Delete();
   myRenderWindow->DoubleBufferOn();
 
-#ifndef WIN32
+#if !defined WIN32 && !defined __APPLE__
   myRenderWindow->SetDisplayId((void*)QX11Info::display());
 #endif
   myRenderWindow->SetWindowId((void*)winId());
@@ -112,7 +112,7 @@ QVTK_RenderWindowInteractor
 QVTK_RenderWindowInteractor
 ::~QVTK_RenderWindowInteractor() 
 {
-#ifndef WIN32
+#if !defined WIN32 && !defined __APPLE__
 #if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
   SVTK_SpaceMouseX* aSpaceMouse = SVTK_SpaceMouseX::getInstance();
   if ( aSpaceMouse && aSpaceMouse->isSpaceMouseOn() )
@@ -415,7 +415,7 @@ QVTK_RenderWindowInteractor
 {
   QWidget::focusInEvent( event );
 
-#ifndef WIN32
+#if !defined WIN32 && !defined __APPLE__
   // register set space mouse events receiver
 #if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
   SVTK_SpaceMouseX* aSpaceMouse = SVTK_SpaceMouseX::getInstance();
@@ -451,7 +451,7 @@ QVTK_RenderWindowInteractor
 {
   QWidget::focusOutEvent( event );
 
-#ifndef WIN32
+#if !defined WIN32 && !defined __APPLE__
 #if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
   // unregister set space mouse events receiver
   SVTK_SpaceMouseX* aSpaceMouse = SVTK_SpaceMouseX::getInstance();
@@ -467,7 +467,7 @@ QVTK_RenderWindowInteractor
 
 // TODO (QT5 PORTING) Below is a temporary solution, to allow compiling with Qt 5
 #if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
-#ifdef WIN32
+#if defined(WIN32)
 
 /*!
   To handle native Win32 events (from such devices as SpaceMouse)
@@ -478,8 +478,7 @@ bool QVTK_RenderWindowInteractor::winEvent( MSG* msg, long* result )
   return QWidget::winEvent( msg, result);
 }
 
-#else
-
+#elif !defined(__APPLE__)
 /*!
   To handle native X11 events (from such devices as SpaceMouse)
 */
@@ -519,9 +518,9 @@ QVTK_RenderWindowInteractor
 bool QVTK_RenderWindowInteractor
 ::nativeEvent(const QByteArray& eventType, void* message, long* result)
 {
-#ifdef WIN32
+#if defined(WIN32)
   // TODO: WIN32-related implementation
-#else
+#elif !defined(__APPLE__)
   if ( eventType == "xcb_generic_event_t" )
   {
     xcb_generic_event_t* ev = static_cast<xcb_generic_event_t *>(message);
index 521794f67f0a40a2fc4bd820269057240f509d8b..e04a2edbfd9d48bd08df692566afbf527d79a27e 100644 (file)
@@ -124,9 +124,9 @@ class SVTK_EXPORT QVTK_RenderWindowInteractor: public QWidget
   //! To handle native events (from such devices as SpaceMouse)
 // TODO (QT5 PORTING) Below is a temporary solution, to allow compiling with Qt 5
 #if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
-#ifdef WIN32
+#if defined(WIN32)
   virtual bool winEvent( MSG*, long* );
-#else
+#elif !defined(__APPLE__)
   virtual bool x11Event( XEvent *e );
 #endif
 #else
index 5db6b427da0c2f3e92882e2e5e0505c372e1111b..7e8e6abf89caaf9b71dda9e6c399bb206a2f4e04 100644 (file)
@@ -30,7 +30,7 @@
 
 #include <QtGlobal>
 
-#ifndef WIN32
+#if !defined WIN32 && !defined __APPLE__
 #include <X11/X.h>
 #include <X11/Xutil.h>
 #include <X11/Xatom.h>
@@ -64,7 +64,7 @@ SVTK_SpaceMouse::SVTK_SpaceMouse()
 SVTK_SpaceMouseX::SVTK_SpaceMouseX()
 : SVTK_SpaceMouse()
 {
-#ifndef WIN32
+#if !defined WIN32 && !defined __APPLE__
   win = InputFocus;
 #endif
 }
@@ -79,7 +79,7 @@ SVTK_SpaceMouseX* SVTK_SpaceMouseX::getInstance()
   return myInstance;
 }
 
-#ifndef WIN32
+#if !defined WIN32 && !defined __APPLE__
 
 static int errorCallback( Display *display, XErrorEvent *Error )
 {
@@ -232,7 +232,7 @@ int SVTK_SpaceMouseX::translateEvent( Display* display, XEvent* xEvent, MoveEven
 SVTK_SpaceMouseXCB::SVTK_SpaceMouseXCB()
 : SVTK_SpaceMouse()
 {
-#ifndef WIN32
+#if !defined WIN32 && !defined __APPLE__
   win = InputFocus;
 #endif
 }
@@ -249,7 +249,7 @@ SVTK_SpaceMouseXCB* SVTK_SpaceMouseXCB::getInstance()
 /*!
   Initialization
 */
-#ifndef WIN32
+#if !defined WIN32 && !defined __APPLE__
 int SVTK_SpaceMouseXCB::initialize( xcb_connection_t *connection, xcb_window_t window )
 {
   // make request
index ab140cd0d9810d1c48199d77a21026ceccc7ba6b..af04575a559689fc6313f75154ff4bdf96710db1 100644 (file)
@@ -29,7 +29,7 @@
 
 #include <QtGlobal>
 
-#ifndef WIN32
+#if !defined WIN32 && !defined __APPLE__
 extern "C"
 {
 #include <X11/X.h>
@@ -39,7 +39,6 @@ extern "C"
 #include <xcb/xcb.h>
 #endif
 }
-
 #endif
 
 class SVTK_SpaceMouse 
@@ -76,7 +75,7 @@ public:
   // access to SpaceMouse utility class
   static SVTK_SpaceMouseX* getInstance();
 
-#ifndef WIN32
+#if !defined WIN32 && !defined __APPLE__
   int initialize     ( Display*, Window );
   int setWindow      ( Display*, Window );
   int translateEvent ( Display*, XEvent*, MoveEvent*, double, double );
@@ -93,7 +92,9 @@ private:
   static SVTK_SpaceMouseX* myInstance;
 
 };
+
 #else
+
 class SVTK_SpaceMouseXCB: public SVTK_SpaceMouse
 {
 
@@ -103,7 +104,7 @@ public:
   // access to SpaceMouse utility class
   static SVTK_SpaceMouseXCB* getInstance();
 
-#ifndef WIN32
+#if !defined WIN32 && !defined __APPLE__
   int initialize     ( xcb_connection_t*, xcb_window_t );
   int setWindow      ( xcb_connection_t*, xcb_window_t );
   int translateEvent ( xcb_connection_t*, xcb_client_message_event_t*, MoveEvent*, double, double );
@@ -119,5 +120,6 @@ private:
   static SVTK_SpaceMouseXCB* myInstance;
 
 };
+
 #endif
 #endif
index 16578ddbf74b53db8cffe25d00778da375f5338a..d13911d460eea075006e46f335365169f52bdb1a 100755 (executable)
 
 #include <OpenGLUtils_FrameBuffer.h>
 
+#ifdef __APPLE__
+#include <OpenGL/gl.h>
+#else
 #include <GL/gl.h>
+#endif
 
 namespace SVTK
 {
index 021cc2643e035748ffef4c551dcd52e0c1f627f6..a5389c9fce7b1e7c8cc1b6660a99e4a6d45987f7 100755 (executable)
@@ -248,7 +248,7 @@ class SALOME_QApplication : public QApplication
 public:
   SALOME_QApplication( int& argc, char** argv )
 // TODO (QT5 PORTING) Below is a temporary solution, to allow compiling with Qt 5
-#if !defined WIN32 && QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
+#if !defined(WIN32) && !defined(__APPLE__) && (QT_VERSION < QT_VERSION_CHECK(5, 0, 0))
   // san: Opening an X display and choosing a visual most suitable for 3D visualization
   // in order to make SALOME viewers work with non-native X servers
   : QApplication( (Display*)Qtx::getDisplay(), argc, argv, Qtx::getVisual() ),
index 7dca2f88de49c9843f216c941c9a914af6c4801e..8071540037eae583e63a350f81af3887cded6407 100644 (file)
 # ifndef GLX_GLXEXT_LEGACY
 #  define GLX_GLXEXT_LEGACY
 # endif
+#ifdef __APPLE__
+#import <mach-o/dyld.h>
+#import <stdlib.h>
+#import <string.h>
+void * glXGetProcAddressARB (const GLubyte *name)
+
+{
+    NSSymbol symbol;
+    char *symbolName;
+    symbolName = (char *)malloc (strlen ((const char *)name) + 2); // 1
+    strcpy(symbolName + 1, (const char *)name); // 2
+    symbolName[0] = '_'; // 3
+    symbol = NULL;
+    if (NSIsSymbolNameDefined (symbolName)) // 4
+        symbol = NSLookupAndBindSymbol (symbolName);
+    free (symbolName); // 5
+    return symbol ? NSAddressOfSymbol (symbol) : NULL; // 6
+}
+#else
 # include <GL/glx.h>
+#endif
 # include <dlfcn.h>
 #else
 # include <wingdi.h>
index 8fa5725b0dba170f77aeb95185a8df205de84f87..14418801a163c50146aee4304fb3f4b621409cad 100644 (file)
 
 #include <map>
 
+#ifdef __APPLE__
+#include <OpenGL/gl.h>
+#else
 #include <GL/gl.h>
+#endif
 
 #include <vtkSmartPointer.h>
 
index 2395f8c965d0adbd0076d334312222973ec77041..16aafdbc3dcfec3803e1b4a361761d37bbc2a371 100755 (executable)
@@ -31,7 +31,7 @@
 #include <vtkRenderWindowInteractor.h>
 #include <vtkRendererCollection.h>
 #include <vtkCamera.h>
-#ifndef WIN32
+#if !defined WIN32 && !defined __APPLE__
 #include <QX11Info>
 #include <vtkXOpenGLRenderWindow.h>
 #endif
@@ -47,7 +47,7 @@ QWidget(parent, Qt::FramelessWindowHint )
   setAttribute( Qt::WA_DeleteOnClose );
 
   myRW = vtkRenderWindow::New();
-#ifndef WIN32
+#if !defined WIN32 && !defined __APPLE__
   myRW->SetDisplayId((void*)(QX11Info::display()));
 #endif
   myRW->SetWindowId((void*)winId());