Posted by
Sven Gothel on
Jul 12, 2011; 9:24pm
URL: https://forum.jogamp.org/Which-version-s-of-OpenGL-does-JOGL-use-and-how-does-it-work-exactly-Profiles-tp3160603p3163904.html
On Monday, July 11, 2011 11:54:42 PM s3a [via jogamp] wrote:
>
> 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.
Well, it is the only maintained JOGL version available.
> but I use Debian
> and it has JOGL 1.1.1 and I prefer using extremely stable stuff.
I would consider our continous integrated (jenkins incl. junit) maintained
version much more stable and reliable then the previous version lacking such
quality aspects. We also track the bugs on our bugzilla.
> The Linux
> OpenGL implementation, mesa, supports up to OpenGL 2.0 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.
Note: Mesa is close to be OpenGL 3.0 compatible - incl. open drivers for AMD and Intel.
>
> 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)?
Check the UML I have created ..
-
http://jogamp.org/jogl/doc/bouml/html/And our API overview is very verbose on all these matters I believe:
-
http://jogamp.org/deployment/jogamp-next/javadoc/jogl/javadoc/overview-summary.html#overview_description - OpenGL Profile Model
-
http://jogamp.org/deployment/jogamp-next/javadoc/jogl/javadoc/overview-summary.html#GLAPIInclusionCriteria -
http://jogamp.org/deployment/jogamp-next/javadoc/jogl/javadoc/overview-summary.html#GLRuntimeVersion> Does it allow the programmer to use, for
> example, OpenGL 2.0 syntax even when there is OpenGL [insert a large number
> here]?
You can pick a GL profile you design your application for, and why doing so,
you have a validation at compile time already. for example you choose
GL3 for core GL3 profile. If you want to have your application running on
mobile and desktop you may choose GL2ES2, which is the common denominator
of GL2 and ES2.
Of course .. your application may also query the current version and branch to
specific optimized code,
i.e. if(gl.isGL3()) { /* use fancy stuff */ } else { /* old school */ }.
> I am choosing to learn JOGL 1.1.1 until JOGL 2.x becomes (extremely)
> stable but I wanted to know.
'Extremly stable' .. is not a metric we support.
But if you use the latest version you will have this community to support you.
Sometimes it's simple to help, sometimes complicated bugs not easy to reproduce happens,
which take longer to fix - also depending on our priorities.
However, everybody is always welcome to join and branch our code (git scm)
and offer patched (git) to be merged back (after review and discussion).
> 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.
It's a point of view.
>
> Basically, I am just concerned about backward compatibility. 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?
Well, we change things, true.
Mostly because we identify 'bugs' in the architecture or naming.
In case of a new API package, i.e. our new graph package,
we have a disclaimer mentioning it's instable API.
Other than that .. no major changes, hard to grok are planned.
For some sort of backward compatibility, we will still offer the
old versions as binary packages at a distinct URL - assuming you use Webstart or Applets.
This allows us to make simple changes, w/o breaking your application/applet.
>
> Any input would be greatly appreciated!
> Thanks in advance!
You are welcome.
Cheers, Sven