]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Porting to dev version of OCCT
authorvsr <vsr@opencascade.com>
Tue, 19 Feb 2013 15:12:40 +0000 (15:12 +0000)
committervsr <vsr@opencascade.com>
Tue, 19 Feb 2013 15:12:40 +0000 (15:12 +0000)
src/GLViewer/GLViewer_ViewPort.cxx
src/OCCViewer/OCCViewer_VService.cxx
src/OCCViewer/OCCViewer_VService.h
src/OCCViewer/OCCViewer_ViewPort.cxx
src/OCCViewer/OCCViewer_ViewPort3d.cxx

index b11d7d29f87124bc978c13d450a95c74acad37ed..9f5cb4c4a8d837232e73d51a65ada96086a015d1 100644 (file)
@@ -51,7 +51,6 @@
 #include <X11/Xmu/StdCmap.h>
 #undef QT_CLEAN_NAMESPACE
 #include <Xw_Window.hxx>
-#include <Graphic3d_GraphicDevice.hxx>
 
 /*!
   \struct CMapEntry
index 86181d9538dfb24a86ffe810d182c3d9323339d9..b795935fea694177c3082f22ca214c0a675fd240 100755 (executable)
 #include <V3d_Viewer.hxx>
 #include <V3d_View.hxx>
 
+#include <Basics_OCCTVersion.hxx>
+
+#if OCC_VERSION_LARGE > 0x06050400
+#error OCC_VERSION_LARGE
+
+//
+// new code, changed in OCCT v6.6.0
+//
+
+#include <Aspect_DisplayConnection.hxx>
+#include <Graphic3d.hxx>
+#include <Graphic3d_GraphicDriver.hxx>
+#ifdef WNT
+#include <WNT_Window.hxx>
+#else
+#include <Xw_Window.hxx>
+#endif
+
+#else // #if OCC_VERSION_LARGE > 0x06050400
+
+//
+// obsolete code (before OCCT v6.6.0); to be removed
+//
+
 #ifdef WNT
 #include <WNT_Window.hxx>
 #include <Graphic3d_WNTGraphicDevice.hxx>
 #include <Graphic3d_GraphicDevice.hxx>
 #endif
 
+#endif // #if OCC_VERSION_LARGE > 0x06050400
+
 /*!
     Create native view window for CasCade view [ static ]
 */
 Handle(Aspect_Window) OCCViewer_VService::CreateWindow( const Handle(V3d_View)& view,
-                                                        const Standard_Integer hiwin,
-                                                        const Standard_Integer lowin,
-                                                        const Xw_WindowQuality quality )
+                                                       WId winId )
 {
+#if OCC_VERSION_LARGE > 0x06050400
+
+//
+// new code, changed in OCCT v6.6.0
+//
+  Aspect_Handle aWindowHandle = (Aspect_Handle)winId;
+#ifdef WNT
+  Handle(WNT_Window) viewWindow = new WNT_Window( aWindowHandle );
+#else
+  Handle(Aspect_DisplayConnection) aDispConnection = view->Viewer()->Driver()->GetDisplayConnection();
+  Handle(Xw_Window) viewWindow = new Xw_Window( aDispConnection, aWindowHandle );
+#endif
+  return viewWindow;
+
+#else // #if OCC_VERSION_LARGE > 0x06050400
+
+//
+// obsolete code (before OCCT v6.6.0); to be removed
+//
+  int hwnd = (int)winId;
+  short lowin = (short)hwnd;
+  short hiwin = (short)( hwnd >> 16 );
+
 #ifdef WNT
   Handle(WNT_Window) viewWindow = new WNT_Window( Handle(Graphic3d_WNTGraphicDevice)::DownCast(view->Viewer()->Device()), hiwin, lowin );
   // Prevent flickering
   viewWindow->SetFlags( WDF_NOERASEBKGRND );
 #else
-  Handle(Xw_Window) viewWindow = new Xw_Window( Handle(Graphic3d_GraphicDevice)::DownCast(view->Viewer()->Device()), hiwin, lowin, quality );
+  Handle(Xw_Window) viewWindow = new Xw_Window( Handle(Graphic3d_GraphicDevice)::DownCast(view->Viewer()->Device()), hiwin, lowin, Xw_WQ_SAMEQUALITY );
 #endif
   return viewWindow;
+
+#endif // #if OCC_VERSION_LARGE > 0x06050400
 }
 
 /*!
     Maps CasCade view to the window [ static ]
 */
