Eduard White (1): Adding basic Frustum utility class interfacing w/ PMVMatrix. Still depending on OpenMALI - hence broken. Eric Brayet (1): Fix bug 668 : Android keyboard input was uppercase HaZuki (1): Fix Bug : Quaternion multiplication unexpected behavior Harvey Harrison (3): Fix Bug 703: Quaternion slerp function. Disclaimer: Not tested / No unit test. jogl: remove executable bit from some java files and a png Test for null against a temp variable to narrow races Juan Camilo Prada (1): Fix Bug 759: Add quirk GLNonCompliant for Mesa AMD GL >= 3.1 renderer. Julien Gouesse (5): Adds a unit test for the bug 694 on gluScaleImage Handles indexed PNGs Adds a unit test and a fix for the bug 697 Adds the missing file Adds a unit test for GLWindow.warpPointer(int,int) Maik Riechert (2): Support specifying the X11 default display with a system property added unit test for nativewindow.x11.display.default system property Martin Hegedus (3): Bug 705: This is the version of displayMultiple02 which uses glXCreateNewContext instead of glXCreateContext. Segmentation fault w/ Mesa 7.0 Bug 705: This is the version of displayMultiple02 which uses glXCreateNewContext instead of glXCreateContext. X11 Error w/ Mesa 7.0 Fix Bug 705 - Make Mesa X11 driver < 8.0 use new Quirk DontCloseX11DisplayConnection Petr Skramovsky (6): Fix Bug 736: Add GL.GL_UNSIGNED_INT and GL2ES2.GL_INT case in GLArrayDataWrapper.getBufferClass() reformatted to same style removed unnecessary castings, removed unnecessary methods for vector operations changed to VectorUtil instead fixed isIdentity method, deprecated isEmpty method (quaternion doesn't have such a property + method do same thing as isIdentity), new setIdentity method, default constructor sets this quaternion to identity, new fromAxis method/costructor new method for vector multiplication, new copy constructor Quaternion.java : fixed not clear assignment Sven Gothel (427): MacOSXCGLContext[NSOpenGLLayer/NSView]: Propagate drawable change GLAutoDrawable: Fix GLEventListener lifecycle and expose more user control (API Change) ; Added GLDrawableUtil FPSAnimator: Wait '2 x period' or 20ms, whichever is greater in case of pause/stop - taking execution frequency into account GLDrawableUtil.swapGLContextAndAllGLEventListener(..): Add glFinish() before and after ctx/drawable swap - sync'ing GL state Adding Andres Colubri's Test Case (junit'fyed), which provokes a Deadlock on OSX - Adding a similar one w/o deadlock and less framework bits. TestGLCanvasAWTActionDeadlock01AWT -> TestGLCanvasAWTActionDeadlock02AWT; To add another intermediate unit test for analysis TestGLCanvasAWTActionDeadlock00AWT: Remove redundant argument TestGLCanvasAWTActionDeadlock01AWT: Reproducing OSX deadlock variation, using Applet as component which provokes offscreen FBO layer. Analyzed OSX Deadlock w/ AWT Applet & CALayer: Andres Colubri's Test Case, Commit 77db6a5c22cb4a53cf911b4caf57127770c70968 GLAutoDrawable: Refine API change of commit c002e04f848116922a1ed7bd96ead54961649bbd TestGLCanvasAWTActionDeadlock0[01]AWT: Disable 'restart' test on current (non AWT) thread - crashes on solaris (which is fine) Fix GLDrawableHelper.recreateGLDrawable(..): Sync GL command stream before destruction of drawable GLFBODrawableImpl: Following suit w/ commit b83b068c0f426f24a58e2bd9f52de9ebd0c7876d, sync GL command stream before FBO reconfig Bug 634 - Part 1: FBObject, Make MSAA 'samplingSink' mutable and add setSamplingSink(..). Create MSAA samplingSink lazy if null. FBObject: Rename private fields for better reading: samplesSink* -> samplingSink* Fix GLAutoDrawable.dispose(): Dispose drawable even w/o context; JAWTWindow.lockSurface(): Check AWT component's native peer Bug 634 - Part 1: Fix FBObject regression of commit dbc260bd2e917ee9001461749c99da0c9cbfaf9a Merge MathFloat into FloatUtil Reorganize math code into: com.jogamp.opengl.math and com.jogamp.opengl.math.geom packages Cleanup Frustum Math Util: Independent / Compile Clean / Relocation ; PMVMatrix: Add getPreMultipliedPMV(..) AABBox: Add public direct setSize(..), skipping redundant reset() / resize(..) Frustum: Simpler usage (ctor, update) no need for explicit compute() method. Don't store passing PMV reference. isInside() -> isOutside() PMVMatrix: Add 'Frustum glGetFrustum()' adding same dirty/request methodology as for Mvi and Mvit GLDrawableHelper disposeAllGLEventListener(): Don't use cached listener size / check size() > 0, since List can be modified by listener itself Fix Graph SceneUIController: Remove Listener by itself in dispose() Frustum: Passing Mv*P (column major order) Frustum: Print Plane's normals properly in toString() Validating Frustum w/ help of Eduard White olamedia@gmail.com, referencing the original paper Adding Ref.: Frustum-Culling, Max Wagner Frustum: Clarify isOutside(AABBox) impl, add isOutside for point and sphere Frustum: Cleanup / update; PMVMatrix: Fix mulPMV Frustum: Add doc. about Frustum's Plane's normal orientation Frustum: Clarify method names, fix point/sphere classification, add used references NewtVersionActivity: Dump information in logcat OSX CALayer Stencil/.. Fix: In case of FBO CALayer usage, use default caps/pixelformat w/ chosen GLProfile only Bug628: Adding unit test reproducing the deadlock realiable withing first rounds of multi-threaded display. Fix SWTEDTUtil Bug628: Perform NEWT event dispatching on SWT-EDT, due to possible triggered locking action, i.e. display(). Do the same for AWTEDTUtil. FPSAnimator: Add note on deamon-thread and JVM shutdown behavior. SWTEDTUtil/AWTEDTUtil: Fix deadlock situation in waitUntilStopped(), etc - wrap task execution (or enqueing) into status-sync 'edtLock' Add test-x64 script for running SWT junit test cases (only) - also documents how to run partial junit tests SWT: Bump to version 4.3.0 M3 201210312000 SWTAccessor: OS_gtk_widget_unrealize optional (SWT 4.3) ; decorate PrivilegedAction for static initSingleton block (SWTAccessor, NewtFactory, NativeWindowFactory) SWTEDTUtil/AWTEDTUtil: Fix deadlock situations ; Cleanup TestNewtCanvasSWTBug628ResizeDeadlock X11Util/Xmisc setX11ErrorHandler: Force setting X11 error handler if invoked from Java ensuring to overwrite other TKs handler Fix script lstjars.sh's pack200 list Fix regression of commit 4dd44b985fe0541be3a3bcd9045d201ed3ca2cc5: Setting 'sendReshape' for onscreen drawables as well. etc/profile.jogl: Fix OpenIndiana ARCH i86pc -> x86 (used currently for SWT tests only) Complete commit 541bcc1eecc50656392e1fec1a27b08ab78eceff (SWT version bump 3.7.1 -> 4.3.0-M3): gtk-freebsd-x86_64 is still on 3.7.1 Fix etc/test_dbg.sh: Missing jogl.all.jar -> jogl-all.jar SWT Solaris x86 files: Use version 4.2, 4.3.0-M3 fails, see README.txt SWTAccessor: Add SWT 4.3's X11-GTK version adaption (2.14, 2.24, 3.0) TestSWTJOGLGLCanvas01GLn: Use display.syncExec(..) where possible, add Animator SWT GLCanvas: Fix dispose bug, check for isDisposed() and add DisposeListener; Run GL tasks on current thread w/o restrictions NewtCanvasSWT: Add DisposeListener Bug628: Adding unit-test 'TestNewtCanvasSWTBug628ResizeDeadlock' exposing NewtCanvasSWT asyncExec(..) bug w/ native parenting Simplify NEWT EDTUtil invoke: To start EDT Runnable maybe null - start EDT even if on EDT thread. Fix NewtCanvasSWT's newtChild usage: Only use set newtChild if it's ready, i.e. SWTEDTUtil set and parented; Recognize pending resize. NEWT WindowImpl: Don't issue native resize if invisible, simply use defineSize(..); Don't set persitent undecorated flag if child window at creation; Use local 'screen' directly. NEWT WindowImpl fixes: surfaceLockCount-- if native lock fails; waitForVisible(.., fastFail:=false); waitForSize(..) @ setSize; reparent definePosition(..); Fix Bug 643: SWT 'display.asyncExec(Runnable runnable)' runnable not executed on Windows NEWT EDTUtil: Simplify running state (default is running @ setEDTUtil()); Simplify DefaultEDTUtil impl. and fix concurrency leak w/ 'shouldStop' SWT GLCanvas/NewtCanvasSWT: Check isVisible() @ validation; NewtCanvasSWT remove just introduced setVisible(false) and adapt to setEDTUtil() changes. ; Enhance Bug 643 unit test: Also test NEWT EDT and pre-visible GLWindow. Fix GLDrawableHelper invokeGLImpl(..): Only attempt to release context after successfull claim; Also fix intendations of block. SWT GLCanvas: Fix sporadic drop of redraw on X11 _and_ allow using custom GLCapabilities on X11 (feature complete) Update JOGL WWW page (Added sections: App, Util, Games, Old; Added Ardor3D, jME3, ticked2ride, jake2 update ..); Cleanup html5. Add Java3d and nifty-gui Add siggraph2012 WWW: reorder siggraph WWW: Link to Siggraph2012 page and use relative URL to wiki Cleanup GLContext special entries: getOffscreenContextPixelDataType(), getOffscreenContextReadBuffer(), .. ; Add GLFBODrawable API entries for multi buffering (no impl. yet); GLJPanel 1st simplification using offscreen drawable GLArrayData/ImmModeSink: Remove implicit dependency on ShaderState - allow operating w/o it; ShaderState: Remove notion of GL context attachment, use pass-through or object association; GLArrayData/GLUniformData: Add basic GLSL location methods Fix/Complete commit b8a8fc24a3afb0cb06a31504bdea1a98b8f00ef4 - Adding missing GLU code GLJPanel: Impl. is GLProfile agnostic; Use GLDrawableFactory.createOffscreenDrawable(..) for common OffscreenBackend (dropping pbuffer/software); Flip FBO w/ GLSL texture renderer. MacOSXCGLContext: Use new setLocation(gl, shader-program); Minor edits.. Bug642: Add test case for Swing JSplit Pane w/ GLCanvas and GLJPanel test script Cleanup atomic JARs; Removed Debug/Trace pipelines of common profiles Bug 651: Mesa3D: GL_INVALID_ENUM in glGetIntegerv(pname=GL_MAX_TEXTURE_IMAGE_UNITS) ; Add unit test / bisect Mesa3D GLContextImpl: Make createContextARBImpl/setGLFunctionAvailability more robost while detecting erroneous queried GL version FBObject, minor edit: GL2GL3.GL_MAX_COLOR_ATTACHMENTS -> GL2ES2.GL_MAX_COLOR_ATTACHMENTS *Drawable impl. DEBUG: Add getThreadName() to debug out. Fix Bug 642 TestJSplitPaneMixHwLw01AWT (AWT-GLCanvas); Robustness GLContext/GLDrawable Bug 642: Refine test case, adding Hw/Lw mix intermediate Container test to avoid remove/add of GL component on Window when moving splitter. Bug 642 / Refine 1ae0737f34143a5ed655bd9c4d5fe9b0437c7774: GLContextImpl.makeCurrent() - Handle !drawable.isRealized() early, don't catch 'create' Exception Fix regression of commit b8a8fc24a3afb0cb06a31504bdea1a98b8f00ef4: Cache ShaderState for share ctor. Bug 642 / Refine 1ae0737f34143a5ed655bd9c4d5fe9b0437c7774: GLCanvas.displayOnEDT: Also check null!=drawable Fix commit 811e3791b98fea0dfa3b7d301cb532c54df8dc82: Make AWT usage Java6 clean (was using Java7 stuff); Note: Need to test! Fix 13168c99ff9e8bf71c83f1be7afee270a3db4074 / 811e3791b98fea0dfa3b7d301cb532c54df8dc82: AWT-NEWT Modifier mapping - part-2 Move pre-existing NEWT event test to new dedicated package package: com.jogamp.opengl.test.junit.newt.event AWT-NEWT Modifier mapping and test: part-3 (NEWT BUTTON MASK always, ..) AWT-NEWT Modifier mapping and test: part-3 (Fix unit tests) NEWT peserve 'mouseButtonModMask' to be sent for all mouse- and key events. TODO: NEWT Event Factories. Misc: Cleaned up spacing. WT-NEWT Modifier mapping and test: part-4 (Fix unit tests): BaseNewtEventModifiers ignore more events (clicked, wheel, entered, exited); Fix TestNewtEventModifiersNewtCanvasSWT SWT-Display thread. NEWT/Android: Fix NewtBaseActivity.getWindow() recursion if used w/o delegated Activity, i.e. our ActivityLauncher Misc OSX/SWT: OSXUtil.RunOnMainThread(..) refinement; Fix Test*NewtEventModifiers for SWT (TestNewtEventModifiersNewtCanvasSWT) Test*NewtEventModifiers*: Clear 'clearing' events on thread - @Before/@After -> execOffThreadWithOnThreadEventDispatch NEWT/Android: Fix NewtBaseActivity.getWindow() recursion if used w/o delegated Activity, i.e. our ActivityLauncher (Completes commit a35beb22d712b6da85a794115b19d484a12c8643) Android build scripts: Fix env. name ANDROID_SDK_HOME -> ANDROID_HOME adb-launch-main.sh: ANDROID_SDK_HOME -> ANDROID_HOME AWT GLCanvas: More strict GLDrawable realization [on AWT-EDT], skip if creation is not possible on AWT-EDT. Adapt change of commit d93c5d23e304ea20e868595748f92a5bef4f5703 to unit test (GLCanvas realization point) Fix Bug 658 (Mesa 9.0 3.1 Intel compat quirk, 3.1 core only) ; No PROFILE_ALIASING compat -> core ; Fix setGLFunctionAvailability(..) failure path @ profile query Cleanup / Simplify: setGLFunctionAvailability(..) / createContextARBVersions(..) GL Version Validation setGLFunctionAvailability(..): Unify GLInt and GLString version validation; Refines commit b6ae4e4dcbd740dd57de9dc3280d943e98cdaa76 SharedResourceRunner: Always dump Exception if catched @ creation, not just in DEBUG case. Bug632: Test NEWT Child Window Translucency (X11/Windows) .. NEWT WindowsWindow.c: UpdateInsets: Fix determiniation of isUndecorated - WS_SYSMENU is _not_ an indication! Enhance PMVMatrix: Use FloatStack to implement PushMatrix and PopMatrix (Bug 657) Update PNGJ 0.85 -> 1.12 (w/ interlace read support) ; Added PNG Interlace read tests (TestPNGTextureFromFileNEWT) Fix GLArrayDataClient createGLSL(..) 'name' setting; Also adds equal behavior for Client/Server FFP usage. GLAutoDrawable/AnimatorBase: Add ExclusiveContextThread (ECT) feature; AnimatorBase: Add setModeBits/MODE_EXPECT_AWT_RENDERING_THREAD; FPSAnimator: Make transactions deterministic. Minor: GLWindow fix size validation; GLContextImpl: Remove hold ctx lock count constraints at destroy. Add old Olympic demo from GL4Java - Make it use ES1 and suitable for FixedFunctionEmul. build/test: newt-headless shall exclude AWT/SWT Adding GEOMETRY_SHADER support in ShaderCode, adding core GL3/GEOMETRY_SHADER unit tests. ; Simplified GLContext version number Move all Exclusive Context Thread (ECT) tests to it's own package to de-clutter core test package Fix Bug 666: GLBase.java line 438 contained some invalid trailing characters (regression from e7064ece049705e013d80985eae698ce0ee3c4e3) NEWT-MouseEvent getWheelRotation() API Update - Fixes Bug 659: NEWT Horizontal Scrolling Behavior (OSX, X11, Win32); Bug 639: High-Res Mouse-Wheel ShaderState: Reduce hash-map utilization at shader switch (reset uniforms/attributes); Refine API doc. README: Add new IRC channel, mark Jabber deprecated README: Add new IRC channel, mark Jabber deprecated Sync LauncherUtil w/ GlueGen commit 1b9f0739ecc25105384b557afa698c42e08d4cc6 (adding main-cmdline-args) Fix Bug 669: Recursive GLContext makeCurrent()/release() NEWT/Android: Full Lifecycle for WindowDriver; Using static ViewGroup; AWTRobotUtil: More tolerant for non AWT env.; Fix adb-launch-* Adapt to change 5060b728b26a89a14367f8fca9f4eb7968f719ca: ShaderState.uniform(..) returns false if no location available. TestSwingAWTRobotUsageBeforeJOGLInitBug411: Fix 'chicken egg' init problem w/ AWTRobot, i.e. NativeWindow not yet initialized. Android/NewtVersionActivity: Dump avail. GLCaps / Use stderr, since log would cap 'em (too long). Android: Allow selection of native window formats RGBA8888, RGBX8888 and RGB565; Fix HiSilicon/Vivante/Immersion.16 EGLConfig selection (zero depth buffer @ visualID) Bug 665 (part 1) - Allow dis-association of GLContext's GLDrawable .. FBObject/GLFBODrawableImpl: Silence stderr if not in DEBUG mode relying on application handling verbosity and debug output [EGL/X11]Context: Enhance DEBUG output for failed makeCurrentImpl(..) ProxySurface: Add 'NativeSurface getUpstreamSurface()' ; ProxySurfaceImpl: Don't cache 'displayHandle' WGLContext: Enhance DEBUG output for failed makeCurrentImpl(..) Refine GL[Auto]Drawable 'realized' state in API doc, and relax it's realized requirement in GL[Offscreen]AutoDrawableDelegate* Animator: API doc cleanup, isPaused()==true if drawablesEmpty (Animator == FPSAnimator behavior), resume after add ifPaused() Fix misc API docs .. GLDrawableHelper.invoke: If drawable is !realized -> deferred execution Fix regression of commit b738983638703bb721ee4c9820c8ef43e2252e73, possible 'pulling' display's device - check references Bug 665 (part 3) - Allow dis-association of GLContext's GLDrawable .. - Add EGL/ES2 tests, attempt to fix wrapped EGL case Add WindowClosingProtocol impact detail on WindowListener.windowDestroyNotify(..) Fix Bug 678: Deliver key-char value for printable chars on all KeyEventListener (-> On Windows as well) OSX unit tests: Disable OSX 32bit tests (redundant - prepare for Java7 tests) Add OSX Java7 build/test scripts Fix AWTKeyAdapter: Reorder AWT events to NEWT order - also ensuring TYPED is always sent. Bump Android NDK to android-ndk-r8d Android: Adapt to cleanup of ClassLoaderUtil/LauncherUtil - GlueGen Commit b47d0d92dd222999bf38633de1cec8de6a7ad369 Android GearsES2 Launcher: Revert debug flags .. Fix Animator resume() wait-condition (drawablesEmpty didn't wait for pausedIssued); Update TestGLWindows02NEWTAnimated (isPaused()) GLContext: *TRACE_SWITCH spacing Java2D OGLPipeline(GLJPanel+Threading): More fine grained control about OGL threading and resource usage Fix OSX CALayer Bug 690 and Bug 691: Occasional Freeze on CVDisplayLinkStop; Layers and native GL-Context are _not_ Released ; Java Side wait for Main-Thread Fix Bug 691 (part-2): Extra '[subLayer release]' is wrong, since 'CGL.releaseNSOpenGLLayer' triggers release - but very late w/ AWT usage. Fix Bug 675: NPE w/ Beans.setDesignTime(true) ; Fix GLCanvas.destroy(): Don't issue removeNotify(), delete drawable and context only! Refine unit test for Bug 691: Add onscreen/offscreen tests [if available] ; Move tests to 'acore'. Fix Bug 691 (part-3): NSOpenGLLayer::openGLContextForPixelFormat(..) on main-thread deadlock'ed due to locked shared context X11/WGL: Better Exception Message for failed ARB context creation if profile > GL2 (OpenGL >= 3.0.1) was requested. Fix TestWindowClosingProtocol01AWT: GLCanvas closing operation 'destroy' will no more call removeNotify() - see commit 3567e7e8519f82720f98b0b2ac30456cbfeddc0d Fix Bug 644: AWT GLCanvas and GLJPanel ignored their visibility state Uni Tests AddRemove: Remove dead code .. TestWindowClosingProtocol01AWT: More relaxed timing reducing false positives NEWT/OSX: Fix Memory Leak ; Fix Occasional Crash Duer to Lifecycle Ops not on Main-Thread. build-test.xml: Move 'junit.run.newt.awt' up in file; 'junit.run.newt': Exclude *AWT* and *SWT* (similar to 'junit.run.newt.headless') Add proper copyright header w/ all remarks regarding re-distribution etc, similar to other JNI headers OSX/Java7 Cleanup: Remove JavaNativeFoundation dependency; NativeWindow-JAWT: Remove c.fixup.jawt.version.macosx (redundant, libjawt.dylib is rpath'ed always) Unit Tests: Use Property 'jvmJava.exe' ; Add target 'junit.run.local.java7' (if="jvmJava7.exe") Unit Tests: Add 'results-java7' to check-junit.sh (Completes commit fc9539d50c12f9def7a3babde7384e3d38f61721) Bug 678 (fix), Bug 641 (API + Windows Impl.), Bug 688 (prep): Update NEWT's KeyEvent handling while distinguish keyCode (kbd layout independent) and keySym (kbd layout dependent) Unit Tests NewtEventModifiers: Attempt to make them more robust for that one particular Windows-AMD Test Node Unit Tests NewtEventModifiers (2): Robostness Unit Tests: Add [manual] demo cases for SWT (TestGearsES2SWT, TestGearsES2NewtCanvasSWT); Add more AWT/NEWT layout scenarious. NEWT/OSX: Fix 'locationOnScreen' usage and use proper client-area window screen position (Fixes resize -> position) NewtCanvasAWT: Fix size determination, i.e. take newt-child's size into account if no preferred size is given. OSX/Java7/CALayer + JAWT: Partially Fix AWT/NEWT CALayer 'out of sight' bug, where our CALayer is moved out of the visible area Fix NPE of Bug 679: The ctx was released w/o fully initialized (no proper ARB ctx of expected version ?) TestGearsES2SWT: Fix NPE Fix GLVersionNumber (Bug 679): Don't use a subsequent version number if not valid! Relax GLContextImpl.setGLFunctionAvailability(..)'s Version Matching if testing major < 3 versions. (Bug 679) Bug 548 and Bug 679: Add 'glFlush()' requirement (OSX < 10.7.3 && NVIDIA GPU) to GLRendererQuirks and perform only if exists. GLProfile: Adding convenient query for highest programmable core only GL profile TestNewtEventModifiers*: Robostness (uhh) Unify wait-clear result code - fix SWT event dispatching. Fix CALayer pos/size and animation. NEWT/OSX Fix: Child positioning ; NewtCanvasAWT: Change reparent time and use actual component size while setting min/pref. size at setup Fix NEWT/AWT WindowClosing Unit Tests ; Review/Cleanup NEWT WindowClosing mechanism Fix Bug 677: NEWT/Android: Add support for Android's KeyEvent.KEYCODE_BACK NEWT WindowImpl: Cleanup redundancies in destroy() and windowDestroyNotify(boolean) NEWT: Harmonize MouseEvent Pressure (API Change!) Fix AWT EDT Deadlock in AWTWindowClosingProtocol, regression of commit 808a9a27a8c1c9e0a6701a8dd81d51f8daa8129d Adapt to GlueGen's relocation of AWTEDTExecutor - GlueGen commit 99a50b38f5650fedca0f207e03706ffa9492e50c All AWT Related Unit Tests: Call AWT 'frame.setVisible(..)' and 'frame.pack()' on AWT-EDT - Use dedicated test TestBug572AWT for testing otherwise. TestBug572AWT: Add test case w/ setting GLCanvas's size and frame.pack() on AWT-EDT and current thread. Fix Bug 695: WGLExt.wglChoosePixelFormatARB causes buffer underflow due to a higher reported number of configs than buffer size TestBug694 -> TestBug694AWT so it properly gets picked up by the AWT unit test ant task. GLJPanel: Add DEBUG_VIEWPORT flag, Add USE_GLSL_TEXTURE_RASTERIZER flag, DEBUG reshape trace. GLJPanel: Updating GLJPanel documention w/ current mode of operation Fix buggy unit test for Bug 694: The unpack alignment has to be considered! Fix Mix2TexturesES2 unit tests: Use synchronized texID access and add glFinish() after demo -> FBO rendering on or off thread. *External*Context Impl: Remove unused 'lastContext' field, incl. their makeCurrent() and release() override. MemoryObject: Use GlueGen's new HashUtil Bug 665: Allow re-association of GLContext/GLEventListener to a GLDrawable (Part 4) Bug 665: Allow re-association of GLContext/GLEventListener to a GLDrawable (Part 5) Minor Changes: EGLDisplayUtil: Add stack trace in DEBUG mode for opened DPYs; JAWTWindow: Add JAWT info in toString() GLEventListenerState: Moved to public package 'com.jogamp.opengl.util' Fix TestParenting01NEWT: Since recreational reparenting resets the fps-counter, wait for a few frames! OSX/CALayer: Revise CALayer 'RunOnMainThread' utilization, avoiding deadlocks OSX/CALayer: Simplify FixCALayerLayout()/layoutSurfaceLayer() call, no more need for explicit call Fix NEWT WindowImpl reparent-recreate w/ GLEventListenerState: Bug introduced w/ commit e2506d7663b752f00f0a98f793ebad52e65bd1e3 Remodel OSX/CALayer Threading (commit 896e8b021b39e9415040a57a1d540d7d24b02db1): Run on main-thread w/o blocking ; Misc Changes Adapt to GlueGen commit b1eb7ca6b9d7dec7ff62c1f1e8ef0a0545724d2f: Function- RunnableTask adds PrintStream 'exceptionOut' argument in ctor. NativeWindow OSXUtil RunOnMainThread: Use daemon attachment and do not detach; Add RunLater0(..) OSX CGL: Don't issue [NSOpenGLContext clearDrawable] for [NSOpenGLContext setView: view] which breaks pbuffer; Add [NSOpenGLContext clearDrawable]. MyNSOpenGLContext::dealloc: Avoid 'invalid context' OSX/CALayer: OSX/CALayer Threading Part3 - Run CALayer ops in a streaming design on main-thread w/o [infinitive] blocking OSX/NEWT: Following CALayer streaming design, i.e. issue NSWindow/NSView Ops on main-thread w/o blocking; NEWT/WindowImpl: Volatile multithreaded mutable values GLJPanel: No need to utilize AWT Component's default ImageObserver code - pixel data is ready when invoked. MacOSXCGLContext: Remove Debug output OSX/NEWT: NSWindow/NSView Ops on main-thread w/o blocking - Part2 Rename PNG test files and add RGBA variations (To be used by TestPNGTextureFromFileNEWT, etc) Newt PNG test file locations TestPNGTextureFromFileNEWT: Use new PNG test file locations, add RGBA tests and use alpha in drawable PNGImage: Cleanup code and reuse scanlineRGBA buffer in indexed mode. Add DEBUG property 'jogl.debug.PNGImage' TestGearsES2NEWT/TestGearsES2NewtCanvasAWT: Add -noanim option to manually validate Bug 649 OSX/NEWT: Fix native window parenting freeze, invisible/orderOut0, Position bugs w/ parenting MacOSXCGLContext: NPE in DEBUG mode while releaseNSOpenGLLayer on main-thread, drawable maybe null already OSX/NEWT: Fix visible -> false when closing and reparenting window. This lead to non functional recreational reparenting. NEWTEvent: Add isConsumed() and setConsumed(boolean) methods to simply usage, using the existing consumedTag attachment for compatibility and efficiency. NEWT/Android: Fix BACK button implementation, use different KeyCode mappings and allowing native action to be suppressed. NEWT/Android: Remove KeyEvent.KEYCODE_HOME handling, since it doesn't work - i.e. cannot be intercepted this way. Add GLStateKeeper handling GLEventListenerState preservation and restauration for GLAutoDrawable Animator: Cleanup DEBUG output NEWT/Android WindowDriver.closeNative0(..): Catch Exception at surface destroy allowing to continue destruction. NEWT/Android (Bug 665): Add Support for GLStateKeeper ; onPause() always destroys ; Recognizing all GLAutoDrawable's GLAnimatorControl for pause/resume ; Use GLAnimatorControl instead of Animator NEWT/Android: Fix suspense regression of commit d514ecbf052d013ea8c0982c490757678075a9ea NEWT/MouseEvent: Refine MultiTouch Event Spec regarding associated 'action' pointer Index; Add PointerType[PointerClass]; Add 'wheelScale' Attribute; Android/NEWT MouseEvent: Fix Delivery of MultiTouch PRESSED/RELEASE; Fix Detection/Processing of 2-Finger-Scroll Gesture ; GearsES2: Add NEWT based 'zoom' gesture detection. Newt/MouseEvent: Add 'float[3] getRotation()', getWheelScale() -> getRotationScale(), refinement of commit 18cb57246372eda72c25a5cd9a69a873bdf09489 Android/NEWT MouseEvent: Fix Detection/Processing of 2-Finger-Scroll Gesture - Part 2 GLJPanel: Refine API doc NEWTEvent: Fix toString message - add comma Unit Tests: Unify 'AWT Robot Key Press/Release', waitForIdle, action, delay, waitForIdle ; TestFocus0*: Wait until closed after win.destroy(). PNGImage: Add license header ; TestPNGImage01NEWT package move .. SharedRessourceRunner: Add isDeviceSupported(..) query before spawn off thread, allowing a more gracefull detection of n/a GLX on X11 Complete 9a4fcc7ea4ec61e4ceed791acced734ac04ea270: SharedResourceRunner.Impl.createSharedResource(..): isGLXAvailableOnServer(..) call redundant since checked upfront at isDeviceSupported(..) GLStateKeeper: Add clearPreservedGLState() NewtBaseActivity: Perform cleanup() even on onCreate() due to possible call w/ initialized states (App process is killed for memory exhaustion etc) NEWTGearsES2Activity*: Adding property to enable 'process kill' behavior (memory and killSelf) Adapt to new version scheme, see GlueGen a3f2ef50ad33c58a240a17fcf03e415d772207c3, etc; Fix NewtVersion, NativeWindowVersion and NewtVersionActivityLauncher NewtBaseActivity: Move setVisible(false) from onPause() -> onStop(), since only onStop() declares invisible status. onPause() could imply other non fullscreen activity on top. Fix Bug 671: Add JPEG Decoder w/o AWT Dependencies NewtCanvasAWT: Cleanup up private method calls; Attach/Detach JAWTWindow's SurfaceUpdateListener to NEWT Window when it gets attached/detached. OSX CALayer minor edit: Call [super setFrame..] directly JAWTWindow: Issue component.repaint() after attachSurfaceLayer(..), otherwise no rendering result might be visible w/o Animator OSX/CALayer Threading Part4: Stream all JAWT Root CALayer Operations on OSX Main-Thread OSX CALayer/NewtCanvasAWT: Force relayout of component (size +1, size -1) when attaching NEWT Child to avoid false CALayer position. OSX CALayer Unit Tests: NEWT child is destroyed if NewtCanvasAWT is disposed/removed, due to offscreen/onscreen transition SWT unit tests: Sort w/ AWT and Headless - Fix threading w/ AWT. Bug 713: Handle broken EGL setup - Catch all Exception types, not only JogampRuntimeException at *DrawableFactory* instantiation trial Bug 707: Fix NEWT EVENT_MOUSE_EXITED not sent on Windows - Regression of commit 85338858f5c58694fa88e77df1386d0556887944 TestGLAutoDrawableGLCanvasOnOffscrnCapsAWT: Wrong test comment, no NEWT involved Bug 678: Differentiate ALT (left) and ALT_GRAPH (right) on X11, EventDev, Windows and OSX Bug 714: Add GL_COPY_READ_BUFFER_BINDING and GL_COPY_WRITE_BUFFER_BINDING, which were added to spec post release. Bug 709: Testing texured demo w/ FBO, comparing w/ onscreen - No corruption. Bug 641 NEWT: X11 Deliver keyCode layout independent, keySym layout dependent and UTF-16 keyChar value NEWT/Native: NewtCommon_GetJNIEnv(..) adding 'asDaemon' flag, used by all OSX JNI attachments to save time since detachment is skipped. Bug 641 NEWT/X11: Deliver 'J_VK_WINDOWS'; keySym is layout independent for dead-keys (zero keyChar); For 'unshifted' keySym's also unmask Ctrl and Mod* states NEWT/OSX: Remove USE_SENDIO_DIRECT conditional compilation, by now it's clear we need to enqeue the events NEWT KeyEvent: More tight definition of isPrintable(), i.e. must have defined keyCode [and keyChar]; VK_KEYBOARD_INVISIBLE -> isActionKey Bug 641 NEWT/OSX Deliver keySym, derived from the current layout's lower-case UTF-16 character. Bug 641 NEWT: Refine definition of keySym, i.e. for printable keys, keySym is the 'unshifted' UTF-16 char value ; Add isPrintable() to toString(). Debug Messages: Unify getThreadName() usage and 'Catched Exception' messages GLDrawable: Refine API doc; GLDrawableImpl: Balance createHandle()/destroyHandle(); Handle LOCK_SURFACE_CHANGED in lockSurface() ; GLContextImpl.makeCurrent(): Fix drawable handle validation. GLContextImpl.destroy(): Fail fast in case of invalid dawable [null, !realized] and makeCurrent() failure. NEWT KeyEvent: Use UTF-16 UniCode for key-code and key-symbol exposing well defined key encoding and simplify usage. LinuxEventDeviceTracker: Reapply changes from commit b13868b612689307ebf4e46ee4ede2fd0560e504, which got lost via my merge conflict resolution (duh). NEWT/WindowsWindow.c: Simplify pointerVisible branch for calling SafeShowCursor(..) Bug 697: Fix commit 4db745e84fac610f85ab085e5c147e571e82e008 - Not compile clean! Also brought back my safe showCursor logic. GLContextImpl: destroy(): Fix null drawable check; makeCurrentWithinLock(): Add drawable size validation before attempt to create context; MacOSXCGLContext: Explicit exception for Null AttachGLLayerCmd. FBObject.init() uses safe 1x1 size like reset(..) to behave equal; GLFBODrawableImpl.contextMadeCurrent(ctx, true): Throw exception if !initialized NEWT/AWT: Fix 'AWT driver' to work w/ OSX CALayer ; WindowImpl: 'Object getWrappedWindow()' -> 'NativeSurface getWrappedSurface()' NEWT/AWT-Wrapper-Driver: Fix MS-Windows Case (Use NativeWindow window handle); Use set size by frame only for OSX/CALayer GLES[12] Impl: Cleanup 'checkBufferObject(..)', remove unused and 'avail' argument and 'initBufferObjectExtensionChecks()' Bug 692: Add modified version of Edgar Velazquez-Armendariz's test case for testing alternating VAO and VBO usage. Fix Bug 692: Add tracking of VERTEX_ARRAY_BINDING, and enable allowing a bound non default VAO to pass VBO enabled test, even if VBO is disabled. Fix Bug 705 - Cleanup & Generalize Commit 5b47372590ec715647ebbd75d70c41ec7a64485a ; Close X11 Display in isDeviceSupported() Fix Bug 705 - Validated that Quirk DontCloseX11Display is not required w/ Mesa >= 8.0 Fix Bug 705 - Set Quirk DontCloseX11Display also if using X11 and X11Util has set 'markAllDisplaysUnclosable' (Down -> Upstream) Bug 718: Windows BITMAP Offscreen Fails w/ GLCaps other than simple RGB888 - Refine Unit Tests ; UITestCase.Snapshot: Add RGBA bits to filename. *Capabilities: Cleanup string ctor; GLGraphicsConfigurationUtil: Clean getExclusiveWinAttributeBits(..); WGLGLCapabilities: Add PFD2String(..) Bug 718: Windows BITMAP Offscreen Fails w/ GLCaps other than simple RGB888 - Filter invalid PFD configs GLJPanel.toString(): Avoid NPE Fix Bug 720: Unify all platform specific GLContextImpl specializations; Fix Bug 719 - Windows BITMAP Offscreen Orientation is not propagated through API GLJPanel: setFocusable(true) at ctor to allow keyboard input Bug 721: NEWT/X11 RandR 1.3 Support - Part 1 - Delegate RandR functionality to pluggable impl. for RandR 1.1 and 1.3 (todo) Bug 718: Further restriction of Windows BITMAP PFD's - RGB888 and !alpha only Bug 718: Exclude updateGraphicsConfigurationARB(..) usage for BITMAP (Windows Vista does report BITMAP w/ ARB PFD) type: weather -> whether :) .. it's spring again :) Bug 718: WindowsBitmapWGLDrawable: Requires GLProfile.GL2, fix BITMAP GLCaps ASAP at Ctor instead of setRealized(true); WindowsWGLContext: Exclude ARB creation for BITMAP GLJPanel: Avoid NPE of 'backend' in getChosenGLCapabilities() and DisposeGLEventListenerAction.run() ; Make 'backend' volatile due to possible multi-threading access. Bug 721: NEWT/X11 RandR 1.3 Support - Part 2 - Rename impl class/files, start RandR13 coding. Fix Bug 722: Make GLEventListenerState 'transaction' safe Animator.pause[ surface.lock[ modify ] ] Refine some API docs .. X11GLXContext: Issue XSync(..) after forcing X11ErrorHandle and before glXCreateContextAttribsARB(..) - Mitigate driver bugs Fix JAWTUtil's ToolkitLock: Using RecursiveLock instance covering the AWT lock instead of simple volatile fields (bug). Complete intend of commit cdbf3f42ea530f91639536e03b2c203715c3c300 - Test for null against a temp variable to narrow races Use new toolchain (gluegen 3b7ea9f67487be8f133c19b493b632fc579c5049) Add scripts/make.jogl.all.sh X11 Error Handler: Start quiet; Init: quite = !debug; Internal calls: Pass through errorHandlerQuiet state. Quirk DontCloseX11Display: Only detect w/ X11 NativeWindow System. Fix Bug 706 and Bug 520: Certain ATI GPU/driver require a current context when calling wglCreateContextAttribsARB (Windows) Simplify GLDrawableFactory's SharedResource Query Methods; Move WindowsWGLDrawableFactory Quirks to GLRendererQuirks (NeedCurrCtx4ARBPixFmtQueries, NeedCurrCtx4ARBCreateContext); Bug 706: Confine NeedCurrCtx4ARBCreateContext to [Windows, ATI, driver < 12.102.3); Avoid possible NPE @ GLContext.getGLVendorVersionNumber() GLContext*'s ctxGLSLVersion: Use zeroVersion to denominate uninitialized VersionNumber instead of null, it's get*string returns a zero length string instead of null. Move JPEGDecoder.PixelStorage -> TextureData.ColorSink: Appropriate name + public use Complete commit e7064ece049705e013d80985eae698ce0ee3c4e3: Add getDefaultPixelDataFormat(), complementing getDefaultPixelDataType() Add missing JogAmp (c) note - using date of 1st JogAmp edit. TextureData: Add PixelAttributes and PixelBufferProvider; ColorSink back to JPEGDecode (not general enough) GLReadBufferUtil: Utilizing PixelBufferProvider; Adding AWTGLReadBufferUtil adding BufferedImage support; Demonstrating w/ unit tests. Fix Bug 600 and Bug 721: Adding support for multiple monitors w/ NEWT Fix GLSL Version Exposure: Type in 'static' GL -> GLSL matching, don't set GLSL version if GLSL is n/a Fix GLX: X11GLXContext used wrong FBConfig n/a query; X11GLX*: If FBConfig is n/a force GLX (server) version down to 1.1 to avoid crashes w/ old GLX server (i.e. Mesa 4.*). MonitorMode Unit Tests: Perform 'filterByRate(..)' _after_ 'filterByResolution(..)' (desired resolution) MonitorMode: Fix API doc / comments / names. NEWT Multiple Monitor Mode: Add missing 'collect' impl. for NEWT/AWT impl. NEWT Multiple Monitor Mode: Fix monitorModeChanged(..) event id, WindowImpl.monitorModeChanged(): Resize/position if not fitting into virtual screen viewport. NEWT MonitorMode: Refine 081177f2433be50e3b5d46385c2f0f3f96311ed8: Reduce EDT roundtrip when resize/positioning on MonitorMode changed .. Minor: Typo/Syntax in GLRendererQuirks GLX: Put native ByteBuffer to native-order in 'glXGetVisualFromFBConfig' and minor edits (final, same 'nativeOrder()' call style) GLJPanel: Use PixelBufferProvider AWTPixelBufferProviderInt; PixelBufferProvider: Add 'dispose()' to interface. Add TestGearsGLJPanelAWT, i.e. multiple JPanels w/ GLJPanel running GearsES2 in their own color. GLBuffers: Extract common methods: bytesPerPixel(..) and componentCount(.). Better namings for vars, i.e. compCount, .. etc Refactor: TextureData's PixelAttributes/PixelBufferProvider -> GLPixelBuffer/.. and enhance usage; GLJPanel: Use GLPixelBuffer* API and SingleAWTGLPixelBufferProvider if possible. Fix regression of commit 0a7bf77b8c0765f8a53dc72a8edab8e0496938ff - GLReadBufferUtil's GLPixelBuffer* usage. Ref GLJPanel SingleAWTGLPixelBufferProvider's screenshots. Fix NEWT MultiMonitor Regression: Use case w/o attached monitor, and NPE (Cache) in ScreenImpl.getVirtualMonitorDevice(..). Fix Bug 731: GLJPanel: Access global GLPixelBuffer via SingletonGLPixelBufferProvider, if provided - releasing prev. smaller GLPixelBuffer after resize. Fix Bug 723: Remove VK_KP_ numpad key-codes, use general VK_ key-codes; Respect numpad printable keys; Use keySym for numpad if possible. NEWT: MouseEvent Ctor: Use proper float[] rotationXYZ and float rotationScale arguments. Fix Bug 737: Add shader default precision for GLSL [1.30 .. 1.50[ - See GLSL Spec [1.30 - 1.40]. Fix Bug 711: Align Graphs's Curve Shader programmatically to used GL/GLSL version, following all other internal GLSL usage utilizing ShaderCode. GLSL version determination: Use static GLSL version mapping in case of GLES - Mesa 9.1* fails otherwise since it supports ES3/300 which is returned. JOGL GLSL ShaderProgram/State: Release of an unlinked ShaderProgram shall not throw an exception -> avoid calling useProgram(.., false). GLPixelBuffer.dispose(): Set diposed:=true to allow isValid() to work properly; GLJPanel: Rely on GLPixelBuffer.requiresNewBuffer(..) for each frame, don't use local pixelBufferCheckSize (buggy w/ singleton) Fix Unit Tests Exclusion " if( !GLProfile.isAvailable(GLProfile.GL*) ) { .. } ": Add missing return statement to abort test. Unit Test: Remove unused import Fix regression of commit b2802021acf8aa9b363ebef383c8dc8c8079ffa4 (Bug 711): varying in/out mapping is different in vertex/fragment shader! GLVersionNumber: Fix vendor version parser; Adapt to GlueGen commit 959d6d83ec26152343d538287c02eeebf0dcf238 Complete/Fix GLVersionNumber (81afec4e963ac4372dc2b604d6f91237b81ee6f2): Set 'valid' flag, always set major/minor and strEnd. GLVersionNumber.createVendorVersion(): Only test match result and potentially continue matching if having a pattern-match (don't loop for-ever). Unit Tests: Group *math* tests in own test package ScreenMode Unit Tests: Add wait for screen destroy (off-thread) Bug 747: Allow usage of IdentityHashMap w/ keys: AbstractGraphicsDevice.getUniqueID() and GLContext.getDeviceVersionAvailableKey() Adapt to Gluegen's IOUtil change commit b98825eb7cfb61aead4a7dff57471cd2d2c26823 FloatUtil: Add in-place multMatrixf (since we mult line by line, we can multiply in place). Will be used by PMVMatrix. Fix Bug 748 - PMVMatrix gluProject and gluUnProject broken w/ backingArray (default) ; Also: Use FloatUtil in-place multMatrixf. HowTo Build: Ubuntu -> Debian Adapt to GlueGen commit 1a01dce6c42b398cdd68d405828774a3ab366456 GLContext: Make 'deviceVersion' fields final. Reviewed by Harvey. FontConstructor: Hide the exposed strings and add them in class API doc to minimize footprint. Review of Harvey. Fix Bug 750: Leaked X11 ColorMap for each created X11 Window in NativeWindow (dummy) and NEWT VectorUtil, Quaternion: Use 'final' qualifier if possible Bug 733: Refine Test case: warp-random at display, and warp-center at mouse-leave. Fix my sloppy commit f50caa5241b5eef286e8c10b74b5297e5821da2b: Didn't intend to take out the commented out 'final', but to enable the qualifier. Duh! Thank's to Harvey (again) for catching my odd work! TestX11DefaultDisplay: Validate the chosen default device, test only one GLDefault/RedSquareES1; Tested w/ Xvnc4 + build-in Mesa 4.0.4 TestRedSquareES2NEWT: Cleanup Android SDK changes: Add /build-tools/17.0.0 to PATH Mitigate Bug 728: Java Web Start Shutdown: Exception "java.lang.IllegalStateException: zip file closed" on OSX 10.8.3 and Java 1.7.0_17 Fix Bug 745: NPE - QTT definition shall be allowd to _follow_ SOF (frame) - Reference QTT via QTT[] passed to frame, validate after parsing. AWTGraphicsConfiguration: Allow null capsRequested; NewtCanvasAWT: Avoid NPE @ addNotify() w/o newtChild GLDrawableHelper Perf.: Branch into execGLRunnables(..) only if glRunnables.size()>0 MacOSXCGLContext: Use final qualifier for CGL.CGLLockContext(cglCtx) result. Bug 735: Adding Andres test cases for analysis. OSX exposes diff. odd behaviors - See BugXYZ test cases. Bug 735: Bug735Inv4AWT on Java7 is also stuttering! ES3.0 GLContext: Handle ES3.0 GLSL Version Number - Static detection and 'es' suffix. GLFBODrawableImpl: Fix swap criteria, i.e. don't swap in contextMadeCurrent(false) if already swapped by swapBuffersImpl(..), but always swap in swapBuffersImpl(..) if ctx is current and associated. timespec.c/h: Add 'long timespec_microseconds(..)' Fix Bug 753: Stuttering caused by lack of GL resource synchronization between Java GL- and CALayer thread ; Simplify / Fix waitUntilRenderSignal(). Bug735: Bug735Inv0AppletAWT/Bug735Inv1AppletAWT tests: Use shader customization, no Clear required, .. (still don't work w/ CALAyer) Solve Bug 735 Mystery: glViewport(..) was missing - duh :) Bug 735: Fix comment in test, since mystery is solved :) Fix Bug 688: Removal of NEWT KeyEvent.EVENT_KEY_TYPED and KeyListener.keyTyped(KeyEvent) Fix Bug 688: Removal of NEWT KeyEvent.EVENT_KEY_TYPED and KeyListener.keyTyped(KeyEvent) - Part2: API Documentation and Comments Fix TestNewtKeyEventAutoRepeatAWT (Bug 688): Reduce head/tail event check to 2 events (Windows can't produce AR) Scripts: Adapt finding gluegen .. Fix regression of 31e72d2f2d953352b2a8c83368039ecca8139d49: Modifier SHIFT needs to be recognized (-> horiz. scroll) Fix Bug 735: GLAutoDrawable must issue glViewport(..) even w/o GLEventListener ; Optimize GLDrawableHelper's glViewportCall(..) GLDynamicLibraryBundleInfo.shallLinkGlobal(): Defaults to 'true' now, allowing to remove specialized values. JOGLNewtApplet1Run: Defer 'newtCanvasAWT' creation and attachment to applet.start() (only once), working around 'OS X' CALayer positioning bug. NewtCanvasAWT: Issue 'setFocusable(..)' at configureNewtChild(..) Refine 893cf0c8c32edf231dbf418d45d3181532d2402b: Partial revert and issue forceRelayout at end of applet.start(); Cleanup AWTKeyAdapter. Add optional JOAL dependency, enabling JOAL usage for our 'av' package. Note: May be relocated to external project later! Bug 757 (URL / URI conversion for file scheme, encoded path): Make certain core scripts capable of allowing a SPACE character. Bug 758: Fix scripts and ant build files to work w/ Java7 (default now) producing Java6 bytecode ; Apply JAR Manifest tags: Sealed, Permissions and Codebase Scripts: Fix new windows single unit test scripts .. GL ProcAddressTable: Align w/ GlueGen commit f69831574d4927d03d40c330d0b047d8c89622a4 (checkAllLinkPermission() ..) Security: Apply security changes from GlueGen GL*ProcAddressTable: Fix regressions: getField(..) -> getDeclaredField(..), incl. access check; Move getAddressFor() from ctx -> private dbg-handler (sec); FFMPEGMediaPlayer: Missed fetching func-ptr 'glTexSubImage2D'. Fix applet html pages (title) AnimatorBase.setModeBits(..): Only issue initImpl() if required - and throw 'is started' exception in such case; Cleanup brackets. X11Util: Fix comment on markAllDisplaysUnclosable semantics, add 'final', reorder globalLock/isJVMShuttingDown branch/sync NEWT/X11: Proper static initSingleton() sequence. GLWindow: Mention GLStateKeeper's GL state preservation in API doc Fix Bug 761 (part 1/2): Move GLDrawableFactory.shutdownHook -> NativeWindowFactory.shutdownHook, the latter handles customShutdownHooks for NativeWindow, JOGL and NEWT. Fix Bug 761 (part 2/2): NEWT registers one customShutdownHook @ NativeWindowFactory.shutdownHook head, allowing proper resource cleanup. Fix Regression of 889ba9488ca07b59fdcc378642a2dc20676d69a3: GLDebugMessageHandler GL Profile criteria for availability is wrong GLEmitter: Better use of priviledged block in generated GL*ProcAddressTable's isFunctionAvailableImpl(..), getAddressFor(..) Fix NewtCanvasAWT focus traversal for Java7: All unit tests fail w/ Java7, i.e. AWT Component's transferFocus() does nothing if component does not hold the focus. Fix NewtCanvasAWT focus traversal for Java7 (Take 2): Commit 70bf3a4ec44504b86294a332255aaae8d2e86bf4 was not sufficient. Tests: Remove subsequent exceptions .. (not original issue, but annoying while analyzing) Refine cb7118fc875b6722803e4b11d5681671962a8d3a: Unify get next/prev focus component method. GearsES2/RedSquareES2: Detect !GLSL and don't attempt to render in such case. TestGearsES2GLJPanel*: Use GearsES1 is using bitmap - On Windows GDI would be returned! TestGearsES2GLJPanel*: Use Gears (GL 1 based) if using bitmap - On Windows GDI would be returned and neither ES1 nor ES2 features are available. scripts: osx make/test java7/6 fixes TestSWTAccessor03AWTGLn: Fix SWT deadlock on Java7/Windows: Must perform AWT frame close on current thread .. UITestCase: Increase SINGLE_INSTANCE_LOCK_TO from 3 to 6 minutes! Workaroung a Java7 AWT EDT/Robot bug: Validate whether AWT-EDT is alive before certain robot ops. Apply workaround of Java7 AWT Robot.waitForIdle()/EDT bug for all Robot.waitForIdle() calls. NEWT Windows WindowDriver: Suppress LOCK_SURFACE_CHANGED, no semantics in GLDrawable on Windows. Tests NEWTKeyAdapter: Fix log string TestFocus0[12]SwingAWTRobot: Fix Java7 'changed behavior': Relax focus traversal validation checks. NEWT: Don't invoke external keyboardFocusHandler for auto-repeat keys (NewtCanvasAWT, ..) NEWT: EDTUtil.invokeStop(..) gets 'wait' argument, allowing non-blocking shutdown. DisplayImpl.shutdownAll(): Don't block. NEWT WindowImpl/GLWindow: @ JVM Shutdown, force stop animation thread w/o blocking. AWTRobotUtil.*KeyPress/Release: Remove waitForIdle(robot), but call per use case instead. TestFocus02SwingAWTRobot: Fix Java7 'changed behavior': Relax focus traversal validation checks. TestFocus02SwingAWTRobot: Fix Java7 'changed behavior': Relax focus traversal validation checks. TestInitConcurrent0*NEWT: Add TO of 5 minutes Test NEWT Key Events: Add TO of 5 minutes Test NEWT Key Events, TestInitConcurrent0*NEWT: TO 5 -> 3 minutes Disable TestNewtEventModifiersNewtCanvasSWTAWT: Causes sporadic freezes on Window/Linux .. Tek (1): Fix Bug 636: Quaternion multiplication unexpected behavior Xerxes RĂ„nby (11): LinuxMouseTracker: Fix inverted Y-axis & missing button release. Add LinuxEventDeviceTracker used by RaspPi newt/driver/bcm/vc/iv/WindowDriver LinuxEventDeviceTracker: LinuxEventDeviceManager monitor /dev/input/event* LinuxEventDeviceTracker: gracefully manage hot-swap of USB devices. LinuxEventDeviceTracker: LinuxEVKey2NewtVKey(EVKey 0-121) LinuxEventDeviceTracker: LinuxEVKey2NewtVKey(EVKey 122-248) LinuxEventDeviceTracker: Map printable char using KeyEvent.isPrintableKey. LinuxEventDeviceTracker: shift-modifier LinuxEventDeviceTracker: 4 space indentation LinuxEventDeviceTracker: ALT, ALT_GRAPH & CTRL modifiers. FFMPEGMediaPlayer: Fix mpeg seek using time_base.num 1 , time_base.den 90000 jthedering (1): Added a condition to skip updateGraphicsConfigurationARB when non-hardware-accelerated capabilities are requested, because only updateGraphicsConfigurationGDI provides software rendering capabilities. rhatcher (1): Fix for JOGL bug 629, and added new unit tests.