| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
| |
- create new buffers only if size > capacity not if >= capacity
|
|
|
| |
factory supports dynamic and static allocation schemes and has a synchronized and a unsynchronized implementation.
|
| |
|
| |
|
| |
|
|
|
|
| |
BuffersTest and PCPP to the proper src/junit folder. All junit tests are now handled by build-junit.xml
|
|
|
|
| |
the non existing hashed value lead to O(n)
|
| |
|
|
|
|
| |
back conversion; Add unit test for arrays
|
|
|
|
|
|
|
| |
'toString()' ; Added type tests.
For size_t and uintptr_t this actually generated invalid C code.
Added type tests for those.
|
|
|
|
| |
toStringBuffer(StringBuffer) ; Add String toString() { ..}
|
| |
|
|
|
|
|
|
|
|
|
| |
VersionInfo -> GlueGenVersion
JogampVersion, providing generic information for Jogamp JAR archives
Accessor to the Jogamp specific manifest additions, ie branch and commit.
Also provides convenient attribute access and version dump methods.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Read API doc ad GlueGen.java
New predefined types: wchar_t, intptr_t, uintptr_t
New reusable headers
for gluegen usage: make/stub_includes/gluegen
for native usage: make/stub_includes/platform
New predefined macro
#define __GLUEGEN__ 2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
in same thread via File.
Fix PCPP 'define' case
------------------------
A recursive define like:
#define LALA ((int)1)
#define LILI LALA
was streamed out of PCPP, even though such 'macro defines' like
#define LILI ((int)1)
are disabled due to the parsers inability to digg those.
Added test on macro definition for replaced values.
GlueGen uses PCPP in same thread via File
------------------------------------------
To ease debugging we call PCPP from the same thread
and use normal temp files as i/o.
Keep PCPP output file if 'debug'
---------------------------------
Keep temp outfile if debug is enabled
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Both IntIntHashMapTest and LongIntHashMapTest failed to reset test start time.
The time values for intmapGetTime,mapGetTime,intmapRemoveTime,and mapRemoveTime
all used the start time value from mapPutTime. This caused the following to be
always/guarenteed to be true:
mapPutTime < intmapGetTime < mapGetTime < intmapRemoveTime < mapRemoveTime
thus not actually testing the following asserts:
assertTrue("'get' too slow", intmapGetTime <= mapGetTime);
assertTrue("'remove' too slow", intmapRemoveTime <= mapRemoveTime);
In addition the results of the test were being printed before the actual test
ran.
Changed code to reset time to System.nanoTime() prior to each for loop, and
moved time calculation and result output to below the test for loop.
I also improved the output of the test info, by including the warmup status
on benchmark start.
|
| |
|
|
|
|
| |
identity or add it, if not exist yet
|
|
|
|
| |
operations
|
|
|
|
| |
changes
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Added JogAmp Community and common denominator:
New BSD 3-clause license
- Added note to make/lib binary file (source and license)
Added source and license text for external binaries used
in build process (make/lib folder).
Changed 'Sven Gothel' and 'Michael Bien' New BSD 3-clause license
to 'JogAmp Community' Simplified BSD 2-clause license.
|
| |
|
|
|
|
| |
they are a junit test.
|
| |
|
|
|
|
|
| |
- ProcAddressTable is now the common superclass for all tables
- Removed ProcAddressHelpers and added FunctionAddressResolver extension mechanism
|
| |
|
|
|
|
|
|
|
|
| |
Adding ant-contrib-1.0b3.jar for loops and mutable properties.
Cleanup:
- Adding Javac includeAntRuntime argument (false whenever possible)
- Clear junit results folder before testing
- Move deprecated stuff from lib to lib/archive
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed junit test: test1
- Create seperate native libraries to reflect a real world example:
test1 - the library to bind to (no more declaring __stdcall @nn functions)
BindingTest1p1 - the dynamic fixed linkage binding test1p1,
references dynamic library test1 at linktime.
BindingTest1p2 - the dynamic runtime linkage binding test1p2,
loads dynamic library test1 at runtime.
Generic:
- gluegen-cpptasks-base.xml
- target 'gluegen.cpptasks.detect.os'
Set new property 'system.env.library.path'
DYLD_LIBRARY_PATH (macosx)
LD_LIBRARY_PATH (unix)
PATH (windows)
- target 'gluegen.cpptasks.striplibs'
Strips the symbols out of the native libraries
in case c.compiler.debug is false.
Maybe configured with the properties:
c.strip.tool, c.strip.args
- Using system.env.library.path in junit call
to find the test1 library in case of runtime linkage and lookup (test1p2).
- Use gluegen.cpptasks.striplibs for all native libs ..
- Added macosx32 in analogy to macosx64, both defaults to true now
- com.jogamp.common.os.WindowsDynamicLinkerImpl:lookupSymbol()
- Added lookup for __stdcall @nn (stepping alignment 4, max-args: 12)
in case no undecorated __cdecl symbol is found.
Fixed Windows platform:
- Use proper path.seperator on Windows.
- test1.dll needs proper soname inside for fixed linkage (test1p1)
hence the output name must be test1.dll, not libtest1.so
+++
http://jogamp.org/bugzilla/show_bug.cgi?id=394
Fix MacOsX platform:
The commit of cpptasks.jar, git hash 129e783741d91e9ee5cd7da5d5c962c32ec96b0b,
broke the universal binary build on MacOSX.
The above change used cpptasks-1.05b with a few patches in regards to crosscompilation,
but missed one, which accepts the '-arch' argument for GccLinker undecorated.
The new cpptasks.jar is vanilla 1.05b + cpptasks-1.0b5-darwin-patch.diff,
the latter a more refined one.
This version accepts the '-arch' argument undecorated on the darwin platform.
+++
|
| |
|
| |
|
|\ |
|
| | |
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
32bit/64bit values and arrays are misrepresented
- PointerBuffer: Adding methods
PointeRBuffer referenceBuffer(int index, Buffer data)
PointeRBuffer referenceBuffer(Buffer data)
Buffer getReferencedBuffer(int index)
Buffer getReferencedBuffer()
Adding a reference of a given direct Buffer
to this pointer buffer, and retrieving a
previously referenced direct Buffer.
This allows a more convenient handling of PointerBuffer
with the user API's ..
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
32bit/64bit values and arrays are misrepresented
- PointerBuffer is used to map 64bit integer values,
which is illegal due to the latest PointerBuffer changes,
where the underlying ByteBuffer is either 32bit wide
or 64bit wide (in respect to the pointer size).
The PointerBuffer semantic itself is correct,
but no more suitable to represent 64bit values and arrays.
A Int64Buffer (LongBuffer does not exist in CDC/CVM patch)
should be used instead.
- Determine use of Int64Buffer and PointerBuffer
Assuming the 1st step being solved, it has to determined
for which cases gluegen shall map a type to a PointerBuffer.
All pointer pointer types, regardless of a Opaque mapping, ie:
+++
typedef struct __MYAPIConfig * MYAPIConfig;
Opaque long MYAPIConfig
void foo(MYAPIConfig * ptrarray);
+++
The argument 'ptrarray' must be represented as a PointerBuffer
otherwise data is misrepresented in case:
- 32bit machines _and_
- array semantics - more than one value is being used
Impl:
java/com/sun/gluegen/JavaEmitter.java:
- Checks ptr-ptr for Opaque values
- Returns PointerBuffer mapping for ptr-ptr types
- Allow PointerBuffer being mapped as String[]
Very elaborated tests .. :)
++++++++++++
Misc Changes:
- Added <Type>.put(<Type>Buffer src) for Int64Buffer/PointerBuffer
|
|\ |
|
| | |
|
|/ |
|
|\ |
|
| |\
| | |
| | |
| | |
| | | |
Conflicts:
src/junit/com/jogamp/gluegen/test/junit/Test1.java
|
| | | |
|
| |/
|/|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Mixed types in generated code are functioning now,
even though not all permutations are generated - still.
However, this patch merges the indirect object passing,
wheather it is a primitive array or an indirect NIO buffer,
incl. PointerBuffer.
This allows the usage of only one JNI functions for all combinations.
Only in case of NIODirectOnly, the simplified direct only '0'
variation is created - otherwise the parametrized '1' variant.
The junit tests proves the implementation and
almost completes the gluegen junit tests coverage
for JavaEmitter and ProcAddressEmitter.
Impact/Result:
- Working mixed array types
- JOGL GL2 native library shrunk around 30%
- Simplified gluegen code
- Almost complete gluegen junit tests
TODO: Complete permutations of array/NIO arguments,
if desired.
++++
Misc changes:
- NativeLibrary implements DynamicLookupHelper:
lookupFunction() -> dynamicLookupFunction()
|
|/ |
|
|
Adding 'plain' junit tests.
Plain stands for the simple processing of:
ant.junit.compile: gluegen -> java/c files, javac/cc, jar
ant.junit.run: junit batch run
Avoiding 'black magic', ie kicking off gluegen and ant-compilation
from within the junit tests.
Same methodology as the JOGL junit tests,
junit test sources are under 'src/junit'
This way, the migration to other platform tests might be easier,
as well as the we don't need to pass through ant properties (ant - junit - ant),
see 3a32650d4229f9b4ad1f527d9e30c24ddb69bb3f.
|