| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
needs to be quoted when having seperators
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
direct PCPP to dump the output to stderr as well
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
chained tests;
Enable all tests
- Remove 'test' target -> 'junit.run'
- calls build.xml tests first, then
- calls build-junit.xml tests
- build.xml unit tests were disabled, enable them via junit.run
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
convention
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for variables; Misc
Fix native type representation
----------------------------------
The following custom types were previously build-in:
__int32, __int64
Adding the following native build-in types (necessary):
ptrdiff_t, size_t
These compiler/platform specific types shall not be typedef'ed
via header files. Hence we provide proper typing for such,
as the compiler would do.
Adding the following native build-in types (convenience):
int32_t, uint32_t, int64_t, uint64_t
These are provided due to their lack of support on certain platforms,
and probable source of bugs, when defined by the user.
Retain typedef declName in resulting Type for variables.
--------------------------------------------------------
Adding Clonable to all cgram Type derivations.
Assume use case:
typedef khronos_ssize_t GLsizeiptr
typedef size_t khronos_ssize_t
The previous code picked a one level depth type in the dictionary
if exists. Hence it made khronos_ssize_t visible in the javadoc and native code.
It is our believe that the generated native code, as well as the javadoc comments
shall reflect the original GlueGen'ed API and it's types.
Also, aliasing or reducing native types via GlueGen could result in plattorm dependencies
and in worst cases, incompatible native types.
This patch clones the 1 level depth Type (typedef), clones it
and sets the declName, so it's visible to the GlueGen layers.
Misc
-------
GlueGen's debug flag is passed to HeaderParser,
where it traces misc information.
|
|
|
|
| |
development cycles
|
| |
|
|
|
|
| |
appropriate for all.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix PCPP 'elif' case
----------------------
Use the evaluated expression after the 'elif' statement as well.
This was always true for 'if'.
Otherwise the file obviously won't get parsed correctly,
ie it was always assuming 'true'.
Adding PCPP #error/#warning
----------------------------
LOG all occurence of #error and #warning CPP directives
Adding debug mode.
----------------------
Add '--debug' commandline flag and 'debug' property for ant task,
which enables debug mode of PCPP.
|
| |
|
| |
|
| |
|
|
|
|
| |
identity or add it, if not exist yet
|
|
|
|
| |
operations
|
|
|
|
| |
changes
|
| |
|
| |
|
| |
|
|
|
|
| |
(wait-interrupt) using a LinkedList
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix: NativeWindow RecursiveToolkitLock
- Use notify(), instead of notifyAll(), so only one thread is being awakened
for the single resource. Otherwise starvation and timeout happen, since
the oldest thread might not get waken up (earlier than other threads) within timeout.
- Inner class for all synchronized (flow/mem) fields for easier fine grained sync/lock.
Fix: GLWindow lockSurface/unlockSurface
- Enter locked surface block only if surface lock could be acquired
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
NativeWindow: Interface NativeWindow changes:
- Remove 'throws' qualifier in lockSurface(), since it is not
- Adding convenient 'one call' isSurfaceLockedByOtherThread()
- Adding getSurfaceLockOwner()
NEWT Window/GLWindow:
- Unclutter Window/GLWindow relationship - save Window's indentity
GLWindow's role is a GLAutoDrawable implementation aggregating
(maybe even compositioning) a Window.
The previous implementation just derived from the Window implementation,
overwriting methods and fields - impossible to ensure sanity / completness.
It was also not ensured that the added functionality of GLWindow
(setVisible, destroy, ..) has been issued in case of handling the
aggregated Window alone (window callbacks, ..).
To solve this issue in a 1st attempt without changing the GLWindow API,
Window is just an interface, being implemented by their specializations,
hence sanity is intrinsic.
GLWindow's added functionality is ensured by a Window.LifecycleHook
interfaced implementation, registered at the aggregated Window.
- Screen and Window are interfaces now (new files)
- Display is an abstract class.
- Their (abstract) implementations resides in impl/<BaseName>Impl
- GLWindow implements Window as well
- Remove Screen reference handled by setScreen(Screen) method.
- Lock native parentWindow if used (createNative/reparenting)
- Move lockSurface/unlockSurface from unchecked override pattern
to an callback style using abstract methods lockSurfaceImpl/...
- Sorting all methods to semantic sections, abstract, superinterface, ..
- Reparenting: Handling different reparenting situations:
- Unchanged - No change
- Native Reparenting - Compatible Display/Screen, try native reparenting
- Native (Re)Creation - Use destroy/create pattern
- Native Creation Pending - Create later
- setUndecorated() calls reconfigure Window now, ie tries to change the window actually
- Don't issue 'requestFocus()' directly from the native implementation anymore,
call it from the Java code.
- Window/GLWindow/NewtFactory: Constructor simplification
Avoid explosion of constructor overloading, ie removing the 'undecorated' variant,
since this is redundant due to the 'setUndecorated(boolean)' method.
- Fixed/added API documentation
|