aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--make/scripts/tests.sh6
-rw-r--r--src/jogl/classes/com/jogamp/opengl/GLProfile.java2
-rw-r--r--src/jogl/classes/jogamp/opengl/GLContextImpl.java18
3 files changed, 22 insertions, 4 deletions
diff --git a/make/scripts/tests.sh b/make/scripts/tests.sh
index 928b6dcc2..7432728a7 100644
--- a/make/scripts/tests.sh
+++ b/make/scripts/tests.sh
@@ -99,6 +99,8 @@ function jrun() {
swton=$1
shift
+ D_ARGS="-Djogl.quirks.force=GL3CompatNonCompliant,NoSurfacelessCtx -Djogl.debug.GLProfile -Djogl.debug.GLContext -Djogl.disable.opengles"
+ #D_ARGS="-Djogl.debug.GLProfile -Djogl.debug.GLContext -Djogl.disable.opengles"
#D_ARGS="-Djogl.debug.GLProfile"
#D_ARGS="-Djogl.debug.DebugGL"
#D_ARGS="-Djogl.debug.TraceGL"
@@ -436,7 +438,7 @@ function testawtswt() {
#testnoawt com.jogamp.newt.opengl.GLWindow $*
#testnoawt com.jogamp.opengl.test.junit.jogl.acore.TestGLVersionParsing00NEWT $*
-#testnoawt com.jogamp.opengl.test.junit.jogl.acore.TestMainVersionGLWindowNEWT $*
+testnoawt com.jogamp.opengl.test.junit.jogl.acore.TestMainVersionGLWindowNEWT $*
#testawt com.jogamp.opengl.test.junit.jogl.acore.TestMainVersionGLCanvasAWT $*
#testnoawt com.jogamp.opengl.test.junit.jogl.acore.TestGLProfile00NEWT $*
#testnoawt com.jogamp.opengl.test.junit.jogl.acore.TestGLProfile01NEWT $*
@@ -457,7 +459,7 @@ function testawtswt() {
#testnoawt com.jogamp.opengl.test.junit.jogl.demos.es2.newt.TestGearsES2NEWT $*
#testnoawt com.jogamp.opengl.test.junit.jogl.demos.es2.newt.TestGearsES2SimpleNEWT $*
#testawt com.jogamp.opengl.test.junit.jogl.demos.es2.awt.TestGearsES2GLJPanelAWT $*
-testawt com.jogamp.opengl.test.junit.jogl.demos.es2.awt.TestGearsES2AWT $*
+#testawt com.jogamp.opengl.test.junit.jogl.demos.es2.awt.TestGearsES2AWT $*
#testawt com.jogamp.opengl.test.junit.jogl.demos.es2.newt.TestGearsES2NewtCanvasAWT $*
#testawt com.jogamp.opengl.test.junit.jogl.demos.gl2.awt.TestGearsAWT $*
#testnoawt com.jogamp.opengl.test.junit.jogl.glsl.TestRulerNEWT01 $*
diff --git a/src/jogl/classes/com/jogamp/opengl/GLProfile.java b/src/jogl/classes/com/jogamp/opengl/GLProfile.java
index 9b96adf71..c52e3136e 100644
--- a/src/jogl/classes/com/jogamp/opengl/GLProfile.java
+++ b/src/jogl/classes/com/jogamp/opengl/GLProfile.java
@@ -2093,6 +2093,8 @@ public class GLProfile {
} else {
final GLProfile _mglp = _mappedProfiles.get( profileImpl );
if( null == _mglp ) {
+ // Bug 1383: We may consider allowing cross mapping here,
+ // i.e. mapping on actually non-supported (implementation) profiles
throw new InternalError("XXX0 profile["+i+"]: "+profile+" -> profileImpl "+profileImpl+" !!! not mapped ");
}
glProfile = new GLProfile(profile, _mglp, isHardwareRasterizer[0], false /* custom */);
diff --git a/src/jogl/classes/jogamp/opengl/GLContextImpl.java b/src/jogl/classes/jogamp/opengl/GLContextImpl.java
index 54051e572..5f5823801 100644
--- a/src/jogl/classes/jogamp/opengl/GLContextImpl.java
+++ b/src/jogl/classes/jogamp/opengl/GLContextImpl.java
@@ -1977,8 +1977,8 @@ public abstract class GLContextImpl extends GLContext {
reqMajor, reqMinor, reqCtxProfileBits,
hasMajor, hasMinor, hasCtxProfileBits, vendorVersion, withinGLVersionsMapping);
- if( strictMatch && glRendererQuirks.exist(GLRendererQuirks.GL3CompatNonCompliant) &&
- 0 != ( hasCtxProfileBits & GLContext.CTX_PROFILE_COMPAT) && (hasMajor > 3 || (hasMajor == 3 && hasMinor >= 1))
+ if( glRendererQuirks.exist(GLRendererQuirks.GL3CompatNonCompliant) &&
+ 0 != ( reqCtxProfileBits & GLContext.CTX_PROFILE_COMPAT) && (reqMajor > 3 || (reqMajor == 3 && reqMinor >= 1))
)
{
if(DEBUG) {
@@ -1988,6 +1988,20 @@ public abstract class GLContextImpl extends GLContext {
return false;
}
+ if( glRendererQuirks.exist(GLRendererQuirks.GL3CompatNonCompliant) &&
+ reqMajor > 0 &&
+ 0 != ( hasCtxProfileBits & GLContext.CTX_PROFILE_COMPAT) && (hasMajor > 3 || (hasMajor == 3 && hasMinor >= 1))
+ )
+ {
+ // Clip actual OpenGL version to be mapped for requested profile/version mapping
+ hasMajor = reqMajor;
+ hasMinor = reqMinor;
+ if(DEBUG) {
+ System.err.println(getThreadName() + ": GLContext.setGLFuncAvail: GL3CompatNonCompliant: "+
+ GLContext.getGLVersion(hasMajor, hasMinor, hasCtxProfileBits, glVersion)+", "+glRenderer);
+ }
+ }
+
contextFQN = getContextFQN(adevice, hasMajor, hasMinor, hasCtxProfileBits);
if (DEBUG) {
System.err.println(getThreadName() + ": GLContext.setGLFuncAvail.0 validated FQN: "+contextFQN+" - "+