Too many extensions...

Started by
13 comments, last by dj3hut1 14 years, 3 months ago
I have to agree that the situation with extensions is much simpler these days. Most of them have been rendered practically useless because of mostly unified buffers and programmatibility. Basically, stuff like VBO,FBO,shaders and other useful things are not even extensions in the real sense, they are in the GL core, you just load them differertly on windows, a purely practical issue. I use glee and don't really have to mess with any of it. Vendor extensions are still there, but I feel it's a 'use at your own risk' thing. If you want ease of development then you decide which version of OpenGL you want to write against, and just use the core. If you do use vendor extensions, you make development more complex but that's the price you must pay for getting the benefit of utilizing specialized features or targetting old hardware. Consider the difference with D3D, where if you want to target both modern and older hardware, you basically not only have merely different code paths, but have to support 2 basically different APIs(9 and 10).

I think that, all things considering, OpenGL is in a decent place right now, it certainly won't gain a large piece of the pie for games on windows, but slowly it is becoming a leaner API. The transformation is of course slower than D3D because it's not just a proprietary games API but a pretty much an industry standard for apps much more serious than games, so it's natural.
Advertisement
But there are still many computer with GPUs supporting OpenGL 2.1 ... mant 3.0-core features are supported too, but only as extensions. Making my libray support 2.1, 3.0, 3.1 and 3.2 is a lot of extra work because there are so many extensions. Using only 3.2 will be a lot easier for me, but my card doesn't support it, so I won't be able to try OpenGL code during the development of the library..
Quote:Original post by Tom Backton
But there are still many computer with GPUs supporting OpenGL 2.1 ... mant 3.0-core features are supported too, but only as extensions. Making my libray support 2.1, 3.0, 3.1 and 3.2 is a lot of extra work because there are so many extensions. Using only 3.2 will be a lot easier for me, but my card doesn't support it, so I won't be able to try OpenGL code during the development of the library..


Well duh, different cards have different capabilities. An API can't magically give the hardware new features. GeForce2 doesn't support fragment shaders, you can't work around that. Either you drop support for older cards or you do the extra work. Again though, there are not that many extensions that are actually useful. Very few extensions on the registry are what you actually need, unless you target *really* old hardware.

-EDIT: Oh, I just saw you are making a library...well, since you said you're a beginner I would advise against it, but if you are determined to do it, do it. You'll have to determine what hardware you are going to target. If you want a wide range, you'll have to do a lot of work. I'm afraid there's not much you can do other than sort the extensions yourself, read the specifications of each one and see what you can use.
I believe GLEW is automagically generated from the OpenGL extensions registry. If you want some new extensions that aren't included in the version of GLEW you downloaded, you can just generate a new up-to-date one. Even if you want to do your own thing rather than using an existing library, it might be worth looking into how they got it to work.
--- krez ([email="krez_AT_optonline_DOT_net"]krez_AT_optonline_DOT_net[/email])
Hello,

Quote:My view is, ignore extensions and life is great.


I think not all extensions can be completely ignored, even in GL 3. F.e. one of the most useful extensions is anisotropic texture filtering, which for some reason never made it into the core of opengl.


dj3hut1

This topic is closed to new replies.

Advertisement