Login  Register

Which version(s) of OpenGL does JOGL use and how does it work exactly? (Profiles)

Posted by s3a on Jul 11, 2011; 9:54pm
URL: https://forum.jogamp.org/Which-version-s-of-OpenGL-does-JOGL-use-and-how-does-it-work-exactly-Profiles-tp3160603.html

I am just going to say some things first to "paint a picture" of what I know. The documentation seems to want people to learn JOGL 2.0 but I use Debian and it has JOGL 1.1.1 and I prefer using extremely stable stuff. The Linux OpenGL implementation, mesa, supports up to OpenGL 2.1 so this means that that is the highest I can use with open source drivers whereas proprietary drivers typically offer the highest level of OpenGL supported.

I read about something called Profiles which, if I'm correct, allows JOGL (2.x) to select which OpenGL version to use. How does this work exactly (without getting too technical)? Does it allow the programmer to use, for example, OpenGL 2.0 syntax even when there is OpenGL [insert a large number here]? I am choosing to learn JOGL 1.1.1 until JOGL 2.x becomes (extremely) stable but I wanted to know. Sorry for saying dumb things; all I know about JOGL/OpenGL is how to make a coloured static square display itself and do nothing fancy (so far). Also, correct me if anything I said here was wrong.

Basically, I am just concerned about backward compatibility (and cross-platform usability). I like when languages add new features but I don't like when the old syntax stops working (but if that's the way things are, I'll make the best of it). For example, in plain Java; the older Java code (almost) always works perfectly fine without any refactoring whereas old JOGL code doesn't follow that rule. Was that an exception because JOGL was very "young and immature" or is this always how it's going to be? Like should I refrain from learning OpenGL above versions 2.1 until JOGL 2.x comes out? The key for me is to be able to stick to JOGL 1.1.1 until JOGL 2.x is fully finalized. I am going to get serious about JOGL soon and I would like to know what I am getting into.

Any input would be greatly appreciated!
Thanks in advance!