aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix Long*HashMap impl. of IntIntHashMap: Better 64bit hash value, using new ↵Sven Gothel2013-03-124-15/+88
| | | | | | HashUtil. Introduce markup: /*keyHash*/(.*)/*keyHash*/ allowing Long*HashMap to inject hash function for 64bit value.
* Unit Tests: OSX/Java7 w/o 32bit tests ; Reliable Test1p*JavaEmitter JNI ↵Sven Gothel2013-02-284-14/+16
| | | | | | | | | | | | | | binding initialization - OSX/Java7 w/o 32bit tests OSX/Java7 has no 32bit JVM, disable d32 tests for such, using property 'use.macosx32' - Reliable Test1p*JavaEmitter JNI binding initialization Load libs and init JNI binding statically w/ @BeforeClass, since OSX/Java7 for some reason gets confused (?) w/ init sequence. This is no issue for JOGL etc .. as far we have observed.
* Promote AWTEDTExecutor to public package com.jogamp.common.util.awt ; ↵Sven Gothel2013-02-283-3/+5
| | | | Exclude java.part.awt in android gluegen-rt.
* Minor edits to JarUtil.Resolver functionality: Exception types, avoiding ↵Sven Gothel2013-02-211-21/+40
| | | | duplicate processing of strings etc.
* Merge remote-tracking branch 'wwalker/bug_687_jar_resolver'Sven Gothel2013-02-212-1/+122
|\
| * Add security checks to resolver methods.Wade Walker2013-02-171-4/+26
| |
| * Make JarUtil work with custom classloadersWade Walker2013-02-112-1/+100
| | | | | | | | | | | | | | | | Added the ability for users to set a "resolver" in JarUtil that lets it find resources that are loaded by a custom classloader. This is needed in OSGi apps (like Eclipse RCP apps), since OSGi resources do not have simple jar: URLs (they use a custom protocol called bundleresource:).
* | Only evn. JUNIT_DISABLED==true -> junit.is.disabled:=trueSven Gothel2013-02-191-4/+3
| |
* | Add property 'jvmJava.exe' -> ${java.home}/bin/java, default jvm for unit ↵Sven Gothel2013-02-171-0/+11
| | | | | | | | tests; Add optional property 'jvmJava7.exe' for Java7 unit tests.
* | OSX/Java7 darwin/jawt_md.h Workaround ; Disable OSX/i386 if compiled w/ ↵Sven Gothel2013-02-174-4/+137
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Java7 [1.7 - 2.0]; Valid Java range [1.6 - 2.0]. - OSX/Java7 darwin/jawt_md.h Workaround Include JOGL's JNI MacOSX platform headers, since Oracle's Java7 darwin/jawt_md.h has X11 dependencies and does not define JAWT_SurfaceLayers. - Disable OSX/i386 if compiled w/ Java7 [1.7 - 2.0] Set macosx32 depending on 'ant.java.version' - Valid Java range [1.6 - 2.0] Foresee new Java versions 1.9 and 2.0 :)
* | OSX Java6/Java7: Adapt to used JDK (Apple's Java6 or Oracle's Java7)Sven Gothel2013-02-173-29/+65
| | | | | | | | | | | | | | | | | | | | | | | | - Pick-up OSX Java7 locations if setup via ${java.home} and files available - host.rt.jar, target.rt.jar - java.home.dir - java.includes.dir - java.includes.dir.platform - java.lib.dir.platform - Remove 'very old' Java4/5 OSX locations - Remove java.osx.frameworks.dir, since JavaNativeFoundation.h dependencies are removed
* | Fix FunctionTask's run()/eval(..) return value assignment: Ensure it's done ↵Sven Gothel2013-02-143-34/+38
| | | | | | | | | | | | before syncObject.notifyAll() ; Make methods final Fixes commit b387d012103a02eb7d5eb919306583295ef09a38.
* | Adding Function and FunctionTask extending RunnableTask functionalitySven Gothel2013-02-134-118/+379
|/ | | | | Function allows passing arguments and having a return value in contrast to Runnable, where FunctionTask allows a Function to be invoked and waited for.
* Bug 681: Add Elf Parsing for other OS than Linux, if ARM and !ANDROID using ↵Sven Gothel2013-02-096-63/+176
| | | | | | | | /proc/self/exe (Linux) or a found java/jvm native lib. - PlatformPropsImpl.queryABITypeImpl: Check Elf Header for ARM + !ANDROID (i.e. add other OS than Linux, use native java/jmv lib) - NativeLibrary.enumerateLibraryPaths: Add 'sun.boot.library.path' to enumeration! - TestElfReader01: Add test for finding java/jvm native lib and parse it
* TestElfReader01.testGNULinuxSelfExe: Restrict to LINUXSven Gothel2013-02-081-1/+4
|
* Bug 681: Use ELF Header + ARM EABI Section Parsing in PlatformPropsImpl to ↵Sven Gothel2013-02-086-52/+146
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to distinguish ARM soft-float/hard-float (part-2) + /** + * Returns the {@link ABIType} of the current platform using given {@link CPUType cpuType} + * and {@link OSType osType} as a hint. + * <p> + * Note the following queries are performed: + * <ul> + * <li> not {@link CPUFamily#ARM} -> {@link ABIType#GENERIC_ABI} </li> + * <li> else + * <ul> + * <li> not {@link OSType#LINUX} -> {@link ABIType#EABI_GNU_ARMEL} </li> + * <li> else + * <ul> + * <li> Elf ARM Tags -> {@link ABIType#EABI_GNU_ARMEL}, {@link ABIType#EABI_GNU_ARMHF} </li> + * </ul></li> + * </ul></li> + * </ul> + * </p> + * <p> + * Elf ARM Tags are read using {@link ElfHeader}, .. and {@link SectionArmAttributes#abiVFPArgsAcceptsVFPVariant(byte)}. + * </p> + * + * @param cpuType + * @param osType + * @return + */ + private static final ABIType queryABITypeImpl(CPUType cpuType, OSType osType) {
* Script: ADB launcher: Use system package, instead of user package (pkg -> ↵Sven Gothel2013-02-081-4/+6
| | | | sys in URI)
* Bug 681: Add Basic ELF Header + ARM EABI Section Parsing, allowing to ↵Sven Gothel2013-02-0822-17/+2644
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | distinguish ARM soft-float/hard-float (part-1) https://jogamp.org/bugzilla/show_bug.cgi?id=681 + * References: + * <ul> + * <li>http://linux.die.net/man/5/elf</li> + * <li>http://www.sco.com/developers/gabi/latest/contents.html</li> + * <li>http://infocenter.arm.com/ + * <ul> + * <li>ARM IHI 0044E, current through ABI release 2.09</li> + * <li>ARM IHI 0045D, current through ABI release 2.09</li> + * </ul></li> Added self contained jogamp.common.os.elf package w/ entry point class ElfHeader to read a RandomAccessFile and parse it as an ELF file. ELF Parsing completness: - Header: OK - SectionHeader: OK - Section Type SHT_ARM_ATTRIBUTES: OK - Will be read into SectionArmAttributes - Used to distinguisgh soft/hard VFP float Tested manually on: - Linux intel 32bit / 64bit, arm soft-float and hard-float
* IOUtil.copyStream2ByteBuffer: Turns out on Android, no -1 (EOS) is returned ↵Sven Gothel2013-02-011-2/+2
| | | | - relax loop-condition (hope thats ok)
* IOUtil.copyStream2ByteBuffer: read while numRead > -1 ; add variant w/ ↵Sven Gothel2013-02-011-4/+19
| | | | initialCapcity
* Android: Cleanup ClassLoaderUtil/LauncherUtil - Using cached parent ↵Sven Gothel2013-01-315-73/+173
| | | | | | | | | | | | | | | | | | | | | ClassLoader for SYS-Packages w/ native libs, and non cached child ClassLoader for USR-Packages Android's Dalvik VM, like a JVM, cannot load a native library from one location by multiple ClassLoader. Since we don't like to hardcode the system-packages, as it was before, i.e. "com.jogamp.common", "javax.media.opengl", we need to either copy the libs or use parenting of cached ClassLoader. The latter is chosen, since it's faster and uses less resources. - System-packages are passed through from the user 'List<String> LauncherUtil.BaseActivityLauncher::getSysPackages()' to the ActivityLauncher, which instantiates the ClassLoader. - No more hard-reference the system-packages in ClassLoaderUtil ("com.jogamp.common", "javax.media.opengl"), just use the new user provided system-packages. - The system-packages denominate a hash-key for caching, a new ClassLoader is created and mapped if it does not yet exist. - A non-chached user-packages ClassLoader is created using the cached system-packages ClassLoader as it's parent.
* Fix comments in gluegen-cpptasks-android* config fileSven Gothel2013-01-312-6/+6
|
* Cleanup GlueGen config 'ExtendedInterfaceSymbols*'Sven Gothel2013-01-311-17/+64
| | | | | | | | | | | | | | | | | | | Semantics Change: ExtendedInterfaceSymbolsOnly was used for implementation generation only, which is considered a bug! - ExtendedInterfaceSymbolsIgnore C.java - Ignore symbols in C.java for interface generation - ExtendedInterfaceSymbolsOnly C.java - Only use symbols in C.java for interface generation - ExtendedImplementationSymbolsIgnore C.java - Ignore symbols in C.java for implementation generation - ExtendedImplementationSymbolsOnly C.java - Only use symbols in C.java for implementation generation - ExtendedIntfAndImplSymbolsIgnore C.java - Ignore symbols in C.java for interface and implementation generation - ExtendedIntfAndImplSymbolsOnly C.java - Only use symbols in C.java for interface and implementation generation
* Bump Android NDK to 'android-ndk-r8d' - Note: '-fno-use-linker-plugin' is ↵Sven Gothel2013-01-314-16/+20
| | | | required (?!)
* Add OSX Java7 build scriptSven Gothel2013-01-301-0/+22
|
* GlueGen: NativeLibrary Fix, JNILibLoaderBase EnhancementSven Gothel2013-01-304-86/+142
| | | | | | | | | | | | | | | | | | | - NativeLibrary Fix - enumerateLibraryPaths(..): - Properly iterate through all prefix _and_ suffix. - Make public for JNILibLoaderBase.loadLibraryInternal(..) - isValidNativeLibraryName(..): - Stop iterating through prefix, if previously found but suffix doesn't match. - JNILibLoaderBase.loadLibraryInternal(..) Enhancement - Mark customLibLoader FIXME: remove (we will get rid of jnlp.launcher.class) - If System.load(TempJarCache) and System.loadLibrary(plainLibName) fails, use NativeLibrary.enumerateLibraryPaths() w/ System.load(..) as last resort. Tested on Linux x86_64 Java6 and OSX Java7 manually, no regressions expected.
* adb-launch-main: logcat: append to logSven Gothel2013-01-191-1/+1
|
* Fix ActivityLauncher/MainLauncher .. and make adb-launch-main more suitableSven Gothel2013-01-193-30/+24
| | | | | | | | | | | | | | - ActivityLauncher - no finish() from onDestroy() - MainLauncher - finish activity after returning 'main()' returns - no finish() from onDestroy() - adb-launch-main: - Clear logcat - Wait until activity is stopped - Dump logcat to local logfile
* MainLauncher: Remove Thread.destroy() - n/a on Android ..Sven Gothel2013-01-191-1/+2
|
* Add MainLauncher adb launch script. Here we only utilize non-root features, ↵Sven Gothel2013-01-191-0/+43
| | | | i.e. can be launched on non-hacked device.
* Modified Java 1.5 Buffers patch 2b7d1b1d25cb2cd73311ec9159b465f0391bf5e0 - ↵Sven Gothel2013-01-195-29/+57
| | | | | | | | | | | | | | May break GCJ/ECJ .. needs to be revised. - Adding JAVA_6 in PlatformPropsImpl - Buffers.isDirect() chooses fast-path iff JAVA_6, otherwise using reflection (GCJ/ECJ) - Adding JAVA_6 info in VersionUtil - API doc: Refine JAVA_SE and JAVA_6 spec. TODO: In case GCJ etc is unable to compile the JAVA_6 code even though it uses a static condition (probably not), We have to wrap isStatic in an own class, one for JAVA_6 and one for <= 1.5. This will be a good exercise for further issues we may have w/ Java <= 1.5.
* Merge remote-tracking branch 'xranby/gcj-gij'Sven Gothel2013-01-182-5/+21
|\
| * Buffer.isDirect() operation is undefined w/ Eclipse ecj and GCJ gij JRE.Xerxes Rånby2013-01-181-3/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix for the runtime error using GCJ gij JRE: java.lang.NoSuchMethodError: method java.nio.Buffer.isDirect with signature ()Z was not found. at com.jogamp.common.nio.Buffers.isDirect(Buffers.java:363) Also Eclipse ecj refuses to compile code using java.nio.Buffer.isDirect(). ---------- 1. ERROR ... return ((Buffer) buf).isDirect(); ^^^^^^^^ The method isDirect() is undefined for the type Buffer Signed-off-by: Xerxes Rånby <[email protected]>
| * PlatformPropsImpl: JAVA_RUNTIME_NAME is null using GCJ gij JRE.Xerxes Rånby2013-01-181-2/+4
| | | | | | | | Signed-off-by: Xerxes Rånby <[email protected]>
* | test scriptSven Gothel2013-01-181-2/+2
| |
* | RecursiveLock.getHoldCount(): Fix API doc formattingSven Gothel2013-01-181-4/+7
| |
* | Buffers: Fix typoSven Gothel2013-01-181-2/+2
| |
* | Android Completion for launching main() class via MainLauncher; Fix ↵Sven Gothel2013-01-185-49/+145
| | | | | | | | | | | | | | | | | | | | | | | | | | | | ActivityLauncher order of delegation/super activity callbacks. - StaticContext: - Add ViewGroup for standalone tests w/ UI - MainLauncher/LauncherUtil: - Complete launching a main() class from our activity launcher - adding main-cmdline-args - ActivityLauncher - Fix order of delegation/super activity callbacks.
* | README: Add new IRC channel, mark Jabber deprecatedSven Gothel2013-01-162-1/+3
|/
* PrimitiveStack: Add 'void position(int)' to set new position. Add test case ↵Sven Gothel2012-12-313-27/+79
| | | | w/ initialSizeElem:=0.
* Add com.jogamp.common.util.PrimitiveStack (FloatStack and IntegerStack), a ↵Sven Gothel2012-12-305-5/+551
| | | | | | | | | | | | simple primitive stack implementation. Currently only FILO put/get operations are implemented using either primitive arrays as I/O itself or <Type>Buffer. Unit tests are included.. Note: Only FloatStack is implemented in a manual, where others (IntegerStack) is derived (generated) from it. Same goes w/ unit tests.
* Fix Bug625: StructAccessor missing setShortsAt() and getShortsAt() methods ↵Sven Gothel2012-12-301-0/+13
| | | | | | | | | | for short[] For short[] Java code gets emitted for an StructAccessor object that uses: void setShortsAt(int i, short[] shorts) short[] getShortsAt(int i, short[] shorts) Problem was that StructAccessor.java had no such methods - added.
* Refine AWTEDTExecutor.invoke(..): Allow control whether a non AWT-EDT may ↵Sven Gothel2012-12-281-15/+36
| | | | | | | execute the runnable. For some 'rare' AWT/GL lifecycle actions, it is required to only run the command on the AWT-EDT, hence adding an argument determining the restriction.
* Complete commit 43163af2618a0aaa3cf41de8027ef402d7e89cc3 - ↵Sven Gothel2012-12-271-6/+6
| | | | jogamp-androidtasks.xml was using ANDROID_SDK_HOME, -> ANDROID_HOME
* Android build scripts: Fix env. name ANDROID_SDK_HOME -> ANDROID_HOMESven Gothel2012-12-274-24/+24
| | | | | | | | Intuitively I assumed ANDROID_SDK_HOME to be pointing to the SDK root dir, however this is not true: Semantics by Android tools are: ANDROID_SDK_HOME - Users ~/.android folder ANDROID_HOME - SDK root folder
* Android Launcher: Fix ClassLoaderUtil's JNI lib-path determination, use ↵Sven Gothel2012-12-271-9/+19
| | | | | | | | | | | | ApplicationInfo's nativeLibraryDir (API level 9). On Android > 4.0.3 (maybe even earlier), w/ a split filesystem (internal and SDCARD) the JNI libs maybe stored at a different location than it's data path. ApplicationInfo's nativeLibraryDir properly determines the JNI storage location, hence use it. Prev. code also derived JNI lib path by the launcher's ApplicationInfo's nativeLibraryDir, which might be different than the user package's nativeLibraryDir. This is especially true, since the launcher may not hold any native libraries.
* IntIntHashMap: Add privileged for 'getDeclaredMethod(..)'; Add StringBuilder ↵v2.0-rc11Sven Gothel2012-10-311-42/+75
| | | | toString(..); Add more generics coding.
* IntBitfield: Add API doc; Enhance put() method, return previous value to be ↵Sven Gothel2012-10-271-7/+27
| | | | used more versatile and write only if value changed.
* Adding com.jogamp.common.util.IntBitfield: Simple bitfield holder class ↵Sven Gothel2012-10-271-0/+71
| | | | | | | using an int[] storage. IntBitfield comes in handy to store bit states of a wide value range w/o being a memory hog an O(1) access, e.g. keyCode -> isPressed maps etc.
* Fix Bug 608: Push down TempJarCache.findLibrary(..) from ↵Sven Gothel2012-10-252-16/+15
| | | | | | | JNILibLoaderBase.loadLibraryInternal() to NativeLibrary.findLibrary(..) This allows using TempJarCache (if used/initialized) for native 'tool' libraries as well. This is the case of JOAL's attempt to load the provided 'libopenal.so'