aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2012-02-26 02:54:50 +0100
committerSven Gothel <[email protected]>2012-02-26 02:54:50 +0100
commitcfa9d3d5185c1fa96d0c259d40e46813407d7b01 (patch)
tree968cd662e4ffbe4172a501cc15d191f190635f0d
parent397665ff472d83809a028e4f4a5d332294617623 (diff)
GLContext.isCurrentContextHardwareRasterizer(): Recognize 'softpipe' (Gallium) as software rasterizer. Check for NULL and issue warnings (TRIAGE THIS).
-rwxr-xr-xmake/scripts/tests.sh4
-rw-r--r--src/jogl/classes/jogamp/opengl/GLContextImpl.java21
2 files changed, 20 insertions, 5 deletions
diff --git a/make/scripts/tests.sh b/make/scripts/tests.sh
index 037ce0bde..71e9db677 100755
--- a/make/scripts/tests.sh
+++ b/make/scripts/tests.sh
@@ -187,7 +187,7 @@ function testawtswt() {
#testnoawt com.jogamp.opengl.test.junit.jogl.offscreen.TestOffscreen01GLPBufferNEWT $*
#testnoawt com.jogamp.opengl.test.junit.jogl.offscreen.TestOffscreen02BitmapNEWT $*
#testnoawt com.jogamp.opengl.test.junit.jogl.acore.TestMainVersionGLWindowNEWT $*
-#testnoawt com.jogamp.opengl.test.junit.jogl.acore.TestGLProfile01NEWT $*
+testnoawt com.jogamp.opengl.test.junit.jogl.acore.TestGLProfile01NEWT $*
#testnoawt com.jogamp.opengl.test.junit.jogl.acore.TestShutdownCompleteNEWT $*
#testnoawt com.jogamp.opengl.test.junit.jogl.acore.TestShutdownSharedNEWT $*
#testnoawt com.jogamp.opengl.test.junit.jogl.acore.TestInitConcurrentNEWT $*
@@ -243,7 +243,7 @@ function testawtswt() {
#testawt com.jogamp.opengl.test.junit.jogl.awt.TestAWT02WindowClosing
#testawt com.jogamp.opengl.test.junit.jogl.awt.text.TestAWTTextRendererUseVertexArrayBug464
#testawt com.jogamp.opengl.test.junit.jogl.demos.gl2.awt.TestGearsAWT $*
-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.gl2.awt.TestGearsAWTAnalyzeBug455 $*
#testawt com.jogamp.opengl.test.junit.jogl.demos.gl2.awt.TestGearsGLJPanelAWT $*
#testawt com.jogamp.opengl.test.junit.jogl.texture.TestTexture01AWT
diff --git a/src/jogl/classes/jogamp/opengl/GLContextImpl.java b/src/jogl/classes/jogamp/opengl/GLContextImpl.java
index b87437088..3d3c387e1 100644
--- a/src/jogl/classes/jogamp/opengl/GLContextImpl.java
+++ b/src/jogl/classes/jogamp/opengl/GLContextImpl.java
@@ -1087,10 +1087,25 @@ public abstract class GLContextImpl extends GLContext {
isHardwareRasterizer = false;
} else {
// On some platforms (eg. X11), a software GL impl. does not properly declare itself properly.
+ // FIXME: We have to evaluate whether this heuristic approach is acceptable.
final GLDynamicLookupHelper glDynLookupHelper = getDrawableImpl().getGLDynamicLookupHelper();
- final long _glGetString = glDynLookupHelper.dynamicLookupFunction("glGetString");
- final String glRenderer = glGetStringInt(GL.GL_RENDERER, _glGetString).toLowerCase();
- isHardwareRasterizer = !glRenderer.contains("software");
+ final long _glGetString = glDynLookupHelper.dynamicLookupFunction("glGetString");
+ if(0 == _glGetString) {
+ // FIXME
+ System.err.println("Warning: Entry point to 'glGetString' is NULL.");
+ Thread.dumpStack();
+ } else {
+ String glRenderer = glGetStringInt(GL.GL_RENDERER, _glGetString);
+ if(null == glRenderer) {
+ // FIXME
+ System.err.println("Warning: GL_RENDERER is NULL.");
+ Thread.dumpStack();
+ } else {
+ glRenderer = glRenderer.toLowerCase();
+ isHardwareRasterizer = ! ( glRenderer.contains("software") /* Mesa3D */ ||
+ glRenderer.contains("softpipe") /* Gallium */ );
+ }
+ }
}
return isHardwareRasterizer;
}