From: Eduardo DAVILA Date: Wed, 1 Sep 2021 13:22:29 +0000 (+0200) Subject: #3227 vtk8itk4wx3-mingw64 MACOS X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=ad89139d4d59c2ea606d45bcce1784ef5c7b187f;p=crea.git #3227 vtk8itk4wx3-mingw64 MACOS --- diff --git a/src/creawxVTKRenderWindowInteractor.mm b/src/creawxVTKRenderWindowInteractor.mm index aa05b20..3047c93 100644 --- a/src/creawxVTKRenderWindowInteractor.mm +++ b/src/creawxVTKRenderWindowInteractor.mm @@ -43,12 +43,15 @@ =========================================================================*/ -#import +//#import #include #include "creawxVTKRenderWindowInteractor.h" +#include + + //This is needed for vtk 3.1 : #ifndef VTK_MAJOR_VERSION # include "vtkVersion.h" @@ -102,7 +105,7 @@ wxWindow* wxGetTopLevelParent(wxWindow *win) // To access objc calls on cocoa #ifdef __WXCOCOA__ #ifdef VTK_USE_COCOA -//EED #import +#import // This trick is no longer need in VTK CVS, should get rid of that: #define id Id #else @@ -395,12 +398,20 @@ void wxVTKRenderWindowInteractor::UpdateSize(int x, int y) Size[0] = x; Size[1] = y; // and our RenderWindow's size + +#ifdef __WXCOCOA__ + #ifdef VTK_USE_COCOA + #else + #endif //VTK_USE_COCOA +#else RenderWindow->SetSize(x, y); +#endif //__WXCOCOA__ + #if defined(__WXMSW__) this->Refresh(); #endif //__WXMSW__ - } - } + } // if x y + } // if RenderWindow } //--------------------------------------------------------------------------- int wxVTKRenderWindowInteractor::CreateTimer(int WXUNUSED(timertype)) @@ -467,7 +478,6 @@ 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; @@ -493,8 +503,6 @@ printf("EED wxVTKRenderWindowInteractor::GetHandleHack start \n"); // 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 @@ -502,45 +510,37 @@ printf("EED wxVTKRenderWindowInteractor::GetHandleHack End AAA handle_tmp %ld \ // handle_tmp = (long)this->GetXWindow(); //#endif -printf("EED wxVTKRenderWindowInteractor::GetHandleHack End BBB handle_tmp %ld \n", handle_tmp); return handle_tmp; } //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::OnPaint(wxPaintEvent& WXUNUSED(event)) { -printf("EED wxVTKRenderWindowInteractor::OnPaint Start \n"); //must always be here //EED2021-08-26 wxPaintDC pDC(this); -printf("EED wxVTKRenderWindowInteractor::OnPaint 1 \n"); - //do it here rather than in the cstor: this is safer. if(!Handle) { -printf("EED wxVTKRenderWindowInteractor::OnPaint 2 \n"); Handle = GetHandleHack(); #ifdef __WXCOCOA__ -printf("EED wxVTKRenderWindowInteractor::OnPaint 3 \n"); vtkCocoaRenderWindow *rwin = vtkCocoaRenderWindow::SafeDownCast(RenderWindow); +//2021-08-30 +// rwin->SetWantsBestResolution(true); + NSView *nvsview = (NSView* )Handle; NSWindow *nswindow = nvsview.window; rwin->SetRootWindow( nswindow ); rwin->SetWindowId( reinterpret_cast(nvsview) ); #else -printf("EED wxVTKRenderWindowInteractor::OnPaint 4 \n"); RenderWindow->SetWindowId(reinterpret_cast(Handle)); #endif - - -printf("EED wxVTKRenderWindowInteractor::OnPaint 5 \n"); // Cocoa // this->GetNSView() <-> DisplayId // this->GetTopLevel()->GetNSWindow() <-> WindowId #ifdef __WXMSW__ -printf("EED wxVTKRenderWindowInteractor::OnPaint 6 \n"); RenderWindow->SetParentId(reinterpret_cast(this->GetParent()->GetHWND())); #endif //__WXMSW__ @@ -556,45 +556,33 @@ printf("EED wxVTKRenderWindowInteractor::OnPaint 6 \n"); } // get vtk to render to the wxWindows -printf("EED wxVTKRenderWindowInteractor::OnPaint 7 \n"); - - Render(); +Render(); #ifdef __WXMAC__ -printf("EED wxVTKRenderWindowInteractor::OnPaint 8 \n"); // This solves a problem with repainting after a window resize // See also: http://sourceforge.net/mailarchive/forum.php?thread_id=31690967&forum_id=41789 #ifdef __WXCOCOA__ -printf("EED wxVTKRenderWindowInteractor::OnPaint 9 \n"); #if !wxCHECK_VERSION(2, 9, 0) // this doesn't seem necessary with wxOSX 2.9.x -printf("EED wxVTKRenderWindowInteractor::OnPaint 10 \n"); vtkCocoaRenderWindow * rwin = vtkCocoaRenderWindow::SafeDownCast(RenderWindow); if( rwin ) { -printf("EED wxVTKRenderWindowInteractor::OnPaint 11 \n"); rwin->UpdateContext(); } #endif #else -printf("EED wxVTKRenderWindowInteractor::OnPaint 12 \n"); + vtkCarbonRenderWindow* rwin = vtkCarbonRenderWindow::SafeDownCast(RenderWindow); if( rwin ) { -printf("EED wxVTKRenderWindowInteractor::OnPaint 13 \n"); #if VTK_MAJOR_VERSION > 4 || (VTK_MAJOR_VERSION == 4 && VTK_MINOR_VERSION > 4) // Must be somewhere after VTK 4.4 -printf("EED wxVTKRenderWindowInteractor::OnPaint 14 \n"); rwin->UpdateGLRegion(); #endif } #endif #endif - -printf("EED wxVTKRenderWindowInteractor::OnPaint 15 \n"); - -printf("EED wxVTKRenderWindowInteractor::OnPaint End \n"); - } + //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::OnEraseBackground(wxEraseEvent &event) { @@ -618,7 +606,9 @@ void wxVTKRenderWindowInteractor::OnSize(wxSizeEvent& WXUNUSED(event)) #endif //this will check for Handle //Render(); + } + //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::OnMotion(wxMouseEvent &event) { @@ -627,6 +617,7 @@ void wxVTKRenderWindowInteractor::OnMotion(wxMouseEvent &event) return; } #if VTK_MAJOR_VERSION > 4 || (VTK_MAJOR_VERSION == 4 && VTK_MINOR_VERSION > 0) + SetEventInformationFlipY(event.GetX(), event.GetY(), event.ControlDown(), event.ShiftDown(), '\0', 0, NULL); @@ -931,7 +922,6 @@ void wxVTKRenderWindowInteractor::OnMouseCaptureLost(wxMouseCaptureLostEvent& ev //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::Render() { -printf("EED wxVTKRenderWindowInteractor::Render Start \n"); #if wxCHECK_VERSION(2, 8, 0) int renderAllowed = !IsFrozen(); #else @@ -957,9 +947,7 @@ printf("EED wxVTKRenderWindowInteractor::Render Start \n"); #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()) @@ -974,8 +962,6 @@ printf("EED wxVTKRenderWindowInteractor::Render 2 \n"); } #endif -printf("EED wxVTKRenderWindowInteractor::Render End \n"); - } } //---------------------------------------------------------------------------