|
I'm writing an application that (among other things) displays feeds from Gig-e cameras. I am able to load the current frame from each camera as a texture, do all the OGL stuff I want to do, then paint each image on a separate quad and it works fine... if all my quads are in the same window.
What I want to do is have a separate window for each quad, but if I do this, the driver responsible for retrieving frames from the cameras starts to drop frames. I can do two cameras in one window at 100Hz with no problem, but two windows at 5Hz, and I'm losing frames all over the place. I have to assume then that there is a context switch occurring to move from one window to the next that is starving the transport from the cameras.
This is the history of my attempts thus far:
- GLCanvas for each of the AWT windows.
- GLCanvas for each of the AWT windows each created from a shared GLContext.
- GLWindow for each camera.
- GLWindow for each camera with shared Screen.
So far, I haven't noticed any detectable difference in the phenomena with any of these attempts, which makes me think that whatever context switch is causing the problem is still present with each of these strategies.
I would very much like to find a solution eventually, though in the mean time I'm going to have to implement moving/resizing quads within a single window until I have a breakthrough. Does anyone have any immediate guess at how to get around the problem?
|