SuccessChanges

Summary

  1. GLContext: Don't map compatibility profiles to core profile if the (details)
  2. Bug 1038 - Allow skipping detection of certain GLProfiles: Skip (details)
  3. Revert "GLContext: Don't map compatibility profiles to core profile if (details)
  4. Bug 1038 - Fix: Allow skipping detection of certain GLProfiles: Skip (details)
Commit c8b99d197769eaec53c2def562c0ef3fc0e6a9d2 by Sven Gothel
GLContext: Don't map compatibility profiles to core profile if the latter are not available (restrict profile aliasing) ; GLProfile does this - Simplification.

GLContext shall not map compatibility profiles to core profile if the latter is are not available (restrict profile aliasing).

If a user requests a straight GL3 core profile, don't answer with a compatibility profile, e.g. GL4bc.

Hence this patch exposes the true GL profile situation more honestly the the user!

User can already query profile mappings via GLProfile, i.e.
  - GL2GL3,
  - GL4ES3, or via
  - getMaximum
  - getMaxFixedFunc
  - getMaxProgrammable
  - getMaxProgrammableCore

This also fixes an issue when a user requests 'getMaxProgrammableCore'
but would receive a GL4bc profile.
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
Commit e5a55ede324ce500f50991d56491758803063a58 by Sven Gothel
Bug 1038 - Allow skipping detection of certain GLProfiles: Skip 'ARB_create_context' context creation extension via property 'jogl.disable.openglarbcontext'; ...

Only allow the exclusions if platform OS is not OSX:
  - jogl.disable.openglcore
  - jogl.disable.openglarbcontext

Since on OSX they are known to work reliable and there is not other method
if receiving a higher GL profile than core and ARB.

This also removes the restrictions on X11 and Windows,
where profiles >= GL3 must be created using ARB_create_context.
Hence this is allowed now.
The file was modifiedmake/scripts/tests-x64-dbg.bat (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java (diff)
The file was modifiedmake/scripts/tests-win.bat (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLContext.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLProfile.java (diff)
Commit 7314b47ae1e42997e9e6974b84709640f0ac2a1b by Sven Gothel
Revert "GLContext: Don't map compatibility profiles to core profile if the latter are not available (restrict profile aliasing) ; GLProfile does this - Simplification."

This reverts commit c8b99d197769eaec53c2def562c0ef3fc0e6a9d2.
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
Commit 830feb65f4c3d0c633556fd39787328834ee51d2 by Sven Gothel
Bug 1038 - Fix: Allow skipping detection of certain GLProfiles: Skip 'ARB_create_context'

Commit e5a55ede324ce500f50991d56491758803063a58 was incomplete,
i.e. it lacked the required mappings for the non ARB profile, i.e.:
  GL4bc -> GL3bc, etc.

These profile mappings have been added now.

+++

Further more, GLContext's profile queries, isGL*()
test the ctxOptions for CTX_IS_ARB_CREATED.
This has to be removed to properly work w/ Skip 'ARB_create_context'.

To remove the risk of inconcistency, i.e. context created via ARB and non-ARB,
the 'GLX/WGL profile >= GL3 via non ARB' validation removed
in commit e5a55ede324ce500f50991d56491758803063a58 has been brought back
and refined. Note:
  if( glp.isGL3() && createContextARBTried ) {
    // We shall not allow context creation >= GL3 w/ non ARB methods if ARB is used,
    // otherwise context of similar profile but different creation method may not be share-able.
    .. THROW EXCEPTON ..
  }
This limited validation removes the possibility of such having a context
of same profile, one created via ARB and one without.
Hence also validates the isGL*() change, where the CTX_IS_ARB_CREATED criteria is removed.

+++

Note regarding commit 7314b47ae1e42997e9e6974b84709640f0ac2a1b (revert):

While analyzing the mapping, it turns out that commit c8b99d197769eaec53c2def562c0ef3fc0e6a9d2
  "Don't map compatibility profiles to core profile if the latter are not available (restrict profile aliasing)"
is not fully consistent with GLProfile's and GLContext's profile queries, i.e. isGL*().
We may reiterate over this change .. but have it be reverted for now.
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLContext.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLContext.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLProfile01NEWT.java (diff)