PDA

View Full Version : OpenGL extensions file generator



kieranatwork
06-30-2002, 12:20 PM
Well, I've just about finished a gui that generates extension files by directly querying and downloading the extension specs off the registry page.
It was difficult to automate, mainly because of stupid spelling mistakes made in function prototypes in the specs (GLBoolean instead of GLboolean for example), missing commas, and a couple of vendors defining constants beginning with numbers - such as ATI's fragment shader (8X_BIT_ATI...yes they assume you'll add a GL_ before it, but still...it makes parsing more difficult for various reasons).
Anyway, I'm going to try and persuade my employers to allow me to put it on their website for any interested parties to download. There's lots of options for how to generate the files - such as DLL exports, externs etc, and the ability to create wrapper functions that check for null entry points...
It even works with nvparse...
Annoying to write, but it needed to be done.
I didn't like the intel sdk that's on the registry site, as it seems more complicated than it needs to be (dealing with multiple OpenGL context DLL entry points, etc.).
Now to actually do some multi-vendor opengl GRAPHICS work....

kieranatwork
07-12-2002, 09:26 AM
Your responses have been overwhelming. http://www.opengl.org/discussion_boards/ubb/smile.gif
There is currently no 'complete' glext.h/.c
The intel one is pretty messy, and doesn't include a few vital function prototypes.
The NVidia one has no other vendor extensions in it, making it useless for professional use. I'm pretty sure the ATI one doesn't have any nvidia extensions in it (why doesn't that surprise me?).
The program I've produced solves this, but apparently this was something only I had a problem with. Such is life.

Couple of questions for the people who maintain the extensions registry web page:
a) why have the multitexture and secondary specular colour extensions been dropped from the registry? I know they're supposed to be part of 1.2, and therefore no longer considered as extensions, but they do not exist in the Windows opengl32.dll (because its frozen at 1.1), and therefore they will ALWAYS be extensions on the Win32 platform. The absense of them in the registry makes my glext generators job less complete (I have to manually add them to my output in my application).

b) why has nvidia neglected to put the wglAllocateMemoryNV and wglFreeMemoryNV prototypes in the proper section of the extension document? (ie. in the "New Procedures and Functions" section)? These functions are referred to in the "Additions to the WGL interface" documentation, but not declared in the proper "Procedures and Functions" section. Makes parsing a bit of a bugger, tucking function prototypes away inside huge wads of random text. Other wgl functions in other extensions ARE in the proper section, so it's obviously a mistake.

Ark at me? I sound like a teacher telling someone off! http://www.opengl.org/discussion_boards/ubb/smile.gif


[This message has been edited by kieranatwork (edited 07-12-2002).]

NitroGL
07-12-2002, 11:38 AM
The secondary specular color spec file is still there...
http://oss.sgi.com/projects/ogl-sample/registry/EXT/separate_specular_color.txt
http://oss.sgi.com/projects/ogl-sample/registry/EXT/secondary_color.txt

[This message has been edited by NitroGL (edited 07-12-2002).]

kieranatwork
07-12-2002, 12:08 PM
Oh yeah, but its syntax in the "new functions and procedures" is this kind of thing:-
void SecondaryColor3[bsifd ubusui]EXT(T components)

So my parser just rejected it - another special case will have to be implemented in my parser if any new extensions use this method!