Not logged in, Join Here! or Log In Below:  
 
News Articles Search    
 

 Home / General Programming / opengl extensions questions Account Manager
 
Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.
 
Vast

March 05, 2005, 02:10 PM

I have a question about extensions.

First of all, how to video cards support extesions:
Are video cards being built with extensions, or are the extensions being passed in by drivers? if so (drivers) does it mean that virtually ANY card with an update driver would support the extension?

Do the video card vendors still write updated drivers for all cards (say TNT from nvidia)? So if i plan to use an extensions like GL_EXT_texture_env_combine, would it work on pretty old cards too? What if i use a nVidia extension (NV) would it run on ATI cards?

Also, I am currently using wglGetProcAddress to get extension entry points, and as i understand from my last question here about extensions, wgl are windows specific, right? So what procedure should i use, that would be more "global", as in multi-platform global?

I would like my app to compile on multiple platforms, with MINIMAL changes.
Or do i HAVE to use wgl command on windows, and some alternative on other systems?

Thanks a lot. I hope my questions make sense, since i cant get used to the fact that im using something (extensions) and dont even know some basic principles.

Regards,
Tim

 
Jari Komppa

March 05, 2005, 02:57 PM

Are video cards being built with extensions, or are the extensions being passed in by drivers? if so (drivers) does it mean that virtually ANY card with an update driver would support the extension?

Depends on the extension. Things like pixel shaders or cube mapping can be 'somewhat difficult' to do in just software. Other extensions may be possible to implement.

Do the video card vendors still write updated drivers for all cards (say TNT from nvidia)? So if i plan to use an extensions like GL_EXT_texture_env_combine, would it work on pretty old cards too?

I'd say that probably depends on whether the card has any meaningful market share. I don't know how deep the 'unified driver architecture' goes, but some extensions are simply impossible to implement on older hardware.

What if i use a nVidia extension (NV) would it run on ATI cards?

Depends on whether ATI has licensed said extensions from nvidia.

Also, I am currently using wglGetProcAddress to get extension entry points, and as i understand from my last question here about extensions, wgl are windows specific, right? So what procedure should i use, that would be more "global", as in multi-platform global?

Different platforms have different extension mechanisms.

I would like my app to compile on multiple platforms, with MINIMAL changes. Or do i HAVE to use wgl command on windows, and some alternative on other systems?

Yes. It should be relatively simple to write wrapper functions for this, though. But since application frameworks will be different on different platforms, you'll need to do some work on each platform anyway.

 
Axel

March 05, 2005, 03:29 PM

Depends on whether ATI has licensed said extensions from nvidia.
Extensions are free for everybody to use. If ATi is not able to provide them, then it has something to do with hardware limitations or patents.

 
Vast

March 05, 2005, 04:20 PM

Ok, thanks guys! That sets me pretty much straight.

I appreciate your help.

Regards,
Tim

 
Nico

March 05, 2005, 04:53 PM

There are cross-platform extension loading libaries out there, too. My favourite one is glew: http://glew.sourceforge.net/
This way, you can simply use extensions and don't have to take care of the loading yourself.

 
Vast

March 05, 2005, 06:09 PM

Thanks, that looks pretty usefull! Do i have to make my project opensource tho? Since i didnt see any information about their license...

Tim

 
Nico

March 05, 2005, 06:36 PM

glew is released under a sgi license (there's a docs directory included in the download, but the file is available online as well, though it's not linked from the start page):
http://glew.sourceforge.net/credits.html

Only its code generation tool is gpl'ed, but you won't use that directly, so it doesn't matter.

 
Chad Austin

March 06, 2005, 12:56 AM

If you're curious what extensions are supported by a particular card or what cards support a particular extension, go to:

http://www.delphi3d.net/hardware

 
Jari Komppa

March 06, 2005, 01:00 AM

There are plenty of vendor-specific extensions that are bound by some kind of patent or other 'intellectual property'. Vendors have a lot of cross-licensing deals going on.

A good example is S3TC. If you want to support it, you have to license it from S3. If you also want to support it in the direct3d side, you have to license it from microsoft. If you want to use the S3TC with 3d textures, you have to talk with nvidia.

 
Chris

March 06, 2005, 04:43 AM

More comprehensive lists are freely available from both nVidias and ATIs websites. They list all extensions, and their levels of support in different chipset/driver combinations.

http://www.nvidia.com/dev_content/nvopenglspecs/nvOpenGLspecs.pdf

http://www.ati.com/developer/atiopengl.pdf

 
This thread contains 10 messages.
 
 
Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.