More progress, nearly fixed native header generation
BufferUtils.c and CallbackUtil.c have been modified to not include the generated header file. This is because `javac` is choosing to ignore those files for generation of headers for unknown reasons.
This commit is contained in:
parent
134263f5cd
commit
325db15a1d
186
build.xml
186
build.xml
|
@ -74,7 +74,10 @@
|
|||
<target name="all" description="Creates the Java archives and the natives for the current platform" depends="jars, compile_native"/>
|
||||
|
||||
<!-- Create ONLY the jar archives -->
|
||||
<target name="jars" description="Creates the Java archives ONLY and places them in libs/" depends="-initialize, generate-all, compile, -createjars">
|
||||
<target name="jars+NoDeps" description="Creates the Java archives ONLY and places them in libs/" depends="-createjars">
|
||||
</target>
|
||||
|
||||
<target name="jars" description="Creates the Java archives ONLY and places them in libs/" depends="generate-all, compile, jars+NoDeps">
|
||||
</target>
|
||||
|
||||
<!-- Create ONLY the jar archives for the ES build -->
|
||||
|
@ -83,7 +86,7 @@
|
|||
</target>
|
||||
|
||||
<!-- Packages the java files -->
|
||||
<target name="-createdebugjars">
|
||||
<target name="-createdebugjars" depends="-initialize">
|
||||
<!-- Create lwjgl.jar -->
|
||||
<jar destfile="${lwjgl.target.staging}/jar/lwjgl-debug.jar" taskname="lwjgl-debug.jar">
|
||||
<fileset refid="lwjgl.fileset" />
|
||||
|
@ -95,7 +98,7 @@
|
|||
</target>
|
||||
|
||||
<!-- Packages the java files -->
|
||||
<target name="-createjars">
|
||||
<target name="-createjars" depends="-initialize">
|
||||
<!-- Create lwjgl.jar -->
|
||||
<jar destfile="${lwjgl.target.jars}/lwjgl.jar" taskname="lwjgl.jar">
|
||||
<fileset refid="lwjgl.fileset" />
|
||||
|
@ -165,32 +168,32 @@
|
|||
</target>
|
||||
|
||||
<!-- Generates the native headers from source files -->
|
||||
<target name="headers" description="invokes javah on java classes" depends="compile">
|
||||
<!--<target name="headers" description="invokes javah on java classes" depends="compile">
|
||||
<javac
|
||||
srcdir="${lwjgl.target.gen.java}"
|
||||
srcdir="${lwjgl.src.java}"
|
||||
source="1.8"
|
||||
target="1.8"
|
||||
fork="true"
|
||||
taskname="headers">
|
||||
<compilerarg value="-cp"/>
|
||||
<compilerarg path="${lwjgl.target.gen.classes}"/>
|
||||
<compilerarg value="-s"/>
|
||||
<compilerarg path="${lwjgl.src.java}"/>
|
||||
<compilerarg value="-h"/>
|
||||
<compilerarg value="${lwjgl.src.native}/linux"/>
|
||||
|
||||
<src>
|
||||
<fileset dir="${lwjgl.target.gen.java}">
|
||||
<include name="org/lwjgl/LinuxSysImplementation.java"/>
|
||||
<include name="org/lwjgl/opengl/LinuxEvent.java"/>
|
||||
<include name="org/lwjgl/opengl/LinuxMouse.java"/>
|
||||
<include name="org/lwjgl/opengl/LinuxKeyboard.java"/>
|
||||
<include name="org/lwjgl/opengl/LinuxDisplay.java"/>
|
||||
<include name="org/lwjgl/opengl/LinuxPeerInfo.java"/>
|
||||
<fileset dir="${lwjgl.src.java}">
|
||||
<include name="org/lwjgl/LinuxSysImplementation.java"/>
|
||||
<include name="org/lwjgl/opengl/LinuxEvent.java"/>
|
||||
<include name="org/lwjgl/opengl/LinuxMouse.java"/>
|
||||
<include name="org/lwjgl/opengl/LinuxKeyboard.java"/>
|
||||
<include name="org/lwjgl/opengl/LinuxDisplay.java"/>
|
||||
<include name="org/lwjgl/opengl/LinuxPeerInfo.java"/>
|
||||
</fileset>
|
||||
</src>
|
||||
</javac>
|
||||
|
||||
<javac
|
||||
srcdir="${lwjgl.target.gen.java}"
|
||||
srcdir="${lwjgl.src.java}"
|
||||
source="1.8"
|
||||
target="1.8"
|
||||
fork="true"
|
||||
|
@ -200,18 +203,18 @@
|
|||
<compilerarg value="-h"/>
|
||||
<compilerarg value="${lwjgl.src.native}/linux/opengl"/>
|
||||
<src>
|
||||
<fileset dir="${lwjgl.target.gen.java}">
|
||||
<include name="org/lwjgl/opengl/LinuxPbufferPeerInfo.java"/>
|
||||
<include name="org/lwjgl/opengl/LinuxDisplayPeerInfo.java"/>
|
||||
<include name="org/lwjgl/opengl/LinuxAWTGLCanvasPeerInfo.java"/>
|
||||
<include name="org/lwjgl/opengl/LinuxContextImplementation.java"/>
|
||||
<include name="org/lwjgl/opengl/LinuxCanvasImplementation.java"/>
|
||||
<fileset dir="${lwjgl.src.java}">
|
||||
<include name="org/lwjgl/opengl/LinuxPbufferPeerInfo.java"/>
|
||||
<include name="org/lwjgl/opengl/LinuxDisplayPeerInfo.java"/>
|
||||
<include name="org/lwjgl/opengl/LinuxAWTGLCanvasPeerInfo.java"/>
|
||||
<include name="org/lwjgl/opengl/LinuxContextImplementation.java"/>
|
||||
<include name="org/lwjgl/opengl/LinuxCanvasImplementation.java"/>
|
||||
</fileset>
|
||||
</src>
|
||||
</javac>
|
||||
|
||||
<javac
|
||||
srcdir="${lwjgl.target.gen.java}"
|
||||
srcdir="${lwjgl.src.java}"
|
||||
source="1.8"
|
||||
target="1.8"
|
||||
fork="true"
|
||||
|
@ -221,19 +224,19 @@
|
|||
<compilerarg value="-h"/>
|
||||
<compilerarg value="${lwjgl.src.native}/windows"/>
|
||||
<src>
|
||||
<fileset dir="${lwjgl.target.gen.java}">
|
||||
<include name="org/lwjgl/WindowsSysImplementation.java"/>
|
||||
<include name="org/lwjgl/opengl/WindowsKeyboard.java"/>
|
||||
<include name="org/lwjgl/opengl/WindowsRegistry.java"/>
|
||||
<include name="org/lwjgl/opengl/WindowsDisplay.java"/>
|
||||
<include name="org/lwjgl/opengl/WindowsDisplayPeerInfo.java"/>
|
||||
<include name="org/lwjgl/opengl/WindowsAWTGLCanvasPeerInfo.java"/>
|
||||
<fileset dir="${lwjgl.src.java}">
|
||||
<include name="org/lwjgl/WindowsSysImplementation.java"/>
|
||||
<include name="org/lwjgl/opengl/WindowsKeyboard.java"/>
|
||||
<include name="org/lwjgl/opengl/WindowsRegistry.java"/>
|
||||
<include name="org/lwjgl/opengl/WindowsDisplay.java"/>
|
||||
<include name="org/lwjgl/opengl/WindowsDisplayPeerInfo.java"/>
|
||||
<include name="org/lwjgl/opengl/WindowsAWTGLCanvasPeerInfo.java"/>
|
||||
</fileset>
|
||||
</src>
|
||||
</javac>
|
||||
|
||||
<javac
|
||||
srcdir="${lwjgl.target.gen.java}"
|
||||
srcdir="${lwjgl.src.java}"
|
||||
source="1.8"
|
||||
target="1.8"
|
||||
fork="true"
|
||||
|
@ -243,16 +246,16 @@
|
|||
<compilerarg value="-h"/>
|
||||
<compilerarg value="${lwjgl.src.native}/windows/opengl"/>
|
||||
<src>
|
||||
<fileset dir="${lwjgl.target.gen.java}">
|
||||
<include name="org/lwjgl/opengl/WindowsPbufferPeerInfo.java"/>
|
||||
<include name="org/lwjgl/opengl/WindowsPeerInfo.java"/>
|
||||
<include name="org/lwjgl/opengl/WindowsContextImplementation.java"/>
|
||||
<fileset dir="${lwjgl.src.java}">
|
||||
<include name="org/lwjgl/opengl/WindowsPbufferPeerInfo.java"/>
|
||||
<include name="org/lwjgl/opengl/WindowsPeerInfo.java"/>
|
||||
<include name="org/lwjgl/opengl/WindowsContextImplementation.java"/>
|
||||
</fileset>
|
||||
</src>
|
||||
</javac>
|
||||
|
||||
<javac
|
||||
srcdir="${lwjgl.target.gen.java}"
|
||||
srcdir="${lwjgl.src.java}"
|
||||
source="1.8"
|
||||
target="1.8"
|
||||
fork="true"
|
||||
|
@ -262,14 +265,14 @@
|
|||
<compilerarg value="-h"/>
|
||||
<compilerarg value="${lwjgl.src.native}/windows/opengles"/>
|
||||
<src>
|
||||
<fileset dir="${lwjgl.target.gen.java}">
|
||||
<include name="org/lwjgl/opengl/WindowsPeerInfo.java"/>
|
||||
<fileset dir="${lwjgl.src.java}">
|
||||
<include name="org/lwjgl/opengl/WindowsPeerInfo.java"/>
|
||||
</fileset>
|
||||
</src>
|
||||
</javac>
|
||||
|
||||
<javac
|
||||
srcdir="${lwjgl.target.gen.java}"
|
||||
srcdir="${lwjgl.src.java}"
|
||||
source="1.8"
|
||||
target="1.8"
|
||||
fork="true"
|
||||
|
@ -279,22 +282,22 @@
|
|||
<compilerarg value="-h"/>
|
||||
<compilerarg value="${lwjgl.src.native}/macosx"/>
|
||||
<src>
|
||||
<fileset dir="${lwjgl.target.gen.java}">
|
||||
<include name="org/lwjgl/MacOSXSysImplementation.java"/>
|
||||
<include name="org/lwjgl/opengl/MacOSXCanvasPeerInfo.java"/>
|
||||
<include name="org/lwjgl/opengl/MacOSXPeerInfo.java"/>
|
||||
<include name="org/lwjgl/opengl/MacOSXPbufferPeerInfo.java"/>
|
||||
<include name="org/lwjgl/opengl/MacOSXDisplay.java"/>
|
||||
<include name="org/lwjgl/opengl/MacOSXContextImplementation.java"/>
|
||||
<include name="org/lwjgl/opengl/MacOSXNativeKeyboard.java"/>
|
||||
<include name="org/lwjgl/opengl/MacOSXNativeMouse.java"/>
|
||||
<include name="org/lwjgl/opengl/MacOSXMouseEventQueue.java"/>
|
||||
<fileset dir="${lwjgl.src.java}">
|
||||
<include name="org/lwjgl/MacOSXSysImplementation.java"/>
|
||||
<include name="org/lwjgl/opengl/MacOSXCanvasPeerInfo.java"/>
|
||||
<include name="org/lwjgl/opengl/MacOSXPeerInfo.java"/>
|
||||
<include name="org/lwjgl/opengl/MacOSXPbufferPeerInfo.java"/>
|
||||
<include name="org/lwjgl/opengl/MacOSXDisplay.java"/>
|
||||
<include name="org/lwjgl/opengl/MacOSXContextImplementation.java"/>
|
||||
<include name="org/lwjgl/opengl/MacOSXNativeKeyboard.java"/>
|
||||
<include name="org/lwjgl/opengl/MacOSXNativeMouse.java"/>
|
||||
<include name="org/lwjgl/opengl/MacOSXMouseEventQueue.java"/>
|
||||
</fileset>
|
||||
</src>
|
||||
</javac>
|
||||
|
||||
<javac
|
||||
srcdir="${lwjgl.target.gen.java}"
|
||||
srcdir="${lwjgl.src.java}"
|
||||
source="1.8"
|
||||
target="1.8"
|
||||
fork="true"
|
||||
|
@ -302,24 +305,24 @@
|
|||
<compilerarg value="-cp"/>
|
||||
<compilerarg path="${lwjgl.target.gen.classes}"/>
|
||||
<compilerarg value="-h"/>
|
||||
<compilerarg value="${lwjgl.src.headers}"/>
|
||||
<compilerarg value="${lwjgl.target.gen.headers}"/>
|
||||
<src>
|
||||
<fileset dir="${lwjgl.target.gen.java}">
|
||||
<include name="org/lwjgl/opengl/AWTSurfaceLock.java"/>
|
||||
<include name="org/lwjgl/DefaultSysImplementation.java"/>
|
||||
<include name="org/lwjgl/input/Cursor.java"/>
|
||||
<include name="org/lwjgl/input/Keyboard.java"/>
|
||||
<include name="org/lwjgl/input/Mouse.java"/>
|
||||
<include name="org/lwjgl/openal/AL.java"/>
|
||||
<include name="org/lwjgl/opencl/CL.java"/>
|
||||
<include name="org/lwjgl/opencl/CallbackUtil.java"/>
|
||||
<include name="org/lwjgl/BufferUtils.java"/>
|
||||
<fileset dir="${lwjgl.src.java}">
|
||||
<include name="org/lwjgl/opengl/AWTSurfaceLock.java"/>
|
||||
<include name="org/lwjgl/DefaultSysImplementation.java"/>
|
||||
<include name="org/lwjgl/input/Cursor.java"/>
|
||||
<include name="org/lwjgl/input/Keyboard.java"/>
|
||||
<include name="org/lwjgl/input/Mouse.java"/>
|
||||
<include name="org/lwjgl/openal/AL.java"/>
|
||||
<include name="org/lwjgl/opencl/CL.java"/>
|
||||
<include name="org/lwjgl/opencl/CallbackUtil.java"/>
|
||||
<include name="org/lwjgl/BufferUtils.java"/>
|
||||
</fileset>
|
||||
</src>
|
||||
</javac>
|
||||
|
||||
<javac
|
||||
srcdir="${lwjgl.target.gen.java}"
|
||||
srcdir="${lwjgl.src.java}"
|
||||
source="1.8"
|
||||
target="1.8"
|
||||
fork="true"
|
||||
|
@ -327,20 +330,20 @@
|
|||
<compilerarg value="-cp"/>
|
||||
<compilerarg path="${lwjgl.target.gen.classes}"/>
|
||||
<compilerarg value="-h"/>
|
||||
<compilerarg value="${lwjgl.src.headers}/opengl"/>
|
||||
<compilerarg value="${lwjgl.target.gen.headers}/opengl"/>
|
||||
<src>
|
||||
<fileset dir="${lwjgl.target.gen.java}">
|
||||
<include name="org/lwjgl/opengl/GLContext.java"/>
|
||||
<include name="org/lwjgl/opengl/Pbuffer.java"/>
|
||||
<include name="org/lwjgl/opengl/CallbackUtil.java"/>
|
||||
<include name="org/lwjgl/opengl/NVPresentVideoUtil.java"/>
|
||||
<include name="org/lwjgl/opengl/NVVideoCaptureUtil.java"/>
|
||||
<fileset dir="${lwjgl.src.java}">
|
||||
<include name="org/lwjgl/opengl/GLContext.java"/>
|
||||
<include name="org/lwjgl/opengl/Pbuffer.java"/>
|
||||
<include name="org/lwjgl/opengl/CallbackUtil.java"/>
|
||||
<include name="org/lwjgl/opengl/NVPresentVideoUtil.java"/>
|
||||
<include name="org/lwjgl/opengl/NVVideoCaptureUtil.java"/>
|
||||
</fileset>
|
||||
</src>
|
||||
</javac>
|
||||
|
||||
<javac
|
||||
srcdir="${lwjgl.target.gen.java}"
|
||||
srcdir="${lwjgl.src.java}"
|
||||
source="1.8"
|
||||
target="1.8"
|
||||
fork="true"
|
||||
|
@ -348,19 +351,19 @@
|
|||
<compilerarg value="-cp"/>
|
||||
<compilerarg path="${lwjgl.target.gen.classes}"/>
|
||||
<compilerarg value="-h"/>
|
||||
<compilerarg value="${lwjgl.src.headers}/opengles"/>
|
||||
<compilerarg value="${lwjgl.target.gen.headers}/opengles"/>
|
||||
<src>
|
||||
<fileset dir="${lwjgl.target.gen.java}">
|
||||
<include name="org/lwjgl/opengles/EGL.java"/>
|
||||
<include name="org/lwjgl/opengles/EGLKHRFenceSync.java"/>
|
||||
<include name="org/lwjgl/opengles/EGLKHRReusableSync.java"/>
|
||||
<include name="org/lwjgl/opengles/EGLNVSync.java"/>
|
||||
<include name="org/lwjgl/opengles/GLContext.java"/>
|
||||
<include name="org/lwjgl/opengles/CallbackUtil.java"/>
|
||||
<fileset dir="${lwjgl.src.java}">
|
||||
<include name="org/lwjgl/opengles/EGL.java"/>
|
||||
<include name="org/lwjgl/opengles/EGLKHRFenceSync.java"/>
|
||||
<include name="org/lwjgl/opengles/EGLKHRReusableSync.java"/>
|
||||
<include name="org/lwjgl/opengles/EGLNVSync.java"/>
|
||||
<include name="org/lwjgl/opengles/GLContext.java"/>
|
||||
<include name="org/lwjgl/opengles/CallbackUtil.java"/>
|
||||
</fileset>
|
||||
</src>
|
||||
</javac>
|
||||
</target>
|
||||
</target>-->
|
||||
|
||||
<target name="touch-version">
|
||||
<touch file="${lwjgl.src.native}/windows/org_lwjgl_opengl_Display.c"/>
|
||||
|
@ -390,21 +393,21 @@
|
|||
</tokenfilter>
|
||||
</filterchain>
|
||||
</loadfile>
|
||||
<loadfile srcfile="${lwjgl.src.native}/windows/org_lwjgl_WindowsSysImplementation.h" property="lwjgl.native.windows.version">
|
||||
<loadfile srcfile="${lwjgl.target.gen.headers}/org_lwjgl_WindowsSysImplementation.h" property="lwjgl.native.windows.version">
|
||||
<filterchain>
|
||||
<tokenfilter>
|
||||
<containsstring contains="#define org_lwjgl_WindowsSysImplementation_JNI_VERSION"/>
|
||||
</tokenfilter>
|
||||
</filterchain>
|
||||
</loadfile>
|
||||
<loadfile srcfile="${lwjgl.src.native}/linux/org_lwjgl_LinuxSysImplementation.h" property="lwjgl.native.linux.version">
|
||||
<loadfile srcfile="${lwjgl.target.gen.headers}/org_lwjgl_LinuxSysImplementation.h" property="lwjgl.native.linux.version">
|
||||
<filterchain>
|
||||
<tokenfilter>
|
||||
<containsstring contains="#define org_lwjgl_LinuxSysImplementation_JNI_VERSION"/>
|
||||
</tokenfilter>
|
||||
</filterchain>
|
||||
</loadfile>
|
||||
<loadfile srcfile="${lwjgl.src.native}/macosx/org_lwjgl_MacOSXSysImplementation.h" property="lwjgl.native.macosx.version">
|
||||
<loadfile srcfile="${lwjgl.target.gen.headers}/org_lwjgl_MacOSXSysImplementation.h" property="lwjgl.native.macosx.version">
|
||||
<filterchain>
|
||||
<tokenfilter>
|
||||
<containsstring contains="#define org_lwjgl_MacOSXSysImplementation_JNI_VERSION"/>
|
||||
|
@ -447,24 +450,17 @@
|
|||
|
||||
<!-- Compiles the Java source code -->
|
||||
<target name="compile" description="Compiles the java source code" depends="-initialize">
|
||||
<javac debug="yes" destdir="${lwjgl.target.gen.classes}" source="1.8" target="1.8" classpath="${lwjgl.lib}/jinput.jar:${lwjgl.lib}/AppleJavaExtensions.jar:${lwjgl.lib}/asm-debug-all.jar" taskname="core">
|
||||
<javac debug="yes" destdir="${lwjgl.target.gen.classes}" nativeHeaderDir="${lwjgl.target.gen.headers}" source="1.8" target="1.8" classpath="${lwjgl.lib}/jinput.jar:${lwjgl.lib}/AppleJavaExtensions.jar:${lwjgl.lib}/asm-debug-all.jar" taskname="core">
|
||||
<!--<compilerarg value="-Xlint:unchecked"/>-->
|
||||
<src path="${lwjgl.src}/java/"/>
|
||||
<src path="${lwjgl.target.gen.java}/"/>
|
||||
<include name="org/lwjgl/*.java"/>
|
||||
<include name="org/lwjgl/input/**"/>
|
||||
<include name="org/lwjgl/opengl/**"/>
|
||||
<include name="org/lwjgl/opengles/**"/>
|
||||
<include name="org/lwjgl/openal/**"/>
|
||||
<include name="org/lwjgl/opencl/**"/>
|
||||
<include name="org/lwjgl/util/**"/>
|
||||
<src path="${lwjgl.src.java}"/>
|
||||
<src path="${lwjgl.target.gen.java}"/>
|
||||
<exclude name="org/lwjgl/util/generator/**"/>
|
||||
</javac>
|
||||
<javac debug="yes" srcdir="${lwjgl.src}/java/" destdir="${lwjgl.target.gen.classes}" includes="org/lwjgl/test/**" source="1.8" target="1.8" taskname="test" />
|
||||
<javac debug="yes" srcdir="${lwjgl.src}/java/" destdir="${lwjgl.target.gen.classes}" includes="org/lwjgl/examples/**" source="1.8" target="1.8" taskname="examples" />
|
||||
<javac debug="yes" srcdir="${lwjgl.src.java}" destdir="${lwjgl.target.gen.classes}" includes="org/lwjgl/test/**" source="1.8" target="1.8" taskname="test" />
|
||||
<javac debug="yes" srcdir="${lwjgl.src.java}" destdir="${lwjgl.target.gen.classes}" includes="org/lwjgl/examples/**" source="1.8" target="1.8" taskname="examples" />
|
||||
</target>
|
||||
|
||||
<target name="compile_native" depends="-initialize, headers, touch-version, version-mismatch" description="Compiles the native files">
|
||||
<target name="compile_native" depends="-initialize, compile, touch-version, version-mismatch" description="Compiles the native files">
|
||||
<condition property="lwjgl.platform.windows">
|
||||
<os family="windows" />
|
||||
</condition>
|
||||
|
@ -532,7 +528,7 @@
|
|||
<version-check platform="macosx"/>
|
||||
</target>
|
||||
|
||||
<target name="compile_native_es" depends="-initialize, headers, touch-version, version-mismatch" description="Compiles the native files">
|
||||
<target name="compile_native_es" depends="-initialize, compile, touch-version, version-mismatch" description="Compiles the native files">
|
||||
<condition property="lwjgl.platform.windows">
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
|
|
|
@ -77,7 +77,7 @@
|
|||
|
||||
<target name="compile32" unless="build.64bit.only">
|
||||
<mkdir dir="x32"/>
|
||||
<apply dir="x32" executable="cc" skipemptyfilesets="true" failonerror="true">
|
||||
<apply dir="x32" executable="cc" failonerror="true">
|
||||
<arg line="${cflags32} ${cflags_pthread}"/>
|
||||
<arg value="-I${java.home}/include"/>
|
||||
<arg value="-I${java.home}/include/freebsd"/>
|
||||
|
@ -91,6 +91,7 @@
|
|||
<arg value="-I${native}/common/opengl"/>
|
||||
<arg value="-I${native}/linux"/>
|
||||
<arg value="-I${native}/linux/opengl"/>
|
||||
<arg value="-I${lwjgl.target.gen.headers}"/>
|
||||
<mapper type="glob" from="*.c" to="*.o"/>
|
||||
<fileset dir="${native}/common" includes="*.c"/>
|
||||
<fileset dir="${native}/common/opengl" includes="*.c"/>
|
||||
|
@ -112,7 +113,7 @@
|
|||
|
||||
<target name="compile64" unless="build.32bit.only">
|
||||
<mkdir dir="x64"/>
|
||||
<apply dir="x64" executable="cc" skipemptyfilesets="true" failonerror="true">
|
||||
<apply dir="x64" executable="cc" failonerror="true">
|
||||
<arg line="${cflags64} ${cflags_pthread}"/>
|
||||
<arg value="-I${java.home}/include"/>
|
||||
<arg value="-I${java.home}/include/freebsd"/>
|
||||
|
@ -126,6 +127,7 @@
|
|||
<arg value="-I${native}/common/opengl"/>
|
||||
<arg value="-I${native}/linux"/>
|
||||
<arg value="-I${native}/linux/opengl"/>
|
||||
<arg value="-I${lwjgl.target.gen.headers}"/>
|
||||
<mapper type="glob" from="*.c" to="*.o"/>
|
||||
<fileset dir="${native}/common" includes="*.c"/>
|
||||
<fileset dir="${native}/common/opengl" includes="*.c"/>
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
<property name="lwjgl.target.gen" location="${lwjgl.target}/gen" />
|
||||
<property name="lwjgl.target.gen.classes" location="${lwjgl.target.gen}/classes" />
|
||||
<property name="lwjgl.target.gen.java" location="${lwjgl.target.gen}/java" />
|
||||
<property name="lwjgl.target.gen.headers" location="${lwjgl.target.gen}/headers" />
|
||||
<property name="lwjgl.target.gen.native" location="${lwjgl.target.gen}/native" />
|
||||
<property name="lwjgl.target.gen.obj" location="${lwjgl.target.gen}/obj" />
|
||||
<property name="lwjgl.target.staging" location="${lwjgl.target}/staging" />
|
||||
|
@ -25,7 +26,6 @@
|
|||
<property name="lwjgl.src" location="src" />
|
||||
<property name="lwjgl.src.java" location="${lwjgl.src}/java" />
|
||||
<property name="lwjgl.src.native" location="${lwjgl.src}/native" />
|
||||
<property name="lwjgl.src.headers" location="${lwjgl.src.native}/common" />
|
||||
<property name="lwjgl.src.templates" location="${lwjgl.src}/templates" />
|
||||
|
||||
<property name="lwjgl.src.templates.al" location="${lwjgl.src.templates}/org/lwjgl/openal"/>
|
||||
|
|
|
@ -11,14 +11,21 @@
|
|||
<mkdir dir="${lwjgl.target.gen.classes}"/>
|
||||
|
||||
<!-- Compile helper classes used by the templates -->
|
||||
<javac debug="yes" srcdir="${lwjgl.src}/java/" destdir="${lwjgl.target.gen.classes}" source="1.8" target="1.8" taskname="generator">
|
||||
<javac debug="yes" srcdir="${lwjgl.src.java}" destdir="${lwjgl.target.gen.classes}" source="1.8" target="1.8" taskname="generator">
|
||||
<include name="org/lwjgl/PointerWrapper.java"/>
|
||||
<include name="org/lwjgl/PointerBuffer.java"/>
|
||||
</javac>
|
||||
</target>
|
||||
|
||||
<!-- Proxy target to generate it all -->
|
||||
<target name="generate-all" depends="generate-openal, generate-opengl, generate-opengles, generate-opencl" description="Generates java and native source"/>
|
||||
<target name="generate-all" depends="-generate-common" description="Generates java and native source">
|
||||
<parallel>
|
||||
<antcall target="generate-openal"/>
|
||||
<antcall target="generate-opengl"/>
|
||||
<antcall target="generate-opengles"/>
|
||||
<antcall target="generate-opencl"/>
|
||||
</parallel>
|
||||
</target>
|
||||
|
||||
<!-- ********************************************************************************
|
||||
*********************************************************************************
|
||||
|
@ -30,7 +37,7 @@
|
|||
<target name="generate-openal" depends="-generate-common" description="Generates java and native source for AL">
|
||||
<mkdir dir="${lwjgl.target.gen.native}/openal"/>
|
||||
|
||||
<javac debug="yes" srcdir="${lwjgl.src}/java/" destdir="${lwjgl.target.gen.classes}" source="1.8" target="1.8" includes="org/lwjgl/util/generator/**.java" taskname="generator">
|
||||
<javac debug="yes" srcdir="${lwjgl.src.java}" destdir="${lwjgl.target.gen.classes}" source="1.8" target="1.8" includes="org/lwjgl/util/generator/**.java" taskname="generator">
|
||||
<include name="org/lwjgl/util/generator/openal/**.java"/>
|
||||
<compilerarg value="-Xlint:none"/>
|
||||
</javac>
|
||||
|
@ -68,13 +75,13 @@
|
|||
<target name="generate-opengl" depends="-generate-common, -compile-opencl-helpers" description="Generates java and native source for GL">
|
||||
<mkdir dir="${lwjgl.target.gen.native}/opengl"/>
|
||||
|
||||
<javac debug="yes" srcdir="${lwjgl.src}/java/" destdir="${lwjgl.target.gen.classes}" source="1.8" target="1.8" includes="org/lwjgl/util/generator/**.java" taskname="generator">
|
||||
<javac debug="yes" srcdir="${lwjgl.src.java}" destdir="${lwjgl.target.gen.classes}" source="1.8" target="1.8" includes="org/lwjgl/util/generator/**.java" taskname="generator">
|
||||
<include name="org/lwjgl/util/generator/opengl/**.java"/>
|
||||
<compilerarg value="-Xlint:none"/>
|
||||
</javac>
|
||||
|
||||
<!-- Compile helper classes used by the templates -->
|
||||
<javac debug="yes" srcdir="${lwjgl.src}/java/" destdir="${lwjgl.target.gen.classes}" source="1.8" target="1.8" taskname="generator">
|
||||
<javac debug="yes" srcdir="${lwjgl.src.java}" destdir="${lwjgl.target.gen.classes}" source="1.8" target="1.8" taskname="generator">
|
||||
<include name="org/lwjgl/opengl/GLSync.java"/>
|
||||
<include name="org/lwjgl/opengl/AMDDebugOutputCallback.java"/>
|
||||
<include name="org/lwjgl/opengl/ARBDebugOutputCallback.java"/>
|
||||
|
@ -152,13 +159,13 @@
|
|||
<target name="generate-opengles" depends="-generate-common" description="Generates java and native source for GL ES">
|
||||
<mkdir dir="${lwjgl.target.gen.native}/opengles"/>
|
||||
|
||||
<javac debug="yes" srcdir="${lwjgl.src}/java/" destdir="${lwjgl.target.gen.classes}" source="1.8" target="1.8" includes="org/lwjgl/util/generator/**.java" taskname="generator">
|
||||
<javac debug="yes" srcdir="${lwjgl.src.java}" destdir="${lwjgl.target.gen.classes}" source="1.8" target="1.8" includes="org/lwjgl/util/generator/**.java" taskname="generator">
|
||||
<include name="org/lwjgl/util/generator/opengles/**.java"/>
|
||||
<compilerarg value="-Xlint:none"/>
|
||||
</javac>
|
||||
|
||||
<!-- Compile helper classes used by the templates -->
|
||||
<javac debug="yes" srcdir="${lwjgl.src}/java/" destdir="${lwjgl.target.gen.classes}" source="1.8" target="1.8" taskname="generator">
|
||||
<javac debug="yes" srcdir="${lwjgl.src.java}" destdir="${lwjgl.target.gen.classes}" source="1.8" target="1.8" taskname="generator">
|
||||
<include name="org/lwjgl/opengles/EGLImageOES.java"/>
|
||||
<include name="org/lwjgl/opengles/KHRDebugCallback.java"/>
|
||||
</javac>
|
||||
|
@ -214,7 +221,7 @@
|
|||
|
||||
<target name="-compile-opencl-helpers" depends="-generate-common" description="Compiles java helpers for CL">
|
||||
<!-- Compile helper classes used by the templates -->
|
||||
<javac debug="yes" srcdir="${lwjgl.src}/java/" destdir="${lwjgl.target.gen.classes}" source="1.8" target="1.8" taskname="generator">
|
||||
<javac debug="yes" srcdir="${lwjgl.src.java}" destdir="${lwjgl.target.gen.classes}" source="1.8" target="1.8" taskname="generator">
|
||||
<include name="org/lwjgl/opencl/CLPlatform.java"/>
|
||||
<include name="org/lwjgl/opencl/CLDevice.java"/>
|
||||
<include name="org/lwjgl/opencl/CLContext.java"/>
|
||||
|
@ -229,7 +236,7 @@
|
|||
<target name="generate-opencl" depends="-generate-common, -compile-opencl-helpers" description="Generates java and native source for CL">
|
||||
<mkdir dir="${lwjgl.target.gen.native}/opencl"/>
|
||||
|
||||
<javac debug="yes" srcdir="${lwjgl.src}/java/" destdir="${lwjgl.target.gen.classes}" source="1.8" target="1.8" includes="org/lwjgl/util/generator/**.java" taskname="generator">
|
||||
<javac debug="yes" srcdir="${lwjgl.src.java}" destdir="${lwjgl.target.gen.classes}" source="1.8" target="1.8" includes="org/lwjgl/util/generator/**.java" taskname="generator">
|
||||
<include name="org/lwjgl/util/generator/opencl/**.java"/>
|
||||
<compilerarg value="-Xlint:none"/>
|
||||
</javac>
|
||||
|
|
|
@ -63,6 +63,7 @@
|
|||
<arg value="-I${lwjgl.src.native}/common/opengl"/>
|
||||
<arg value="-I${lwjgl.src.native}/linux"/>
|
||||
<arg value="-I${lwjgl.src.native}/linux/opengl"/>
|
||||
<arg value="-I${lwjgl.target.gen.headers}"/>
|
||||
<mapper type="glob" from="*.c" to="*.o"/>
|
||||
<fileset dir="${lwjgl.src.native}/common" includes="*.c"/>
|
||||
<fileset dir="${lwjgl.src.native}/common/opengl" includes="*.c"/>
|
||||
|
@ -95,6 +96,7 @@
|
|||
<arg value="-I${lwjgl.src.native}/common/opengl"/>
|
||||
<arg value="-I${lwjgl.src.native}/linux"/>
|
||||
<arg value="-I${lwjgl.src.native}/linux/opengl"/>
|
||||
<arg value="-I${lwjgl.target.gen.headers}"/>
|
||||
<mapper type="glob" from="*.c" to="*.o"/>
|
||||
<fileset dir="${lwjgl.src.native}/common" includes="*.c"/>
|
||||
<fileset dir="${lwjgl.src.native}/common/opengl" includes="*.c"/>
|
||||
|
|
|
@ -9,15 +9,6 @@
|
|||
<property name="libs64" value="-L${lib_folder}/x64 -lEGL -L/usr/X11R6/lib64 -L/usr/X11/lib64 -lm -lX11 -lXext -lXcursor -lXrandr -lXxf86vm -lpthread -L${java.home}/lib -L${java.home}/lib/amd64 -ljawt" />
|
||||
<property name="cflags32" value="-O3 -Wall -c -fPIC -std=c99 -Wunused"/>
|
||||
|
||||
<target name="clean">
|
||||
<delete>
|
||||
<fileset dir="x32"/>
|
||||
<fileset dir="x64"/>
|
||||
<fileset dir="." includes="*.o"/>
|
||||
<fileset dir="." includes="*.so"/>
|
||||
</delete>
|
||||
</target>
|
||||
|
||||
<target name="compile">
|
||||
<exec executable="uname" outputproperty="hwplatform">
|
||||
<arg value="-m"/>
|
||||
|
@ -63,7 +54,7 @@
|
|||
|
||||
<target name="compile32" unless="build.64bit.only">
|
||||
<mkdir dir="x32"/>
|
||||
<apply dir="x32" executable="gcc" skipemptyfilesets="true" failonerror="true">
|
||||
<apply dir="x32" executable="gcc" failonerror="true">
|
||||
<arg line="${cflags32} ${cflags_pthread}"/>
|
||||
<arg value="-I${java.home}/include"/>
|
||||
<arg value="-I${java.home}/include/linux"/>
|
||||
|
@ -74,6 +65,7 @@
|
|||
<arg value="-I${native}/common/opengles"/>
|
||||
<arg value="-I${native}/linux"/>
|
||||
<arg value="-I${native}/linux/opengles"/>
|
||||
<arg value="-I${lwjgl.target.gen.headers}"/>
|
||||
<mapper type="glob" from="*.c" to="*.o"/>
|
||||
<fileset dir="${native}/common" includes="*.c"/>
|
||||
<fileset dir="${native}/common/opengles" includes="*.c"/>
|
||||
|
@ -106,6 +98,7 @@
|
|||
<arg value="-I${native}/common/opengles"/>
|
||||
<arg value="-I${native}/linux"/>
|
||||
<arg value="-I${native}/linux/opengles"/>
|
||||
<arg value="-I${lwjgl.target.gen.headers}"/>
|
||||
<mapper type="glob" from="*.c" to="*.o"/>
|
||||
<fileset dir="${native}/common" includes="*.c"/>
|
||||
<fileset dir="${native}/common/opengles" includes="*.c"/>
|
||||
|
|
|
@ -97,6 +97,7 @@
|
|||
<mkdir dir="${dstdir}" taskname="initializing ${dstdir} folder"/>
|
||||
<apply dir="${dstdir}" executable="${compiler}" os="Mac OS X" failonerror="true" dest="${dstdir}">
|
||||
<arg line="${cflags} -ObjC -O3 -Wall -Wunused -c -fPIC -I${javavmroot}/${jvm_headers_path_md} -I${javavmroot}/${jvm_headers_path} -I${lwjgl.src.native}/common -I${lwjgl.src.native}/common/opengl -I${lwjgl.src.native}/macosx"/>
|
||||
<arg value="-I${lwjgl.target.gen.headers}"/>
|
||||
<!-- Map from *.m and *.c to .o -->
|
||||
<mapper type="regexp" from="^(.*)\.(c|m)" to="\1.o"/>
|
||||
<fileset dir="${lwjgl.src.native}/macosx" includes="*.m"/>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<property name="dllname" value="lwjgl64.dll"/>
|
||||
|
||||
<target name="compile_dir">
|
||||
<apply dir="." failonerror="true" executable="${gcc}" dest="." skipemptyfilesets="true">
|
||||
<apply dir="." failonerror="true" executable="${gcc}" dest=".">
|
||||
<arg line="-c -Wall -O2 -std=gnu99 -D_JNI_IMPLEMENTATION_"/>
|
||||
<arg value="-I${dxhome}/include"/>
|
||||
<arg value="-I${alhome}/include"/>
|
||||
|
@ -19,6 +19,7 @@
|
|||
<arg value="-I${jdkhome}/include/win32"/>
|
||||
<arg value="-I${native}/common"/>
|
||||
<arg value="-I${native}/windows"/>
|
||||
<arg value="-I${lwjgl.target.gen.headers}"/>
|
||||
<srcfile/>
|
||||
<fileset dir="${native}/windows" includes="*.c"/>
|
||||
<fileset dir="${native}/common" includes="*.c"/>
|
||||
|
@ -49,13 +50,6 @@
|
|||
</apply>
|
||||
</target>
|
||||
|
||||
<target name="clean">
|
||||
<delete>
|
||||
<fileset dir="." includes="*.o"/>
|
||||
<fileset dir="." includes="*.dll"/>
|
||||
</delete>
|
||||
</target>
|
||||
|
||||
<target name="compile">
|
||||
<property name="libs" value="-lkernel32 -lole32 -lopengl32 -lversion -luser32 -lgdi32 -ladvapi32 -lwinmm"/>
|
||||
<antcall target="compile_dir"/>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<property name="sdkhome" location="${env.MSSDK}"/>
|
||||
|
||||
<target name="compile_dir">
|
||||
<apply dir="." failonerror="true" executable="cl" dest="." skipemptyfilesets="true" parallel="true">
|
||||
<apply dir="." failonerror="true" executable="cl" dest="." parallel="true">
|
||||
<arg line="/c /W2 /EHsc /Ox /Gy /MT /MP /nologo"/>
|
||||
<arg value="/I${sdkhome}\include"/>
|
||||
<arg value="/I${java.home}\..\include"/>
|
||||
|
@ -15,6 +15,7 @@
|
|||
<arg value="/I${native}\common\opengl"/>
|
||||
<arg value="/I${native}\windows"/>
|
||||
<arg value="/I${native}\windows\opengl"/>
|
||||
<arg value="/I${lwjgl.target.gen.headers}"/>
|
||||
<srcfile/>
|
||||
<fileset dir="${native}/common" includes="*.c"/>
|
||||
<fileset dir="${native}/common/opengl" includes="*.c"/>
|
||||
|
@ -41,15 +42,6 @@
|
|||
</apply>
|
||||
</target>
|
||||
|
||||
<target name="clean">
|
||||
<delete>
|
||||
<fileset dir="." includes="*.obj"/>
|
||||
<fileset dir="." includes="*.dll"/>
|
||||
<fileset dir="." includes="*.exp"/>
|
||||
<fileset dir="." includes="*.lib"/>
|
||||
</delete>
|
||||
</target>
|
||||
|
||||
<target name="compile">
|
||||
<condition property="sdkhomelib" value="${sdkhome}\lib" else="${sdkhome}\lib\x64">
|
||||
<equals arg1="${os.arch}" arg2="x86"/>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<property name="sdkhome" location="${env.MSSDK}"/>
|
||||
|
||||
<target name="compile_dir">
|
||||
<apply dir="." failonerror="true" executable="cl" dest="." skipemptyfilesets="true" parallel="true">
|
||||
<apply dir="." failonerror="true" executable="cl" dest="." parallel="true">
|
||||
<arg line="/c /W2 /EHsc /Ox /Gy /MT /MP /nologo"/>
|
||||
<arg value="/I${sdkhome}\include"/>
|
||||
<arg value="/I${java.home}\..\include"/>
|
||||
|
@ -15,6 +15,7 @@
|
|||
<arg value="/I${native}\common\opengles"/>
|
||||
<arg value="/I${native}\windows"/>
|
||||
<arg value="/I${native}\windows\opengles"/>
|
||||
<arg value="/I${lwjgl.target.gen.headers}"/>
|
||||
<srcfile/>
|
||||
<fileset dir="${native}/common" includes="*.c"/>
|
||||
<fileset dir="${native}/common/opengles" includes="*.c"/>
|
||||
|
@ -42,15 +43,6 @@
|
|||
</apply>
|
||||
</target>
|
||||
|
||||
<target name="clean">
|
||||
<delete>
|
||||
<fileset dir="." includes="*.obj"/>
|
||||
<fileset dir="." includes="*.dll"/>
|
||||
<fileset dir="." includes="*.exp"/>
|
||||
<fileset dir="." includes="*.lib"/>
|
||||
</delete>
|
||||
</target>
|
||||
|
||||
<target name="compile">
|
||||
<condition property="sdkhomelib" value="${sdkhome}\lib" else="${sdkhome}\lib\x64">
|
||||
<equals arg1="${os.arch}" arg2="x86"/>
|
||||
|
|
|
@ -50,6 +50,8 @@ import java.nio.ShortBuffer;
|
|||
*/
|
||||
|
||||
public final class BufferUtils {
|
||||
@java.lang.annotation.Native
|
||||
private static final int __FORCE_NATIVE_HEADER = 0;
|
||||
|
||||
/**
|
||||
* Construct a direct native-ordered bytebuffer with the specified size.
|
||||
|
|
|
@ -425,13 +425,9 @@ public class LWJGLUtil {
|
|||
return possible_paths.toArray(new String[possible_paths.size()]);
|
||||
}
|
||||
|
||||
static void execPrivileged(final String[] cmd_array) throws Exception {
|
||||
static void execPrivileged(String... cmd_array) throws Exception {
|
||||
try {
|
||||
Process process = AccessController.doPrivileged(new PrivilegedExceptionAction<Process>() {
|
||||
public Process run() throws Exception {
|
||||
return Runtime.getRuntime().exec(cmd_array);
|
||||
}
|
||||
});
|
||||
Process process = AccessController.doPrivileged((PrivilegedExceptionAction<Process>) () -> Runtime.getRuntime().exec(cmd_array));
|
||||
// Close unused streams to make sure the child process won't hang
|
||||
process.getInputStream().close();
|
||||
process.getOutputStream().close();
|
||||
|
@ -441,62 +437,25 @@ public class LWJGLUtil {
|
|||
}
|
||||
}
|
||||
|
||||
private static String getPrivilegedProperty(final String property_name) {
|
||||
return AccessController.doPrivileged(new PrivilegedAction<String>() {
|
||||
public String run() {
|
||||
return System.getProperty(property_name);
|
||||
}
|
||||
});
|
||||
private static String getPrivilegedProperty(String property_name) {
|
||||
return AccessController.doPrivileged((PrivilegedAction<String>) () -> System.getProperty(property_name));
|
||||
}
|
||||
|
||||
/**
|
||||
* Tries to locate named library from the current ClassLoader
|
||||
* This method exists because native libraries are loaded from native code, and as such
|
||||
* is exempt from ClassLoader library loading rutines. It therefore always fails.
|
||||
* We therefore invoke the protected method of the ClassLoader to see if it can
|
||||
* locate it.
|
||||
*
|
||||
* @param libname Name of library to search for
|
||||
* @param classloader Classloader to use
|
||||
* @return Absolute path to library if found, otherwise null
|
||||
*/
|
||||
private static String getPathFromClassLoader(final String libname, final ClassLoader classloader) {
|
||||
Class<?> c = null;
|
||||
|
||||
try {
|
||||
log("getPathFromClassLoader: searching for: " + libname);
|
||||
c = classloader.getClass();
|
||||
while (c != null) {
|
||||
final Class<?> clazz = c;
|
||||
try {
|
||||
return AccessController.doPrivileged(new PrivilegedExceptionAction<String>() {
|
||||
public String run() throws Exception {
|
||||
Method findLibrary = clazz.getDeclaredMethod("findLibrary", String.class);
|
||||
findLibrary.setAccessible(true);
|
||||
String path = (String)findLibrary.invoke(classloader, libname);
|
||||
return path;
|
||||
}
|
||||
});
|
||||
} catch (PrivilegedActionException e) {
|
||||
log("Failed to locate findLibrary method: " + e.getCause());
|
||||
c = c.getSuperclass();
|
||||
}
|
||||
/** Gets a boolean property as a privileged action. */
|
||||
public static boolean getPrivilegedBoolean(String property_name) {
|
||||
String s = getPrivilegedProperty(property_name);
|
||||
if (s == null || s.equals("false")) return false;
|
||||
if (LWJGLUtil.DEBUG) {
|
||||
if (!s.equals("true")) {
|
||||
LWJGLUtil.logger().log(() -> "Value of boolean property " + property_name + " is not one of [true, false]: " + s);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log("Failure locating " + e + " using classloader:" + c);
|
||||
}
|
||||
return null;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a boolean property as a privileged action.
|
||||
*/
|
||||
public static boolean getPrivilegedBoolean(final String property_name) {
|
||||
return AccessController.doPrivileged(new PrivilegedAction<Boolean>() {
|
||||
public Boolean run() {
|
||||
return Boolean.getBoolean(property_name);
|
||||
}
|
||||
});
|
||||
|
||||
/** Gets a string property as a privileged action. */
|
||||
public static String getPrivilegedString(String property_name) {
|
||||
return getPrivilegedProperty(property_name);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -530,6 +489,46 @@ public class LWJGLUtil {
|
|||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Tries to locate named library from the current ClassLoader
|
||||
* This method exists because native libraries are loaded from native code, and as such
|
||||
* is exempt from ClassLoader library loading rutines. It therefore always fails.
|
||||
* We therefore invoke the protected method of the ClassLoader to see if it can
|
||||
* locate it.
|
||||
*
|
||||
* @param libname Name of library to search for
|
||||
* @param classloader Classloader to use
|
||||
* @return Absolute path to library if found, otherwise null
|
||||
*/
|
||||
private static String getPathFromClassLoader(final String libname, final ClassLoader classloader) {
|
||||
Class<?> c = null;
|
||||
|
||||
try {
|
||||
if (LWJGLUtil.DEBUG) {
|
||||
logger().log(() -> "getPathFromClassLoader: searching for: " + libname);
|
||||
}
|
||||
c = classloader.getClass();
|
||||
while (c != null) {
|
||||
final Class<?> clazz = c;
|
||||
try {
|
||||
return AccessController.doPrivileged((PrivilegedExceptionAction<String>) () -> {
|
||||
Method findLibrary = clazz.getDeclaredMethod("findLibrary", String.class);
|
||||
findLibrary.setAccessible(true);
|
||||
String path = (String)findLibrary.invoke(classloader, libname);
|
||||
return path;
|
||||
});
|
||||
} catch (PrivilegedActionException e) {
|
||||
logger().log("Failed to locate findLibrary method", e.getCause());
|
||||
c = c.getSuperclass();
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Class<?> c1 = c;
|
||||
logger().log(() -> "Failure locating using classloader " + c1, e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to determine if the current system is running a version of
|
||||
* Mac OS X better than the given version. This is only useful for Mac OS X
|
||||
|
|
|
@ -35,6 +35,7 @@ import java.security.AccessController;
|
|||
import java.security.PrivilegedAction;
|
||||
import java.security.PrivilegedExceptionAction;
|
||||
import java.lang.UnsatisfiedLinkError;
|
||||
import java.lang.annotation.Native;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -43,6 +44,7 @@ import java.lang.UnsatisfiedLinkError;
|
|||
* $Id$
|
||||
*/
|
||||
final class LinuxSysImplementation extends J2SESysImplementation {
|
||||
@Native
|
||||
private static final int JNI_VERSION = 19;
|
||||
|
||||
static {
|
||||
|
@ -71,7 +73,7 @@ final class LinuxSysImplementation extends J2SESysImplementation {
|
|||
// Linux may as well resort to pure Java hackery, as there's no Linux native way of doing it
|
||||
// right anyway.
|
||||
|
||||
String[] browsers = {"sensible-browser", "xdg-open", "google-chrome", "chromium", "firefox", "iceweasel", "mozilla", "opera", "konqueror", "nautilus", "galeon", "netscape"};
|
||||
String[] browsers = {"xdg-open", "sensible-browser"};
|
||||
|
||||
for ( final String browser : browsers ) {
|
||||
try {
|
||||
|
|
|
@ -36,6 +36,7 @@ import java.security.AccessController;
|
|||
import java.security.PrivilegedAction;
|
||||
import java.security.PrivilegedExceptionAction;
|
||||
import java.lang.UnsatisfiedLinkError;
|
||||
import java.lang.annotation.Native;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -44,6 +45,7 @@ import java.lang.UnsatisfiedLinkError;
|
|||
* $Id$
|
||||
*/
|
||||
final class MacOSXSysImplementation extends J2SESysImplementation {
|
||||
@Native
|
||||
private static final int JNI_VERSION = 25;
|
||||
|
||||
static {
|
||||
|
@ -57,7 +59,7 @@ final class MacOSXSysImplementation extends J2SESysImplementation {
|
|||
|
||||
public boolean openURL(String url) {
|
||||
try {
|
||||
FileManager.openURL(url);
|
||||
LWJGLUtil.execPrivileged("open", url);
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
LWJGLUtil.log("Exception occurred while trying to invoke browser: " + e);
|
||||
|
|
|
@ -51,12 +51,15 @@ import org.lwjgl.Sys;
|
|||
|
||||
public class Cursor {
|
||||
/** 1 bit transparency for native cursor */
|
||||
@java.lang.annotation.Native
|
||||
public static final int CURSOR_ONE_BIT_TRANSPARENCY = 1;
|
||||
|
||||
/** 8 bit alhpa native cursor */
|
||||
@java.lang.annotation.Native
|
||||
public static final int CURSOR_8_BIT_ALPHA = 2;
|
||||
|
||||
/** animation native cursor */
|
||||
@java.lang.annotation.Native
|
||||
public static final int CURSOR_ANIMATION = 4;
|
||||
|
||||
/** First element to display */
|
||||
|
|
|
@ -45,6 +45,8 @@ import org.lwjgl.Sys;
|
|||
import org.lwjgl.opengl.Display;
|
||||
import org.lwjgl.opengl.InputImplementation;
|
||||
|
||||
import static org.lwjgl.LWJGLUtil.getPrivilegedBoolean;
|
||||
|
||||
|
||||
/**
|
||||
* <br>
|
||||
|
@ -690,16 +692,6 @@ public class Mouse {
|
|||
}
|
||||
}
|
||||
|
||||
/** Gets a boolean property as a privileged action. */
|
||||
static boolean getPrivilegedBoolean(final String property_name) {
|
||||
Boolean value = AccessController.doPrivileged(new PrivilegedAction<Boolean>() {
|
||||
public Boolean run() {
|
||||
return Boolean.getBoolean(property_name);
|
||||
}
|
||||
});
|
||||
return value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves whether or not the mouse cursor is within the bounds of the window.
|
||||
* If the mouse cursor was moved outside the display during a drag, then the result of calling
|
||||
|
|
|
@ -40,6 +40,8 @@ import java.util.Map;
|
|||
* @author Spasi
|
||||
*/
|
||||
final class CallbackUtil {
|
||||
@java.lang.annotation.Native
|
||||
private static final int __NATIVE_HEADER = 0;
|
||||
|
||||
private static final Map<CLContext, Long> contextUserData = new HashMap<CLContext, Long>();
|
||||
|
||||
|
@ -169,4 +171,4 @@ final class CallbackUtil {
|
|||
*/
|
||||
static native long getLogMessageToStderrAPPLE();
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -62,6 +62,8 @@ import java.security.PrivilegedAction;
|
|||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
|
||||
import static org.lwjgl.LWJGLUtil.getPrivilegedBoolean;
|
||||
|
||||
public final class Display {
|
||||
|
||||
private static final Thread shutdown_hook = new Thread() {
|
||||
|
@ -1034,23 +1036,6 @@ public final class Display {
|
|||
return display_impl;
|
||||
}
|
||||
|
||||
/** Gets a boolean property as a privileged action. */
|
||||
static boolean getPrivilegedBoolean(final String property_name) {
|
||||
String s = getPrivilegedString(property_name);
|
||||
if (s == null || s.equals("false")) return false;
|
||||
if (LWJGLUtil.DEBUG) {
|
||||
if (!s.equals("true")) {
|
||||
LWJGLUtil.logger().log(() -> "Value of boolean property " + property_name + " is not one of [true, false]: " + s);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/** Gets a string property as a privileged action. */
|
||||
static String getPrivilegedString(final String property_name) {
|
||||
return AccessController.doPrivileged((PrivilegedAction<String>) () -> System.getProperty(property_name));
|
||||
}
|
||||
|
||||
private static void initControls() {
|
||||
// Automatically create mouse, keyboard and controller
|
||||
if ( !getPrivilegedBoolean("org.lwjgl.opengl.Display.noinput") ) {
|
||||
|
|
|
@ -208,7 +208,7 @@ final class LinuxDisplay implements DisplayImplementation {
|
|||
}
|
||||
|
||||
private static boolean isXrandrSupported() {
|
||||
if (Display.getPrivilegedBoolean("LWJGL_DISABLE_XRANDR"))
|
||||
if (LWJGLUtil.getPrivilegedBoolean("LWJGL_DISABLE_XRANDR"))
|
||||
return false;
|
||||
try (LinuxDisplay.AWTLock _lock = awtLock()) {
|
||||
incDisplay();
|
||||
|
@ -240,7 +240,7 @@ final class LinuxDisplay implements DisplayImplementation {
|
|||
private static native boolean nIsXF86VidModeSupported(long display) throws LWJGLException;
|
||||
|
||||
private static boolean isNetWMFullscreenSupported() throws LWJGLException {
|
||||
if (Display.getPrivilegedBoolean("LWJGL_DISABLE_NETWM"))
|
||||
if (LWJGLUtil.getPrivilegedBoolean("LWJGL_DISABLE_NETWM"))
|
||||
return false;
|
||||
try (LinuxDisplay.AWTLock _lock = awtLock()) {
|
||||
incDisplay();
|
||||
|
@ -467,7 +467,7 @@ final class LinuxDisplay implements DisplayImplementation {
|
|||
// managers. We do not set MWM_HINTS_DECORATIONS in fullscreen mode anymore,
|
||||
// unless org.lwjgl.opengl.Window.undecorated_fs has been specified.
|
||||
// See native/linux/org_lwjgl_opengl_Display.c, createWindow function.
|
||||
boolean undecorated = Display.getPrivilegedBoolean("org.lwjgl.opengl.Window.undecorated") || (current_window_mode != WINDOWED && Display.getPrivilegedBoolean("org.lwjgl.opengl.Window.undecorated_fs"));
|
||||
boolean undecorated = LWJGLUtil.getPrivilegedBoolean("org.lwjgl.opengl.Window.undecorated") || (current_window_mode != WINDOWED && LWJGLUtil.getPrivilegedBoolean("org.lwjgl.opengl.Window.undecorated_fs"));
|
||||
|
||||
this.parent = parent;
|
||||
parent_window = parent != null ? getHandle(parent) : getRootWindow(getDisplay(), getDefaultScreen());
|
||||
|
@ -490,7 +490,7 @@ final class LinuxDisplay implements DisplayImplementation {
|
|||
current_window = nCreateWindow(getDisplay(), getDefaultScreen(), handle, mode, current_window_mode, x, y, undecorated, parent_window, resizable);
|
||||
|
||||
// Set the WM_CLASS hint which is needed by some WM's e.g. Gnome Shell
|
||||
wm_class = Display.getPrivilegedString("LWJGL_WM_CLASS");
|
||||
wm_class = LWJGLUtil.getPrivilegedString("LWJGL_WM_CLASS");
|
||||
if (wm_class == null) wm_class = Display.getTitle();
|
||||
setClassHint(Display.getTitle(), wm_class);
|
||||
|
||||
|
@ -1414,7 +1414,7 @@ final class LinuxDisplay implements DisplayImplementation {
|
|||
}
|
||||
|
||||
static void init() {
|
||||
if ( Display.getPrivilegedBoolean("org.lwjgl.opengl.Window.nocompiz_lfs") )
|
||||
if ( LWJGLUtil.getPrivilegedBoolean("org.lwjgl.opengl.Window.nocompiz_lfs") )
|
||||
return;
|
||||
|
||||
AccessController.doPrivileged(new PrivilegedAction<Object>() {
|
||||
|
|
|
@ -127,7 +127,7 @@ final class MacOSXDisplay implements DisplayImplementation {
|
|||
private native boolean nIsNativeMode(ByteBuffer peer_info_handle);
|
||||
|
||||
private static boolean isUndecorated() {
|
||||
return Display.getPrivilegedBoolean("org.lwjgl.opengl.Window.undecorated");
|
||||
return LWJGLUtil.getPrivilegedBoolean("org.lwjgl.opengl.Window.undecorated");
|
||||
}
|
||||
|
||||
public void createWindow(final DrawableLWJGL drawable, DisplayMode mode, Canvas parent, int x, int y) throws LWJGLException {
|
||||
|
@ -137,11 +137,11 @@ final class MacOSXDisplay implements DisplayImplementation {
|
|||
|
||||
// OS X fullscreen mode API is only available on OS X 10.7+
|
||||
boolean enableFullscreenModeAPI = LWJGLUtil.isMacOSXEqualsOrBetterThan(10, 7) && parent == null &&
|
||||
!Display.getPrivilegedBoolean("org.lwjgl.opengl.Display.disableOSXFullscreenModeAPI");
|
||||
!LWJGLUtil.getPrivilegedBoolean("org.lwjgl.opengl.Display.disableOSXFullscreenModeAPI");
|
||||
|
||||
// OS X high DPI mode is only available on OS X 10.7+
|
||||
enableHighDPI = LWJGLUtil.isMacOSXEqualsOrBetterThan(10, 7) && parent == null &&
|
||||
(Display.getPrivilegedBoolean("org.lwjgl.opengl.Display.enableHighDPI") || fullscreen);
|
||||
(LWJGLUtil.getPrivilegedBoolean("org.lwjgl.opengl.Display.enableHighDPI") || fullscreen);
|
||||
|
||||
if (parented) this.canvas = parent;
|
||||
else this.canvas = null;
|
||||
|
|
|
@ -52,86 +52,103 @@ public final class Pbuffer extends DrawableGL {
|
|||
/**
|
||||
* Indicates that Pbuffers can be created.
|
||||
*/
|
||||
@java.lang.annotation.Native
|
||||
public static final int PBUFFER_SUPPORTED = 1 << 0;
|
||||
|
||||
/**
|
||||
* Indicates that Pbuffers can be used as render-textures.
|
||||
*/
|
||||
@java.lang.annotation.Native
|
||||
public static final int RENDER_TEXTURE_SUPPORTED = 1 << 1;
|
||||
|
||||
/**
|
||||
* Indicates that Pbuffers can be used as non-power-of-two render-textures.
|
||||
*/
|
||||
@java.lang.annotation.Native
|
||||
public static final int RENDER_TEXTURE_RECTANGLE_SUPPORTED = 1 << 2;
|
||||
|
||||
/**
|
||||
* Indicates that Pbuffers can be used as depth render-textures.
|
||||
*/
|
||||
@java.lang.annotation.Native
|
||||
public static final int RENDER_DEPTH_TEXTURE_SUPPORTED = 1 << 3;
|
||||
|
||||
/**
|
||||
* The render-to-texture mipmap level attribute.
|
||||
*/
|
||||
@java.lang.annotation.Native
|
||||
public static final int MIPMAP_LEVEL = RenderTexture.WGL_MIPMAP_LEVEL_ARB;
|
||||
|
||||
/**
|
||||
* The render-to-texture cube map face attribute.
|
||||
*/
|
||||
@java.lang.annotation.Native
|
||||
public static final int CUBE_MAP_FACE = RenderTexture.WGL_CUBE_MAP_FACE_ARB;
|
||||
|
||||
/**
|
||||
* The render-to-texture cube map positive X face value.
|
||||
*/
|
||||
@java.lang.annotation.Native
|
||||
public static final int TEXTURE_CUBE_MAP_POSITIVE_X = RenderTexture.WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB;
|
||||
|
||||
/**
|
||||
* The render-to-texture cube map negative X face value.
|
||||
*/
|
||||
@java.lang.annotation.Native
|
||||
public static final int TEXTURE_CUBE_MAP_NEGATIVE_X = RenderTexture.WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB;
|
||||
|
||||
/**
|
||||
* The render-to-texture cube map positive Y face value.
|
||||
*/
|
||||
@java.lang.annotation.Native
|
||||
public static final int TEXTURE_CUBE_MAP_POSITIVE_Y = RenderTexture.WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB;
|
||||
|
||||
/**
|
||||
* The render-to-texture cube map negative Y face value.
|
||||
*/
|
||||
@java.lang.annotation.Native
|
||||
public static final int TEXTURE_CUBE_MAP_NEGATIVE_Y = RenderTexture.WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB;
|
||||
|
||||
/**
|
||||
* The render-to-texture cube map positive Z face value.
|
||||
*/
|
||||
@java.lang.annotation.Native
|
||||
public static final int TEXTURE_CUBE_MAP_POSITIVE_Z = RenderTexture.WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB;
|
||||
|
||||
/**
|
||||
* The render-to-texture cube map negative Z face value.
|
||||
*/
|
||||
@java.lang.annotation.Native
|
||||
public static final int TEXTURE_CUBE_MAP_NEGATIVE_Z = RenderTexture.WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB;
|
||||
|
||||
/**
|
||||
* The Pbuffer front left buffer.
|
||||
*/
|
||||
@java.lang.annotation.Native
|
||||
public static final int FRONT_LEFT_BUFFER = RenderTexture.WGL_FRONT_LEFT_ARB;
|
||||
|
||||
/**
|
||||
* The Pbuffer front right buffer.
|
||||
*/
|
||||
@java.lang.annotation.Native
|
||||
public static final int FRONT_RIGHT_BUFFER = RenderTexture.WGL_FRONT_RIGHT_ARB;
|
||||
|
||||
/**
|
||||
* The Pbuffer back left buffer.
|
||||
*/
|
||||
@java.lang.annotation.Native
|
||||
public static final int BACK_LEFT_BUFFER = RenderTexture.WGL_BACK_LEFT_ARB;
|
||||
|
||||
/**
|
||||
* The Pbuffer back right buffer.
|
||||
*/
|
||||
@java.lang.annotation.Native
|
||||
public static final int BACK_RIGHT_BUFFER = RenderTexture.WGL_BACK_RIGHT_ARB;
|
||||
|
||||
/**
|
||||
* The Pbuffer depth buffer.
|
||||
*/
|
||||
@java.lang.annotation.Native
|
||||
public static final int DEPTH_BUFFER = RenderTexture.WGL_DEPTH_COMPONENT_NV;
|
||||
|
||||
/**
|
||||
|
|
|
@ -289,7 +289,7 @@ final class WindowsDisplay implements DisplayImplementation {
|
|||
private static native long nCreateWindow(int x, int y, int width, int height, boolean undecorated, boolean child_window, long parent_hwnd) throws LWJGLException;
|
||||
|
||||
private static boolean isUndecorated() {
|
||||
return Display.getPrivilegedBoolean("org.lwjgl.opengl.Window.undecorated");
|
||||
return LWJGLUtil.getPrivilegedBoolean("org.lwjgl.opengl.Window.undecorated");
|
||||
}
|
||||
|
||||
private static long getHwnd(Canvas parent) throws LWJGLException {
|
||||
|
@ -1232,4 +1232,4 @@ final class WindowsDisplay implements DisplayImplementation {
|
|||
return "Rect: left = " + left + " top = " + top + " right = " + right + " bottom = " + bottom + ", width: " + (right - left) + ", height: " + (bottom - top);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#include "org_lwjgl_BufferUtils.h"
|
||||
//#include "org_lwjgl_BufferUtils.h"
|
||||
#include "common_tools.h"
|
||||
|
||||
JNIEXPORT void JNICALL Java_org_lwjgl_BufferUtils_zeroBuffer0(JNIEnv *env, jclass clazz, jobject buffer, jlong offset, jlong size) {
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
#include <jni.h>
|
||||
#include "common_tools.h"
|
||||
#include "extcl.h"
|
||||
#include "org_lwjgl_opencl_CallbackUtil.h"
|
||||
//#include "org_lwjgl_opencl_CallbackUtil.h"
|
||||
|
||||
static jmethodID contextCallbackJ;
|
||||
static jmethodID memObjectDestructorCallbackJ;
|
||||
|
|
|
@ -228,17 +228,20 @@ static XVisualInfo *chooseVisualGLXFromBPP(JNIEnv *env, Display *disp, int scree
|
|||
putAttrib(&attrib_list, GLX_ACCUM_GREEN_SIZE); putAttrib(&attrib_list, accum_bpe);
|
||||
putAttrib(&attrib_list, GLX_ACCUM_BLUE_SIZE); putAttrib(&attrib_list, accum_bpe);
|
||||
putAttrib(&attrib_list, GLX_ACCUM_ALPHA_SIZE); putAttrib(&attrib_list, accum_alpha);
|
||||
if (stereo)
|
||||
if (stereo) {
|
||||
putAttrib(&attrib_list, GLX_STEREO);
|
||||
}
|
||||
// Assume the caller has checked support for multisample
|
||||
if (samples > 0) {
|
||||
putAttrib(&attrib_list, GLX_SAMPLE_BUFFERS_ARB); putAttrib(&attrib_list, 1);
|
||||
putAttrib(&attrib_list, GLX_SAMPLES_ARB); putAttrib(&attrib_list, samples); // GLX_COVERAGE_SAMPLES_NV if colorSamples > 0
|
||||
if ( colorSamples > 0 )
|
||||
if ( colorSamples > 0 ) {
|
||||
putAttrib(&attrib_list, GLX_COLOR_SAMPLES_NV); putAttrib(&attrib_list, colorSamples);
|
||||
}
|
||||
}
|
||||
if (sRGB)
|
||||
if (sRGB) {
|
||||
putAttrib(&attrib_list, GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB);
|
||||
}
|
||||
putAttrib(&attrib_list, None);
|
||||
return lwjgl_glXChooseVisual(disp, screen, attrib_list.attribs);
|
||||
}
|
||||
|
|
|
@ -78,6 +78,7 @@ JNIEXPORT jint JNICALL Java_org_lwjgl_opengl_LinuxKeyboard_lookupModifierMap(JNI
|
|||
|
||||
JNIEXPORT jlong JNICALL Java_org_lwjgl_opengl_LinuxKeyboard_keycodeToKeySym(JNIEnv *env, jclass unused, jlong display_ptr, jint key_code) {
|
||||
Display *disp = (Display *)(intptr_t)display_ptr;
|
||||
// TODO: verify that XkbKeycodeToKeysym does not introduce any unwanted behaviour, then switch to it.
|
||||
KeySym key_sym = XKeycodeToKeysym(disp, key_code, 0);
|
||||
return key_sym;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue