Hi,
Sorry for that, but looks like I missed this topic because of my English: I just treated hiccup as something like “lock up” or “hang up”…
OK, now back to the subject.
I guess you are using standard build of JOGL. If so, then you WILL have a flash/flicker/short pause on your animation caused by call to any picking method [the actual sympthoms depend on the graphic card and driver].
The reason for that is following: current official abd CVS versions of JOGL do not expose explicit control over SwapBuffers calls to the applications that use JOGL. For On-screen contexts, especially on Windows, JOGL explicitly calls SwapBuffers or equivalent code just after rendering of next frame finished, i.e. right after returning from GLEventListener.display(…).
Currently Xith3D picking mechanism uses OpenGL to perform picking, i.e. renders one frame in special GL_SELECT rendering mode. In this mode, no pixels are produced, but JOGL does not care about this and calls SwapBuffers anyway.
In typical configuration on Windows you have wait-for-vertical-retrace for SwapBuffers turned ON by default, so you see recognizable delay/pause/flicking (I guess you call this thing as “hiccup”) because of driver is waiting for nearest VSYNC to perform nice buffer swapping.
This problem has been discussed already several times and I think I highlighted it somewhere on earlier threads of this forum. There is also discusson on this in JOGL forum: http://www.java-gaming.org/cgi-bin/JGNetForums/YaBB.cgi?board=jogl;action=display;num=1063385846 “Vote time: RFE - Developer controlled swap buffer”.
To eliminate this problem, you need modified version of JOGL (only java-side code have to be modified), a version that lets you disable automatic buffer swapping for pick rendering passes.
CanvasPeerImpl in Xith3D already contains all the neccessary code to add this functionality - there is commented out line in renderStart(…) method:
// canvas.setNoSwapBuffers(pickMode);
In my local version I have this uncommented, because of I work with modified version of JOGL, which includes this and some other minor patches from JOGL IssueZilla.
Because of this is ready and easy to add, I am just waiting for official JOGL release, which will have the functionality of disabling automatic swap buffers control, to uncomment this code and forget about this issue.
Yuri