diff options
Diffstat (limited to 'src/jogl')
-rw-r--r-- | src/jogl/classes/jogamp/opengl/GLContextImpl.java | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/src/jogl/classes/jogamp/opengl/GLContextImpl.java b/src/jogl/classes/jogamp/opengl/GLContextImpl.java index a15352c52..eae40631d 100644 --- a/src/jogl/classes/jogamp/opengl/GLContextImpl.java +++ b/src/jogl/classes/jogamp/opengl/GLContextImpl.java @@ -1390,6 +1390,8 @@ public abstract class GLContextImpl extends GLContext { } } + boolean isES = ( CTX_PROFILE_ES & ctxProfileBits ) != 0; + // // Validate GL version either by GL-Integer or GL-String // @@ -1428,10 +1430,13 @@ public abstract class GLContextImpl extends GLContext { } return false; } - // Use returned GL version! - major = glIntMajor[0]; - minor = glIntMinor[0]; - versionValidated = true; + // impose strict matching for ES + if ((isES && major == glIntMajor[0]) || !isES) { + // Use returned GL version! + major = glIntMajor[0]; + minor = glIntMinor[0]; + versionValidated = true; + } } else { versionGL3IntFailed = true; } @@ -1459,10 +1464,13 @@ public abstract class GLContextImpl extends GLContext { } return false; } - // Use returned GL version! - major = hasGLVersionNumber.getMajor(); - minor = hasGLVersionNumber.getMinor(); - versionValidated = true; + // impose strict matching for ES + if ((isES && major == hasGLVersionNumber.getMajor()) || !isES) { + // Use returned GL version! + major = hasGLVersionNumber.getMajor(); + minor = hasGLVersionNumber.getMinor(); + versionValidated = true; + } } } if( strictMatch && !versionValidated ) { @@ -1555,7 +1563,7 @@ public abstract class GLContextImpl extends GLContext { } } - if( 0 != ( CTX_PROFILE_ES & ctxProfileBits ) ) { + if( isES ) { if( major >= 3 ) { ctxProfileBits |= CTX_IMPL_ES3_COMPAT | CTX_IMPL_ES2_COMPAT ; ctxProfileBits |= CTX_IMPL_FBO; |