diff options
author | Sven Gothel <[email protected]> | 2014-07-30 03:06:30 +0200 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2014-07-30 03:06:30 +0200 |
commit | e5a55ede324ce500f50991d56491758803063a58 (patch) | |
tree | 63d0fc31a4c1b05ad46d226f4de0a457b8e32284 /src/jogl/classes/jogamp/opengl/x11/glx | |
parent | c8b99d197769eaec53c2def562c0ef3fc0e6a9d2 (diff) |
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.
Diffstat (limited to 'src/jogl/classes/jogamp/opengl/x11/glx')
-rw-r--r-- | src/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/src/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java b/src/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java index d4c3abc49..d93b2feb0 100644 --- a/src/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java +++ b/src/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java @@ -51,7 +51,6 @@ import javax.media.nativewindow.NativeSurface; import javax.media.opengl.GLCapabilitiesImmutable; import javax.media.opengl.GLContext; import javax.media.opengl.GLException; -import javax.media.opengl.GLProfile; import jogamp.nativewindow.x11.X11Lib; import jogamp.nativewindow.x11.X11Util; @@ -298,13 +297,12 @@ public class X11GLXContext extends GLContextImpl { } final GLCapabilitiesImmutable glCaps = (GLCapabilitiesImmutable) config.getChosenCapabilities(); - final GLProfile glp = glCaps.getGLProfile(); if( !config.hasFBConfig() ) { // not able to use FBConfig -> GLX 1.1 forceGLXVersionOneOne(); - if(glp.isGL3()) { - throw new GLException(getThreadName()+": Unable to create OpenGL >= 3.1 context"); + if(glCaps.getGLProfile().isGL3()) { + throw new GLException(getThreadName()+": Unable to create OpenGL >= 3.1 context w/o FBConfig"); } contextHandle = GLX.glXCreateContext(display, config.getXVisualInfo(), shareWithHandle, direct); if ( 0 == contextHandle ) { @@ -380,16 +378,11 @@ public class X11GLXContext extends GLContextImpl { } } } else { - if( glp.isGL3() ) { - glXMakeContextCurrent(display, 0, 0, 0); - GLX.glXDestroyContext(display, temp_ctx); - throw new GLException(getThreadName()+": X11GLXContext.createContextImpl ctx !ARB, profile > GL2 requested (OpenGL >= 3.0.1). Requested: "+glp+", current: "+getGLVersion()); - } if(DEBUG) { - System.err.println(getThreadName()+": X11GLXContext.createContextImpl failed, fall back to !ARB context "+getGLVersion()); + System.err.println(getThreadName()+": X11GLXContext.createContextImpl via ARB failed, fall back to !ARB context "+getGLVersion()); } - // continue with temp context for GL <= 3.0 + // continue with temp context contextHandle = temp_ctx; if ( !glXMakeContextCurrent(display, drawable.getHandle(), drawableRead.getHandle(), contextHandle) ) { glXMakeContextCurrent(display, 0, 0, 0); |