I committed some changes yesterday to VTK that fix interactor/window problems with 64-bit Windows builds. There are fewer failing tests on the only experimental dashboard running in that configuration. The remaining ones are being investigated...
<br><br>If anybody listening on this list could update and build 64 bit Windows builds of VTK, it should be mostly working now. Please post questions here on the list if any further issues arise...<br><br>Also: anybody able to contribute a 64-bit Windows VTK dashboard on a regular basis would be a welcome addition to our current set of contributors.
<br><br>Thanks,<br>David Cole<br>Kitware, Inc.<br><br><br><div><span class="gmail_quote">On 12/19/06, <b class="gmail_sendername">L.J. van Ruijven</b> &lt;<a href="mailto:L.J.vanRuijven@amc.uva.nl">L.J.vanRuijven@amc.uva.nl
</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hello David,<br><br>Class vtkWin32OpenGLRenderWindow reserves extra bytes in its window
<br>class. I use vtkWndOffset as an offset into this buffer. Comming to<br>think of it, the change I mentioned must also be applied to class<br>vtkWin32OpenGLRenderWindow.<br>I did not save the original code, so I give you the places where
<br>vtkWndOffset occurs in my current code. In class<br>vtkWin32OpenGLRenderWindow I use vtkWndOffset in the method WndProc in<br>the statement<br><br>&nbsp;&nbsp;vtkWin32OpenGLRenderWindow *me =<br>&nbsp;&nbsp;&nbsp;&nbsp;(vtkWin32OpenGLRenderWindow *)vtkGetWindowLong(hWnd,vtkWndOffset);
<br><br>in the method CreateAWindow in the statements<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wndClass.cbWndExtra = 2 * vtkWndOffset;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;vtkSetWindowLong(this-&gt;WindowId,vtkWndOffset,(vtkLONG)this);<br><br>and finally in the method Finalize in the statement
<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vtkSetWindowLong(this-&gt;WindowId,vtkWndOffset,(vtkLONG)0);<br><br><br>In class vtkWin32RenderWindowInteractor I use vtkWndOffset in its<br>destructor in the statement<br><br>&nbsp;&nbsp;&nbsp;&nbsp;tmp = (vtkWin32OpenGLRenderWindow *)(vtkGetWindowLong(this-
<br>&gt;WindowId,vtkWndOffset));<br><br>in the method Enable in the statement<br><br>&nbsp;&nbsp;&nbsp;&nbsp;tmp=(vtkWin32OpenGLRenderWindow *)vtkGetWindowLong(this-<br>&gt;WindowId,vtkWndOffset);<br><br>and in the method Disable in the statement
<br><br>&nbsp;&nbsp;&nbsp;&nbsp;tmp = (vtkWin32OpenGLRenderWindow *)vtkGetWindowLong(this-<br>&gt;WindowId,vtkWndOffset);<br><br>Finally, I use vtkWndOffset in the procudure vtkHandleMessage in the<br>statement<br><br>&nbsp;&nbsp;ren = (vtkWin32OpenGLRenderWindow *)vtkGetWindowLong
<br>(hWnd,vtkWndOffset);<br><br>Hope this answers your question.<br><br>Leo van Ruijven.<br><br><br><br><br><br>----- Original Message -----<br>From: David Cole &lt;<a href="mailto:david.cole@kitware.com">david.cole@kitware.com
</a>&gt;<br>Date: Tuesday, December 19, 2006 3:48 pm<br>Subject: Re: [vtkusers] Issue with VTK and windows 64BIT<br><br>&gt; Thanks for this... I&#39;ll try to to get this committed this week.<br>&gt; (That code<br>&gt; recently moved into header file Common/vtkWin32Header.h...)
<br>&gt;<br>&gt; Where do you use &quot;vtkWndOffset&quot;? You added that, but didn&#39;t<br>&gt; mention where<br>&gt; you&#39;re using it...<br>&gt;<br>&gt; Thanks,<br>&gt; David Cole<br>&gt; Kitware, Inc.<br>&gt;<br>&gt;
<br>&gt; On 12/19/06, L.J. van Ruijven &lt;<a href="mailto:L.J.vanRuijven@amc.uva.nl">L.J.vanRuijven@amc.uva.nl</a>&gt; wrote:<br>&gt; &gt;<br>&gt; &gt; Hi,<br>&gt; &gt;<br>&gt; &gt; I am using VTK for windows x64. In the past several problems were
<br>&gt; &gt; solved thanks to Jeremy Drysdale and Andreas Gerndt (see<br>&gt; &gt; <a href="http://public.kitware.com/pipermail/vtkusers/2006-">http://public.kitware.com/pipermail/vtkusers/2006-</a><br>&gt; August/086498.html).&gt; However, problems with the interaction still
<br>&gt; remained. I found that<br>&gt; &gt; several of the remaining issues are solverd with the following fix:<br>&gt; &gt;<br>&gt; &gt; In vtkWin32RenderWindowInteractor.cxx change:<br>&gt; &gt;<br>&gt; &gt; #if ( _MSC_VER &gt;= 1300 ) // Visual studio .NET
<br>&gt; &gt; #pragma warning ( disable : 4311 )<br>&gt; &gt; #pragma warning ( disable : 4312 )<br>&gt; &gt; #&nbsp;&nbsp;define vtkGWLP_HINSTANCE GWLP_HINSTANCE<br>&gt; &gt; #&nbsp;&nbsp;define vtkGetWindowLong GetWindowLongPtr<br>&gt; &gt; #&nbsp;&nbsp;define vtkSetWindowLong SetWindowLongPtr
<br>&gt; &gt; #else // regular Visual studio<br>&gt; &gt; #&nbsp;&nbsp;define vtkGWLP_HINSTANCE GWL_HINSTANCE<br>&gt; &gt; #&nbsp;&nbsp;define vtkGetWindowLong GetWindowLong<br>&gt; &gt; #&nbsp;&nbsp;define vtkSetWindowLong SetWindowLong<br>&gt; &gt; #endif //
<br>&gt; &gt;<br>&gt; &gt; into:<br>&gt; &gt;<br>&gt; &gt; #if ( _MSC_VER &gt;= 1300 ) // Visual studio .NET<br>&gt; &gt; #pragma warning ( disable : 4311 )<br>&gt; &gt; #pragma warning ( disable : 4312 )<br>&gt; &gt; #&nbsp;&nbsp;define vtkGWLP_HINSTANCE GWLP_HINSTANCE
<br>&gt; &gt; #&nbsp;&nbsp;define vtkLONG LONG_PTR<br>&gt; &gt; #&nbsp;&nbsp;define vtkWndOffset sizeof(vtkLONG)<br>&gt; &gt; #&nbsp;&nbsp;define vtkGetWindowLong GetWindowLongPtr<br>&gt; &gt; #&nbsp;&nbsp;define vtkSetWindowLong SetWindowLongPtr<br>&gt; &gt; #else // regular Visual studio
<br>&gt; &gt; #&nbsp;&nbsp;define vtkGWLP_HINSTANCE GWL_HINSTANCE<br>&gt; &gt; #&nbsp;&nbsp;define vtkLONG LONG<br>&gt; &gt; #&nbsp;&nbsp;define vtkWndOffset sizeof(vtkLONG)<br>&gt; &gt; #&nbsp;&nbsp;define vtkGetWindowLong GetWindowLong<br>&gt; &gt; #&nbsp;&nbsp;define vtkSetWindowLong SetWindowLong
<br>&gt; &gt; #endif //<br>&gt; &gt;<br>&gt; &gt; Now change all occurences of LONG into vtkLONG.<br>&gt; &gt;<br>&gt; &gt; Leo.<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt; _______________________________________________
<br>&gt; &gt; This is the private VTK discussion list.<br>&gt; &gt; Please keep messages on-topic. Check the FAQ at:<br>&gt; &gt; <a href="http://www.vtk.org/Wiki/VTK_FAQ">http://www.vtk.org/Wiki/VTK_FAQ</a><br>&gt; &gt; Follow this link to subscribe/unsubscribe:
<br>&gt; &gt; <a href="http://www.vtk.org/mailman/listinfo/vtkusers">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt;<br>&gt;<br><br><br></blockquote></div><br>