aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* NEWT: Fix Display/Window/Screen OO Identity, Reparenting and requestFocusSven Gothel2010-09-2339-2807/+3517
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* NEWT: Fix EDTUtil/DefaultEDTUtil - Locking/BehaviourSven Gothel2010-09-233-120/+206
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | EDTUtil: - Added documentation to EDTUtil interface - Removed 'stop()', introduced 'invokeStop(Runnable)', allowing proper shutdown with a final task (see doc). - Fix (c) header, since it is a new file, changed to interface with df161c9fcc1bc90d03e374e0eb8148424d4c5577 DefaultEDTUtil: - Move EDT scope volatile states (shouldStop, edtTasks) into inner class EventDispatchThread (the actual EDT). Fetching those outer instance values from within the inner EDT instance results in 'old values', ie this memory didn't get updates/synced. - Give the thread a proper name: <invocation-thread-name>-<custom-name>-EDT-<start-sequence-number> This allows easy identification of the EDT incl. indication of the 'start' sequence number. - Added fail-fast Exceptions in case of a stopped EDT with remaining tasks. This should validate/test the runtime behavior. - Ensure isRunning(), invokeStop(..) and waitUntilStopped() only returns after the last task has been executed. - invokeImpl/EDT.run: Complete task-lock coverage incl. wait case. - The final task is blocked until the wait() state in invokeImpl is reached. - EDT executes the final task and notifies the lock owner - then exist - invokeImpl leaves the wait state. - See EDTUtil API doc ..
* NEWT: Animator API Change - Changed Lifecycle of Display/Screen (part 4)Sven Gothel2010-09-2313-292/+731
| | | | | | | | | | | | | | | | | | | | | Change GLAutoDrawable interface: setAnimator(Thread) -> setAnimator(GLAnimatorControl) to minimize the setAnimator(..) calls and to allow fine grained control over the animation, ie in case of reparenting where the animation shall pause while changing the window(s). Introducing GLAnimatorControl interface: - abstract class AnimatorBase implements GLAnimatorControl - class Animator extends AnimatorBase - class FPSAnimator extends AnimatorBase This also changes FPSAnimator, since it is no more derived from Animator, use it's superclass or superinterface instead. +++ - Fix GLJPanel.paintComponent(): Don't issue reshape/display in case an external animator thread is animating. - Fix: Documentation [API]
* NEWT: Changed Lifecycle of Display/Screen (part 3)Sven Gothel2010-09-164-19/+33
| | | | | | | | | | | | | | - Fix DefaultEDTUtil deadlocks: Minimize locking! - invoke: - Check isCurrentThreadEDT() before locking edtLock - Check isRunning() redundant, since we start it beforehand - EventDispatchThread.run(): - Relax definition of EDTUtil::waitUntilIdle(), ie method may return while last task is being executed (see below). - Execute task outside of edtTasks lock. TODO: Fix more test cases (new and old)
* NEWT: Changed Lifecycle of Display/Screen (part 2)Sven Gothel2010-09-1518-206/+550
| | | | | | | | | | | | | | | | | | | | | Window Reparenting (unification): On the fly Display/Screen creation resides in NewtFactory. Reparenting logic within Window. Handles all reparenting cases now: ACTION_NONE, ACTION_SOFT_REPARENTING, ACTION_NATIVE_REPARENTING, ACTION_NATIVE_CREATION - out.println -> err.println ++++ - Bumbed windows bat scripts to 1.6.0_21 and ant 1.8.1 - Debug: /RecursiveToolkitLock.java TO is 300s for now, while not finished. - +++ Needs more testing. Deadlocks: AWT/NEWT parenting.
* Merge branch 'master' into newt_display_unkey_threadSven Gothel2010-09-1595-2108/+1853
|\
| * Misc CleanupsSven Gothel2010-09-159-43/+21
| | | | | | | | | | | | | | | | - www/index.html: absolute local refs -> relative - Platform GLContextImpl specialisations: remove local overriding drawable instance - X11ExternalGLXDrawable: Remove dead code, left over.
| * Merge branch 'master' of github.com:mbien/joglSven Gothel2010-09-1519-120/+73
| |\
| | * COPYRIGHT.txt no longer exists -> don't copy it.Michael Bien2010-09-141-1/+0
| | |
| | * Merge branch 'master' of git://github.com/sgothel/joglMichael Bien2010-09-1018-86/+98
| | |\
| | * | trivial code cleanup in glx package.Michael Bien2010-09-0917-118/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - locks are final - debug prints use System.err exclusively (to prevent message corruption) - removed unused imports, unused variables - code cleanup in some places
| | * | Fixed a couple of small glitches in the jogl websiteDemoscenePassivist2010-09-041-1/+2
| | | |
| * | | Removed COPYRIGHT.txt file, whichSven Gothel2010-09-1475-1962/+1776
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | is redundant due to COPYRIGHT notice in LICENSE.txt. It's product usage terms are no more applicable, since our repository is not used by Sun Microsystems to deliver a product. LICENSE.txt changes: - Updated SGI FreeB license reference from 1.1 to 2.0 - Dropped Sun alternative license, which is redundant due to the FreeB 2.0 license. - Added JogAmp Community and common denominator: New BSD 3-clause license README: - Added contacts - Sun -> JogAmp - Added Michael Bien Changed 'Sven Gothel' and 'Michael Bien' New BSD 3-clause license to 'JogAmp Community' Simplified BSD 2-clause license.
* / | NEWT: Changed Lifecycle of Display/ScreenSven Gothel2010-09-1045-505/+993
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Display/Screen: - Removed Display reusage by unique TLS key: type + name, instead use user-responsibility or Destroy-When-Unused (usage reference count). - Removed X11 Display TLS pool usage - Display creation means i, incl the later native one (X11). - Added reference counting as follows: - Display's refCount: number it is referenced by Screen: display.addReference()/display.removeReference() - Screen's refCount: number it is referenced by Window: screen.addReference()/screen.removeReference() - Lazy creation using refcount 0 -> 1 All resources are created when they are needed. This also removes redundant native Display/Screen objects, ie in case of [AWT] reparenting. - Default lifecycle is user-responsibility, ie no Destroy-When-Unused, where Window may be destroyed unrecoverable, which removes the Screen reference only. - If using optional Destroy-When-Unused a Window may be destroyed unrecoverable, which removes the Screen reference: Screen.removeReference(); IF Screen.refCount == 0 THEN Screen.destroy(); Display.removeReference(); IF Display.refCount == 0 THEN Display.destroy(); - Use Destroy-When-Unused lifecycle for all automatic created Display/Screen instances (GLWindow, NewtCanvasAWT,..) - Display/Screen destroy/create cycles valid, ie you can reuse destroyed Display/Screen's - EDTUtil: - Created right away. - Started always via invoke, if not running. - DefaultEDTUtil: - Simplified locking a bit locking on: - edtLock for start/stop - edtTasks for tasks queue - invoke-wait doubles check shouldStop - invoke-wait 'waiting' outside of edtLock +++ NEWT: Cleanup - Window.destroy/invalidate: deep -> unrecoverable - Window.isNativeWindowValid() -> Window.isNativeValid() to unify with Display/Screen - Window.isDestroyed() -> Window.isValid() to unify and simplify logic. Returns false if destroy(true) has been called. - NewtFactory.wrapDisplay(.. handle) -> NewtFactory.createDisplay(.. handle), since it actually creates a compatible display. +++ NativeWindow X11Util: Added non TLS createDisplay()/closeDisplay() +++ TODO: - Stabilize (many tests fail) - OSX
* / NEWT: Focus Fix + CleanupSven Gothel2010-09-0318-86/+98
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | Issueing 'requestFocus' via the native EDT dispatch loop may cause a deadlock, due to a possible implicite AWT requestFocus call (NewtCanvasAWT). Approach: RequestFocus issued directly, by Window.requestFocus() and the native EDT dispatch loop, is queued for later execution by EDT. This shall decouple a possible native windowing TK resource collision. - X11Windows.c: Add missing 'reparented' param for requestFocus to force requestFocus after reparenting. - AWTWindow.java: Add requestFocusImpl() +++ NEWT: Cleanup - Remove Event Type Bits in: - EventListener.h - NEWTEventListener.java - Remove InputEvent 'consume' status -
* Fixed gl3.h GL_GLEXT_PROTOTYPES -> GL3_PROTOTYPES/GL_GL3EXT_PROTOTYPESOpenGL_4_1_IntegrationOpenGL_3_3_IntegrationSven Gothel2010-08-254-22/+10
|
* Add license header to gl3ext.hSven Gothel2010-08-241-0/+28
|
* Modifications to the original header: Seperate platform types; Move ↵Sven Gothel2010-08-242-221/+161
| | | | extension related details of the GL_VERSION_x_y blocks into their extension block
* Add original Khronos glext.h and gl3.h headers from 2010-08-03Sven Gothel2010-08-242-0/+14292
|
* Redo khronos header migration from scratch to show the delta to the originalsSven Gothel2010-08-242-14232/+0
|
* minor formattingSven Gothel2010-08-241-2/+1
|
* TestTransformFeedbackVeryingsBug407NEWT: move GLSL requirement to 1.50 (GL 3.2)Sven Gothel2010-08-241-1/+1
|
* Added shader status check, commented out the expected glsl linker error messageSven Gothel2010-08-241-4/+32
|
* Rename junit test TransformFeedbackVeryingsBug407 and add main methodSven Gothel2010-08-241-1/+18
|
* Merge branch 'master' of github.com:sgothel/joglSven Gothel2010-08-241-0/+132
|\
| * Merge branch 'master' of github.com:sgothel/joglMichael Bien2010-08-2213-364/+667
| |\
| * | added junit test for bug 407 (thanks to Matt at the mailinglist).Michael Bien2010-08-221-0/+132
| | |
* | | Add OpenGL 3.3, 4.0 and 4.1 language mapping.Sven Gothel2010-08-2450-3163/+7079
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Update header: - GL/glext.h to khronos 2010-08-03 - GL3/gl3.h to khronos 2010-08-03 - Move platform code to GL/glplatform.h GL3/glplatform.h - Unify 64bit typedefs: gl-64bit-types.h - Move GL 3.[123] and 4.[01] complete subsumed extension enums and functions into their extension spec and just reference them. This ensures proper extension availability via lower OpenGL profiles, hence a proper GL2GL3 interface. - GL3/GL4 cleanup: - make-glextension-depignore.sh: determine required GL version for extensions for proper positioning, ie GL2GL3 or GL3 or GL4 via gluegen IgnoreExtension commands. - use ARB_ES2_compatibility for common GL2ES2 methods, if available - consolidated gl2-gl4 subsumed extension to gl-common.cfg - Missing GL3/GL4 Functions: glMultiDrawElementsBaseVertex glDebugMessageCallbackARB glDebugMessageCallbackAMD - TODO (new feature integration): - ARB_ES2_compatibility / ARB_get_program_binary for com/jogamp/opengl/util/glsl, ie - store binaries com/jogamp/opengl/util/glsl/sdk/CompileShader* - query supported binary formats (enums ?) - optional prio binaries - ARB_ES2_compatibility, if available GLES2/GL2ES12 would be available - ARB_separate_shader_objects for com/jogamp/opengl/util/glsl, ie - swizzle vertex/fragment shader in programs - ..
* | Add hudson-archive-jars-latest.sh script; Simplify default value of ↵Sven Gothel2010-07-272-5/+150
| | | | | | | | product.build.number
* | JOGL/Junit: Temp. remove frame rendering testSven Gothel2010-07-261-1/+1
| |
* | Newt: Remove static MacDisplay usageSven Gothel2010-07-263-4/+7
| |
* | Fix OSX 2: Newt EDT (MainThread) and I/O methods ; Build jogl.build.numberSven Gothel2010-07-2610-358/+511
| |
* | Fix build.number -> jogl.build.number; Read artifact.propertiesSven Gothel2010-07-262-1/+3
| |
* | Fix artifact.properties rootrelSven Gothel2010-07-241-1/+1
|/
* Merge branch 'master' of github.com:sgothel/joglMichael Bien2010-07-241-0/+4
|\
| * Fix OSX 1: Add empty define of APIENTRY, if undefined (CG)Sven Gothel2010-07-191-0/+4
| |
* | added tag.build ant target.Michael Bien2010-07-241-1/+6
|/
* Merge branch 'master' of http://github.com/sgothel/joglMichael Bien2010-07-187-39/+150
|\
| * Fix OSX 1: Link with OpenGL library again (CGL)Sven Gothel2010-07-171-2/+2
| |
| * Junit: Avoid possible forever loop in testSven Gothel2010-07-171-1/+2
| |
| * Newt: X11 ICC window properties ; Still bugs with composite manager and Newt ↵Sven Gothel2010-07-175-39/+42
| | | | | | | | | | | | | | | | | | reparenting Set _NET_WM_WINDOW_TYPE to specify decoration etc. On KDE4 having compositing enabled the reparent window is sometimes made invisible (UnmapWindow happened). FIXME.
| * Junit: Relax assertions NEWT/ReparentSven Gothel2010-07-162-1/+5
| |
| * Add AWT WindowClosing JUnit testSven Gothel2010-07-161-0/+103
| |
* | Merge branch 'freebsd-fixes' of http://github.com/rothwell/joglMichael Bien2010-07-183-16/+76
|\ \
| * | Set up compiler and linker for newt. JOGL builds and passes all tests.Mark Rothwell2010-06-261-4/+34
| | |
| * | Prepend /usr/local/lib to freebsd X11 linkerMark Rothwell2010-06-261-4/+4
| | |
| * | Prepend /usr/local/lib for X11 librariesMark Rothwell2010-06-261-4/+4
| | |
| * | Use correct compiler setup for nativewindowMark Rothwell2010-06-261-2/+6
| | |
| * | But /usr/local/include IS necessary on the default FreeBSD setupMark Rothwell2010-06-261-0/+6
| | |
| * | Correct compiler config (not amd64 specific)Mark Rothwell2010-06-261-1/+1
| | |