diff options
author | sg215889 <[email protected]> | 2009-07-12 17:34:27 -0700 |
---|---|---|
committer | sg215889 <[email protected]> | 2009-07-12 17:34:27 -0700 |
commit | 69d2f49619b303e51e1583a02115756dfc6d1f2f (patch) | |
tree | 014d45d9d1f8708e3f1bf8e370891c99f913a7a5 | |
parent | 9d910cf21fb8a61e3a1604f6258364c3b725964d (diff) |
Add: Extended support for CVM:
- GLX, CGL, WGL
- GL2ES12 desktop ES1 and ES2 common profile
Cleanup JAR file seperation
- New: jogl.cdcfp.jar (ALL for CVM/CDC)
- New: setup.nogl2es12 (Allow GL2ES12 for CVM without gl2/gl3)
- Clean dependencies of GLX, WGL, CGL (incl. for GL2ES12)
- Only build supported JAR archive, ie if they are being build
Fix GL2ES12: Only add impl. for ES1 and ES2 interface methods
- Use new com.sun.gluegen.runtime.PointerBuffer, to support CVM
- CVM and J2SE Java JAR archives are equal!
- Well, the build form *everything* includes some empty directories
in the cdcfp JAR archives though.
- Removed last AWT dependency in MacOSX chain
- GLDrawableFactory
- com.sun.opengl.impl.macosx.cgl.MacOSXCGLDrawableFactory
- com.sun.opengl.impl.macosx.cgl.awt.MacOSXAWTCGLDrawableFactory
21 files changed, 411 insertions, 229 deletions
diff --git a/make/build-jogl.xml b/make/build-jogl.xml index e23b9d594..06d606df0 100644 --- a/make/build-jogl.xml +++ b/make/build-jogl.xml @@ -56,22 +56,20 @@ - no LongBuffer This will set - -> setup.noAWT -> setup.nogl2 + -> setup.noAWT (depends on gl2) -> setup.nogl3 - Internal settings, may not be necessary to set them manually, since all JAR archives are orthogonal. setup.noes1 setup.noes2 - setup.nogl2 - setup.nogl3 + setup.nogl2es12 + setup.nogl2 [ -> setup.noAWT (still depends on gl2), setup.nogl3 (contained in the gl2 jar) ] + setup.nogl3 [ -> setup.nogl2 (contained in the gl2 jar) ] setup.noAWT - setup.noutil - no com.sun.opengl.util.* - setup.noX11WindowsMacOsX, which implies: - setup.noX11 - setup.noWindows - setup.noMacOsX + setup.noX11WindowsMacOsX [ -> setup.noX11, setup.noWindows, setup.noMacOsX ] + is also triggered by [ setup.nogl2 && setup.nogl3 && setup.nogl2es12 ] --> <project name="JOGL" basedir="." default="all"> @@ -97,18 +95,28 @@ </and> </condition> - <condition property="setup.nogl3"> - <isset property="setup.cdcfp"/> + <condition property="isCDCFP"> + <isset property="setup.cdcfp"/> </condition> + <condition property="setup.nogl2"> - <isset property="setup.cdcfp"/> + <or> + <isset property="setup.cdcfp"/> + <isset property="setup.nogl3"/> + </or> </condition> - <condition property="setup.noAWT"> - <isset property="setup.cdcfp"/> + + <condition property="setup.nogl3"> + <or> + <isset property="setup.cdcfp"/> + <isset property="setup.nogl2"/> + </or> </condition> - <condition property="isCDCFP"> - <isset property="setup.cdcfp"/> + + <condition property="setup.noAWT"> + <isset property="setup.nogl2"/> </condition> + <condition property="javac.bootclasspath.jar" value="../../gluegen/make/lib/cdc_fp.jar"> <isset property="setup.cdcfp"/> @@ -119,11 +127,20 @@ <echo message="setup.noes : ${setup.noes}" /> <echo message="setup.noes1: ${setup.noes1}" /> <echo message="setup.noes2: ${setup.noes2}" /> + <echo message="setup.nogl2es12: ${setup.nogl2es12}" /> <echo message="setup.nogl2: ${setup.nogl2}" /> <echo message="setup.nogl3: ${setup.nogl3}" /> <condition property="setup.noX11WindowsMacOsX"> <and> + <isset property="setup.nogl2es12"/> + <isset property="setup.nogl2"/> + <isset property="setup.nogl3"/> + </and> + </condition> + + <condition property="setup.noX11WindowsMacOsX"> + <and> <isset property="setup.noX11"/> <isset property="setup.noWindows"/> <isset property="setup.noMacOsX"/> @@ -149,10 +166,16 @@ <!-- partitioning --> - <condition property="java.part.cg" - value="com/sun/opengl/cg/*"> - <isset property="jogl.cg"/> - </condition> + <property name="java.part.core" + value="javax/media/opengl/* javax/media/opengl/fixedfunc/* javax/media/opengl/glu/* javax/media/opengl/glu/gl2es1/* com/sun/opengl/impl/* com/sun/opengl/impl/glu/* com/sun/opengl/impl/glu/error/*"/> + <property name="java.part.core.exclude" value="javax/media/opengl/Debug* javax/media/opengl/Trace*"/> + + <property name="java.part.nv-cg" + value="com/sun/opengl/cg com/sun/opengl/cg/*"/> + + + <property name="java.part.nv-cg" + value="com/sun/opengl/cg com/sun/opengl/cg/*"/> <property name="java.part.egl" value="com/sun/opengl/impl/egl/*"/> @@ -164,57 +187,58 @@ value="com/sun/opengl/impl/glu/mipmap/**"/> <property name="java.part.glugl2" - value="com/sun/opengl/impl/glu/gl2/**, com/sun/opengl/impl/glu/nurbs/**, com/sun/opengl/impl/glu/registry/**, javax/media/opengl/glu/gl2/**"/> + value="com/sun/opengl/impl/glu/gl2/** com/sun/opengl/impl/glu/nurbs/** com/sun/opengl/impl/glu/registry/** javax/media/opengl/glu/gl2/**"/> + <property name="java.part.openmax" value="com/sun/openmax/**"/> <property name="java.part.sdk" value="javax/media/opengl/sdk/**"/> - <property name="java.part.gl2es12.x11" - value="com/sun/opengl/impl/gl2es12/**, com/sun/opengl/impl/x11/glx/*"/> + <property name="java.part.glx" + value="com/sun/opengl/impl/x11/glx/*"/> + + <property name="java.part.wgl" + value="com/sun/opengl/impl/windows/wgl/*"/> - <property name="java.part.gl2es12.win" - value="com/sun/opengl/impl/gl2es12/**, com/sun/opengl/impl/windows/wgl/*"/> + <property name="java.part.cgl" + value="com/sun/opengl/impl/macosx/cgl/*"/> - <property name="java.part.gl2es12.osx" - value="com/sun/opengl/impl/gl2es12/**, com/sun/opengl/impl/macosx/cgl/*"/> + <property name="java.part.gl2es12" + value="com/sun/opengl/impl/gl2es12/**"/> <property name="java.part.gl2es12.dbg" - value="javax/media/opengl/TraceGL2ES12.*, javax/media/opengl/DebugGL2ES12.*"/> + value="javax/media/opengl/TraceGL2ES12.* javax/media/opengl/DebugGL2ES12.*"/> <property name="java.part.gl3" value="com/sun/opengl/impl/**/gl3/**"/> - <property name="java.part.gl2.x11" - value="com/sun/opengl/impl/**/gl2/**, ${java.part.gl3}, com/sun/opengl/impl/x11/glx/*"/> + <property name="java.part.gl3.dbg" + value="javax/media/opengl/TraceGL3.* javax/media/opengl/DebugGL3.*"/> - <property name="java.part.gl2.win" - value="com/sun/opengl/impl/**/gl2/**, ${java.part.gl3}, com/sun/opengl/impl/windows/wgl/*"/> - - <property name="java.part.gl2.osx" - value="com/sun/opengl/impl/**/gl2/**, ${java.part.gl3}, com/sun/opengl/impl/macosx/cgl/*"/> + <property name="java.part.gl2" + value="com/sun/opengl/impl/**/gl2/**"/> <property name="java.part.gl2.dbg" - value="javax/media/opengl/TraceGL2.*, javax/media/opengl/DebugGL2.*, javax/media/opengl/TraceGL3.*, javax/media/opengl/DebugGL3.*,"/> + value="javax/media/opengl/TraceGL2.* javax/media/opengl/DebugGL2.*"/> <property name="java.part.es1" - value="javax/media/opengl/**/es1/**, com/sun/opengl/**/es1/**"/> + value="javax/media/opengl/**/es1/** com/sun/opengl/**/es1/**"/> <property name="java.part.es1.dbg" - value="javax/media/opengl/TraceGLES1.*, javax/media/opengl/DebugGLES1.*"/> + value="javax/media/opengl/TraceGLES1.* javax/media/opengl/DebugGLES1.*"/> <property name="java.part.es2" - value="javax/media/opengl/**/es2/**, com/sun/opengl/**/es2/**"/> + value="javax/media/opengl/**/es2/** com/sun/opengl/**/es2/**"/> <property name="java.part.es2.dbg" - value="javax/media/opengl/TraceGLES2.*, javax/media/opengl/DebugGLES2.*"/> + value="javax/media/opengl/TraceGLES2.* javax/media/opengl/DebugGLES2.*"/> <property name="java.part.awt" - value="javax/media/opengl/awt/**, com/sun/opengl/impl/**/awt/**"/> + value="javax/media/opengl/awt/** com/sun/opengl/impl/**/awt/**"/> <property name="java.part.util" - value="com/sun/opengl/util/*, com/sun/opengl/util/texture/**, com/sun/opengl/util/packrect/**"/> + value="com/sun/opengl/util/* com/sun/opengl/util/texture/** com/sun/opengl/util/packrect/**"/> <property name="java.part.util.awt" value="com/sun/opengl/util/**/awt/**"/> @@ -223,18 +247,18 @@ value="com/sun/opengl/util/**/gl2/**"/> <property name="java.part.util.glsl" - value="com/sun/opengl/util/glsl/*, com/sun/opengl/util/glsl/fixedfunc/*, com/sun/opengl/util/glsl/sdk/*"/> + value="com/sun/opengl/util/glsl/* com/sun/opengl/util/glsl/fixedfunc/* com/sun/opengl/util/glsl/sdk/*"/> <property name="java.part.util.fixedfuncemu" value="com/sun/opengl/util/glsl/fixedfunc/impl/**"/> <property name="java.part.util.fixedfuncemu.shadercode" - value="com/sun/opengl/util/glsl/fixedfunc/impl/shaders/*, com/sun/opengl/util/glsl/fixedfunc/impl/shaders/bin/**"/> + value="com/sun/opengl/util/glsl/fixedfunc/impl/shaders/* com/sun/opengl/util/glsl/fixedfunc/impl/shaders/bin/**"/> <!-- condition excludes --> <condition property="java.excludes.cg" - value="${java.part.cg}"> + value="${java.part.nv-cg}"> <not> <isset property="jogl.cg"/> </not> @@ -248,55 +272,53 @@ </and> </condition> + <condition property="java.excludes.glx" + value="${java.part.glx}"> + <isset property="setup.noX11"/> + </condition> + + <condition property="java.excludes.wgl" + value="${java.part.wgl}"> + <isset property="setup.noWindows"/> + </condition> + + <condition property="java.excludes.cgl" + value="${java.part.cgl}"> + <isset property="setup.noMacOsX"/> + </condition> + <condition property="java.excludes.gl3" - value="${java.part.gl3}"> + value="${java.part.gl3} ${java.part.gl3.dbg}"> <isset property="setup.nogl3"/> </condition> + <condition property="java.excludes.gl2es12" + value="${java.part.gl2es12} ${java.part.gl2es12.dbg}"> + <isset property="setup.nogl2es12"/> + </condition> + <condition property="java.excludes.gl2" - value="${java.part.gl2es12.x11}, ${java.part.gl2es12.win}, ${java.part.gl2es12.osx}, ${java.part.gl2es12.dbg}, ${java.part.gl2.x11}, ${java.part.gl2.win}, ${java.part.gl2.osx}, ${java.part.gl2.dbg}, ${java.part.util.gl2}, ${java.part.glugl2}"> + value="${java.part.gl2} ${java.part.gl2.dbg} ${java.part.util.gl2} ${java.part.glugl2}"> <isset property="setup.nogl2"/> </condition> <condition property="java.excludes.es1" - value="${java.part.es1}, ${java.part.es1.dbg}"> + value="${java.part.es1} ${java.part.es1.dbg}"> <isset property="setup.noes1"/> </condition> <condition property="java.excludes.es2" - value="${java.part.es2}, ${java.part.es2.dbg}"> + value="${java.part.es2} ${java.part.es2.dbg}"> <isset property="setup.noes2"/> </condition> <condition property="java.excludes.awt" - value="${java.part.awt}, ${java.part.util.awt}"> + value="${java.part.awt} ${java.part.util.awt} com/sun/opengl/util/AWTAnimatorImpl* com/sun/opengl/util/texture/spi/awt/** "> <isset property="setup.noAWT"/> </condition> - <condition property="java.excludes.util" - value="${java.part.util} ${java.part.util.awt} ${java.part.util.gl2}"> - <isset property="setup.noutil"/> - </condition> - - <condition property="java.excludes.x11" - value="${java.part.x11}"> - <isset property="setup.noX11"/> - </condition> - - <condition property="java.excludes.win" - value="${java.part.win}"> - <isset property="setup.noWindows"/> - </condition> - - <condition property="java.excludes.macosx" - value="${java.part.macosx}"> - <isset property="setup.noMacOsX"/> - </condition> - - <condition property="java.excludes.cdcfp" - value="com/sun/opengl/util/AWTAnimatorImpl*, com/sun/opengl/util/TGAWriter*, com/sun/opengl/util/texture/spi/awt/**"> - <isset property="setup.cdcfp"/> - </condition> + <property name="java.excludes.cdcfp" + value="com/sun/opengl/util/TGAWriter* com/sun/opengl/util/AWTAnimatorImpl*"/> <property name="java.excludes.javadoc.packagenames" value="com.sun.opengl.impl.gl2.fixme.*,com.sun.javafx.audio.windows.waveout.TestSpatialization"/> @@ -304,7 +326,7 @@ <property name="java.excludes.fixme" value="com/sun/opengl/impl/gl2/fixme/** com/sun/javafx/audio/windows/waveout/TestSpatialization.java" /> - <property name="java.excludes.all" value="${java.excludes.fixme} ${java.excludes.cg}, ${java.excludes.egl}, ${java.excludes.gl2}, ${java.excludes.gl3}, ${java.excludes.es1}, ${java.excludes.es2}, ${java.excludes.awt}, ${java.excludes.glugl2}, ${java.excludes.util}, ${java.excludes.x11}, ${java.excludes.win}, ${java.excludes.macosx}, ${java.excludes.cdcfp}" /> + <property name="java.excludes.all" value="${java.excludes.fixme} ${java.excludes.cg} ${java.excludes.egl} ${java.excludes.gl2es12} ${java.excludes.gl2} ${java.excludes.gl3} ${java.excludes.es1} ${java.excludes.es2} ${java.excludes.awt} ${java.excludes.glugl2} ${java.excludes.glx} ${java.excludes.wgl} ${java.excludes.cgl} ${java.excludes.cdcfp}" /> <echo message="java.excludes.all: ${java.excludes.all}" /> <!-- Set the project root directory to be up one directory. --> @@ -382,7 +404,8 @@ <property name="gluegen.build.xml" value="${gluegen.make.dir}/build.xml" /> <property name="gluegen.jar" value="../../gluegen/${rootrel.build}/gluegen.jar" /> <property name="gluegen-rt.jar" value="../../gluegen/${rootrel.build}/gluegen-rt.jar" /> - <property name="nativewindow.all.jar" value="../${rootrel.build}/nativewindow/nativewindow.all.jar" /> + <property name="nativewindow.core.jar" value="../${rootrel.build}/nativewindow/nativewindow.core.jar" /> + <property name="nativewindow.awt.jar" value="../${rootrel.build}/nativewindow/nativewindow.awt.jar" /> <!-- The source directories. --> <property name="src.java" value="${project.root}/${rootrel.src.java}" /> @@ -456,7 +479,8 @@ </path> <path id="nativewindow_gluegen.classpath"> - <pathelement location="${nativewindow.all.jar}" /> + <pathelement location="${nativewindow.core.jar}" /> + <pathelement location="${nativewindow.awt.jar}" /> <pathelement location="${gluegen-rt.jar}" /> </path> @@ -493,7 +517,10 @@ <property name="jogl.util.awt.jar" value="${build}/jogl.util.awt.jar" /> <property name="jogl.util.fixedfuncemu.jar" value="${build}/jogl.util.fixedfuncemu.jar" /> <property name="jogl.sdk.jar" value="${build}/jogl.sdk.jar" /> - <property name="jogl.all.jar" value="${build}/jogl.all.jar" /> + + <!-- The *ALL* targets for different flavours --> + <property name="jogl.cdcfp.jar" value="${build}/jogl.cdcfp.jar"/> + <property name="jogl.all.jar" value="${build}/jogl.all.jar"/> <!-- The javadoc dirs. --> <property name="javadoc" value="${project.root}/javadoc_jogl_public" /> @@ -706,7 +733,7 @@ <target name="java.generate.gl2es12"> <echo message="Generating GL2ES12 interface and implementation" /> <antcall target="java.generate.copy2temp" inheritRefs="true" /> - <gluegen src="${stub.includes.opengl}/gl2.c" + <gluegen src="${stub.includes.opengl}/gl2es12.c" outputRootDir="../${rootrel.build.jogl}" config="${config}/gl-gl2es12.cfg" includeRefid="stub.includes.fileset.all.gl2" @@ -775,7 +802,7 @@ </gluegen> </target> - <target name="java.generate.glu.GL2" unless="setup.nogl2"> + <target name="java.generate.glu.GL2"> <echo message="Generating GLU class" /> <antcall target="java.generate.copy2temp" inheritRefs="true" /> <gluegen src="${stub.includes.opengl}/glu.c" @@ -787,8 +814,8 @@ </gluegen> </target> - <target name="java.generate.platform.glext" unless="setup.nogl2"> - <echo message="Generating platform-specific OpenGL extension class" /> + <target name="java.generate.platform.glext"> + <echo message="Generating platform-specific OpenGL extension class: ${window.os.system}" /> <antcall target="java.generate.copy2temp" inheritRefs="true" /> <gluegen src="${glext.platform.header}" outputRootDir="../${rootrel.build.jogl}" @@ -799,7 +826,7 @@ </gluegen> </target> - <target name="java.generate.window.system.es" if="window.es.cfg" unless="setup.noes"> + <target name="java.generate.window.system.es" if="window.es.cfg"> <echo message="Generating EGL implementation class" /> <antcall target="java.generate.copy2temp" inheritRefs="true" /> <dirset id="stub.includes.fileset.platform" dir="." includes="${stub.includes.dir}/${window.es.system}/** ${stub.includes.dir}/common/**" /> @@ -825,8 +852,8 @@ </gluegen> </target> - <target name="java.generate.window.system.os" if="window.os.cfg" unless="setup.nogl2"> - <echo message="Generating WGL/GLX/CGL/EGL implementation class" /> + <target name="java.generate.window.system.os" if="window.os.cfg"> + <echo message="Generating window system glue impl: ${window.os.system}" /> <antcall target="java.generate.copy2temp" inheritRefs="true" /> <gluegen src="${stub.includes.dir}/${window.os.system}/window-system.c" outputRootDir="../${rootrel.build.jogl}" @@ -914,7 +941,6 @@ <antcall target="java.generate.window.system.es" inheritRefs="true" /> <antcall target="java.generate.window.system.es.ext" inheritRefs="true" /> - <echo message="Generating platform-specifics: X11" /> <antcall target="java.generate.gl.platforms" inheritRefs="true"> <param name="window.os.system" value="x11"/> <param name="window.os.cfg" value="${config}/glx-x11.cfg" /> @@ -922,7 +948,6 @@ <param name="glext.platform.header" value="${stub.includes.dir}/x11/glxext.c" /> </antcall> - <echo message="Generating platform-specifics: Win32" /> <antcall target="java.generate.gl.platforms" inheritRefs="true"> <param name="window.os.system" value="win32"/> <param name="window.os.cfg" value="${config}/wgl-win32.cfg" /> @@ -930,7 +955,6 @@ <param name="glext.platform.header" value="${stub.includes.dir}/win32/wglext.c" /> </antcall> - <echo message="Generating platform-specifics: MaxOsX" /> <antcall target="java.generate.gl.platforms" inheritRefs="true"> <param name="window.os.system" value="macosx"/> <param name="window.os.cfg" value="${config}/cgl-macosx.cfg" /> @@ -1603,11 +1627,14 @@ </sequential> </macrodef> - <target name="c.build.jogl.prepare"> + <target name="c.build.jogl.prepare.openMAX" if="useOpenMAX"> + <javah destdir="../${rootrel.build.jogl}/gensrc/native/openmax" classpath="${jogl.cdcfp.jar}" class="com.sun.openmax.OMXInstance" /> + </target> + + <target name="c.build.jogl.prepare" depends="c.build.jogl.prepare.openMAX"> <!-- Generate the waveout Mixer header --> <!-- FIXME: this is temporary until we move this to another workspace --> - <javah destdir="../${rootrel.build.jogl}/gensrc/native/jogl" classpath="${jogl.all.jar}" class="com.sun.javafx.audio.windows.waveout.Mixer" /> - <javah destdir="../${rootrel.build.jogl}/gensrc/native/openmax" classpath="${jogl.all.jar}" class="com.sun.openmax.OMXInstance" /> + <!--javah destdir="../${rootrel.build.jogl}/gensrc/native/jogl" classpath="${jogl.cdcfp.jar}" class="com.sun.javafx.audio.windows.waveout.Mixer" /--> </target> <target name="c.build.jogl.gl2" unless="setup.nogl2"> @@ -1617,7 +1644,7 @@ linker.cfg.id="${linker.cfg.id.gl2}"/> </target> - <target name="c.build.jogl.gl2es12" unless="setup.nogl2"> + <target name="c.build.jogl.gl2es12" unless="setup.nogl2es12"> <c.build c.compiler.src.files="c.src.files.jogl.gl2es12" output.lib.name="jogl_gl2es12" compiler.cfg.id="${compiler.cfg.id}" @@ -1701,16 +1728,19 @@ <target name="build-cg-jar" depends="setup-manifestfile" if="jogl.cg"> <jar manifest="${build}/tempversion" destfile="${jogl.cg.jar}"> <fileset dir="${classes}" - includes="${java.part.cg}"/> + includes="${java.part.nv-cg}"/> </jar> </target> - <target name="build-jars" depends="setup-manifestfile"> - <jar manifest="${build}/tempversion" destfile="${jogl.core.jar}"> + <target name="build-jars-egl" depends="setup-manifestfile"> + <jar manifest="${build}/tempversion" destfile="${jogl.egl.jar}"> <fileset dir="${classes}" - includes="javax/media/opengl/**, com/sun/gluegen/runtime/**, com/sun/opengl/**" - excludes="${java.excludes.fixme}, ${java.part.cg}, ${java.part.egl}, ${java.part.sdk}, ${java.part.openmax}, ${java.part.gl2es12.x11}, ${java.part.gl2es12.win}, ${java.part.gl2es12.osx}, ${java.part.gl2es12.dbg}, ${java.part.gl2.x11}, ${java.part.gl2.win}, ${java.part.gl2.osx}, ${java.part.gl2.dbg}, ${java.part.es1}, ${java.part.es1.dbg}, ${java.part.es2}, ${java.part.es2.dbg}, ${java.part.awt}, ${java.part.glutess}, ${java.part.glumipmap}, ${java.part.glugl2}, ${java.part.util} ${java.part.util.awt} ${java.part.util.gl2} ${java.part.util.glsl} ${java.part.util.fixedfuncemu}"/> + includes="${java.part.egl}" + excludes="${java.part.awt}"/> </jar> + </target> + + <target name="build-jars-es1" depends="setup-manifestfile,build-jars-egl" unless="setup.noes1"> <jar manifest="${build}/tempversion" destfile="${jogl.gles1.jar}"> <fileset dir="${classes}" includes="${java.part.es1}" @@ -1720,6 +1750,9 @@ <fileset dir="${classes}" includes="${java.part.es1.dbg}"/> </jar> + </target> + + <target name="build-jars-es2" depends="setup-manifestfile,build-jars-egl" unless="setup.noes2"> <jar manifest="${build}/tempversion" destfile="${jogl.gles2.jar}"> <fileset dir="${classes}" includes="${java.part.es2}, ${java.part.openmax}" @@ -1729,89 +1762,73 @@ <fileset dir="${classes}" includes="${java.part.es2.dbg}"/> </jar> - <jar manifest="${build}/tempversion" destfile="${jogl.egl.jar}"> - <fileset dir="${classes}" - includes="${java.part.egl}" - excludes="${java.part.awt}"/> - </jar> + </target> + + <target name="build-jars-gl2es12" depends="setup-manifestfile" unless="setup.nogl2es12"> <jar manifest="${build}/tempversion" destfile="${jogl.gl2es12.x11.jar}"> <fileset dir="${classes}" - includes="${java.part.gl2es12.x11}, ${java.part.openmax}" + includes="${java.part.glx}, ${java.part.gl2es12}, ${java.part.openmax}" excludes="${java.part.gl2es12.dbg}, ${java.part.glugl2}"/> </jar> <jar manifest="${build}/tempversion" destfile="${jogl.gl2es12.win.jar}"> <fileset dir="${classes}" - includes="${java.part.gl2es12.win}, ${java.part.openmax}" + includes="${java.part.wgl}, ${java.part.gl2es12}, ${java.part.openmax}" excludes="${java.part.gl2es12.dbg}, ${java.part.glugl2}"/> </jar> <jar manifest="${build}/tempversion" destfile="${jogl.gl2es12.osx.jar}"> <fileset dir="${classes}" - includes="${java.part.gl2es12.osx}, ${java.part.openmax}" + includes="${java.part.cgl}, ${java.part.gl2es12}, ${java.part.openmax}" excludes="${java.part.gl2es12.dbg}, ${java.part.glugl2}"/> </jar> <jar manifest="${build}/tempversion" destfile="${jogl.gl2es12.dbg.jar}"> <fileset dir="${classes}" includes="${java.part.gl2es12.dbg}"/> </jar> + </target> + + <target name="build-jars-gl2" depends="setup-manifestfile" unless="setup.nogl2"> <jar manifest="${build}/tempversion" destfile="${jogl.gl2.x11.jar}"> <fileset dir="${classes}" - includes="${java.part.gl2.x11}, ${java.part.gl3}, ${java.part.openmax}" + includes="${java.part.glx}, ${java.part.gl2}, ${java.part.gl3}, ${java.part.openmax}" excludes="${java.part.gl2.dbg}, ${java.part.glugl2}"/> </jar> <jar manifest="${build}/tempversion" destfile="${jogl.gl2.win.jar}"> <fileset dir="${classes}" - includes="${java.part.gl2.win}, $${java.part.gl3}, {java.part.openmax}" + includes="${java.part.wgl}, ${java.part.gl2}, $${java.part.gl3}, {java.part.openmax}" excludes="${java.part.gl2.dbg}, ${java.part.glugl2}"/> </jar> <jar manifest="${build}/tempversion" destfile="${jogl.gl2.osx.jar}"> <fileset dir="${classes}" - includes="${java.part.gl2.osx}, $${java.part.gl3}, {java.part.openmax}" + includes="${java.part.cgl}, ${java.part.gl2}, $${java.part.gl3}, {java.part.openmax}" excludes="${java.part.gl2.dbg}, ${java.part.glugl2}"/> </jar> <jar manifest="${build}/tempversion" destfile="${jogl.gl2.dbg.jar}"> <fileset dir="${classes}" includes="${java.part.gl2.dbg}"/> </jar> - <jar manifest="${build}/tempversion" destfile="${jogl.sdk.jar}"> - <fileset dir="${classes}" - includes="${java.part.sdk}"/> - </jar> - <jar manifest="${build}/tempversion" destfile="${jogl.glutess.jar}"> - <fileset dir="${classes}" - includes="${java.part.glutess}"/> - </jar> - <jar manifest="${build}/tempversion" destfile="${jogl.glumipmap.jar}"> - <fileset dir="${classes}" - includes="${java.part.glumipmap}"/> - </jar> <jar manifest="${build}/tempversion" destfile="${jogl.glugl2.jar}"> <fileset dir="${classes}" includes="${java.part.glugl2}"/> </jar> - <jar manifest="${build}/tempversion" destfile="${jogl.awt.jar}"> - <fileset dir="${classes}" - includes="${java.part.awt}" /> - </jar> - <jar manifest="${build}/tempversion" destfile="${jogl.util.jar}"> - <fileset dir="${classes}" - includes="${java.part.util}, ${java.part.util.glsl}" - excludes="${java.part.util.awt}, ${java.part.util.gl2}, ${java.part.gl3}, ${java.part.util.fixedfuncemu}"/> - </jar> <jar manifest="${build}/tempversion" destfile="${jogl.util.gl2.jar}"> <fileset dir="${classes}" includes="${java.part.util.gl2}" excludes="com/sun/opengl/**/awt/**"/> </jar> - <jar manifest="${build}/tempversion" destfile="${jogl.util.awt.jar}"> + </target> + + <target name="build-jars-awt" depends="setup-manifestfile" unless="setup.noAWT"> + <jar manifest="${build}/tempversion" destfile="${jogl.awt.jar}"> <fileset dir="${classes}" - includes="${java.part.util.awt}"/> + includes="${java.part.awt}" /> </jar> - <jar manifest="${build}/tempversion" destfile="${jogl.util.fixedfuncemu.jar}"> + <jar manifest="${build}/tempversion" destfile="${jogl.util.awt.jar}"> <fileset dir="${classes}" - includes="${java.part.util.fixedfuncemu}"/> - <fileset dir="${src.java}" - includes="${java.part.util.fixedfuncemu.shadercode}"/> + includes="${java.part.util.awt}"/> </jar> + </target> + + <target name="build-jars-all" depends="setup-manifestfile" unless="setup.cdcfp"> <jar manifest="${build}/tempversion" destfile="${jogl.all.jar}"> <fileset dir="${classes}"> <include name="javax/media/opengl/**" /> @@ -1826,6 +1843,44 @@ </jar> </target> + <target name="build-jars" depends="setup-manifestfile,build-jars-es1,build-jars-es2,build-jars-gl2es12,build-jars-gl2,build-jars-awt,build-jars-all"> + <jar manifest="${build}/tempversion" destfile="${jogl.core.jar}"> + <fileset dir="${classes}" + includes="${java.part.core}" + excludes="${java.part.core.exclude}"/> + </jar> + <jar manifest="${build}/tempversion" destfile="${jogl.sdk.jar}"> + <fileset dir="${classes}" + includes="${java.part.sdk}"/> + </jar> + <jar manifest="${build}/tempversion" destfile="${jogl.glutess.jar}"> + <fileset dir="${classes}" + includes="${java.part.glutess}"/> + </jar> + <jar manifest="${build}/tempversion" destfile="${jogl.glumipmap.jar}"> + <fileset dir="${classes}" + includes="${java.part.glumipmap}"/> + </jar> + <jar manifest="${build}/tempversion" destfile="${jogl.util.jar}"> + <fileset dir="${classes}" + includes="${java.part.util} ${java.part.util.glsl}" + excludes="${java.part.util.awt} ${java.part.util.gl2} ${java.part.util.fixedfuncemu}"/> + </jar> + <jar manifest="${build}/tempversion" destfile="${jogl.util.fixedfuncemu.jar}"> + <fileset dir="${classes}" + includes="${java.part.util.fixedfuncemu}"/> + <fileset dir="${src.java}" + includes="${java.part.util.fixedfuncemu.shadercode}"/> + </jar> + <jar manifest="${build}/tempversion" destfile="${jogl.cdcfp.jar}"> + <fileset dir="${classes}" + includes="${java.part.core} ${java.part.egl} ${java.part.glutess} ${java.part.glumipmap} ${java.part.openmax} ${java.part.sdk} ${java.part.glx} ${java.part.cgl} ${java.part.gl2es12} ${java.part.wgl} ${java.part.gl2es12.dbg} ${java.part.es1} ${java.part.es1.dbg} ${java.part.es2} ${java.part.es2.dbg} ${java.part.util} ${java.part.util.glsl} ${java.part.util.fixedfuncemu}" + excludes="${java.excludes.fixme} ${java.part.nv-cg} ${java.part.gl2} ${java.part.gl2.dbg} ${java.part.gl3} ${java.part.gl3.dbg} ${java.part.awt} ${java.part.glugl2} ${java.part.util.awt} ${java.part.util.gl2} ${java.excludes.cdcfp}"/> + <fileset dir="${src.java}" + includes="${java.part.util.fixedfuncemu.shadercode}"/> + </jar> + </target> + <!-- ================================================================== --> <!-- - Build the Javadocs for the sources. diff --git a/make/build-nativewindow.xml b/make/build-nativewindow.xml index 1326d8c8b..53f91f6f0 100644 --- a/make/build-nativewindow.xml +++ b/make/build-nativewindow.xml @@ -131,6 +131,14 @@ <!-- condition excludes --> + <condition property="isCDCFP"> + <isset property="setup.cdcfp"/> + </condition> + + <condition property="setup.noAWT"> + <isset property="setup.cdcfp"/> + </condition> + <condition property="java.excludes.awt" value="${java.part.awt}"> <isset property="setup.noAWT"/> @@ -276,8 +284,8 @@ <!-- The resulting nativewindow.jar. --> <property name="nativewindow.core.jar" value="${build}/nativewindow.core.jar" /> - <property name="nativewindow.awt.jar" value="${build}/nativewindow.awt.jar" /> - <property name="nativewindow.all.jar" value="${build}/nativewindow.all.jar" /> + <property name="nativewindow.awt.jar" value="${build}/nativewindow.awt.jar" /> + <property name="nativewindow.all.jar" value="${build}/nativewindow.all.jar" /> <!-- The javadoc dirs. --> <property name="javadoc" value="${project.root}/javadoc_nativewindow_public" /> @@ -747,7 +755,7 @@ </sequential> </macrodef> - <target name="c.fixup.jawt.version.macosx" if="isOSX"> + <target name="c.fixup.jawt.version.macosx" if="isOSX" unless="setup.noAWT"> <!-- Edit the link to the JAWT version in the resulting jnilib file; this isn't strictly needed but seems to allow the universal binaries to work on 10.3 machines as well, which @@ -768,7 +776,7 @@ linker.cfg.id="${linker.cfg.id.oswin}"/> </target> - <target name="c.build.nativewindow.awt"> + <target name="c.build.nativewindow.awt" unless="setup.noAWT"> <c.build c.compiler.src.files="c.src.files.awt" c.compiler.use-jawt="true" output.lib.name="nativewindow_awt" @@ -809,17 +817,14 @@ <target name="jar" depends="java.compile,build-jars"/> <target name="setup-manifestfile"> - <condition property="manifestfile" value="nativewindowRIversion"> - <isset property="nativewindow.ri" /> - </condition> - <condition property="manifestfile" value="nativewindowversion"> - <not> + <condition property="manifestfile" value="nativewindowRIversion"> <isset property="nativewindow.ri" /> - </not> - </condition> - </target> - - <target name="build-jars" depends="setup-manifestfile"> + </condition> + <condition property="manifestfile" value="nativewindowversion"> + <not> + <isset property="nativewindow.ri" /> + </not> + </condition> <tstamp> <format property="timestamp" pattern="yyyyMMdd-HH:mm:ss"/> </tstamp> @@ -831,16 +836,17 @@ <filter token="BASEVERSION" value="${nativewindow_base_version}"/> </filterset> </copy> + </target> - <jar manifest="tempversion" destfile="${nativewindow.core.jar}"> - <fileset dir="${classes}" - includes="${java.part.core}" - excludes="${java.part.awt}"/> - </jar> + <target name="build-jars-awt" depends="setup-manifestfile" unless="setup.noAWT"> <jar manifest="tempversion" destfile="${nativewindow.awt.jar}"> <fileset dir="${classes}" - includes="${java.part.awt}"/> + includes="${java.part.awt}" + excludes="${java.excludes.awt}"/> </jar> + </target> + + <target name="build-jars-all" depends="setup-manifestfile" unless="setup.cdcfp"> <jar manifest="tempversion" destfile="${nativewindow.all.jar}"> <fileset dir="${classes}"> <include name="javax/media/nativewindow/**" /> @@ -848,6 +854,14 @@ <include name="com/sun/gluegen/runtime/**" /> </fileset> </jar> + </target> + + <target name="build-jars" depends="setup-manifestfile,build-jars-awt,build-jars-all"> + <jar manifest="tempversion" destfile="${nativewindow.core.jar}"> + <fileset dir="${classes}" + includes="${java.part.core}" + excludes="${java.part.awt}"/> + </jar> <delete file="tempversion"/> </target> diff --git a/make/build-newt.xml b/make/build-newt.xml index da314090e..6d32b33d5 100644 --- a/make/build-newt.xml +++ b/make/build-newt.xml @@ -73,12 +73,12 @@ --> <target name="base.init"> - <condition property="setup.noAWT"> - <isset property="setup.cdcfp"/> - </condition> <condition property="isCDCFP"> <isset property="setup.cdcfp"/> </condition> + <condition property="setup.noAWT"> + <isset property="setup.cdcfp"/> + </condition> <condition property="javac.bootclasspath.jar" value="../../gluegen/make/lib/cdc_fp.jar"> <isset property="setup.cdcfp"/> @@ -179,8 +179,10 @@ <property name="rootrel.obj" value="${rootrel.build.newt}/obj" /> <property name="gluegen-rt.jar" value="../../gluegen/${rootrel.build}/gluegen-rt.jar" /> - <property name="nativewindow.all.jar" value="../${rootrel.build}/nativewindow/nativewindow.all.jar" /> - <property name="jogl.all.jar" value="../${rootrel.build}/jogl/jogl.all.jar" /> + <property name="nativewindow.core.jar" value="../${rootrel.build}/nativewindow/nativewindow.core.jar" /> + <property name="nativewindow.awt.jar" value="../${rootrel.build}/nativewindow/nativewindow.awt.jar" /> + <property name="jogl.core.jar" value="../${rootrel.build}/jogl/jogl.core.jar" /> + <property name="jogl.egl.jar" value="../${rootrel.build}/jogl/jogl.egl.jar" /> <!-- The source directories. --> <property name="src.java" value="${project.root}/${rootrel.src.java}" /> @@ -196,9 +198,11 @@ <property name="obj" value="${project.root}/${rootrel.obj}" /> <path id="nativewindow_gluegen_jogl.classpath"> - <pathelement location="${nativewindow.all.jar}" /> + <pathelement location="${nativewindow.core.jar}" /> + <pathelement location="${nativewindow.awt.jar}" /> <pathelement location="${gluegen-rt.jar}" /> - <pathelement location="${jogl.all.jar}" /> + <pathelement location="${jogl.core.jar}" /> + <pathelement location="${jogl.egl.jar}" /> </path> <!-- The resulting newt.jar. --> @@ -206,6 +210,7 @@ <property name="newt.ogl.jar" value="${build}/newt.ogl.jar" /> <property name="newt.awt.jar" value="${build}/newt.awt.jar" /> <property name="newt.all.jar" value="${build}/newt.all.jar" /> + <property name="newt.cdcfp.jar" value="${build}/newt.cdcfp.jar" /> <!-- The javadoc dirs. --> <property name="javadoc" value="${project.root}/javadoc_newt_public" /> @@ -509,10 +514,10 @@ </macrodef> <target name="c.build.newt.prepare"> - <javah destdir="../${rootrel.build.newt}/gensrc/native/newt/Windows" classpath="${newt.all.jar}" class="com.sun.javafx.newt.windows.WindowsWindow" /> - <javah destdir="../${rootrel.build.newt}/gensrc/native/newt/MacOSX" classpath="${newt.all.jar}" class="com.sun.javafx.newt.macosx.MacWindow" /> - <javah destdir="../${rootrel.build.newt}/gensrc/native/newt/X11" classpath="${newt.all.jar}" class="com.sun.javafx.newt.x11.X11Window" /> - <javah destdir="../${rootrel.build.newt}/gensrc/native/newt/KD" classpath="${newt.all.jar}" class="com.sun.javafx.newt.opengl.kd.KDWindow" /> + <javah destdir="../${rootrel.build.newt}/gensrc/native/newt/Windows" classpath="${newt.cdcfp.jar}" class="com.sun.javafx.newt.windows.WindowsWindow" /> + <javah destdir="../${rootrel.build.newt}/gensrc/native/newt/MacOSX" classpath="${newt.cdcfp.jar}" class="com.sun.javafx.newt.macosx.MacWindow" /> + <javah destdir="../${rootrel.build.newt}/gensrc/native/newt/X11" classpath="${newt.cdcfp.jar}" class="com.sun.javafx.newt.x11.X11Window" /> + <javah destdir="../${rootrel.build.newt}/gensrc/native/newt/KD" classpath="${newt.cdcfp.jar}" class="com.sun.javafx.newt.opengl.kd.KDWindow" /> </target> <target name="c.build.newt.windowlib"> @@ -544,17 +549,14 @@ <target name="jar" depends="java.compile,build-jars"/> <target name="setup-manifestfile"> - <condition property="manifestfile" value="newtRIversion"> - <isset property="newt.ri" /> - </condition> - <condition property="manifestfile" value="newtversion"> - <not> + <condition property="manifestfile" value="newtRIversion"> <isset property="newt.ri" /> - </not> - </condition> - </target> - - <target name="build-jars" depends="setup-manifestfile"> + </condition> + <condition property="manifestfile" value="newtversion"> + <not> + <isset property="newt.ri" /> + </not> + </condition> <tstamp> <format property="timestamp" pattern="yyyyMMdd-HH:mm:ss"/> </tstamp> @@ -567,22 +569,37 @@ </filterset> </copy> - <jar manifest="tempversion" destfile="${newt.core.jar}"> + </target> + + <target name="build-jars-awt" depends="setup-manifestfile" unless="setup.noAWT"> + <jar manifest="tempversion" destfile="${newt.awt.jar}"> <fileset dir="${classes}" - includes="${java.part.core}"/> + includes="${java.part.awt}"/> </jar> + </target> + + <target name="build-jars-opengl" depends="setup-manifestfile" unless="setup.noOpenGL"> <jar manifest="tempversion" destfile="${newt.ogl.jar}"> <fileset dir="${classes}" - includes="${java.part.core}, ${java.part.opengl}"/> + includes="${java.part.opengl}"/> </jar> - <jar manifest="tempversion" destfile="${newt.awt.jar}"> + </target> + + <target name="build-jars-all" depends="setup-manifestfile" unless="setup.cdcfp"> + <jar manifest="tempversion" destfile="${newt.all.jar}"> <fileset dir="${classes}" - includes="${java.part.awt}"/> + includes="com/sun/javafx/newt/**" /> </jar> - <jar manifest="tempversion" destfile="${newt.all.jar}"> - <fileset dir="${classes}"> - <include name="com/sun/javafx/newt/**" /> - </fileset> + </target> + + <target name="build-jars" depends="setup-manifestfile,build-jars-awt,build-jars-opengl,build-jars-all"> + <jar manifest="tempversion" destfile="${newt.core.jar}"> + <fileset dir="${classes}" + includes="${java.part.core}"/> + </jar> + <jar manifest="tempversion" destfile="${newt.cdcfp.jar}"> + <fileset dir="${classes}" + includes="${java.part.core} ${java.part.opengl}"/> </jar> <delete file="tempversion"/> diff --git a/make/config/jogl/gl-gl2es12.cfg b/make/config/jogl/gl-gl2es12.cfg index b46bc99ab..d304cdd69 100644 --- a/make/config/jogl/gl-gl2es12.cfg +++ b/make/config/jogl/gl-gl2es12.cfg @@ -2,13 +2,13 @@ JavaOutputDir gensrc/classes NativeOutputDir gensrc/native/jogl/gl2es12 -ExtendedInterfaceSymbols ../build-temp/gensrc/classes/javax/media/opengl/GL.java -ExtendedInterfaceSymbols ../build-temp/gensrc/classes/javax/media/opengl/GL2ES1.java -ExtendedInterfaceSymbols ../build-temp/gensrc/classes/javax/media/opengl/GL2ES2.java -ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/GLBase.java -ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/fixedfunc/GLMatrixFunc.java -ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/fixedfunc/GLPointerFunc.java -ExtendedInterfaceSymbols ../src/jogl/classes/javax/media/opengl/fixedfunc/GLLightingFunc.java +ExtendedInterfaceSymbolsOnly ../build-temp/gensrc/classes/javax/media/opengl/GL.java +ExtendedInterfaceSymbolsOnly ../build-temp/gensrc/classes/javax/media/opengl/GL2ES1.java +ExtendedInterfaceSymbolsOnly ../build-temp/gensrc/classes/javax/media/opengl/GL2ES2.java +ExtendedInterfaceSymbolsOnly ../src/jogl/classes/javax/media/opengl/GLBase.java +ExtendedInterfaceSymbolsOnly ../src/jogl/classes/javax/media/opengl/fixedfunc/GLMatrixFunc.java +ExtendedInterfaceSymbolsOnly ../src/jogl/classes/javax/media/opengl/fixedfunc/GLPointerFunc.java +ExtendedInterfaceSymbolsOnly ../src/jogl/classes/javax/media/opengl/fixedfunc/GLLightingFunc.java Style ImplOnly ImplPackage com.sun.opengl.impl.gl2es12 @@ -27,6 +27,11 @@ Include gl-desktop.cfg # proc address table entry for it. Force it to here. ForceProcAddressGen glMapBuffer +# Force all of the methods to be emitted using dynamic linking so we +# don't need to link against any emulation library on the desktop or +# depend on the presence of an import library for a particular device +ForceProcAddressGen __ALL__ + EmitProcAddressTable true ProcAddressTableClassName GL2ES12ProcAddressTable GetProcAddressTableExpr ((GL2ES12ProcAddressTable)_context.getGLProcAddressTable()) diff --git a/make/config/jogl/glx-CustomJavaCode.java b/make/config/jogl/glx-CustomJavaCode.java index f59e71e41..25a6156b7 100644 --- a/make/config/jogl/glx-CustomJavaCode.java +++ b/make/config/jogl/glx-CustomJavaCode.java @@ -13,7 +13,7 @@ /** Interface to C language function: <br> - Alias for: <br> <code> GLXFBConfig * glXChooseFBConfigSGIX, glXChooseFBConfig(Display * dpy, int screen, const int * attribList, int * nitems); </code> */ - public static java.nio.LongBuffer glXChooseFBConfigCopied(long dpy, int screen, int[] attribList, int attribList_offset, int[] nitems, int nitems_offset) + public static com.sun.gluegen.runtime.PointerBuffer glXChooseFBConfigCopied(long dpy, int screen, int[] attribList, int attribList_offset, int[] nitems, int nitems_offset) { if(attribList != null && attribList.length <= attribList_offset) throw new GLException("array offset argument \"attribList_offset\" (" + attribList_offset + ") equals or exceeds array length (" + attribList.length + ")"); @@ -23,7 +23,7 @@ _res = glXChooseFBConfigCopied1(dpy, screen, attribList, BufferFactory.SIZEOF_INT * attribList_offset, nitems, BufferFactory.SIZEOF_INT * nitems_offset); if (_res == null) return null; - return BufferFactory.asPointerBuffer(_res); + return PointerBuffer.wrapNative2Java(_res, false); } /** Entry point to C language function: - Alias for: <br> <code> GLXFBConfig * glXChooseFBConfigSGIX, glXChooseFBConfig(Display * dpy, int screen, const int * attribList, int * nitems); </code> */ diff --git a/make/config/jogl/glx-x11.cfg b/make/config/jogl/glx-x11.cfg index 5511b339e..3ef151c44 100644 --- a/make/config/jogl/glx-x11.cfg +++ b/make/config/jogl/glx-x11.cfg @@ -81,3 +81,4 @@ Ignore GLXHyperpipeNetworkSGIX Ignore GLXHyperpipeConfigSGIX Ignore GLXPipeRect Ignore GLXPipeRectLimits + diff --git a/make/config/jogl/glxext.cfg b/make/config/jogl/glxext.cfg index b1b8fe65a..9688a9436 100755 --- a/make/config/jogl/glxext.cfg +++ b/make/config/jogl/glxext.cfg @@ -130,3 +130,4 @@ Ignore GLXHyperpipeNetworkSGIX Ignore GLXHyperpipeConfigSGIX Ignore GLXPipeRect Ignore GLXPipeRectLimits + diff --git a/make/make.jogl.cdcfp.linux-x86.sh b/make/make.jogl.cdcfp.linux-x86.sh index 86fc2cc8b..9a74fd10d 100644 --- a/make/make.jogl.cdcfp.linux-x86.sh +++ b/make/make.jogl.cdcfp.linux-x86.sh @@ -15,7 +15,7 @@ fi ant -v \ -Dbuild.noarchives=true \ -Drootrel.build=build-cdcfp-x86 \ - -Djogl.cdcfp=true \ + -Dsetup.cdcfp=true \ -Dgluegen.cpptasks.detected.os=true \ -DisUnix=true \ -DisLinux=true \ diff --git a/make/make.jogl.cdcfp.macosx.sh b/make/make.jogl.cdcfp.macosx.sh new file mode 100644 index 000000000..f9f79500e --- /dev/null +++ b/make/make.jogl.cdcfp.macosx.sh @@ -0,0 +1,15 @@ +#! /bin/sh + +if [ -e /devtools/etc/profile.ant ] ; then + . /devtools/etc/profile.ant +fi + + +# -Dc.compiler.debug=true +# -Dbuild.noarchives=true + +ant \ + -Dbuild.noarchives=true \ + -Dsetup.cdcfp=true \ + -Drootrel.build=build-cdcfp-macosx \ + $* 2>&1 | tee make.jogl.cdcfp.macosx.log diff --git a/make/stub_includes/opengl/gl2es12.c b/make/stub_includes/opengl/gl2es12.c new file mode 100644 index 000000000..75cb4acfc --- /dev/null +++ b/make/stub_includes/opengl/gl2es12.c @@ -0,0 +1,13 @@ +#define GLAPI + +// Define GL_GLEXT_PROTOTYPES so that the OpenGL extension prototypes in +// "glext.h" are parsed. +#define GL_GLEXT_PROTOTYPES + +#include <GL/gl.h> + +// removed due to renaming and the fact that the renamed version is not included +// in the super interfaces .. +GLAPI void APIENTRY glWeightPointer (GLint, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glMatrixIndexPointer (GLint, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCurrentPaletteMatrix (GLint); diff --git a/src/jogl/classes/com/sun/opengl/impl/InternalBufferUtil.java.javame_cdc_fp b/src/jogl/classes/com/sun/opengl/impl/InternalBufferUtil.java.javame_cdc_fp index 2614e52d4..32c3cd70c 100644 --- a/src/jogl/classes/com/sun/opengl/impl/InternalBufferUtil.java.javame_cdc_fp +++ b/src/jogl/classes/com/sun/opengl/impl/InternalBufferUtil.java.javame_cdc_fp @@ -65,11 +65,69 @@ public class InternalBufferUtil { return bb.asIntBuffer(); } + /** Allocates a new direct ShortBuffer with the specified number of + elements. The returned buffer will have its byte order set to + the host platform's native byte order. */ + public static ShortBuffer newShortBuffer(int numElements) { + ByteBuffer bb = newByteBuffer(numElements * SIZEOF_SHORT); + return bb.asShortBuffer(); + } + + /** Allocates a new direct FloatBuffer with the specified number of + elements. The returned buffer will have its byte order set to + the host platform's native byte order. */ + public static FloatBuffer newFloatBuffer(int numElements) { + ByteBuffer bb = newByteBuffer(numElements * SIZEOF_FLOAT); + return bb.asFloatBuffer(); + } + //---------------------------------------------------------------------- // Copy routines (type-to-type) // /** Copies the <i>remaining</i> elements (as defined by + <code>limit() - position()</code>) in the passed FloatBuffer + into a newly-allocated direct ByteBuffer. The returned buffer + will have its byte order set to the host platform's native byte + order. The position of the newly-allocated buffer will be zero, + and the position of the passed buffer is unchanged (though its + mark is changed). */ + public static ByteBuffer copyFloatBufferAsByteBuffer(FloatBuffer orig) { + ByteBuffer dest = newByteBuffer(orig.remaining() * SIZEOF_FLOAT); + dest.asFloatBuffer().put(orig); + dest.rewind(); + return dest; + } + + /** Copies the <i>remaining</i> elements (as defined by + <code>limit() - position()</code>) in the passed IntBuffer into + a newly-allocated direct ByteBuffer. The returned buffer will + have its byte order set to the host platform's native byte + order. The position of the newly-allocated buffer will be zero, + and the position of the passed buffer is unchanged (though its + mark is changed). */ + public static ByteBuffer copyIntBufferAsByteBuffer(IntBuffer orig) { + ByteBuffer dest = newByteBuffer(orig.remaining() * SIZEOF_INT); + dest.asIntBuffer().put(orig); + dest.rewind(); + return dest; + } + + /** Copies the <i>remaining</i> elements (as defined by + <code>limit() - position()</code>) in the passed ShortBuffer + into a newly-allocated direct ByteBuffer. The returned buffer + will have its byte order set to the host platform's native byte + order. The position of the newly-allocated buffer will be zero, + and the position of the passed buffer is unchanged (though its + mark is changed). */ + public static ByteBuffer copyShortBufferAsByteBuffer(ShortBuffer orig) { + ByteBuffer dest = newByteBuffer(orig.remaining() * SIZEOF_SHORT); + dest.asShortBuffer().put(orig); + dest.rewind(); + return dest; + } + + /** Copies the <i>remaining</i> elements (as defined by <code>limit() - position()</code>) in the passed ByteBuffer into a newly-allocated direct ByteBuffer. The returned buffer will have its byte order set to the host platform's native byte diff --git a/src/jogl/classes/com/sun/opengl/impl/InternalBufferUtil.java.javase b/src/jogl/classes/com/sun/opengl/impl/InternalBufferUtil.java.javase index f9f443e13..59d44f04d 100644 --- a/src/jogl/classes/com/sun/opengl/impl/InternalBufferUtil.java.javase +++ b/src/jogl/classes/com/sun/opengl/impl/InternalBufferUtil.java.javase @@ -75,6 +75,14 @@ public class InternalBufferUtil { return bb.asIntBuffer(); } + /** Allocates a new direct ShortBuffer with the specified number of + elements. The returned buffer will have its byte order set to + the host platform's native byte order. */ + public static ShortBuffer newShortBuffer(int numElements) { + ByteBuffer bb = newByteBuffer(numElements * SIZEOF_SHORT); + return bb.asShortBuffer(); + } + /** Allocates a new direct FloatBuffer with the specified number of elements. The returned buffer will have its byte order set to the host platform's native byte order. */ @@ -84,24 +92,6 @@ public class InternalBufferUtil { } //---------------------------------------------------------------------- - // Copy routines (type-to-type) - // - - /** Copies the <i>remaining</i> elements (as defined by - <code>limit() - position()</code>) in the passed ByteBuffer into - a newly-allocated direct ByteBuffer. The returned buffer will - have its byte order set to the host platform's native byte - order. The position of the newly-allocated buffer will be zero, - and the position of the passed buffer is unchanged (though its - mark is changed). */ - public static ByteBuffer copyByteBuffer(ByteBuffer orig) { - ByteBuffer dest = newByteBuffer(orig.remaining()); - dest.put(orig); - dest.rewind(); - return dest; - } - - //---------------------------------------------------------------------- // Copy routines (type-to-ByteBuffer) // @@ -147,6 +137,20 @@ public class InternalBufferUtil { return dest; } + /** Copies the <i>remaining</i> elements (as defined by + <code>limit() - position()</code>) in the passed ByteBuffer into + a newly-allocated direct ByteBuffer. The returned buffer will + have its byte order set to the host platform's native byte + order. The position of the newly-allocated buffer will be zero, + and the position of the passed buffer is unchanged (though its + mark is changed). */ + public static ByteBuffer copyByteBuffer(ByteBuffer orig) { + ByteBuffer dest = newByteBuffer(orig.remaining()); + dest.put(orig); + dest.rewind(); + return dest; + } + //---------------------------------------------------------------------- // Conversion routines // diff --git a/src/jogl/classes/com/sun/opengl/impl/egl/EGLOnscreenDrawable.java b/src/jogl/classes/com/sun/opengl/impl/egl/EGLOnscreenDrawable.java index 73dcf526c..c7c2bcab2 100644 --- a/src/jogl/classes/com/sun/opengl/impl/egl/EGLOnscreenDrawable.java +++ b/src/jogl/classes/com/sun/opengl/impl/egl/EGLOnscreenDrawable.java @@ -45,8 +45,6 @@ import javax.media.nativewindow.egl.*; import com.sun.opengl.impl.*; import com.sun.nativewindow.impl.NullWindow; -import java.nio.LongBuffer; - public class EGLOnscreenDrawable extends EGLDrawable { protected EGLOnscreenDrawable(EGLDrawableFactory factory, NativeWindow component) throws GLException { super(factory, component); diff --git a/src/jogl/classes/com/sun/opengl/impl/egl/EGLPbufferDrawable.java b/src/jogl/classes/com/sun/opengl/impl/egl/EGLPbufferDrawable.java index 0ab1838b2..bcf3294c1 100644 --- a/src/jogl/classes/com/sun/opengl/impl/egl/EGLPbufferDrawable.java +++ b/src/jogl/classes/com/sun/opengl/impl/egl/EGLPbufferDrawable.java @@ -45,8 +45,6 @@ import javax.media.nativewindow.egl.*; import com.sun.opengl.impl.*; import com.sun.nativewindow.impl.NullWindow; -import java.nio.LongBuffer; - public class EGLPbufferDrawable extends EGLDrawable { private int width, height; private int texFormat; diff --git a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLDrawableFactory.java b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLDrawableFactory.java index d15ba3423..1c5c54b14 100644 --- a/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLDrawableFactory.java +++ b/src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLDrawableFactory.java @@ -275,7 +275,7 @@ public class WindowsWGLDrawableFactory extends GLDrawableFactoryImpl implements } protected Buffer getGammaRamp() { - ShortBuffer rampData = ShortBuffer.allocate(3 * GAMMA_RAMP_LENGTH); + ShortBuffer rampData = ShortBuffer.wrap(new short[3 * GAMMA_RAMP_LENGTH]); long screenDC = WGL.GetDC(0); boolean res = WGL.GetDeviceGammaRamp(screenDC, rampData); WGL.ReleaseDC(0, screenDC); diff --git a/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11ExternalGLXDrawable.java b/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11ExternalGLXDrawable.java index 7f65c0d89..9a5e42382 100755 --- a/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11ExternalGLXDrawable.java +++ b/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11ExternalGLXDrawable.java @@ -45,7 +45,7 @@ import com.sun.opengl.impl.*; import com.sun.nativewindow.impl.NullWindow; import com.sun.nativewindow.impl.x11.*; -import java.nio.LongBuffer; +import com.sun.gluegen.runtime.PointerBuffer; public class X11ExternalGLXDrawable extends X11GLXDrawable { private int fbConfigID; @@ -193,7 +193,7 @@ public class X11ExternalGLXDrawable extends X11GLXDrawable { }; float[] fattributes = new float[0]; int[] nelementsTmp = new int[1]; - LongBuffer fbConfigs = GLX.glXChooseFBConfigCopied(display, screen, iattributes, 0, nelementsTmp, 0); + PointerBuffer fbConfigs = GLX.glXChooseFBConfigCopied(display, screen, iattributes, 0, nelementsTmp, 0); int nelements = nelementsTmp[0]; if (nelements <= 0) { throw new GLException("context creation error: couldn't find a suitable frame buffer configuration"); diff --git a/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXDrawableFactory.java b/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXDrawableFactory.java index 08e8b2b2f..de211af79 100644 --- a/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXDrawableFactory.java +++ b/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXDrawableFactory.java @@ -49,7 +49,6 @@ import com.sun.opengl.impl.x11.glx.*; import com.sun.nativewindow.impl.NullWindow; import com.sun.nativewindow.impl.NWReflection; import com.sun.nativewindow.impl.x11.*; -import com.sun.nativewindow.impl.jawt.x11.*; public class X11GLXDrawableFactory extends GLDrawableFactoryImpl implements DynamicLookupHelper { public X11GLXDrawableFactory() { @@ -229,7 +228,7 @@ public class X11GLXDrawableFactory extends GLDrawableFactoryImpl implements Dyna protected Buffer getGammaRamp() { int size = getGammaRampLength(); - ShortBuffer rampData = ShortBuffer.allocate(3 * size); + ShortBuffer rampData = ShortBuffer.wrap(new short[3 * size]); rampData.position(0); rampData.limit(size); ShortBuffer redRampData = rampData.slice(); diff --git a/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXGraphicsConfigurationFactory.java b/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXGraphicsConfigurationFactory.java index 9acf580c4..0fcb9b3ff 100644 --- a/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXGraphicsConfigurationFactory.java +++ b/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXGraphicsConfigurationFactory.java @@ -41,6 +41,8 @@ import javax.media.opengl.*; import com.sun.opengl.impl.*; import com.sun.opengl.impl.x11.glx.*; +import com.sun.gluegen.runtime.PointerBuffer; + /** Subclass of GraphicsConfigurationFactory used when non-AWT tookits are used on X11 platforms. Toolkits will likely need to delegate to this one to change the accepted and returned types of the @@ -89,7 +91,7 @@ public class X11GLXGraphicsConfigurationFactory extends GraphicsConfigurationFac int[] attribs = X11GLXGraphicsConfiguration.GLCapabilities2AttribList(caps, true, isMultisampleAvailable, usePBuffer, 0, 0); int[] count = { -1 }; - java.nio.LongBuffer fbcfgsL = GLX.glXChooseFBConfigCopied(display, screen, attribs, 0, count, 0); + PointerBuffer fbcfgsL = GLX.glXChooseFBConfigCopied(display, screen, attribs, 0, count, 0); if (fbcfgsL == null || fbcfgsL.limit()<1) { throw new Exception("Could not fetch FBConfig for "+caps); } @@ -166,7 +168,7 @@ public class X11GLXGraphicsConfigurationFactory extends GraphicsConfigurationFac boolean usePBuffer) { int recommendedIndex = -1; GLCapabilities[] caps = null; - java.nio.LongBuffer fbcfgsL = null; + PointerBuffer fbcfgsL = null; int chosen=-1; int retFBID=-1; XVisualInfo retXVisualInfo = null; diff --git a/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11PbufferGLXDrawable.java b/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11PbufferGLXDrawable.java index 1aafe89c8..753e9d884 100644 --- a/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11PbufferGLXDrawable.java +++ b/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11PbufferGLXDrawable.java @@ -46,8 +46,6 @@ import com.sun.opengl.impl.x11.glx.*; import com.sun.nativewindow.impl.NullWindow; import com.sun.nativewindow.impl.x11.*; -import java.nio.LongBuffer; - public class X11PbufferGLXDrawable extends X11GLXDrawable { protected X11PbufferGLXDrawable(GLDrawableFactory factory, AbstractGraphicsScreen screen, GLCapabilities caps, diff --git a/src/jogl/classes/com/sun/opengl/util/texture/spi/DDSImage.java.javame_cdc_fp b/src/jogl/classes/com/sun/opengl/util/texture/spi/DDSImage.java.javame_cdc_fp index eadae84f8..ce3d97733 100755 --- a/src/jogl/classes/com/sun/opengl/util/texture/spi/DDSImage.java.javame_cdc_fp +++ b/src/jogl/classes/com/sun/opengl/util/texture/spi/DDSImage.java.javame_cdc_fp @@ -43,8 +43,7 @@ import java.io.*; import java.nio.*; import javax.media.opengl.*; -import javax.media.opengl.util.*; -import com.sun.opengl.impl.io.*; +import com.sun.opengl.util.*; import com.sun.opengl.util.texture.*; /** A reader and writer for DirectDraw Surface (.dds) files, which are diff --git a/src/jogl/classes/javax/media/opengl/GLDrawableFactory.java b/src/jogl/classes/javax/media/opengl/GLDrawableFactory.java index d95d6d492..cee721fa6 100644 --- a/src/jogl/classes/javax/media/opengl/GLDrawableFactory.java +++ b/src/jogl/classes/javax/media/opengl/GLDrawableFactory.java @@ -88,6 +88,8 @@ public abstract class GLDrawableFactory { private static final GLDrawableFactory eglFactory; private static final GLDrawableFactory nativeOSFactory; private static final String nativeOSType; + static final String macosxFactoryClassNameCGL = "com.sun.opengl.impl.macosx.cgl.MacOSXCGLDrawableFactory"; + static final String macosxFactoryClassNameAWTCGL = "com.sun.opengl.impl.macosx.cgl.awt.MacOSXAWTCGLDrawableFactory"; /** * Instantiate singleton factories if available, EGLES1, EGLES2 and the OS native ones. @@ -118,8 +120,11 @@ public abstract class GLDrawableFactory { } else if ( nativeOSType.equals(NativeWindowFactory.TYPE_WINDOWS) ) { factoryClassName = "com.sun.opengl.impl.windows.wgl.WindowsWGLDrawableFactory"; } else if ( nativeOSType.equals(NativeWindowFactory.TYPE_MACOSX) ) { - // FIXME: remove this residual dependence on the AWT - factoryClassName = "com.sun.opengl.impl.macosx.cgl.awt.MacOSXAWTCGLDrawableFactory"; + if(NWReflection.isClassAvailable(macosxFactoryClassNameAWTCGL)) { + factoryClassName = macosxFactoryClassNameAWTCGL; + } else { + factoryClassName = macosxFactoryClassNameCGL; + } } else { throw new GLException("Unsupported NativeWindow type: "+nativeOSType); } |