diff options
author | Erik De Rijcke <[email protected]> | 2015-05-06 16:30:42 +0200 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2019-11-21 03:28:50 +0100 |
commit | f4281b5ee80d7674134bfee357695a98382884a3 (patch) | |
tree | e54ad95c7e67505d9605de2a988eed1350ed7f59 /src/jogl | |
parent | cd07cb251ae2df8e8cfd455a91cbe7d5394a77e0 (diff) |
detect gbm platform on linux when no other display server is running
Diffstat (limited to 'src/jogl')
-rw-r--r-- | src/jogl/classes/jogamp/opengl/egl/EGLDisplayUtil.java | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/jogl/classes/jogamp/opengl/egl/EGLDisplayUtil.java b/src/jogl/classes/jogamp/opengl/egl/EGLDisplayUtil.java index fcd4f54eb..5adba1703 100644 --- a/src/jogl/classes/jogamp/opengl/egl/EGLDisplayUtil.java +++ b/src/jogl/classes/jogamp/opengl/egl/EGLDisplayUtil.java @@ -44,6 +44,7 @@ import com.jogamp.common.nio.Buffers; import com.jogamp.common.util.LongObjectHashMap; import com.jogamp.nativewindow.egl.EGLGraphicsDevice; import com.jogamp.opengl.egl.EGL; +import com.jogamp.opengl.egl.EGLExt; /** * This implementation provides recursive calls to @@ -196,7 +197,27 @@ public class EGLDisplayUtil { } return singletonEGLDisplay.eglDisplay; } - final long eglDisplay = EGL.eglGetDisplay(nativeDisplay_id); + + final String nativeWindowType = NativeWindowFactory.getNativeWindowType(false); + int platform = 0; + final long eglDisplay; + if(nativeWindowType == NativeWindowFactory.TYPE_X11) { + platform = EGLExt.EGL_PLATFORM_X11_KHR; + }else if(nativeWindowType == NativeWindowFactory.TYPE_ANDROID) { + platform = EGLExt.EGL_PLATFORM_ANDROID_KHR; + }else if(nativeWindowType == NativeWindowFactory.TYPE_GBM){ + platform = EGLExt.EGL_PLATFORM_GBM_MESA; + } else if(nativeWindowType == NativeWindowFactory.TYPE_WAYLAND){ + // TODO + platform = EGLExt.EGL_PLATFORM_WAYLAND_KHR; + } + if( platform != 0){ + eglDisplay = EGL.eglGetPlatformDisplay(platform, nativeDisplay_id, null); + } + else{ + eglDisplay = EGL.eglGetDisplay(nativeDisplay_id); + } + if(DEBUG) { System.err.println("EGLDisplayUtil.eglGetDisplay.X: eglDisplay("+EGLContext.toHexString(nativeDisplay_id)+"): "+ EGLContext.toHexString(eglDisplay)+ |