diff options
author | Sven Gothel <[email protected]> | 2012-02-26 02:54:50 +0100 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2012-02-26 02:54:50 +0100 |
commit | cfa9d3d5185c1fa96d0c259d40e46813407d7b01 (patch) | |
tree | 968cd662e4ffbe4172a501cc15d191f190635f0d | |
parent | 397665ff472d83809a028e4f4a5d332294617623 (diff) |
GLContext.isCurrentContextHardwareRasterizer(): Recognize 'softpipe' (Gallium) as software rasterizer. Check for NULL and issue warnings (TRIAGE THIS).
-rwxr-xr-x | make/scripts/tests.sh | 4 | ||||
-rw-r--r-- | src/jogl/classes/jogamp/opengl/GLContextImpl.java | 21 |
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; } |