With two monitors configured under XWindows, and an OpenGL application which is going to do our rendering in full screen exclusive mode, what is the access method for writing to each monitor. Are there separate buffers? Is this possible?

Target application is _again_ stereoscopic rendering on a hmd with twin vga inputs. Though if anyone has any info on just accessing the two different display pipelines from OGL, I would be very interested.

So you are saying that if I enable twinview in my XF86Config file and set the screen resolution to twice the width of my actual screen, the left half of the image will be displayed on the left monitor, and the right half of the image will be displayed on the right monitor?

Ok, I did some research about nvidia and twinview. I found the readme.txt appendix 1 configuring twinview document at the nvidia ftp site.

Here is my question:
If I have two 640x480 monitors side by side, configured for twinview on a quadro 4 card, x now sees a 1280x480 monitor.
What is the OpenGL syntax, or just some info for me to look up for having two seperate viewpionts, IE a birdseye view and a isometric view of a scene, or a left eye and a right eye, rendered side by side in a single buffer?

This is really an openGL question, but I thought someone might be able to answer it.

Originally posted by samh What is the OpenGL syntax, or just some info for me to look up for having two seperate viewpionts, IE a birdseye view and a isometric view of a scene, or a left eye and a right eye, rendered side by side in a single buffer?

I am not positive (I don't do much OpenGL), but I don't believe this issue is in the domain of the OpenGL spec. Plus, I've never seen anything addressing how to do it (which definitely doesn't mean it doesn't exist, though).

I would think, however, that it would be quite simple. All you'd have to do is look at Appendix R in the README, then set up two GLX contexts (one for each screen). Then render to each context from a slightly different viewpoint.

The problem with trying to do it all in one GLX context is that, AFAIK, you cannot change your viewpoint for only half of any given update. Plus, you would not want to set up two different world models inside your program (which is about the only thing you'd be able to do -- with a single GLX context, you can't just "offset" the pixels by a certain amount, I don't believe), one for each eye. You'd end up doing all the rendering twice anyway, so you might as well just set up two GLX contexts.

The problem with that approach is that, according to appendix R you cannot hardware accelerate on 2 screens set up as individual displays.. You can accelerate one display across multiple screens with twinview.

Thinking about CAD programs or modellers written in opengl, they often have multi window displays with different viewpoints. It doesn't seem to me to be a far cry to just have a sort of two pane display, with one image on the left and the other on the right. Twinview would figure out where to split the display and put the correct half on the correct monitor.