aboutsummaryrefslogtreecommitdiffstats
path: root/src/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2013-05-06 17:31:31 +0200
committerSven Gothel <[email protected]>2013-05-06 17:31:31 +0200
commitc8f41307f4a622398b3e765badc0525d74c2cbf7 (patch)
treeeef41602fdd774ba92be0c45c82a5891b2835b32 /src/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java
parent502e1d863e636808b7436354c3b639fc2f92bf29 (diff)
Fix GLX: X11GLXContext used wrong FBConfig n/a query; X11GLX*: If FBConfig is n/a force GLX (server) version down to 1.1 to avoid crashes w/ old GLX server (i.e. Mesa 4.*).
Diffstat (limited to 'src/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java')
-rw-r--r--src/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java b/src/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java
index 0d56bcde1..c37bcee50 100644
--- a/src/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java
+++ b/src/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java
@@ -146,6 +146,13 @@ public class X11GLXContext extends GLContextImpl {
isGLXVersionGreaterEqualOneThree = null != glXServerVersion ? glXServerVersion.compareTo(X11GLXDrawableFactory.versionOneThree) >= 0 : false;
return isGLXVersionGreaterEqualOneThree;
}
+ protected final void forceGLXVersionOneOne() {
+ glXServerVersion = X11GLXDrawableFactory.versionOneOne;
+ isGLXVersionGreaterEqualOneThree = false;
+ if(DEBUG) {
+ System.err.println("X11GLXContext.forceGLXVersionNumber: "+glXServerVersion);
+ }
+ }
@Override
public final boolean isGLReadDrawableAvailable() {
@@ -300,8 +307,9 @@ public class X11GLXContext extends GLContextImpl {
final GLCapabilitiesImmutable glCaps = (GLCapabilitiesImmutable) config.getChosenCapabilities();
final GLProfile glp = glCaps.getGLProfile();
- if( config.getFBConfigID() < 0 ) {
- // not able to use FBConfig
+ 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");
}