I need some help/advice regarding the different versions of OpenGL. I've been programming with the API now for a few years, and this has only just dawned on me when I wanted to buy the new edition of Superbible...

I want to create OpenGL applications for Windows primarily. But I heard that XP and visual studio has support for v1.1 only.

If I use some functions/extensions that were introduced with v1.5, does that mean it won't run on an older graphics card?

If I test to see if the graphics card has the extention, and it doesn't, does that mean that's it?! If so, if I want maximum compatibility for end-users (with both old and new machines), should I stick to v1.1 specifically?

Many thanks for your help,
Anthony

rgpc

08-01-2004, 04:28 PM

The standard version of Opengl32.dll that comes with windows (ie. the "Software" implementation) is v1.1. The drivers you install for your graphics card will generally support much later versions of Opengl.

For example, cards as far back as geforce 2 (perhaps even earlier) will support upto version 1.4 (but some features will be emulated in software - eg. Vertex buffers AFAIK are in software on gf2)

If you query the existence of an extension and it is not present then yes that is "it". Asking nicely won't help - the card/drivers can't do what they can't do.

With respect to compatibility the Extensions model is designed so that you can find out what a card supports and use these extensions. There are many different ways to do different things. Your best bet is to support as many of them as you can (A good example is anything written by id - They have specific code pathways for most of the different generations of graphics cards that are and have been available).