-void OCCViewer_VService::SetWindow( const Handle(V3d_View)& view,
-                                    const Standard_Integer hiwin,
-                                    const Standard_Integer lowin,
-                                    const Xw_WindowQuality quality )
-{
-  view->SetWindow( OCCViewer_VService::CreateWindow( view, hiwin, lowin, quality ) );
-}
+// void OCCViewer_VService::SetWindow( const Handle(V3d_View)& view,
+//                                     const Standard_Integer hiwin,
+//                                     const Standard_Integer lowin,
+//                                     const Xw_WindowQuality quality )
+// {
+//   view->SetWindow( OCCViewer_VService::CreateWindow( view, hiwin, lowin, quality ) );
+// }
 
 /*!
     Magnifies 'view' based on previous view [ static ]
 */
-void OCCViewer_VService::SetMagnify( const Handle(V3d_View)& view,
-                                    const Standard_Integer hiwin,
-                                    const Standard_Integer lowin,
-                                    const Handle(V3d_View)& prevView,
-                                    const Standard_Integer x1,
-                                    const Standard_Integer y1,
-                                    const Standard_Integer x2,
-                                    const Standard_Integer y2,
-                                    const Xw_WindowQuality aQuality )
-{
-#ifdef WNT
-  Handle(WNT_Window) w =
-    new WNT_Window( Handle(Graphic3d_WNTGraphicDevice)::DownCast(view->Viewer()->Device()), hiwin, lowin );
-#else
-  Handle(Xw_Window) w =
-    new Xw_Window( Handle(Graphic3d_GraphicDevice)::DownCast(view->Viewer()->Device()), hiwin, lowin, aQuality );
-#endif
-  view->SetMagnify( w, prevView, x1, y1, x2, y2 );
-}
+// void OCCViewer_VService::SetMagnify( const Handle(V3d_View)& view,
+//                                  const Standard_Integer hiwin,
+//                                  const Standard_Integer lowin,
+//                                  const Handle(V3d_View)& prevView,
+//                                  const Standard_Integer x1,
+//                                  const Standard_Integer y1,
+//                                  const Standard_Integer x2,
+//                                  const Standard_Integer y2,
+//                                  const Xw_WindowQuality aQuality )
+// {
+// #ifdef WNT
+//   Handle(WNT_Window) w =
+//     new WNT_Window( Handle(Graphic3d_WNTGraphicDevice)::DownCast(view->Viewer()->Device()), hiwin, lowin );
+// #else
+//   Handle(Xw_Window) w =
+//     new Xw_Window( Handle(Graphic3d_GraphicDevice)::DownCast(view->Viewer()->Device()), hiwin, lowin, aQuality );
+// #endif
+//   view->SetMagnify( w, prevView, x1, y1, x2, y2 );
+// }
 
 /*!
     Creates viewer 3d [ static ]
@@ -96,6 +145,32 @@ Handle(V3d_Viewer) OCCViewer_VService::Viewer3d( const Standard_CString aDisplay
                                                 const Standard_Boolean ComputedMode,
                                                 const Standard_Boolean aDefaultComputedMode )
 {
+#if OCC_VERSION_LARGE > 0x06050400
+
+//
+// new code, changed in OCCT v6.6.0
+//
+
+  static Handle(Graphic3d_GraphicDriver) aGraphicDriver;
+  if (aGraphicDriver.IsNull())
+  {
+    Handle(Aspect_DisplayConnection) aDisplayConnection;
+#ifndef WNT
+    aDisplayConnection = new Aspect_DisplayConnection( aDisplay );
+#endif
+    aGraphicDriver = Graphic3d::InitGraphicDriver( aDisplayConnection );
+  }
+
+  return new V3d_Viewer( aGraphicDriver, aName, aDomain, ViewSize, ViewProj,
+                        Quantity_NOC_GRAY30, V3d_ZBUFFER, V3d_GOURAUD, V3d_WAIT,
+                        ComputedMode, aDefaultComputedMode, V3d_TEX_NONE );
+  
+#else // #if OCC_VERSION_LARGE > 0x06050400
+
+//
+// obsolete code (before OCCT v6.6.0); to be removed
+//
+
 #ifndef WNT
   static Handle(Graphic3d_GraphicDevice) defaultdevice;
   if ( defaultdevice.IsNull() )
@@ -111,4 +186,6 @@ Handle(V3d_Viewer) OCCViewer_VService::Viewer3d( const Standard_CString aDisplay
                         Quantity_NOC_GRAY30, V3d_ZBUFFER, V3d_GOURAUD, V3d_WAIT,
                         ComputedMode, aDefaultComputedMode, V3d_TEX_NONE);
 #endif  // WNT
+
+#endif // #if OCC_VERSION_LARGE > 0x06050400
 }
index 73dfcff4525fe2e9b85d96ea82f5c432f07285d2..b4f9fe9387b03ef815725e24fa9e05520a03abc1 100755 (executable)
 #include <Standard_Boolean.hxx>
 #include <Standard_CString.hxx>
 #include <Standard_ExtString.hxx>
-#include <Standard_Integer.hxx>
+//#include <Standard_Integer.hxx>
 #include <Quantity_Length.hxx>
-#include <Xw_WindowQuality.hxx>
+//#include <Xw_WindowQuality.hxx>
 #include <V3d_TypeOfOrientation.hxx>
 
+#include <QWidget>
+
 class Standard_EXPORT OCCViewer_VService
 {
 public:
-    inline void* operator new(size_t,void* anAddress)
-    {
-        return anAddress;
-    }
-    inline void* operator new(size_t size)
-    {
-        return Standard::Allocate(size);
-    }
-    inline void  operator delete(void *anAddress)
-    {
-        if ( anAddress ) Standard::Free((Standard_Address&)anAddress);
-    }
-
-    // STATIC METHODS
-    static Handle(Aspect_Window) 
-                    CreateWindow( const Handle(V3d_View)& view,
-                                  const Standard_Integer hiwin,
-                                  const Standard_Integer lowin,
-                                  const Xw_WindowQuality quality );
+  // STATIC METHODS
+  static Handle(Aspect_Window) CreateWindow( const Handle(V3d_View)& view, WId id );
 
+  /*
     static void     SetWindow( const Handle(  V3d_View )& view,
                                const Standard_Integer hiwin,
                                const Standard_Integer lowin,
@@ -71,14 +57,15 @@ public:
                                 const Standard_Integer x2,
                                 const Standard_Integer y2,
                                 const Xw_WindowQuality quality = Xw_WQ_3DQUALITY );
-    static Handle_V3d_Viewer
-                    Viewer3d( const Standard_CString display,
-                              const Standard_ExtString name,
-                              const Standard_CString domain = "",
-                              const Quantity_Length ViewSize = 1000.0,
-                              const V3d_TypeOfOrientation ViewProj = V3d_XposYnegZpos,
-                              const Standard_Boolean ComputedMode = Standard_True,
-                              const Standard_Boolean DefaultComputedMode = Standard_True );
+    */
+
+  static Handle(V3d_Viewer) Viewer3d( const Standard_CString display,
+                                     const Standard_ExtString name,
+                                     const Standard_CString domain = "",
+                                     const Quantity_Length ViewSize = 1000.0,
+                                     const V3d_TypeOfOrientation ViewProj = V3d_XposYnegZpos,
+                                     const Standard_Boolean ComputedMode = Standard_True,
+                                     const Standard_Boolean DefaultComputedMode = Standard_True );
 };
 
 #endif
