| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|\ |
|
| | |
|
| |
| |
| |
| | |
BufferFactory.
|
| | |
|
|/ |
|
|\ |
|
| | |
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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()
|
| |
|
|
|
|
|
|
| |
illegally added after a closing bracket.
added testcase.
|
|
|
|
|
|
| |
in favor of a simple PointerBuffer.wrap(..),
due to the new semantics, ie internal integer/long presentation.
Fixed the javame code in this regard.
|
| |
|
|
|
|
| |
fixed 'deprecated API' warnings in GlueGen.
|
|
|
|
| |
WIP: refactored PCPP to implement macros, next step is to replace StreamTokenizer with Scanner (we need a propper look ahead).
|
| |
|
|
|
|
|
| |
Specifying JavaClass or JavaImplClass is no longer a requirement. It is now possible to generate StructAccessors from c headers
without emitting any other binding code (force with EmitStruct <name>).
|
|
|
|
| |
a few 'introduce variable' refactorings for argument names.
|
| |
|
|
|
|
| |
code cleanup.
|
|
|
|
|
| |
implemented method chaining pattern.
added position(int pos) method.
|
|
|
|
|
| |
removed workaround in BufferFactory since it is no longer needed.
small code cleanup (generator java 5 migration).
|
|
|
|
| |
com.sun.gluegen.opengl packages.
|
| |
|
|
|
|
|
|
| |
false with null as parameter
to workaround buffer/array mixing bug. Should be revisited to improve performance.
|
|
|
|
| |
naming conventions.
|
| |
|
| |
|
|
|
|
| |
(e.g #define CL_FP_FMA (1 << 5)).
|
|
|
|
|
|
| |
gluegen-rt.jar still uses 1.4).
generified classes in pcpp package and removed warnings (java 5 cleanup).
|
| |
|
|
|
|
| |
allow non GL extensions to be passed. Allow ifndef/define pattern to have any characters at the end
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for subsuming extensions:
- Allow RenameExtensionIntoCore generate duplicate names,
ie those will not be generated.
- Add proper comment showing the extension of the symbol.
- Fail if no 'GLHeader' is specified, but we are processing a GL/ProcAddress config
- Fail if a GL function is not part of an extension
MethodBinding, ConstantDefinition cleanup:
- getName() returns the renamed name
- getOrigName() returns the original
- getAliasedNames() returns the aliased ones
MethodBinding:
- Change: equals() operates on renamed name
- Add: hashCode() function - same criteria as equals()
Impact:
- All config options etc shall trigger with the renamed name,
but ignore, rename etc.
- Generated Java impl. uses the renamed base name as well
Change: emitDefine() uses the ConstantDefinition
Add: JavaConfiguration: dumpRenames()
Change JavaConfiguration.shouldIgnoreInInterface/Impl():
- respect the renamed symbol name as well
Change JavaEmitter.emitFunctions():
- only emit a generated MethodBinding once,
therefor store emitted method bindings in a HashSet
Fix BuildStaticGLInfo:
- Allow white space at the end of #ifndef and #define
- Trim strings
- Allow 'const' qualifier in function pattern
Fix GLEmitter:
- Fail if no 'GLHeader' is specified, but a RenameIntoCore option ..
- Don't emit marker defines, marking an extension (ie not part of an extension)
Fix GLJavaMethodBindingEmitter:
- Fail if a GL function is not part of an extension
Fix PCPP:
- Pass constant type qualifiers for hex-constants: 'l' 'L' ...
Fix ProcAddressEmitter:
- Operate on the aliased/renamed name for querying ProcAddress usage
and generating code.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
of ExtendedInterfaceSymbolsIgnore and ExtendedInterfaceSymbolsOnly
|
| |
|
| |
|
| |
|
|
|
|
| |
necessary. Fix PointerBuffer allocateDirect()
|
| |
|