X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FcreawxVTKRenderWindowInteractor.mm;h=6109749fb5c86a64e280c3b19e7f0c979060892a;hb=b4cd33464fc8cc5658da64fe75c3f689169f0cb0;hp=6efc47c4c9f94e5b745522a9f7c5ac279d0b3a50;hpb=13746b9e3318f71af2cf48a8da8bbe487d84355e;p=crea.git diff --git a/src/creawxVTKRenderWindowInteractor.mm b/src/creawxVTKRenderWindowInteractor.mm index 6efc47c..6109749 100644 --- a/src/creawxVTKRenderWindowInteractor.mm +++ b/src/creawxVTKRenderWindowInteractor.mm @@ -43,7 +43,6 @@ =========================================================================*/ -#import #include @@ -63,7 +62,8 @@ // AKT: wxOSX 2.9.x defines __WXOSX_COCOA__ rather than __WXCOCOA__ #ifdef __WXOSX_COCOA__ -#define __WXCOCOA__ + #import + #define __WXCOCOA__ #endif #if defined(__WXMAC__) && wxCHECK_VERSION(2,9,0) @@ -80,6 +80,11 @@ #endif +#ifdef VTK_USE_TDX +#import "vtkTDxMacDevice.h" +#endif + + //======================================================================= // LG : NAMESPACE IS NECESSARY TO AVOID CONFLICTING SYMBOLS IN DYN LIBS namespace crea @@ -102,7 +107,6 @@ wxWindow* wxGetTopLevelParent(wxWindow *win) // To access objc calls on cocoa #ifdef __WXCOCOA__ #ifdef VTK_USE_COCOA -//EED #import // This trick is no longer need in VTK CVS, should get rid of that: #define id Id #else @@ -111,7 +115,6 @@ wxWindow* wxGetTopLevelParent(wxWindow *win) #endif //__WXCOCOA__ #if wxMAJOR_VERSION <= 2 - #ifdef __WXGTK__ #include // GDK_WINDOW_XWINDOW is found here in wxWidgets 2.8.0 #include "gdk/gdkprivate.h" @@ -271,6 +274,12 @@ wxVTKRenderWindowInteractor::wxVTKRenderWindowInteractor() this->RenderWindow = NULL; this->SetRenderWindow(vtkRenderWindow::New()); this->RenderWindow->Delete(); + +#ifdef VTK_USE_TDX + this->Device=vtkTDxMacDevice::New(); +#endif + + } //--------------------------------------------------------------------------- wxVTKRenderWindowInteractor::wxVTKRenderWindowInteractor(wxWindow *parent, @@ -311,6 +320,13 @@ wxVTKRenderWindowInteractor::wxVTKRenderWindowInteractor(wxWindow *parent, // so we update the size information of the interactor/renderwindow here this->UpdateSize(size.x, size.y); #endif + + +#ifdef VTK_USE_TDX + this->Device=vtkTDxMacDevice::New(); +#endif + + } //--------------------------------------------------------------------------- wxVTKRenderWindowInteractor::~wxVTKRenderWindowInteractor() @@ -320,6 +336,11 @@ wxVTKRenderWindowInteractor::~wxVTKRenderWindowInteractor() #if defined(__WXGTK__) && defined(USE_WXGLCANVAS) delete this->context; #endif + +#ifdef VTK_USE_TDX + this->Device->Delete(); +#endif + } //--------------------------------------------------------------------------- wxVTKRenderWindowInteractor * wxVTKRenderWindowInteractor::New() @@ -354,11 +375,34 @@ void wxVTKRenderWindowInteractor::Enable() #if defined(__WXGTK__) && defined(USE_WXGLCANVAS) wxGLCanvas::SetCurrent(*this->context); #endif + +//EED 2010-10-14 +#ifdef VTK_USE_TDX + if(this->UseTDx) + { + this->Device->SetInteractor(this); + this->Device->Initialize(); + } +#endif + + + Modified(); } //--------------------------------------------------------------------------- bool wxVTKRenderWindowInteractor::Enable(bool enable) { + +#ifdef VTK_USE_TDX + if(this->UseTDx) + { + this->Device->SetInteractor(this); + this->Device->Initialize(); + } +#endif + + + #if defined(__WXGTK__) && defined(USE_WXGLCANVAS) return wxGLCanvas::Enable(enable); #else @@ -372,6 +416,14 @@ void wxVTKRenderWindowInteractor::Disable() if (!Enabled) return; +#ifdef VTK_USE_TDX + if(this->Device->GetInitialized()) + { + this->Device->Close(); + } +#endif + + // that's it (we can't remove the event handler like it should be...) Enabled = 0; Modified(); @@ -395,12 +447,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 +527,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 +552,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,14 +559,17 @@ 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)) { //must always be here - wxPaintDC pDC(this); +//EED2021-08-26 +#ifdef __WXCOCOA__ +#else + wxPaintDC pDC(this); +#endif //do it here rather than in the cstor: this is safer. if(!Handle) @@ -525,8 +585,6 @@ void wxVTKRenderWindowInteractor::OnPaint(wxPaintEvent& WXUNUSED(event)) #else RenderWindow->SetWindowId(reinterpret_cast(Handle)); #endif - - // Cocoa // this->GetNSView() <-> DisplayId @@ -570,6 +628,7 @@ void wxVTKRenderWindowInteractor::OnPaint(wxPaintEvent& WXUNUSED(event)) } #endif #endif + } //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::OnEraseBackground(wxEraseEvent &event) @@ -656,7 +715,7 @@ void wxVTKRenderWindowInteractor::OnLeave(wxMouseEvent &event) //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::OnKeyDown(wxKeyEvent &event) { - if (!Enabled) + if (!Enabled) { return; } @@ -686,7 +745,7 @@ void wxVTKRenderWindowInteractor::OnKeyDown(wxKeyEvent &event) //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::OnKeyUp(wxKeyEvent &event) { - if (!Enabled) + if (!Enabled) { return; } @@ -717,7 +776,7 @@ void wxVTKRenderWindowInteractor::OnKeyUp(wxKeyEvent &event) //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::OnChar(wxKeyEvent &event) { - if (!Enabled) + if (!Enabled) { return; } @@ -884,7 +943,7 @@ void wxVTKRenderWindowInteractor::OnMouseWheel(wxMouseEvent& event) InvokeEvent(vtkCommand::MouseWheelBackwardEvent, NULL); } #endif - + } //--------------------------------------------------------------------------- @@ -907,7 +966,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 @@ -924,7 +982,7 @@ printf("EED wxVTKRenderWindowInteractor::Render Start \n"); //if it's not enabeld, renderAllowed will be false renderAllowed = topParent->IsEnabled(); } - } + } // if renderAllowed && !RenderWhenDisabled if (renderAllowed) { @@ -933,9 +991,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()) @@ -949,10 +1005,7 @@ printf("EED wxVTKRenderWindowInteractor::Render 2 \n"); RenderWindow->Render(); } #endif - -printf("EED wxVTKRenderWindowInteractor::Render End \n"); - - } + } // if renderAllowed } //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::SetRenderWhenDisabled(int newValue)