Harvey Harrison (4): jogl: fix bit shift error in LEDataInputStream jogl: remove infinite loop in Path2D.contains(AABBox) jogl: fix bad format string in PngChunkTIME jogl: use Boolean TRUE/FALSE constants for values that will be immediately unboxed Sven Gothel (202): Adapt to GlueGen ARM Build Changes 422d7a5eb53fca6642ebf4e8910d8b0311bb2597 NEWT: Adding support for BCM VC IV (Broadcom VideoCodec 4) and Linux console mouse tracker Include NEWT driver BCM_VC_IV to 'all' JAR (completes 0ca481381b51b4082ac2b3bbae80cfaf5b60c3b8) EGLDisplayUtil: Workaround (latest) PVR 540 EGL regression where 3nd EGLDisplay's eglInitialize(..) fails ; Fix EGLDrawableFactory.getEGLSurface() EGLGraphicsConfigurationFactory: Fix platform w/o GLX but X11 window handle. Fix FFMPEGMediaPlayer: Use GL_ALPHA (texture format intern/data) instead of GL_RGBA/GL_ALPHA ; Load dedicated native libav/libffmpeg Robostness: GLDrawableImpl's contextMadeCurrent()/contextRealized() ; GLFBODrawableImpl.contextMadeCurrent(false), OffscreenAutoDrawable.setSize(..) Robustness: FBObject or reset(..) Fix EGLDrawableFactory.getEGLSurface(..): Catch WrappedSurface case w/ EGLDevice and EGLGraphicsConfiguration - Regression of 43a473b2005d7f59a7f4f5b8bc7ca9ae88b4e894 Robostness FBObject / GLReadBufferUtil: Ignore pre-existing GL errors - remove GL error checking in FBObject bind/unbind. GLDrawableFactory.createGLDrawable() offscreen: Fix caps - set double-buffer := false to be consistent w/ GLDrawableFactory.createOffscreenDrawable() Fix EGLDrawableFactory.createOffscreenDrawableImpl(NativeSurface): Validate passed NativeSurface 'target' via getEGLSurface(target) Fix GLCanvas's JAWTWindow reference ; Add ES2 test in TestAWT01GLn ; Ubuntu 12.04/Pandaboard(Omap4, PowerVR SGX 540) 103/108 tests passed (before freeze) of 124 total GLProfile/NativeWindowFactory: Remove deprecated argument 'firstUIActionOnProcess' of initSingleton() method NEWT Platform Driver: Uniform impl. class names [DisplayDriver, ScreenDriver, WindowDriver] to reduce complexity and programatic selection. NativeWindowFactory.getNativeWindowType(..): Return canonical string representation allowing proper use of ref. comparison '==', instead of 'String.equals()' Fix bcm_vc_iv.h: redefinition of typedef ‘DISPMANX_ELEMENT_HANDLE_T Fix missing NEWT driver class name change - regression of a694cadca4ab72481e777222f412f006f973f77e NEWT Windows.closeNativeImpl(): Remove 'GDI.SetParent(windowHandleClose, 0)' for NewtCanvasSWT workaround - not required anymore Update TODO ; Update JOGL-DEPLOYMENT.html w/ new jar names and added applets crossref userguide/deployment Fix EGLDrawableFactory ES1/ES2 detection for !pbuffer ; Misc robustness changes for GLDrawableFactory .. Fix/Workaround: For BCM_VC_IV EGL (alpha) configuration GLContext: Remove integer-key based attach/detach object - use String based (minor API change) Fix Android/NEWT WindowDriver: Add missing eglDestroySurface() in closeNativeImpl(); Complete visibleChanged() in reconfigureWindowImpl() even if resize or reposition can't be handled Fix Android Power-suspend and Power-resume Android: Bump version.code: 914011 Fix Capabilities ambiguity and explosion of queried available-list; Add FBO availability detection for EGL, WGL and OSX. Windows scripts: bump to 1.6.0_35 Cleanup shutdown mechanism ; Fix X11/ATI SIGV at shutdown ; EGLDisplayUtil: Check for leaked display handles NEWT EDTUtil: Complete AWT and SWT impl. w/ Newt event dequeue thread (NEDT) NEWT AWT Driver: Remove flashing (clear background @ update/paint method) ; Proper canvas size and direct events. Fix window mode attribute bit FBO_BIT usage in platform dependent code (map it to native type) ; OSX Caps selection ; WGL/GDI BITMAP fix Seamless Integration of an FBObject based GLFBODrawable as GLOffscreenAutoDrawable.FBO and as an OffscreenLayerSurface's drawable (OSX) - Fix Bugs 569 and 599 Disable double-buffer mode when offscreen-bitmap is chosen, remove dbl-buff bitmap test OSX: Capture 'invalid drawable' message cause by NSOpenGLContext::setView(NULL || incomplete-view) ; Add missing [ctx release] in MyNSOpenGLLayer ; Misc Added very basic unit test of 1 GLProfile initialization OSX: Disable TestSWTAccessor03AWTGLn - NSLocking issues w/ SWT/AWT .. Adding test case for Bug 611: On Windows XP is a performance issue, after JOGL initialization there seems to be a huge time lag when trying to open the Desktop folder. Fix Bug 601: Harmonize order of key events incl. auto-repeat and adding AUTOREPEAT_MASK modifier bit. Refine InputEvent toString(..) and list modifiers by name. Complete 646714d3dab87396b9a3119bf90ca26e0b1c97ce / Fix Bug 601: Add missing enqueueKeyEvent(..) in WindowsDriver; Fix API doc typo. Analyze crash of shared context each running in multiple threads, disabled test for OSX > 10.7.0 Anotate focus tests in regards to OSX stability .. sporadically won't gain focus and receive keyboard input via AWTRobot Fixes Bug 615 - X11: Use proper screen index/name for shared resources and device denominated 'mutable' surfaces (dummy, offscreen, ..) Documenting Bug 586 unit test, typo in doc Fix non NIO direct GL semantics: Restrict certain GL function to NIODirectOnly (again) Fix Bug 612: glVertexAttribIPointer/glVertexAttribLPointer are BufferObjectKind (VBO) and needs a RangeCheck as well Make GLBufferStateTracker more robust: Catch GLError on Get(), causes INVALID_ENUM w/ pname GL_PIXEL_UNPACK_BUFFER_BINDING on GL 3.0 Mesa 8.0.4 GLReadBufferUtil, ShaderUtil: Catch GLException (and dump if thrown), to increase robustness $ glReadPixels and Get NUM_SHADER_BINARY_FORMATS FBObject cleanup / review: strings, simplified re-attachment, removed redundancy, adding quirk. GLFBODrawableImpl: Fix garbage @ swap, add [disabled] reset-quirk for testing OSX CALayer / MacOSXCGLContext: Remove pbuffer swap garbage; Split pbuffer/FBO revalidation/redraw; Don't sync @ needsDisplay FBO tests: Add singleBuffer cmd-line option for offscreen-layered tests; FBOMRT: Allow test w/ only one attachment number (sure not MRT then) Add GLRendererQuirks; Fix shared EGL/ES resources; NativeWindowFactory/NEWT: Use relative sub-package names in NativeWindowFactory's TYPE_* strings, not NEWT's; NEWTFactory: Use default NEWT package name if rel. 'path'. MacOSXCGLDrawableFactory: Cannot use shared context to retrieve quirks since it's transient, store it. MacOSXCGLContext: Fix missing initialization of 'needsSetContextPBuffer' if not offscreen-layer. FBObject: Small cleanup of freeColorbufferImpl(gl, i) -> freeAllColorbufferImpl(gl) Fix Bug 621, JVM Crashes During X11 Shutdown while closing all unclosed display connections. Fix Bug 616: X11: Remove XInitThreads() dependency while cleaning up device locking, resulting in a native-lock-free impl. FBObject: Clarify reset(..), resetSamplingSink(..) ; Rename syncFramebuffer(..) -> syncSamplingSink(..) GLXUtil: Lock X11 Device NEWT X11 ScreenMode: Ignore invalid rotation event NativeWindow/X11 + NEWT/X11: Cache 'isXineramaEnabled()' to reduce X11 server roundtrips. Texture: Clarifiy API doc of getTextureObject(GL) X11 NativeWindow: Fix Error and IOError handler, i.e. NPE checks and no JVM dependency (signal is async); X11Util: XSync w/ discard reusable Display when queue-in. Adding Mesa Quirk 'NoSetSwapIntervalPostRetarget': SIGSEGV on setSwapInterval() after changing the context's drawable w/ 'Mesa 8.0.4' dri2SetSwapInterval/DRI2 (soft & intel) GLDrawableHelper.init(..): Avoid double reshape if subsequent display issues reshape GLContext.makeCurrent(): Clean API doc Misc X11: Add GLX_MESA_swap_control; GLXExtensions (private); X11GLXContext commented out GLX_MESA_swap_control; native test of Mesa context-retarget bug, cannot reproduce yet. Cache XineramaIsEnabled(dpy) per display-name in X11Util minimize triggering ATI driver bug of sporadic XCB errors and to reduce server roundtrips. Workaround for Bug 623: Sporadic XCB assertion failures w/ ATI proprietary driver and w/o native X11 locking Bug 623: X11Util adds property 'nativewindow.debug.X11Util.ATI_HAS_NO_MULTITHREADING_BUG' to disable GlobalToolkitLock workaround for testing. X11Util: Detailed closing information only in DEBUG mode, just print summary NullToolkitLock.validateLocker(): Throw exception if locking is required (detecting impl. bugs) test script: remove deleted unit test JAWTUtil ToolkitLock: Add lock counter to make lock validation recursive (Fix regression of commit 92398025abdabb2fdef0d78edd41e730991a6f94) Relax Bug 613 workaround of commit 92398025abdabb2fdef0d78edd41e730991a6f94 Fix commit fbe331f013608eb31ff0d8675f4e4c9881c9c48b (Bug 616 - Remove XInitThreads()) FBObject/GLFBODrawable: Debug / glError detection GLRendererQuirks.NoDoubleBufferedPBuffer: Set if ( mesa || gallium ) && hwAccel Misc: Add commented-out NEWT X11/XCB-Event and X11ScreenRandR1[13] compilation ; ... NativeWindowFactory: Remove 'remedy' of Bug 613 Commit 92398025abdabb2fdef0d78edd41e730991a6f94 GlobalToolkitLock for create/destroy Misc: tests.sh Fix regression of fbe331f013608eb31ff0d8675f4e4c9881c9c48b [Remove XInitThreads()] Update PMVMatrix/GLMatrixFunc API doc and refine PMVMatrix update / get-Mvi/Mvit-Matrix operation. (Minor API change) ShaderState: Adding Class API doc and removing attached object w/ 'int' key, similar to GLContext change 6d241fc2a46413ee478985d676d2481c5a7ed119 FixedFuncPipeline: Cleanup warnings .. Fix regression of commit a644d779ab19cb1d200ae4ba567b9c042c34b337, cannot compile FixedFuncHook due to removed 'isDirty()' Footprint Stats ; Fix Bug 624 - Compile and generate android JAR files (jogl-all-android.jar, jogl-test-android.jar) if android SDK JAR files are available. ; Split up atomic jogl-util.jar OSX Context: Fix caps determination for on-/offscreen since pformat's NSOpenGLPFAPixelBuffer is ambiguous Fix SWTEDTUtil bug, where it simply doesn't start by an implicit 'invoke()' - No NewtCanvasSWT resize, nor input event delivery. Fix regression of commit fbe331f013608eb31ff0d8675f4e4c9881c9c48b: X11 DisplayDriver dispatchMessagesNative() aDevice NPE at finally Fix Bug 572 (2nd time): GLCanvas.validateGLDrawable() @ display() and reshape() ; GLCanvas.reshape() only if drawble valid ; GLCanvas.validateGLDrawable() also test isDisplayable() ; Fix size validation ; resizeOffscreenDrawable(..) don't validate 'safe' size 1x1 Use helper.isExternalAnimatorAnimating() instead of helper.isAnimatorAnimating() for decision whether to display() now; Minor API comments. UITestCase.snapshot: Add Depth and Stencil bits to filename Fix FBObject DEPTH_STENCIL renderbuffer usage FBO/Offscreen: Use most simple GLCapabilities for GLFBODrawableImpl's underlying dummy surface/drawable Refine ed7d5f2e3fc696d47b10c8d62a071643bf385588, set and restore FBO caps @ setRealized(true/false) already, refine at initialize(true) EGL/X11 DummySurfaceHook: Lock display device at creation/destruction Refine a3cb6bb14f410f67fccf5ccd4cd7ecc66f448389, fix deadlock (regression) Adding unit test for Bug 605 - WORKSFORME, i.e. no unwanted y-flip, so I can just assume it's the SW renderer, flipping. Fix Bug 617 (part2): Workaround buggy GPU driver where FBO reattachment of Colorbuffer w/ diff size leads to GL_FRAMEBUFFER_UNSUPPORTED. Raise NEWT MouseButton Maximum from 6 -> 16 (API Change) Fix GLDrawable.swapBuffer() implementation in AWT/SWT GLCanvas and GLAutoDrawableBase Refine GLDrawable.swapBuffer() fix (AWT/SWT GLCanvas and GLAutoDrawableBase) of commit 455fed40391afe10ce5ffb9146ca325af63b0a49 Fix etc/test.sh - It was still using the old jogl.all.jar file. Thx to Gene Ressler for finding this one. NEWT X11/KeyMap: Add XK_grave -> J_VK_BACK_QUOTE TestInitConcurrent0[12]NEWT: Reduce test w/ 16 threads to 6 for ARM || WINDOWS if not started from console FloatUtil/PMVMatrix/GLUniformData: Move impl. of FloatBuffer matrix toString(..) from PMVMatrix to FloatUtil and make it more generic; GLUniformData toString() also dumps it's matrices. UITestCase: Only print each display/reshape in verbose mode GLBuffers.slice: Preserve parent buffer position/limit and the parent's byte-order for sliced result ImmModeSink: Fix bugs (use glBufferUsage, vboUsage, GL_POLYGON, GL_QUADS) and add API docs. (API Change) TestSWTAccessor03AWTGLn: Add '-time ' commandline option GLUniformData: add null format string to Buffers.toString() GLUniformData.toString() matrix: Add matrix offset .. Simplify GLArrayHandler and reduce VBO sideffects GLArrayData* VBO binding: Adding explicit bindBuffer(..) method, since VBO is not more bound after enableBuffer(); Fix unit test (test VBO bound). ES2Impl fix: Remove code which could imply recursion if !ES2Compatible (although impossible, but looks bad) ShaderState: Clean-up debug / verbose output. attachShaderProgram(..) still issues UseProgram is enable==true, but no program switch. Enhance FixedFuncPipeline: Multi-Texture, Tex-Env, Alpha-Test, Lighting (fix, incomplete still), ShaderSelectionMode, Fix default values Adding unit tests for ImmModeSink and FixedFunctionPipeline (single & combinations, plus texture usage) GLArrayData* VBO binding: Properly document and impl. bindBuffer(..) in detail w/ data sync within GLArrayHandle, which also removed redundant code (VBO data sync and binding). GLArrayDataClient.bindBuffer(gl, bind=true): checkSeal and init_vbo if required (similar sanity checks as enableBuffer()) FixedFuncHook: Add ES2 alignment of certain GL functions, i.e. GL_QUAD_STRIP/GL_POLYGON/GL_QUADS mapping, glTexImage2D internalformat/format match. GLCanvas: Avoid NPE in debug mode @ reshape (duh) Fix Windows ANGLE Workaround Regression of commit 923d9dd7f1d40db72d35ca76a761ca14babf147f FBO ResetQuirk: Dump only brief information (OS, GL, JOGL sha1), the latter becomes public method to JoglVersion FixedFuncPipeline: Optimize shader resource, if preset != ShaderSelectionMode.AUTO (good for mobile); Lazy shader instantiation. FixedFuncPipeline: Use resource efficient texture shader in AUTO mode as well FixedFuncPipeline: Use ES2/GL2 prelude and set default precision. Shader code: Remove precision for default precision types. FixedFuncColorTexture.fp: Remove unused local var ImmModeSink: Fix buffer grow (+1 element @ named buffer), enable DEBUG_* via properties, drawIndices QUAD w/ proper range and add uint; FixedFunctionHook: drawIndices QUAD w/ proper range and add uint Path2D: Reuse 'contains(..)' method, footprint Minor NEWT Display/Screen API doc FixedFuncPipeline/Hook: Add glColor4ub() w/ value conversion, make glColor4f() more efficient, use pre-alloc NIO buffer ImmModeSink: Add glColor3ub(), glColor4ub(); Add proper value conversion of imm. gl* functions; Default color padding is 1f; Make fields private. ImmModeSink VBO: Update single buffers (vertex, color, ..) if once written and size gross-net > PAGE_SIZE ImmModeSink: Add resizeElementCount, allowing user to set a lower additional resize element count ImmModeSink: Pretty'fying Ctor/Factory methods argument list FixedFuncPipeline: Cache current ShaderSelectionMode, update PMVMatrix according it's usage (update Mvi/Mvit only if lighting is being used) FixedFuncPipeline: Don't handle CullFace, ES2 impl. already takes care of discarding pixels of culled faces. NEWT / BCM-VC-IV: Fix transparency according to given capabilities EGLDrawableFactory: Detect ES1 implementation within ES2 library, if not found in ES1 library Add GenericGLCapabilitiesChooser: Dropping 'windowSystemRecommendedChoice' hint Fix commit 48bcceaf611a17bb3795aa9fe25a0e0c726879f7, EGLDrawableFactory's ES1 impl. detection NEWT ScreenMode Change Failover / Window.setFullscreen() shall use current ScreenMode rotated resolution. FixedFuncPipeline: Add GL_POINT* state tracking; Fix glDrawArrays(): Issued twice (duh!) almost halfed performance :) FFP-Emu: Adding simple POINTS shader ; Adding GLRunnable2 interface, allowing passing a GL action w/ custom argument and return value. Fix ImmModeSink Padding: Fourth element default value (vertex/color) is 1f FixedFuncPipeline GL_POINTS: Fix gl_PointSize (attribute data format), Add GL_POINT_SOFT and dist/fade attenuation (Adding basic POINT unit tests) FixedFuncHook/ImmModeSink: Fix *Pointer 'normalized' parameter ImmModeSink: Reduce DEBUG_* print a bit (no this.toString()) Fix regression of commit 40d01bef2a1db44533472c37961aabbef68de644: Test for fourth element was invalid FixedFuncPipeline: Require GLSL 1.20 (GL 2.1) due to GL driver bugs in OSX (gl_PointCoords n/a otherwise); Add FFP Emul point test in TestPointNEWT/PointDemoES1. tests.sh: TestPointsNEWT Fix Bug 630: packedDepthStencilAvail didn't check for EXT_packed_depth_stencil extension Adapt to GlueGen change 08a8defda8b6f49eb794cf787f688ba65bfe7b37 (VersionNumber) GLContext: Produce and expose GLSL version as VersionNumber and version string (for shader programs) ShaderCode: Add defaultShaderCustomization(..) to prelude shader source w/ GLSL version and default precision (if GLES) - Used by GearsES2/RedSquare/PointDemo (Made GLSL version proof) Fix Bug 601 - Auto-Repeat Behavior: Adding unit tests for typed key order w/ and w/o auto repeat. Incl. fix for Windows. NEWT KeyEvent: Fix intendation NEWT KeyEvent: Remove invalid version remarks. Fix Bug 631 and enhance 601: Handle multiple keys (pressed, released, types incl. auto-repeat) NEWT KeyEvent (Windows, OSX): Check whether keyCode is tracked before using bitfield, use more IntBitfield.put(..) return value for efficiency. Fix NEWT KeyCode: Basic KeyCode Validation on X11, Windows and OSX NEWT X11 Display: Ignore events w/ NULL window, instead of throwing a disturbing and fatal RuntimeException Minor edits FBObject/GearsObject GearsES2/RedSquareES2: Dump GLRendererQuirks at init. GLRendererQuirks: Add RequiresBoundVAO (w/ impl.), GLSLBuggyDiscard (todo) ; GLContextImpl: Bind default VAO if having quirk RequiresBoundVAO. Rename NEWT KeyEvent Unit tests to end w/ AWT, otherwise no AWT classes will be included in unit test run. Graph Shader: Using default precision values (VP: highp, FP: mediump), except for sampler2D (mediump instead of lowp) Complete Rename NEWT KeyEvent Unit tests, commit 85851c9839d620bcbbd07b6ca833f1a5901831cc FixedFuncPipeline: Use proper shader version and make GLSL code compatible w/ higher GLSL versions GLContextImpl GLRendererQuirks.RequiresBoundVAO: Use isGL3() instead of simple major version number check. GLSL Unit tests .. make them all GLSL version proof Fix GLSL unit tests - Add GLSL version customization, fix one wrong 'HIGHP' usage TestNewtKeyEventAutoRepeatAWT: Wait for 'some' KeyEvents and check count; TestNewtKeyPressReleaseUnmaskRepeatAWT: Enable NewtCanvasAWT test GLRendererQuirks.RequiresBoundVAO: Removed, it _is_ in the GL 3.2 core spec - Setting up default VAO for all GL >= 3.2 core ctx. EGL/EGLExt Robustness: Use NIODirectOnly for all bindings. For these internal APIs, critical array is not required, hence redundant. GLX/GLXExt Robustness: Use NIODirectOnly for all bindings. For these internal APIs, critical array is not required, hence redundant. CGL/CGLExt Robustness: Use NIODirectOnly for all bindings. For these internal APIs, critical array is not required, hence redundant. WGL/WGLExt Robustness: Use NIODirectOnly for all bindings. For these internal APIs, critical array is not required, hence redundant. NEWT/OSX getLocationOnScreenImpl(..): Use real OSXUtil.GetLocationOnScreen(..) if onscreen and surface available. Fix AWTRobotUtil.keyType(..): 'c0' start count must be outside of retry loop; also wait a few ms after key action TestNewtKey*: Don't test TAB (focus traversal, duh!); Add AWTRobotUtil.requestFocus(robot, ..) for kbd input on Windows (some 'confusion' w/ prev unit test runs) NEWT Windows: Add more verbose DEBUG information for FOCUS handling Fix regression of commit e5692f615a8c40e7ca750261baf5e8ecdb0a34b8: CGL/CGLExt Robustness .. Fix NEWT KeyEvent: Deliver keyChar w/ pressed and released; Deliver proper modified flags and modifier-key events; Simplify Windows key handling ShaderProgram: Program name is valid if non zero; Add init(GL) return value for success. TestInitConcurrent02NEWT: Disabled for auto unit test until further analysis - Windows/ATI driver crash Shader: Add '#define texture2D texture' for GLSL >= 130 ; TestGearsES2AWT add forceGL3; TextureDraw01ES2Listener uses defaultShaderCustomization() Add OSX CALayer OpenGL 3 (core) support: Derive pixelformat from parent (GL3), use GL3.2 compatible shader; Use VBO in general. Fix ProjectFloat (Bug 633): Adding missing offset of sliced buffer usage; reduce buffer usage (performance) in favor of float[]. Fix Unit Tests regarding commit 55f4405dbf9253e6ca686e44c50b2cfc1af7f3eb: Shader program name is valid if non-zero. *FontLoader: Order fields in init-order, make private. jogl-test-applets: Add 'force gl3' GearsES2 Applet for GL3 core testing on OSX MacOSXCGLContext: Fix ShaderCode instantiation .. (duh!) ; Tested via reparenting TestParentingFocusTraversal01AWT Notes: NVIDIA Tegra discard problem ; TestSharedContextVBOES2NEWT crashes the NV driver sporadically NEWT Windows KeyEvent: We have to store the keyChar for typed events, since keyChar from pressed/released may be wrong (Uppercase: SHIFT-1, etc ..) NEWT KeyEvent API doc: Document Windows shift+non-uppecase_char, commit c135d638fe820457977747e3d45960da64038d53 Xerxes Rånby (7): Rename jogamp.newt.driver.kd.* classes to allow OpenKODE testing by passing -cp jar/atomic/newt-driver-kd.jar -Dnativewindow.ws.name=jogamp.newt.driver.kd Rename jogamp.newt.driver.kd.* classes to allow OpenKODE testing by passing -cp jar/atomic/newt-driver-kd.jar -Dnativewindow.ws.name=jogamp.newt.driver.kd Use armv6 optimization for armhf to stay compatible with the new Raspberry Pi Raspbian distribution. JNLP: Cache jogl-all-natives and jogl-cg-natives for linux-armv6 and linux-armv6hf. _getNativeWindowingType() TYPE_BCM_VC_IV autodetection. ".bcm.vc.iv" is enough now -> NEWT agnostic relative package path. Add braces and fix indentation to conform with jogl coding standards.