We use optimized OGL but are looking into other display methods as well. There is a lot of work into point clouds for example. Somewhat faster than showing polygons in some cases. We also need to have proper display characteristics to produced head tracked stereoscopic displays. This greatly aids the sense of immersion within the environment.
Shared memory is used to allow the two to communicate with each other.
The viewer has a thread for the graphics and for each of the devices it communicates with. Each device has a thread to do its communication with APE as well as the device. Also, there are various other threads to do assorted global tasks, like tracking a globally closest point. In order to talk across multiple machines, as well as multiple architectures, a machine independent network protocol is required. Avoiding any locking is a huge win.