Rendering to a second card

I wanted to install 2 video cards on my computer and be able to show the regular windows desktop with programs on one, and then writer a program and display some graphics on the other video card (which will connect to a second monitor so the second monitor will display this program). Is that possible with OpenGL? After a bit of searching I heard it’s easier done in DirectX. How easy? I don’t know any DirectX so before I invest time learning it I wanted to know.

P.S. It would be even better if I could do this on one card that has 2 outputs. Is that possible?

P.P.S. I know that there’s a possibility that one of the outputs will not be accelerated. That’s fine. What I will be displaying is simple models.


Yes it’s easier if you have a dual-head card. In this case you just create your opengl window wherever you want on the virtual desktop, and that’s it; the driver handles everything.

If you have 2 (physical) display devices, it gets more complicated. I think you would just have to create your window over the monitor you want, and (hopefully) the correct driver will be called. From what I saw over the web, the hw-acceleration problem on secondary device was a Win98 limitation, it should not affect Win2K/WinXP.

So do you mean that I set up my dual monitor display in MS Windows and “stretch” out the desktop over 2 screens from Display Settings and then move the second created window to the second monitor area? That’s an easy solution but I wanted a full screen display without window borders on the second monitor. If I simply drag the window over I doubt I can make it full screen on only one monitor. That’s why I was asking if you can somehow set up OpenGL to render only to the other card and display something only on the other card.

Actually I just got a chance to try it and everything works nice and seemlessly. So I’ll just let Windows take care of multiple screens.