index 4c6dd5d2d56c2f46b464ebb383c76a0eec31f7d7..c976636c0e4206f934b55997c9f78d29953dcf8d 100755 (executable)
@@ -49,7 +49,6 @@
 #include <X11/Xmu/StdCmap.h>
 #undef QT_CLEAN_NAMESPACE
 #include <Xw_Window.hxx>
-#include <Graphic3d_GraphicDevice.hxx>
 
 struct CMapEntry
 {
index 3dd08a8129a0ec1deda20976fe31eb4ffff6ebb0..7e3593e5bc8dcc07e67fca5f13c3231e7d7bc805 100755 (executable)
@@ -746,15 +746,7 @@ bool OCCViewer_ViewPort3d::setWindow( const Handle(V3d_View)& view )
   if ( view.IsNull() )
     return false;
 
-  int hwnd = (int)winId();
-  if ( !hwnd )
-    return false;
-
-  /* set this widget as the drawing window */
-  short lo = (short)hwnd;
-  short hi = (short)( hwnd >> 16 );
-
-  attachWindow( view, OCCViewer_VService::CreateWindow( view, (int)hi, (int)lo, Xw_WQ_SAMEQUALITY ) );
+  attachWindow( view, OCCViewer_VService::CreateWindow( view, winId() ) );
 
   myWindow = view->Window();
   return !myWindow.IsNull();