This is a follow on from a post on the beginners forum - ‘Where to get OpenGL 1.2 Headers’
Something has been seriously bugging me for ages - this ludicrous situation over the various OpenGL header files. How many times is a given forum asked where to get these illusive little babies? And how many different versions of them exist? Bloody hundreds, so it seems.
I had just started to set up a series of headers for inclusion into all my openGL apps. Then I saw Lev’s post saying he’s written his own headers and a .lib loader. I was going to email him and for a copy … And I thought what the hell am I doing this for? Why is it down to each individual to re-invent the wheel for each version of OpenGL? If Microsoft said if you want to program for Windows you have to write you’re own windows.h they’d be the laughing stock of the IT world. However, this is normal for openGL programmers. What’s going on?
Why can’t the verious vendors get together and form some mechanism whereby each time new extensions are released, the headers are automatically updated and made available - immediately? The most complete set I’ve yet seen are from the Mesa3D implementation. But it shouldn’t be up to other individuals to do this work. It’s simply laziness, or totally disorganisation, which has brought this entire situation about.
How about every member of the ARB puts a couple of grand into a kitty every year to pay a contract programmer (there’s enough of 'em) to be responsible for this, and writting code to load the damn things? Company ‘A’ produces a new extension. They submit the info to this guy. He includes the stuff. Sends back to company ‘A’ for validation. Every Friday he then publishes the new header, with loading code. Firstly, everyone would be working from the same base code. Wouldn’t that be so nice? Secondly, every company’s web site could just link to a common repository (OpenGL.org?), and there’d be no ambiguity as to which files where needed. And it’s not exactly as if it’s really that much work once it’s set up.
It strikes me that this should be a mandatory requirement rather than an unreasonable request. Ok, we all know that MS deserves to be thrown out of the ARB. And quite honestly, if nvidia turned around and said that they were no longer going to support D3D, I think that API would die a death. I’m not actually suggesting they should do because the competing API’s are healthy for each other which suits us all, but it’s food for thought. But the OpenGL vendors should be making it as easy as possible for people to use OpenGL - but for newcomers it’s a total nightmare.
The reason this all started, was because I wanted headers with glCompressedTexImage2D … not glCompressedTexImage2DARB. Why not the ARB version? Because it’s now a core feature and should be exposed as such. I assume all the drivers support both version by now (I know nvidia does). But could I find them? Hell no - not until I looked at mesa on the off chance. And as to the documentation on it … well - try a search in google - you’ll find 4 entries, two of which are in Chinese, and the other two from cvs.lokigames.com!!! This isn’t exactly what you’d call proactive marketing for the API.
OK whinge over. Reading back it wasn’t exactly a well thought out argument, but I’m sure you get the idea.
Regards