opengl depreciation and compatibility

Community Forums/General Help/opengl depreciation and compatibility

Warner(Posted 2011) [#1]
Hi, I have a question about maintaining compatibility in openGL.
I'm upgrading my software from Blitz3D to MiniB3D. I thought I change from DX7 to OpenGL, since I need not to worry about deprecation.

Elas, as I understand, older openGL functions are now deprecated, and will be 'removed in future versions'. Some manufacturers will not include these functions anymore. (the opengl 'core' profile)

Also, there are cards which only support up to a certain version, such as OpenGL 1.5. My own laptop has that.

How could I write software that is compatible with both older and newer cards? And how long should I expect this software to last? MiniB3D runs fine on my OpenGL 1.5 machine, but will it also keep running on newer videocards?

Last edited 2011


GfK(Posted 2011) [#2]
Moving from Blitz3D to MiniB3D (in terms of the 3D aspect of Blitzmax) isn't an upgrade, its more of a step sideways.

No reason MiniB3D apps won't run on newer hardware. There's been a couple of commercial games done with it (Super Gerball for one) so there can't be that many issues.

Oh, and the word you're looking for is deprecated, not depreciated, which means something entirely different.


Warner(Posted 2011) [#3]
Dang, I've allways read that as depreciated.. thanks for letting me know. I can't edit the topic title, but I edited the post itself.
The reason I called it an upgrade, is that I was under the (wrong) impression that even though OpenGL gets extended, the core functions weren't affected. So that in a way OpenGL 1.5 is less obsolete than DX7.
Still it feels wrong to write something new using 'deprecated' functions. Even though my own hardware doesn't support anything else.

Last edited 2011


Kryzon(Posted 2011) [#4]
You can find what is being deprecated on lists throughout the web (both official and independent).

http://www.devklog.net/2008/08/23/forward-compatible-opengl-3-entry-points/

http://stackoverflow.com/questions/1218449/opengl-whats-the-deal-with-deprecation

But yeah, soon enough MiniB3D will have to be updated to the new specification.


Warner(Posted 2011) [#5]
So, if I understand it correctly, to be able to serve both old and new videocards, I'm better off using OpenGL 1.5 functions, like the ones minib3d uses?

Last edited 2011


Kryzon(Posted 2011) [#6]
It seems for the time being the old OpenGL specification that MiniB3D uses is still compatible with recent cards, though it seems that it would invoke a "compatibility mode" to support these deprecated features.

More info here: http://developer.nvidia.com/object/opengl_driver.html#faq


Warner(Posted 2011) [#7]
After reading quite a bit, I've decided -for now- to go with the approach that is described here:
http://www.rojtberg.net/302/developing-opengl-3-when-all-you-have-is-opengl-1-5/

My card only supports ASM based shaders (I believe they're called shader programs). In my engine, I will add a separate file that implements these programs. Later on, if GL1.5 would get unsupported, I can then replace this module by a GLSL one.

Thanks for all the help! I'll post an example in the openGL section.


D4NM4N(Posted 2011) [#8]
Intel are to blame.... damn you intel... and may you go bankrupt when blogg's processors eat your faces.
Get a different mistress as MS is getting a real bucket!

In short, STOP MAKING GPUS!!!!!

Last edited 2011


BlitzSupport(Posted 2011) [#9]

STOP MAKING GPUS!!!!!



Apparently they've just stopped sucking instead!

http://www.pcgamer.com/2011/03/04/epic-latest-intel-integrated-graphics-dont-suck/


Warner(Posted 2011) [#10]
Don't know about cards and their quality, but I have an onboard SiS.
My experience so far: if it runs on my laptop, it will run anywhere.

Thanks for the links, info and feedback!

Here is my archive entry .. future reference.
Uses BlitzMax, openGL. Based off code from codesamples.com: http://www.codesampler.com/oglsrc/oglsrc_9.htm


Update:
In the meanwhile, I've discovered my portable device has only openGL 1.0.
Also, glInterleavedArrays and glDrawElements are also deprecated. That leaves me without any options to develop for 3.0.
So, I've decided to put all 'depecation' sensitive routines in a single module. As soon as the deprecated stuff gets removed, I'll update this module and the program is up-to-date again.
It is however good to prepare this a bit. The module should allow for such an update. Therefore, I'm using matrices and quaternions that I calculate myself, and I use vertex buffers. This will allow an easier transistion later on:
http://blog.vrplumber.com/index.php?/archives/2285-glInterleavedArrays-is-deprecated....html
Sigh .. I find it all somewhat frustrating.

Last edited 2011