aboutsummaryrefslogtreecommitdiffstats
path: root/make/build-common.xml
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2019-11-28 02:00:29 +0100
committerSven Gothel <[email protected]>2019-11-28 02:00:29 +0100
commit3e19c2267500c0c459e7dce8d2087387a56f3296 (patch)
tree1c6e2e64b7f5f5ee8d6178824dc6ff2e0a3bdbbe /make/build-common.xml
parent976e89ff24da3b2cdf206e8ef8f222f54fb467de (diff)
Bug 1156 - Implement DRM/GBM Support for JOGL(EGL) and NEWT
Adding new classes DRMLib (gluegen of drm + gbm), DRMUtil and DRMMode GBMDummyUpstreamSurfaceHook to new package jogamp.nativewindow.drm, allowing full awareness of DRM + GBM within NativeWindow for JOGL + NEWT. DRMMode replaces the previous native code of collecting drmMode* attributes: active connector, used mode, encoder etc and also supports multiple active connectors. DRMUtil handles the global static drmFd (file descriptor), currently only the GNU/Linux DRM device is supported. GBMDummyUpstreamSurfaceHook provides a simple dummy GBM surface. NativeWindow provides the new nativewindow_drm.so and nativewindow-os-drm.jar, which are included in most 'all' jar packages. build property: setup.addNativeEGLGBM -> setup.addNativeDRMGBM Changes NativeWindowFactory: - TYPE_EGL_GBM -> TYPE_DRM_GBM while keeping the package ID of '.egl.gbm' for NEWT (using EGL) - Initializing DRMUtil at initialization Changes EGLDrawableFactory: - Using native GBM device for the default EGL display creation instead of EGL_DEFAULT_DISPLAY. This resolves issues as seen in Bug 1402, as well in cases w/o surfaceless support. - GL profile mapping uses surfaceless when available for GBM, otherwise uses createDummySurfaceImpl (dummy GBM surface via GBMDummyUpstreamSurfaceHook) - createDummySurfaceImpl uses a dummy GBM surface via GBMDummyUpstreamSurfaceHook - DesktopGL not available with GBM, see Bug 1401 NEWT's DRM + GBM + EGL Driver - Using DRMLib, DRMUtil and DRMMode, removed most native code but WindowDriver swapBuffer - ScreenDriver uses DRMMode, however currently only first connected CRT. - WindowDriver aligns position and size to screen, positions other than 0/0 causes DRM failure - WindowDriver reconfigure n/a NEWT TODO: - DRM Cursor support (mouse pointer) - Pointer event handling
Diffstat (limited to 'make/build-common.xml')
-rw-r--r--make/build-common.xml12
1 files changed, 12 insertions, 0 deletions
diff --git a/make/build-common.xml b/make/build-common.xml
index 1d8928cf2..d33803d93 100644
--- a/make/build-common.xml
+++ b/make/build-common.xml
@@ -1,5 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ - Some environment defs affecting native compilation
+ setup.addNativeDRMGBM ( always true if 'isLinux' )
+-->
<project name="JOGLCommonStuff" basedir="." default="common.init">
<description>Common JOGL Stuff</description>
@@ -112,9 +116,14 @@
</or>
</condition>
+ <condition property="setup.addNativeDRMGBM">
+ <isset property="isLinux"/>
+ </condition>
+
<echo message="setup.noAWT: ${setup.noAWT}" />
<echo message="setup.noNativeAWT: ${setup.noNativeAWT}" />
<echo message="setup.noNativeDesktop: ${setup.noNativeDesktop}" />
+ <echo message="setup.addNativeDRMGBM: ${setup.addNativeDRMGBM}" />
<!-- Load the user specified properties file that defines various host
- specific paths. The user will be notified if this is does not
@@ -283,6 +292,7 @@
<property name="nativewindow.jar" value="${build.nativewindow}/nativewindow.jar" />
<property name="nativewindow-awt.jar" value="${build.nativewindow}/nativewindow-awt.jar" />
+ <property name="nativewindow-os-drm.jar" value="${build.nativewindow}/nativewindow-os-drm.jar" />
<property name="nativewindow-os-x11.jar" value="${build.nativewindow}/nativewindow-os-x11.jar" />
<property name="nativewindow-os-win.jar" value="${build.nativewindow}/nativewindow-os-win.jar" />
<property name="nativewindow-os-osx.jar" value="${build.nativewindow}/nativewindow-os-osx.jar" />
@@ -291,6 +301,7 @@
<path id="nativewindow_all_atoms.classpath">
<pathelement location="${nativewindow.jar}" />
<pathelement location="${nativewindow-awt.jar}" />
+ <pathelement location="${nativewindow-os-drm.jar}" />
<pathelement location="${nativewindow-os-x11.jar}" />
<pathelement location="${nativewindow-os-win.jar}" />
<pathelement location="${nativewindow-os-osx.jar}" />
@@ -298,6 +309,7 @@
</path>
<path id="nativewindow_all-noawt_atoms.classpath">
<pathelement location="${nativewindow.jar}" />
+ <pathelement location="${nativewindow-os-drm.jar}" />
<pathelement location="${nativewindow-os-x11.jar}" />
<pathelement location="${nativewindow-os-win.jar}" />
<pathelement location="${nativewindow-os-osx.jar}" />