From fa9a448de6690f29627216055d16fe1503d46f54 Mon Sep 17 00:00:00 2001 From: Eduardo Davila Date: Fri, 14 Sep 2018 10:40:31 +0200 Subject: [PATCH] #3227 crea Feature New Normal - vtk8itk4wx3-mingw64 MACOS --- cmake/CREAMacro_FindAndUseWxWidgets.cmake | 106 ++++++++++------------ src/creaRTTI.cxx | 13 +-- src/creaSystem.h | 2 +- src/creawxVTKRenderWindowInteractor.cxx | 25 ++++- 4 files changed, 81 insertions(+), 65 deletions(-) diff --git a/cmake/CREAMacro_FindAndUseWxWidgets.cmake b/cmake/CREAMacro_FindAndUseWxWidgets.cmake index b10b9f7..bc07f55 100644 --- a/cmake/CREAMacro_FindAndUseWxWidgets.cmake +++ b/cmake/CREAMacro_FindAndUseWxWidgets.cmake @@ -59,49 +59,39 @@ MACRO(CREA_FIND_WXWIDGETS) ##2018-08-28 if(APPLE) + SET(wxWidgets_CONFIG_EXECUTABLE /opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/3.0/bin/wx-config CACHE STRING wxWidgets_CONFIG_EXECUTABLE FORCE) + SET(wxWidgets_wxrc_EXECUTABLE /opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/3.0/bin/wxrc-3.1 CACHE STRING wxWidgets_wxrc_EXECUTABLE FORCE) +elseif(UNIX) + #MESSAGE ( "===============Manual wx-config 2 EED =======================") + #SET(wxWidgets_CONFIG_EXECUTABLE /usr/bin/wx-config-2.0 CACHE STRING wxWidgets_CONFIG_EXECUTABLE FORCE) + #SET(wxWidgets_wxrc_EXECUTABLE /usr/bin/wxrc-2.8 CACHE STRING wxWidgets_wxrc_EXECUTABLE FORCE) SET(wxWidgets_CONFIG_EXECUTABLE /usr/bin/wx-config-3.0 CACHE STRING wxWidgets_CONFIG_EXECUTABLE FORCE) SET(wxWidgets_wxrc_EXECUTABLE /usr/bin/wxrc-3.0 CACHE STRING wxWidgets_wxrc_EXECUTABLE FORCE) -elseif(UNIX) - SET(wxWidgets_CONFIG_EXECUTABLE /opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxGTK/3.0/bin/wx-config CACHE STRING wxWidgets_CONFIG_EXECUTABLE FORCE) - SET(wxWidgets_wxrc_EXECUTABLE /opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxGTK/3.0/bin/wxrc-3.0 CACHE STRING wxWidgets_wxrc_EXECUTABLE FORCE) -endif() - - -# MESSAGE ( "===============Manual wx-config 2 EED =======================") -# SET(wxWidgets_CONFIG_EXECUTABLE /usr/bin/wx-config-2.0 CACHE STRING wxWidgets_CONFIG_EXECUTABLE FORCE) -# SET(wxWidgets_wxrc_EXECUTABLE /usr/bin/wxrc-2.8 CACHE STRING wxWidgets_wxrc_EXECUTABLE FORCE) - - IF(NOT wxWidgets_FOUND) - # CMake 2.6: - # technically those packages are not required - # since one can still use the Motif/X11 version and not the gtk one: - FIND_PACKAGE(PkgConfig REQUIRED) - -## pkg_check_modules (GTK2 gtk+-2.0) -## pkg_check_modules (GTK322 gtk+-3.0) - pkg_check_modules (GTK3 REQUIRED gtk+-3.0) - #MESSAGE("${GTK3_INCLUDE_DIRS}") - - # Can I require all my user to have the gl lib on linux, even if they do not really need it... - SET(WXGLCANVASLIBS "gl") - - SET(WXAUILIBS "aui") - # LG : These options should be set by the user at top level of crea - FIND_PACKAGE(wxWidgets REQUIRED COMPONENTS base core adv html + # CMake 2.6: + # technically those packages are not required + # since one can still use the Motif/X11 version and not the gtk one: + FIND_PACKAGE(PkgConfig REQUIRED) + ## pkg_check_modules (GTK2 gtk+-2.0) + ## pkg_check_modules (GTK322 gtk+-3.0) + pkg_check_modules (GTK3 REQUIRED gtk+-3.0) +endif(APPLE) + + # Can I require all my user to have the gl lib on linux, even if they do not really need it... + SET(WXGLCANVASLIBS "gl") + + SET(WXAUILIBS "aui") + # LG : These options should be set by the user at top level of crea + FIND_PACKAGE(wxWidgets REQUIRED COMPONENTS base core adv html ${WXAUILIBS} - ${WXGLCANVASLIBS}) - # + ${WXGLCANVASLIBS} + ) IF(wxWidgets_FOUND) MESSAGE ( STATUS "=======================================") MESSAGE ( STATUS "Looking for wxWidgets... found ${wxWidgets_CONFIG_EXECUTABLE}") - ENDIF(wxWidgets_FOUND) - ENDIF(NOT wxWidgets_FOUND) + ENDIF(WIN32) -MESSAGE ( "EEEE") - - ENDMACRO(CREA_FIND_WXWIDGETS) #======================================================================= @@ -142,28 +132,32 @@ MACRO(CREA_USE_WXWIDGETS) ELSE(WIN32) -## # GTK2 -## INCLUDE_DIRECTORIES(${GTK2_INCLUDE_DIRS}) -## LINK_DIRECTORIES(${GTK2_LIBRARY_DIRS}) -## LINK_LIBRARIES(${GTK2_LIBRARIES}) - # GTK3 - INCLUDE_DIRECTORIES(${GTK3_INCLUDE_DIRS}) - LINK_DIRECTORIES(${GTK3_LIBRARY_DIRS}) - LINK_LIBRARIES(${GTK3_LIBRARIES} ) - # WX - -# INCLUDE( ${GTK_USE_FILE} ) - INCLUDE( ${wxWidgets_USE_FILE} ) - MARK_AS_ADVANCED(wxWidgets_CONFIG_EXECUTABLE) - - SET(WXWIDGETS_LIBRARIES -## GTK2 -## ${GTK2_LIBRARIES} - ${GTK3_LIBRARIES} - #${GTK_LIBRARIES} - ${wxWidgets_LIBRARIES} - ) - + if(APPLE) + INCLUDE( ${wxWidgets_USE_FILE} ) + MARK_AS_ADVANCED(wxWidgets_CONFIG_EXECUTABLE) + SET(WXWIDGETS_LIBRARIES ${wxWidgets_LIBRARIES} ) + elseif(UNIX) + ## # GTK2 + ## INCLUDE_DIRECTORIES(${GTK2_INCLUDE_DIRS}) + ## LINK_DIRECTORIES(${GTK2_LIBRARY_DIRS}) + ## LINK_LIBRARIES(${GTK2_LIBRARIES}) + # GTK3 + INCLUDE_DIRECTORIES(${GTK3_INCLUDE_DIRS}) + LINK_DIRECTORIES(${GTK3_LIBRARY_DIRS}) + LINK_LIBRARIES(${GTK3_LIBRARIES} ) + # WX + # INCLUDE( ${GTK_USE_FILE} ) + INCLUDE( ${wxWidgets_USE_FILE} ) + MARK_AS_ADVANCED(wxWidgets_CONFIG_EXECUTABLE) + SET(WXWIDGETS_LIBRARIES + ## GTK2 + ## ${GTK2_LIBRARIES} + ${GTK3_LIBRARIES} + #${GTK_LIBRARIES} + ${wxWidgets_LIBRARIES} + ) + endif(APPLE) + ENDIF(WIN32) ENDMACRO(CREA_USE_WXWIDGETS) #======================================================================= diff --git a/src/creaRTTI.cxx b/src/creaRTTI.cxx index d997215..872d64b 100644 --- a/src/creaRTTI.cxx +++ b/src/creaRTTI.cxx @@ -65,11 +65,11 @@ namespace crea -#if __APPLE__ -//EED2018-08-28 Be careful #include is not complete (CommandLine mechanisme Xcode) -printf("EED creaRTTI run_time_up_or_down_cast 2018-08-28 Warnning !!!! Apple cast missing __do_upcast ") - return source_pointer; -#else +// #if __APPLE__ +// //EED2018-08-28 Be careful #include is not complete (CommandLine mechanisme Xcode) +// printf("EED creaRTTI run_time_up_or_down_cast 2018-08-28 Warnning !!!! Apple cast missing __do_upcast "); +// return source_pointer; +// #else #if __GNUC__ > 3 || \ (__GNUC__ == 3 && (__GNUC_MINOR__ > 1 || \ (__GNUC_MINOR__ == 1 && \ @@ -94,7 +94,8 @@ printf("EED creaRTTI run_time_up_or_down_cast 2018-08-28 Warnning !!!! Apple // target_pointer = __RTDynamicCast(source_pointer, 0, source_type, target_type, 0); #endif return target_pointer; -#endif + +// #endif diff --git a/src/creaSystem.h b/src/creaSystem.h index 34572ce..86d9346 100644 --- a/src/creaSystem.h +++ b/src/creaSystem.h @@ -168,7 +168,7 @@ namespace crea extern "C" { - CREA_EXPORT inline const std::string& CREA_CDECL GetVersion() + CREA_EXPORT inline const std::string& CREA_CDECL GetVersionCREA() { static const std::string v(CREA_STRINGIFY_SYMBOL(CREA_VERSION)); return v; diff --git a/src/creawxVTKRenderWindowInteractor.cxx b/src/creawxVTKRenderWindowInteractor.cxx index 62cd9da..61fe230 100644 --- a/src/creawxVTKRenderWindowInteractor.cxx +++ b/src/creawxVTKRenderWindowInteractor.cxx @@ -43,6 +43,9 @@ =========================================================================*/ +#import + + #include #include "creawxVTKRenderWindowInteractor.h" @@ -100,7 +103,7 @@ wxWindow* wxGetTopLevelParent(wxWindow *win) // To access objc calls on cocoa #ifdef __WXCOCOA__ #ifdef VTK_USE_COCOA -#import +//EED #import // This trick is no longer need in VTK CVS, should get rid of that: #define id Id #else @@ -461,6 +464,7 @@ void wxVTKRenderWindowInteractor::OnTimer(wxTimerEvent& WXUNUSED(event)) // in wxPython/src/helpers.cpp long wxVTKRenderWindowInteractor::GetHandleHack() { +printf("EED wxVTKRenderWindowInteractor::GetHandleHack start \n"); //helper function to hide the MSW vs GTK stuff long handle_tmp = 0; @@ -486,6 +490,8 @@ long wxVTKRenderWindowInteractor::GetHandleHack() // Find and return the actual X-Window. #if defined(__WXGTK__) || defined(__WXX11__) +printf("EED wxVTKRenderWindowInteractor::GetHandleHack End AAA handle_tmp %ld \n", handle_tmp); +printf("EED wxVTKRenderWindowInteractor::GetHandleHack End AAA handle_tmp %ld \n", (long)GetXWindow(this)); return (long)GetXWindow(this); #endif @@ -493,6 +499,7 @@ long wxVTKRenderWindowInteractor::GetHandleHack() // handle_tmp = (long)this->GetXWindow(); //#endif +printf("EED wxVTKRenderWindowInteractor::GetHandleHack End BBB handle_tmp %d \n", handle_tmp); return handle_tmp; } //--------------------------------------------------------------------------- @@ -506,8 +513,16 @@ void wxVTKRenderWindowInteractor::OnPaint(wxPaintEvent& WXUNUSED(event)) { Handle = GetHandleHack(); - +#ifdef __WXCOCOA__ + vtkCocoaRenderWindow *rwin = vtkCocoaRenderWindow::SafeDownCast(RenderWindow); + NSView *nvsview = (NSView* )Handle; + NSWindow *nswindow = nvsview.window; + rwin->SetRootWindow( nswindow ); + rwin->SetWindowId( reinterpret_cast(nvsview) ); +#else RenderWindow->SetWindowId(reinterpret_cast(Handle)); +#endif + // Cocoa @@ -889,6 +904,7 @@ void wxVTKRenderWindowInteractor::OnMouseCaptureLost(wxMouseCaptureLostEvent& ev //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::Render() { +printf("EED wxVTKRenderWindowInteractor::Render Start \n"); #if wxCHECK_VERSION(2, 8, 0) int renderAllowed = !IsFrozen(); #else @@ -914,7 +930,9 @@ void wxVTKRenderWindowInteractor::Render() #endif if(Handle && (Handle == GetHandleHack()) ) { +printf("EED wxVTKRenderWindowInteractor::Render 1 \n"); RenderWindow->Render(); +printf("EED wxVTKRenderWindowInteractor::Render 2 \n"); } #if VTK_MAJOR_VERSION > 4 || (VTK_MAJOR_VERSION == 4 && VTK_MINOR_VERSION > 2) else if(GetHandleHack()) @@ -928,6 +946,9 @@ void wxVTKRenderWindowInteractor::Render() RenderWindow->Render(); } #endif + +printf("EED wxVTKRenderWindowInteractor::Render End \n"); + } } //--------------------------------------------------------------------------- -- 2.47.1