commit 502847f59ef01c78a85e4ee5453a09d9b83d9a5e Author: Sven Gothel Date: Wed Oct 31 21:58:36 2012 +0100 NEWT KeyEvent API doc: Document Windows shift+non-uppecase_char, commit c135d638fe820457977747e3d45960da64038d53 commit c135d638fe820457977747e3d45960da64038d53 Author: Sven Gothel Date: Wed Oct 31 21:52:21 2012 +0100 NEWT Windows KeyEvent: We have to store the keyChar for typed events, since keyChar from pressed/released may be wrong (Uppercase: SHIFT-1, etc ..) Partially reverts commit: b62e1d027c289877686d6008ea8dd40e4e1541ec commit 40090a5fe7f5b42c2212d9dd5351730e0f38d601 Author: Sven Gothel Date: Wed Oct 31 21:32:58 2012 +0100 Notes: NVIDIA Tegra discard problem ; TestSharedContextVBOES2NEWT crashes the NV driver sporadically commit 875a36a142b086e4f1c311440db008f816258de5 Author: Sven Gothel Date: Wed Oct 31 21:32:28 2012 +0100 MacOSXCGLContext: Fix ShaderCode instantiation .. (duh!) ; Tested via reparenting TestParentingFocusTraversal01AWT commit 1cd40d8284f2f8d0da9b40c4ea714a20aad97094 Author: Sven Gothel Date: Wed Oct 31 21:14:57 2012 +0100 jogl-test-applets: Add 'force gl3' GearsES2 Applet for GL3 core testing on OSX commit f92e5baaea9c15d655f19a3b8dc9101876991995 Author: Sven Gothel Date: Wed Oct 31 19:43:55 2012 +0100 *FontLoader: Order fields in init-order, make private. commit 451faa16651a85bab92e11d12de48e4b195904ba Author: Sven Gothel Date: Wed Oct 31 16:53:07 2012 +0100 Fix Unit Tests regarding commit 55f4405dbf9253e6ca686e44c50b2cfc1af7f3eb: Shader program name is valid if non-zero. commit f56e36bd4a497643756ab737422eb356b963b27d Author: Sven Gothel Date: Wed Oct 31 16:41:28 2012 +0100 Fix ProjectFloat (Bug 633): Adding missing offset of sliced buffer usage; reduce buffer usage (performance) in favor of float[]. Thomas De Bodt reported this error and provided the unit test. commit 7dff066bb823dddb5d6e0e7672f5599afa5a43b9 Author: Sven Gothel Date: Wed Oct 31 15:16:56 2012 +0100 Add OSX CALayer OpenGL 3 (core) support: Derive pixelformat from parent (GL3), use GL3.2 compatible shader; Use VBO in general. Covered by: Auto unit tests: TestOffscreenLayer01GLCanvasAWT, TestOffscreenLayer02NewtCanvasAWT Manual: TestGearsES2AWT '-gl3 -layered' commit c2b328ea96b6cb16ca39f13d4bb4d1236c4b8a1d Author: Sven Gothel Date: Wed Oct 31 14:40:44 2012 +0100 Shader: Add '#define texture2D texture' for GLSL >= 130 ; TestGearsES2AWT add forceGL3; TextureDraw01ES2Listener uses defaultShaderCustomization() commit d4801323044a20455a256c7856c58b36b054a344 Author: Sven Gothel Date: Wed Oct 31 12:01:28 2012 +0100 TestInitConcurrent02NEWT: Disabled for auto unit test until further analysis - Windows/ATI driver crash commit 55f4405dbf9253e6ca686e44c50b2cfc1af7f3eb Author: Sven Gothel Date: Wed Oct 31 11:22:09 2012 +0100 ShaderProgram: Program name is valid if non zero; Add init(GL) return value for success. commit b62e1d027c289877686d6008ea8dd40e4e1541ec Author: Sven Gothel Date: Wed Oct 31 04:04:39 2012 +0100 Fix NEWT KeyEvent: Deliver keyChar w/ pressed and released; Deliver proper modified flags and modifier-key events; Simplify Windows key handling Preface: Modifier-keys are SHIFT, CTRL, ALT and META and they have a matching modifier-bit. - Simplify Windows key handling - Employ MapVirtualKey(..) for virtual-key to character and scancode to virtual-key mappings, allowing to drop tracking of keyCode to keyChar in java code. This also removes the platform restriction of delivering keyChar at TYPED only. - Deliver keyChar w/ pressed and released - Due to the lift restriction on the Windows platform (see above), we can deliver keyChar w/ all key events on all platforms. - Deliver proper modified flags and modifier-key events All modifier-keys deliver pressed, released and typed events with their modifier-bit set. The above is covered by unit tests, which passed on X11, Windows and OSX (manual test run). commit dda5e1611fc41089a5f8d486435d3d2d7e9b76d6 Author: Sven Gothel Date: Tue Oct 30 20:10:58 2012 +0100 Fix regression of commit e5692f615a8c40e7ca750261baf5e8ecdb0a34b8: CGL/CGLExt Robustness .. commit 60bf26c5c889cc78a3f9714e7283950088823a90 Author: Sven Gothel Date: Tue Oct 30 17:43:34 2012 +0100 NEWT Windows: Add more verbose DEBUG information for FOCUS handling commit 2db90cf4ffc2e821da8f13fd3057a63b59dc2fc7 Author: Sven Gothel Date: Tue Oct 30 17:42:55 2012 +0100 TestNewtKey*: Don't test TAB (focus traversal, duh!); Add AWTRobotUtil.requestFocus(robot, ..) for kbd input on Windows (some 'confusion' w/ prev unit test runs) commit f70e28c8f73c57eb8aa391ef26e1b2357878268a Author: Sven Gothel Date: Tue Oct 30 17:41:06 2012 +0100 Fix AWTRobotUtil.keyType(..): 'c0' start count must be outside of retry loop; also wait a few ms after key action commit 6f2f5cc9fca5d36b11744ab4d69c3177b0271f22 Author: Sven Gothel Date: Tue Oct 30 17:39:31 2012 +0100 NEWT/OSX getLocationOnScreenImpl(..): Use real OSXUtil.GetLocationOnScreen(..) if onscreen and surface available. commit 24d5fa1241e17f596ae93dff1656a9317daf6fb3 Author: Sven Gothel Date: Tue Oct 30 17:32:02 2012 +0100 WGL/WGLExt Robustness: Use NIODirectOnly for all bindings. For these internal APIs, critical array is not required, hence redundant. commit e5692f615a8c40e7ca750261baf5e8ecdb0a34b8 Author: Sven Gothel Date: Tue Oct 30 17:20:17 2012 +0100 CGL/CGLExt Robustness: Use NIODirectOnly for all bindings. For these internal APIs, critical array is not required, hence redundant. commit 5deb97e50abf0c19dc37aa69add1dfa2447825ad Author: Sven Gothel Date: Tue Oct 30 17:04:42 2012 +0100 GLX/GLXExt Robustness: Use NIODirectOnly for all bindings. For these internal APIs, critical array is not required, hence redundant. commit adea26fedc2fcd99685a73ac3301ccaeadc2fd99 Author: Sven Gothel Date: Tue Oct 30 16:54:55 2012 +0100 EGL/EGLExt Robustness: Use NIODirectOnly for all bindings. For these internal APIs, critical array is not required, hence redundant. commit b961225542227ec30f4b79c4425384e7e161437c Author: Sven Gothel Date: Mon Oct 29 15:42:44 2012 +0100 GLRendererQuirks.RequiresBoundVAO: Removed, it _is_ in the GL 3.2 core spec - Setting up default VAO for all GL >= 3.2 core ctx. Refines commit 9b6448b1d54716fd455c0cad0c6133c0edeb3bb8 Due to GL 3.2 core spec: E.2. DEPRECATED AND REMOVED FEATURES (p 331) "There is no more default VAO buffer 0 bound, hence generating and binding one to avoid INVALID_OPERATION at VertexAttribPointer." More clear is GL 4.3 core spec: 10.4 (p 307): "An INVALID_OPERATION error is generated by any commands which modify, draw from, or query vertex array state when no vertex array is bound. This occurs in the initial GL state, and may occur as a result of BindVertexAr- ray or a side effect of DeleteVertexArrays." +++ I just have read (same spec) 2.10 (p 46/47): "An INVALID_OPERATION error is generated if any of the *Pointer commands specifying the location and organization of vertex array data are called while zero is bound to the ARRAY_BUFFER buffer object binding point, and the pointer argu- ment is not NULL." .. which only constraints the *Pointer command use to _VBO_, not forcing a VAO. +++ commit 3c8a814d7fb536f298507413f290309ed7c0f24e Author: Sven Gothel Date: Mon Oct 29 14:44:11 2012 +0100 TestNewtKeyEventAutoRepeatAWT: Wait for 'some' KeyEvents and check count; TestNewtKeyPressReleaseUnmaskRepeatAWT: Enable NewtCanvasAWT test commit 6936c2e99ab767a96dce0e1fe386481611ea2a18 Author: Sven Gothel Date: Mon Oct 29 12:10:08 2012 +0100 Fix GLSL unit tests - Add GLSL version customization, fix one wrong 'HIGHP' usage commit edb04d01099135ac400cd9d84bda6d0b6ca56953 Author: Sven Gothel Date: Mon Oct 29 11:54:17 2012 +0100 GLSL Unit tests .. make them all GLSL version proof commit a192426862ad6f05c3351dbaf9880d00707c01bc Author: Sven Gothel Date: Mon Oct 29 11:52:51 2012 +0100 GLContextImpl GLRendererQuirks.RequiresBoundVAO: Use isGL3() instead of simple major version number check. commit bf0d4a8840addbd099b7b771c25f7135c64132a8 Author: Sven Gothel Date: Mon Oct 29 11:52:15 2012 +0100 FixedFuncPipeline: Use proper shader version and make GLSL code compatible w/ higher GLSL versions commit cbbfb0170eee1fb57e6ddc47da082bd93fe7ad85 Author: Sven Gothel Date: Mon Oct 29 11:51:16 2012 +0100 Complete Rename NEWT KeyEvent Unit tests, commit 85851c9839d620bcbbd07b6ca833f1a5901831cc commit 74b78c6e59dbdfbd5630f534e9e61e3bac831302 Author: Sven Gothel Date: Mon Oct 29 11:32:20 2012 +0100 Graph Shader: Using default precision values (VP: highp, FP: mediump), except for sampler2D (mediump instead of lowp) commit 85851c9839d620bcbbd07b6ca833f1a5901831cc Author: Sven Gothel Date: Mon Oct 29 11:31:00 2012 +0100 Rename NEWT KeyEvent Unit tests to end w/ AWT, otherwise no AWT classes will be included in unit test run. commit 9b6448b1d54716fd455c0cad0c6133c0edeb3bb8 Author: Sven Gothel Date: Sun Oct 28 22:56:21 2012 +0100 GLRendererQuirks: Add RequiresBoundVAO (w/ impl.), GLSLBuggyDiscard (todo) ; GLContextImpl: Bind default VAO if having quirk RequiresBoundVAO. OSX w/ OpenGL >= 3 core context implementation requires a bound VAO for vertex attribute operations, i.e. VertexAttributePointer(..). This has been experienced on OSX 10.7.5, OpenGL 3.2 core w/ Nvidia GPU and in several forum posts. Such 'behavior' violates the GL 3.2 core specification, which does not state this requirement, hence it is a bug. (Please correct me if I am wrong!) GLContextImpl works around this quirk, by generating a default VAO and binds it at 1st makeCurrent (@creation) and deletes it at destroy. This is minimal invasive since no action is required for subsequent makeCurrent or release. We assume if a user uses and binds a VAO herself, she will mind this quirk. Note: We could enhance this workaround by quering for a currently bound VAO at makeCurrent() and bind our default if none. However, we refrain from this operation to minimize the workaround and complexity. commit 17d47c83bb976b6185b1562a2c332ecfef258c48 Author: Sven Gothel Date: Sun Oct 28 22:44:49 2012 +0100 GearsES2/RedSquareES2: Dump GLRendererQuirks at init. commit 61c80ee66512b72e5ea1644bfef5fc60105fe445 Author: Sven Gothel Date: Sun Oct 28 21:08:54 2012 +0100 Minor edits FBObject/GearsObject commit b7e84320dced5325bd7f7b4dda917b251e3915ab Author: Sven Gothel Date: Sun Oct 28 14:09:04 2012 +0100 NEWT X11 Display: Ignore events w/ NULL window, instead of throwing a disturbing and fatal RuntimeException commit cf9a4e236891ce2f6d9469a017e880eed704dea0 Author: Sven Gothel Date: Sun Oct 28 05:44:24 2012 +0100 Fix NEWT KeyCode: Basic KeyCode Validation on X11, Windows and OSX - X11: Add VK_QUOTE mapping - OSX: Add single shift, ctrl alt key press; Fix mapping: Command -> Windows, Option -> ALT, add BACK_QUOTE and QUOTE. commit 70d58b030bdbac98ba592a3a14a84cc0e4941c51 Author: Sven Gothel Date: Sat Oct 27 04:01:56 2012 +0200 NEWT KeyEvent (Windows, OSX): Check whether keyCode is tracked before using bitfield, use more IntBitfield.put(..) return value for efficiency. commit 2f9c77a347b76bebdadd4bec1ac92aa7ab72365f Author: Sven Gothel Date: Sat Oct 27 02:48:43 2012 +0200 Fix Bug 631 and enhance 601: Handle multiple keys (pressed, released, types incl. auto-repeat) - Using keyCode (bit) maps to isPressed and isAutoRepeat, allowing use of multiple keys - Enhance unit test TestKeyEventOrderNEWT w/ injecting variations of 2 diff. keys - Manual tested on X11, Windows and OSX w/ and w/o auto-repeat commit b8588b12e65ee47b5a74d75ea420a5252e0d93bb Author: Sven Gothel Date: Fri Oct 26 21:07:32 2012 +0200 NEWT KeyEvent: Remove invalid version remarks. commit cb32db97634ba10961632a365c1256a8b3472112 Author: Sven Gothel Date: Fri Oct 26 20:59:53 2012 +0200 NEWT KeyEvent: Fix intendation commit b008de41549e38aebdfcb7b094046235a8dde72f Author: Sven Gothel Date: Fri Oct 26 16:43:13 2012 +0200 Fix Bug 601 - Auto-Repeat Behavior: Adding unit tests for typed key order w/ and w/o auto repeat. Incl. fix for Windows. Auto-Repeat tests recognizes whether auto-repeat could be triggered by AWT Robot. The latter is not possible on Windows, hence manual testing was required on this platform. Impact: X11, Windows and OSX produce proper key sequence incl. auto-repeat modifier mask. commit 4f05d5add18048c2fbd1837c0563446c11177e8c Author: Sven Gothel Date: Fri Oct 26 09:24:40 2012 +0200 ShaderCode: Add defaultShaderCustomization(..) to prelude shader source w/ GLSL version and default precision (if GLES) - Used by GearsES2/RedSquare/PointDemo (Made GLSL version proof) commit 0f198907181396c5aab545f621098ed2f210003a Author: Sven Gothel Date: Wed Oct 24 17:08:25 2012 +0200 GLContext: Produce and expose GLSL version as VersionNumber and version string (for shader programs) Uses GL_SHADING_LANGUAGE_VERSION and parses it via VersionNumber, as well as having a static fallback using the GL context version. The value is valid and can be retrieved after ctx has been made current once. commit f2661adf587390a61cbb7fe2e3377da2d57672a7 Author: Sven Gothel Date: Wed Oct 24 17:03:41 2012 +0200 Adapt to GlueGen change 08a8defda8b6f49eb794cf787f688ba65bfe7b37 (VersionNumber) commit dedf4ea7ddab1279602208fa194231ea65409251 Author: Sven Gothel Date: Wed Oct 24 12:53:07 2012 +0200 Fix Bug 630: packedDepthStencilAvail didn't check for EXT_packed_depth_stencil extension commit d73ee3ac8aac58914146c0c9949902452db83b56 Author: Harvey Harrison Date: Tue Oct 16 00:35:21 2012 -0700 jogl: use Boolean TRUE/FALSE constants for values that will be immediately unboxed No reason for ever using new Boolean when the constants are available. Signed-off-by: Harvey Harrison commit f8237ac370585bd454675a84ee6d81da3f74d765 Author: Sven Gothel Date: Tue Oct 23 19:28:37 2012 +0200 tests.sh: TestPointsNEWT commit e027d4a2f9b3d7f23e9a9eec81c0cb011e861269 Author: Sven Gothel Date: Tue Oct 23 19:28:21 2012 +0200 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. commit 133d7b82d47b2918af042944158e9b09e2663855 Author: Sven Gothel Date: Tue Oct 23 17:31:08 2012 +0200 Fix regression of commit 40d01bef2a1db44533472c37961aabbef68de644: Test for fourth element was invalid commit 53d54caf6ee7ea24bcc93599300e06bf455c75aa Author: Sven Gothel Date: Tue Oct 23 13:45:16 2012 +0200 ImmModeSink: Reduce DEBUG_* print a bit (no this.toString()) commit 03cdffe5739ef8b032638cf4169e713c90fb36c6 Author: Sven Gothel Date: Mon Oct 22 21:28:40 2012 +0200 FixedFuncHook/ImmModeSink: Fix *Pointer 'normalized' parameter All *Pointer methods used 'normalized:=false', but we cannot assume the fixed function code does use normalized (0f..1f) values. On the contrary, it usually uses the native format value range. Hence we have to pass normalized:=true for all fixed point data types and normalized:=false for floating point data types. commit 5bdd283a9c3d0c656c859d499476173e2f609839 Author: Sven Gothel Date: Mon Oct 22 18:54:19 2012 +0200 FixedFuncPipeline GL_POINTS: Fix gl_PointSize (attribute data format), Add GL_POINT_SOFT and dist/fade attenuation (Adding basic POINT unit tests) gl_PointSize (and all other uniform array elems) was not propagated due to wrong usage of GLUniformData component param. Due to efficiency, we use vec4[2] now and #defines in shader to easy readability. GL_POINT_SOFT uses gl_PointCoord to determnine inside/outside circle position while adding a seam of 10% in/out. This almost matches 'other' implementations and gives a nice smooth circle. !GL_POINT_SOFT produces a proper square (billboard). Point-Vertex shader takes dist/fade attentuation into account. commit 40d01bef2a1db44533472c37961aabbef68de644 Author: Sven Gothel Date: Sat Oct 20 18:48:34 2012 +0200 Fix ImmModeSink Padding: Fourth element default value (vertex/color) is 1f commit 9ad687e18a67d335ea8ed4868025d0c740e02583 Author: Sven Gothel Date: Sat Oct 20 10:51:57 2012 +0200 FFP-Emu: Adding simple POINTS shader ; Adding GLRunnable2 interface, allowing passing a GL action w/ custom argument and return value. Adding simple POINTS shader not regarding POINTS parameters and not using a texture (commented out). FIXME: Event thought it works using a texture and gl_PointCoord in frag shader, I don't see the point here (lol) if gl_PointSize must be 1.0 in vert shader .. otherwise nothing is seen on ES2.0. On Desktop POINTS are always shown as 1 pixel sized points! commit 545a9422324f5c8ef47b48a2e3e5419c56f19f14 Author: Sven Gothel Date: Fri Oct 19 18:08:40 2012 +0200 FixedFuncPipeline: Add GL_POINT* state tracking; Fix glDrawArrays(): Issued twice (duh!) almost halfed performance :) TODO: Create GL_POINT texture and render w/ glDraw*() commit b5d42f14e0efdb117da9c5145d807ed0d7631b97 Author: Sven Gothel Date: Fri Oct 19 17:07:36 2012 +0200 NEWT ScreenMode Change Failover / Window.setFullscreen() shall use current ScreenMode rotated resolution. ScreenMode Change Failover - In case a timeout appears (buggy XRandR), double check current ScreenMode in case it has been set. Window.setFullscreen() shall use current ScreenMode rotated resolution. - The Screen's virtual size in not correct! commit 5915aa179b74bc7cbc28d43f11e03adfddcecb57 Author: Sven Gothel Date: Fri Oct 19 09:59:14 2012 +0200 Fix commit 48bcceaf611a17bb3795aa9fe25a0e0c726879f7, EGLDrawableFactory's ES1 impl. detection 'glBegin' is not ES1, duh! commit ba482e4042b899a8b9d9d4a2b660e8e92fcadfe7 Author: Sven Gothel Date: Fri Oct 19 07:52:33 2012 +0200 Add GenericGLCapabilitiesChooser: Dropping 'windowSystemRecommendedChoice' hint commit 48bcceaf611a17bb3795aa9fe25a0e0c726879f7 Author: Sven Gothel Date: Fri Oct 19 07:48:07 2012 +0200 EGLDrawableFactory: Detect ES1 implementation within ES2 library, if not found in ES1 library This is the case in BCM-VC-IV blobs, tested on Raspeberry-Pi commit 416c7fc1b90cd7b34c251268bb83ebeea61d17d6 Author: Sven Gothel Date: Fri Oct 19 07:46:31 2012 +0200 NEWT / BCM-VC-IV: Fix transparency according to given capabilities Tested manual w/ TestGearsES2NEWT on Raspberry Pi commit 1aea29bb5d253600213024fd2c12a91bf3599202 Author: Sven Gothel Date: Thu Oct 18 16:50:40 2012 +0200 FixedFuncPipeline: Don't handle CullFace, ES2 impl. already takes care of discarding pixels of culled faces. commit f25682cabc5f421c3126e75833ae70b5a16e5b2e Author: Sven Gothel Date: Thu Oct 18 15:15:58 2012 +0200 FixedFuncPipeline: Cache current ShaderSelectionMode, update PMVMatrix according it's usage (update Mvi/Mvit only if lighting is being used) commit dcc9cfd2397f2a44ed8d5b980297c5b974b5ac18 Author: Sven Gothel Date: Thu Oct 18 12:16:29 2012 +0200 ImmModeSink: Pretty'fying Ctor/Factory methods argument list commit 4273b4d1ad9780c6ac72683fe8cc6d7a5f402cfa Author: Sven Gothel Date: Thu Oct 18 11:46:26 2012 +0200 ImmModeSink: Add resizeElementCount, allowing user to set a lower additional resize element count commit e54c934ddb1e2f121f9cbc0956ab8c43b05f7665 Author: Sven Gothel Date: Thu Oct 18 10:53:07 2012 +0200 ImmModeSink VBO: Update single buffers (vertex, color, ..) if once written and size gross-net > PAGE_SIZE Usually PAGE_SIZE is written within one DMA xfer command, so if the gross buffer bulk transfer contains more unused data than PAGE_SIZE we may win when transfering each single buffer at buffer update. commit 9c6ad40321266e6fe22455572d942b98535debf1 Author: Sven Gothel Date: Thu Oct 18 09:39:21 2012 +0200 ImmModeSink: Add glColor3ub(), glColor4ub(); Add proper value conversion of imm. gl* functions; Default color padding is 1f; Make fields private. commit 153a37378beff3f8b40fed8e55b62c2f2790eca5 Author: Sven Gothel Date: Thu Oct 18 09:35:11 2012 +0200 FixedFuncPipeline/Hook: Add glColor4ub() w/ value conversion, make glColor4f() more efficient, use pre-alloc NIO buffer commit 1b327874356130096546533a690deff3b7bc876c Author: Sven Gothel Date: Wed Oct 17 08:08:09 2012 +0200 Minor NEWT Display/Screen API doc commit 83cc52571ffeeea8efc673ed274a4c7a09597c6c Author: Sven Gothel Date: Tue Oct 16 07:54:05 2012 +0200 Path2D: Reuse 'contains(..)' method, footprint commit 658d269db957cdb986f2da2fbe15d2441b6f03c4 Author: Sven Gothel Date: Tue Oct 16 06:27:40 2012 +0200 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 commit f15b5df4114e46b4c6a968b75aebb6014afc1806 Author: Harvey Harrison Date: Mon Oct 15 20:28:10 2012 -0700 jogl: fix bad format string in PngChunkTIME Missing format specifier for the first argument would lead to this throwing IllegalFormatException. Signed-off-by: Harvey Harrison commit b9653e6f55a96f3769a980b2569fc9fabad9f374 Author: Harvey Harrison Date: Mon Oct 15 20:24:17 2012 -0700 jogl: remove infinite loop in Path2D.contains(AABBox) It is impossible to use this method as it will get into an infinite loop as it just calls itself. Base the implementation on the contains method shortly before this method. As this method is impossible to actually use, it could also just be removed. Signed-off-by: Harvey Harrison commit 19bee7d8946721b8d094937abf1b33889b7c32e5 Author: Harvey Harrison Date: Mon Oct 15 20:01:00 2012 -0700 jogl: fix bit shift error in LEDataInputStream The readlong() method is attempting to build a 64bit value from two 32 bit reads. The problem is that shifting an int only uses the lower 5 bits of the shift value, so << 32 is the same as << 0. Cast to long and restore the original intention. Signed-off-by: Harvey Harrison commit f8fb65c7cd79743a6501fe63ff1e28479ceedb4f Author: Sven Gothel Date: Mon Oct 15 16:35:43 2012 +0200 FixedFuncColorTexture.fp: Remove unused local var commit e658ab1e427a7957b9dbfa4a396506de6c6582fd Author: Sven Gothel Date: Sun Oct 14 09:59:22 2012 +0200 FixedFuncPipeline: Use ES2/GL2 prelude and set default precision. Shader code: Remove precision for default precision types. commit 842e9feefc9d1a885a92ad8f0068cbcbcdd0e3c4 Author: Sven Gothel Date: Sun Oct 14 08:28:08 2012 +0200 FixedFuncPipeline: Use resource efficient texture shader in AUTO mode as well commit acdb3d4cbbdd6ade5d347abaaac71a1a8abe48e1 Author: Sven Gothel Date: Sat Oct 13 21:30:51 2012 +0200 FixedFuncPipeline: Optimize shader resource, if preset != ShaderSelectionMode.AUTO (good for mobile); Lazy shader instantiation. commit b98bb2d14d5d5ff96fd5c22f4f30bc685d86757b Author: Sven Gothel Date: Sat Oct 13 08:24:02 2012 +0200 FBO ResetQuirk: Dump only brief information (OS, GL, JOGL sha1), the latter becomes public method to JoglVersion commit 61bb64aea9d8967f5360ba42fc9ec7a24b79683b Author: Sven Gothel Date: Sat Oct 13 07:10:52 2012 +0200 Fix Windows ANGLE Workaround Regression of commit 923d9dd7f1d40db72d35ca76a761ca14babf147f We are aware that Google's ANGLE (Windows EGL/ES2 impl. based on D3D) crashes using eglInitialize(..) w/ EGL_DEFAULT_DISPLAY. Commit 923d9dd7f1d40db72d35ca76a761ca14babf147f moved the EGL device initialization into the EGLDrawableFactory ctor and hence slipped out ANGLE workaround to disable it per default. - Moving property static flags from GLProfile -> GLDrawableFactory - Moving ANGLE workaround right into EGLDrawableFactory (where it belongs) - Moving optional EGL/ES disable code to GLDrawableFactory (where it belongs) Tested on Windows w/ Java-32bit and latest Chrome ANGLE DLLs commit 51f055ae70f927638ac304436e9a1f02a1c0b570 Author: Sven Gothel Date: Fri Oct 12 23:28:52 2012 +0200 GLCanvas: Avoid NPE in debug mode @ reshape (duh) commit e03c5a17f1e6ebe7c8581469f35feb67a7100d15 Author: Sven Gothel Date: Fri Oct 12 22:01:24 2012 +0200 FixedFuncHook: Add ES2 alignment of certain GL functions, i.e. GL_QUAD_STRIP/GL_POLYGON/GL_QUADS mapping, glTexImage2D internalformat/format match. commit d1537f0359f917e5a6b1e77852fa1b1ac8a54d5f Author: Sven Gothel Date: Fri Oct 12 21:44:07 2012 +0200 GLArrayDataClient.bindBuffer(gl, bind=true): checkSeal and init_vbo if required (similar sanity checks as enableBuffer()) commit 1992d24671f8d99abccb671b8f9d5a7cd474fd00 Author: Sven Gothel Date: Fri Oct 12 21:38:36 2012 +0200 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). Refines commit 8582ece7dc7f65271b3184261697a542766d9864 and f49f8e22953ed2426fd4264ee407e2dc3fc07cfc commit 2958508131e5f0b3336f07c6f1c2865eb954921b Author: Sven Gothel Date: Fri Oct 12 15:12:39 2012 +0200 Adding unit tests for ImmModeSink and FixedFunctionPipeline (single & combinations, plus texture usage) commit e3ee1e25276760cba5db0333301d3ba19d62dd69 Author: Sven Gothel Date: Fri Oct 12 15:10:29 2012 +0200 Enhance FixedFuncPipeline: Multi-Texture, Tex-Env, Alpha-Test, Lighting (fix, incomplete still), ShaderSelectionMode, Fix default values Besides the above mentioned additional features towards completness of the FFP emu, the ShaderSelectionMode allows fixating a shader program configuration, i.e. AUTO switch (default) or choosing a static shader program to avoid heavy program switches incl. uniform/attribute updates. commit da258d10d4e929bb2993e7a0329ad32d079fd731 Author: Sven Gothel Date: Fri Oct 12 15:01:20 2012 +0200 ShaderState: Clean-up debug / verbose output. attachShaderProgram(..) still issues UseProgram is enable==true, but no program switch. More versatile toString(StringBuilder sb, boolean alsoUnlocated), by default don't dump uniforms/attributes w/o valid location. commit 1e34dc6467d6309ae06dfe5ec317723a5b728789 Author: Sven Gothel Date: Fri Oct 12 14:57:13 2012 +0200 ES2Impl fix: Remove code which could imply recursion if !ES2Compatible (although impossible, but looks bad) commit f49f8e22953ed2426fd4264ee407e2dc3fc07cfc Author: Sven Gothel Date: Fri Oct 12 14:56:20 2012 +0200 GLArrayData* VBO binding: Adding explicit bindBuffer(..) method, since VBO is not more bound after enableBuffer(); Fix unit test (test VBO bound). Explicit bindBuffer(..) is required now, since enableBuffer() doesn't leave it bound. See fixed VBORegion* patch for use case, i.e. using a VBO index buffer for glDrawElements(). Complets commit 8582ece7dc7f65271b3184261697a542766d9864. commit 8582ece7dc7f65271b3184261697a542766d9864 Author: Sven Gothel Date: Wed Oct 10 17:37:38 2012 +0200 Simplify GLArrayHandler and reduce VBO sideffects VBO: Always unbind VBO ASAP after data transfer (glBufferData()) and assignment (glVertexPointer(..), glVertexAttribPointer()). It's a bug to leave it bound .. due to redundancy and other calls which could have change the VBO binding. Removed syncData(..), now it's only issued at enable and hence migrated into the enable method. commit fb3795504f7b05000651a9ea558dbb1b2a3b16f5 Author: Sven Gothel Date: Wed Oct 10 17:32:28 2012 +0200 GLUniformData.toString() matrix: Add matrix offset .. commit 70d5b080a196bf9cbb71938e443c1110d9ea989c Author: Sven Gothel Date: Wed Oct 10 16:55:07 2012 +0200 GLUniformData: add null format string to Buffers.toString() commit 5cabafe5482ae2f7b4bb447a225eb2a6477fee4d Author: Sven Gothel Date: Wed Oct 10 16:37:29 2012 +0200 TestSWTAccessor03AWTGLn: Add '-time ' commandline option commit 34d7e1f13a107e63bd234e4b31782cfb46feb4c0 Author: Sven Gothel Date: Wed Oct 10 16:36:46 2012 +0200 ImmModeSink: Fix bugs (use glBufferUsage, vboUsage, GL_POLYGON, GL_QUADS) and add API docs. (API Change) - Changed create*(..) factory methods (API Change) - Drop passing GL instance, not needed - allows creation of ImmModeSink as final field w/o GL context - Use 'glBufferUsage' to determine whether to use VBO or not ( 0 == glBufferUsage ) - Use glBufferUsage in glBufferData(..) call (oops) - Toggle vboUsage per object ( 0 == glBufferUsage ? nonVBO : VBO ) remove static VBO usage flag - Fix render mode - GL_POLYGON -> GL_TRIANGLE_FAN (not GL_LINES) - GL_QUADS -> Looped GL_TRIANGLE_FAN (is !GL2) in draw(..) w/ and w/o indices - Buffer usage - documented - allow creating sink w/ all components (vertices, color, normal and texCoords) bit render and grow only used parts. This allows proper usage of sink where it is not known which types are being used. - Added test case - Manually tested w/ Jake2 ES1 Jake2 uses the FFP immediate mode rendering, where we utilize this sink w/o rendering artifacts. commit 13402255253dcfc64aa773f0756201ec805ec063 Author: Sven Gothel Date: Wed Oct 10 15:10:33 2012 +0200 GLBuffers.slice: Preserve parent buffer position/limit and the parent's byte-order for sliced result commit 1a6da1537cc7681eb1e5fe3abb26e53b3423e742 Author: Sven Gothel Date: Wed Oct 10 15:09:35 2012 +0200 UITestCase: Only print each display/reshape in verbose mode commit 6ac1c8c8995458671cf603e46bff89fcaefd8146 Author: Sven Gothel Date: Wed Oct 10 15:09:09 2012 +0200 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. commit 7587cce91c3fda7dcff4e36e1aa0edf53bf34e00 Author: Sven Gothel Date: Tue Oct 9 05:56:45 2012 +0200 TestInitConcurrent0[12]NEWT: Reduce test w/ 16 threads to 6 for ARM || WINDOWS if not started from console Sadly it appears that w/ the ATI Catalyst driver, the TestInitConcurrent02NEWT w/ 16 concurrent threads brings down the JVM sometimes. This results in a locked singleton thread and distrubs the whole unit tests session. We are aware of the ATI Catalyst threading bug on Windows and Linux. commit 14fcd3fced135a2a419e61fd260fa3b7e16816b9 Author: Sven Gothel Date: Tue Oct 9 05:43:22 2012 +0200 NEWT X11/KeyMap: Add XK_grave -> J_VK_BACK_QUOTE commit fea39b39e01517ec1f5404b5596a1610366fa27f Author: Sven Gothel Date: Tue Oct 9 05:42:31 2012 +0200 Fix etc/test.sh - It was still using the old jogl.all.jar file. Thx to Gene Ressler for finding this one. commit d4114a6142e8d71ccd342ca61b1b73a1ee48411b Author: Sven Gothel Date: Mon Oct 8 02:03:00 2012 +0200 Refine GLDrawable.swapBuffer() fix (AWT/SWT GLCanvas and GLAutoDrawableBase) of commit 455fed40391afe10ce5ffb9146ca325af63b0a49 Add drawable null check before using. commit 455fed40391afe10ce5ffb9146ca325af63b0a49 Author: Sven Gothel Date: Mon Oct 8 01:55:22 2012 +0200 Fix GLDrawable.swapBuffer() implementation in AWT/SWT GLCanvas and GLAutoDrawableBase Simply lock drawable and issue drawable.swapBuffers(), no need to make context current. commit d10dae464ef9309a92eb9b49323fe1db93c3fc9f Author: Sven Gothel Date: Mon Oct 8 01:22:30 2012 +0200 Raise NEWT MouseButton Maximum from 6 -> 16 (API Change) - Button 9 has been reported to be sent by Olamedia - Rearrange the input bit mask in InputEvent (API Change) - Raise the max. button number to 16 commit 630d43be7a8cccf28632fc1f7542bb484382d775 Author: Sven Gothel Date: Sat Oct 6 07:19:37 2012 +0200 Fix Bug 617 (part2): Workaround buggy GPU driver where FBO reattachment of Colorbuffer w/ diff size leads to GL_FRAMEBUFFER_UNSUPPORTED. This occured at least on: - OS X 10.6.8 - GL_RENDERER NVIDIA GeForce 7300 GT OpenGL Engine - GL_VERSION 2.1 NVIDIA-1.6.36 Remedy is to catch the exception @ GLFBODrawableImpl.reset(..) and switch over to fallback 'reset' method: FBO reattachment -> FBO complete recreation Of course, the FBO recreation is noticable slower, but at least it seems to work on the offending system. Not tested on the offending system, but manually provoked GLException on FBOObject to trigger fallback, which is working here. commit d3033e42faa909f6c1055f5ba3c7925766a3e583 Author: Sven Gothel Date: Sat Oct 6 04:57:13 2012 +0200 Adding unit test for Bug 605 - WORKSFORME, i.e. no unwanted y-flip, so I can just assume it's the SW renderer, flipping. commit bb8454d735c511c6d80798d3b6258e1ed355579e Author: Sven Gothel Date: Fri Oct 5 19:11:26 2012 +0200 Refine a3cb6bb14f410f67fccf5ccd4cd7ecc66f448389, fix deadlock (regression) The lock being claimed at validateGLDrawable() is 'offthread', i.e. may fight w/ AWT / Animator at reshape/display. Locking is moved 'down' to AWT runnable 'setRealizedOnEDTAction', which also double checks the drawable [again]. commit 67c2ab9bbc3522d85977151849c416f5aa320395 Author: Sven Gothel Date: Fri Oct 5 18:46:56 2012 +0200 EGL/X11 DummySurfaceHook: Lock display device at creation/destruction commit bab6160df764871f6fa4db040362976f028d015b Author: Sven Gothel Date: Fri Oct 5 18:46:16 2012 +0200 Refine ed7d5f2e3fc696d47b10c8d62a071643bf385588, set and restore FBO caps @ setRealized(true/false) already, refine at initialize(true) Allowing to validate the on-/offscreen state after setRealized(true). Adding comment in GLFBODrawable. commit ed7d5f2e3fc696d47b10c8d62a071643bf385588 Author: Sven Gothel Date: Fri Oct 5 17:49:05 2012 +0200 FBO/Offscreen: Use most simple GLCapabilities for GLFBODrawableImpl's underlying dummy surface/drawable If stencil or MSAA has been selected, the underlying dummy drawable doesn't need to have this configuration, i.e. doesn't need to waste the resources. - Creation of the dummy surface/drawable uses a simple GLCapabilities - Requested FBO GLCapabilities is being passes down to the dummy drawable - GLFBODrawableImpl ctor leaves caps untouched - GLFBODrawableImpl.initialize(boolean realize) - realize == true: using the requested FBO caps and setting it in the parent dummy drawable - realize == false: restore the original caps of dummy drawable commit f541f349bdb99fbb4a00f1b81c9d4a60545cdb7e Author: Sven Gothel Date: Fri Oct 5 17:44:25 2012 +0200 Fix FBObject DEPTH_STENCIL renderbuffer usage If DEPTH_STENCIL was selected, recreate destroyed the common buffer when stencil was being 'reset'. To unify and simplify code, if DEPTH_STENCIL stencil == depth reference. commit 93c557c17d2046fc68c3deb582a51ccb4f578df1 Author: Sven Gothel Date: Fri Oct 5 17:26:36 2012 +0200 UITestCase.snapshot: Add Depth and Stencil bits to filename commit 742282292bb115343287a626b35211e81d695bad Author: Sven Gothel Date: Fri Oct 5 06:32:50 2012 +0200 Use helper.isExternalAnimatorAnimating() instead of helper.isAnimatorAnimating() for decision whether to display() now; Minor API comments. commit a3cb6bb14f410f67fccf5ccd4cd7ecc66f448389 Author: Sven Gothel Date: Fri Oct 5 06:31:08 2012 +0200 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 - GLCanvas.validateGLDrawable() @ display() and reshape() To help users using GLCanvas w/ having a realized GLCanvas/Drawable, validateGLDrawable() is also called at reshape(). This shall ensure a valid drawable after even a non AWT-EDT issued first setVisible(). - GLCanvas.reshape() only if drawble valid Otherwise offscreen reshape attempts would happen even on unrealized drawable, which is not necessary. - GLCanvas.validateGLDrawable() also test isDisplayable() To make sure the native peer is valid, also test isDisplayable() - Fix size validation Since we have experienced odd size like 0 x -41 test each component, i.e. 0 < width && 0 < height. This is done through all JOGL/NEWT components. - resizeOffscreenDrawable(..) don't validate 'safe' size 1x1 In case method is called w/ odd size, i.e. 0 x -41, the safe size 1x1 is used. However, we cannot validate this size. Dump WARNING if odd size is detected. commit 8f6233f11693f5e079cfeb6706fe2c37b5b9a6c2 Author: Sven Gothel Date: Fri Oct 5 03:43:03 2012 +0200 Fix regression of commit fbe331f013608eb31ff0d8675f4e4c9881c9c48b: X11 DisplayDriver dispatchMessagesNative() aDevice NPE at finally The aDevice could be pulled via destroy message, hence add check if null. commit 84632ca22d112da45b807299d2b1f5e4f4107695 Author: Sven Gothel Date: Fri Oct 5 03:27:44 2012 +0200 Fix SWTEDTUtil bug, where it simply doesn't start by an implicit 'invoke()' - No NewtCanvasSWT resize, nor input event delivery. A new EDTUtil instance is not started automatically. Since SWTEDTUtil is attached to the DisplayImpl later in time, i.e. after it's native creation, there is no EDTUtil.invoke(..) call which started it. The not started SWTEDTUtil could not deliver any events. Fix: Start it explicitly - add API doc comment in Display.setEDTUtil(..) commit a44c2df78f708b315ab68dbee2c68448e2cc6e7e Author: Sven Gothel Date: Thu Oct 4 16:47:22 2012 +0200 OSX Context: Fix caps determination for on-/offscreen since pformat's NSOpenGLPFAPixelBuffer is ambiguous commit 7278244e321dd1d533223e9b6d668a6acd82bc76 Author: Sven Gothel Date: Thu Oct 4 03:57:25 2012 +0200 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 Compile and generate android JAR files (jogl-all-android.jar, jogl-test-android.jar) if android SDK JAR files are available. - See gluegen commit 55b4552aef7882c358d545d020d6f12c958ed8ed Also split up atomic jogl-util.jar - jogl-util.jar -> jogl-util.jar + jogl-util-graph.jar Footprint Stats: This demonstrates small footprint of a minimum configuration, all numbers in kilobytes (du -ksc). NOTE the min size of ~ 1MB! JOGL ALL 220 kB gluegen-rt.jar 5180 kB jogl-all.jar 4 kB libgluegen-rt.so.gz 4 kB libnativewindow_awt.so.gz 12 kB libnativewindow_x11.so.gz 100 kB libjogl_desktop.so.gz 20 kB libnewt.so.gz 5540 kB total JOGL Min X11 Min egl es1 es2 220 kB gluegen-rt.jar 296 kB atomic/jogl-core.jar 156 kB atomic/jogl-glmobile.jar 284 kB atomic/jogl-util.jar 76 kB atomic/nativewindow-core.jar 120 kB atomic/newt-core.jar 28 kB atomic/nativewindow-os-x11.jar 28 kB atomic/newt-driver-x11.jar 4 kB libgluegen-rt.so.gz 48 kB libjogl_mobile.so.gz 12 kB libnativewindow_x11.so.gz 20 kB libnewt.so.gz 1292 kB total JOGL Android - mobile egl es1 es2 224 kB gluegen-rt-android.jar 3020 kB jogl-all-android.jar 4 kB libgluegen-rt.so.gz 48 kB libjogl_mobile.so.gz 3296 kB total JOGL Min Android/Mobile Min egl es1 es2 224 kB gluegen-rt-android.jar 296 kB atomic/jogl-core.jar 156 kB atomic/jogl-glmobile.jar 8 kB atomic/jogl-os-android.jar 284 kB atomic/jogl-util.jar 76 kB atomic/nativewindow-core.jar 120 kB atomic/newt-core.jar 28 kB atomic/newt-driver-android.jar 4 kB libgluegen-rt.so.gz 48 kB libjogl_mobile.so.gz 1244 kB total commit 4c9083b0766ef94643d91102fb91a5f9e598a914 Author: Sven Gothel Date: Thu Oct 4 03:31:18 2012 +0200 Fix regression of commit a644d779ab19cb1d200ae4ba567b9c042c34b337, cannot compile FixedFuncHook due to removed 'isDirty()' - getModifiedBits() -> getModifiedBits(boolean clear) commit 65a94fb5d05c6997126bcaabd21c7f1814f6f203 Author: Sven Gothel Date: Thu Oct 4 00:36:41 2012 +0200 FixedFuncPipeline: Cleanup warnings .. commit 3ae26ed8a9f0d4394c5b1e22d8246c2cdf391b2e Author: Sven Gothel Date: Thu Oct 4 00:36:17 2012 +0200 ShaderState: Adding Class API doc and removing attached object w/ 'int' key, similar to GLContext change 6d241fc2a46413ee478985d676d2481c5a7ed119 commit a644d779ab19cb1d200ae4ba567b9c042c34b337 Author: Sven Gothel Date: Thu Oct 4 00:34:56 2012 +0200 Update PMVMatrix/GLMatrixFunc API doc and refine PMVMatrix update / get-Mvi/Mvit-Matrix operation. (Minor API change) Using bitmask for requested Mvi and Mvit matrices, same as dirty-bits to ease matching and update operation. Update of Mvi and Mvit will be performed only if it's dirty-bit and request-bit set within update(). The individual dirty bit is cleared only if it's matrix update is performed. Update is also issued at get-Mvi/Mvit-Matrix operations to ensure proper values w/o update call w/o clearing the modified-bits. update() returns true if the Mvi or Mvit matrix got updated _or_ one of the modified bits is set. update() clears the modified-bits. Adding explicit getModifiedBits() to get and clear it's state. Adding unit test. Lots of API docs .. commit f7ca4df7b4e6b2acbdb941f67f6d7058db134d91 Author: Sven Gothel Date: Tue Oct 2 17:56:20 2012 +0200 Fix regression of fbe331f013608eb31ff0d8675f4e4c9881c9c48b [Remove XInitThreads()] NativeWindowFactory.getDefaultToolkitLock() is no more a global singleton, but an instance which has to track/lock a single resource. Hence the decoration w/ it in GLDrawableFactory is useless and applying lock/unlock on a new instance also a bug/regression. commit a7ab7a722db30f2016b15f0d55d1fa165f30282e Author: Sven Gothel Date: Tue Oct 2 17:22:35 2012 +0200 Misc: tests.sh commit 9c96be7c0a1a19365ae983908260c6ff44f045c4 Author: Sven Gothel Date: Tue Oct 2 17:13:56 2012 +0200 NativeWindowFactory: Remove 'remedy' of Bug 613 Commit 92398025abdabb2fdef0d78edd41e730991a6f94 GlobalToolkitLock for create/destroy Turns out on it has no effect and ATI prop. driver still has XCB failures at this point. commit 541dc2cdeaff64d4a241446752900bd6381d546a Author: Sven Gothel Date: Tue Oct 2 07:37:25 2012 +0200 Misc: Add commented-out NEWT X11/XCB-Event and X11ScreenRandR1[13] compilation ; ... Adding [dead] native source files for NEWT/X11: - X11Event and XCBEvent - X11ScreenRandR11 X11ScreenRandR13 They are currently excluded from compilation, however I like do version them for later use. commit eb7ca05a602bfd3decf545e2807b7bfaf5a09a1e Author: Sven Gothel Date: Tue Oct 2 07:33:17 2012 +0200 GLRendererQuirks.NoDoubleBufferedPBuffer: Set if ( mesa || gallium ) && hwAccel commit 98d5ae6b31802235426f0f540f7d0df74884a3d3 Author: Sven Gothel Date: Tue Oct 2 07:32:24 2012 +0200 FBObject/GLFBODrawable: Debug / glError detection - Enh. Debug output a bit - FBObject: Detect glError @ syncFramebuffer MSAA blit, throw GLException if glError to fail-fast - TODO: May add Mesa NoFBOMSAA Quirk to disable even trying it .. commit 21b85e647f1e661c8e5e49caa91c564a3d041df2 Author: Sven Gothel Date: Tue Oct 2 07:29:13 2012 +0200 Fix commit fbe331f013608eb31ff0d8675f4e4c9881c9c48b (Bug 616 - Remove XInitThreads()) X11Util/Native: Fix X11Util_initialize0() arguments were wrong and code still invoked XInitThreads() .. woops; Added missing included "jogamp_nativewindow_x11_X11Util.h" incl. it's generation via javah, which was the culprit of not detecting it at compile time. This is a fix for commit fbe331f013608eb31ff0d8675f4e4c9881c9c48b commit 7c333e3e2574879465719ed968112b27255368d4 Author: Sven Gothel Date: Tue Oct 2 07:28:00 2012 +0200 Relax Bug 613 workaround of commit 92398025abdabb2fdef0d78edd41e730991a6f94 Utilizing a GlobalToolkitLock in general to lock the display connection results in deadlock situations where locked surfaces signal other [offscreen] surfaces to render. We have to see whether we find a better solution, for now sporadic XCB assertion still happen. But it is preferrable to point to the root cause, then to jumping through hoops to complicate locking or even to deadlock. Locking: - X11GLXGraphicsConfigurationFactory add missing device locking in: - getAvailableCapabilities - chooseGraphicsConfigurationStatic - Newt/X11Window: Discard display events after window close. Relax ATI XCB/threading bug workaround: - ToolkitProperties: requiresGlobalToolkitLock() -> hasThreadingIssues() - NativeWindowFactory: Don't use GlobalToolkitLock in case of 'threadingIssues' the impact is too severe (see above) - NativeWindowFactory: Add getGlobalToolkitLockIfRequired(): To be used for small code blocks. If having 'threadingIssues' a GlobalToolkitLock is returned, otherwise NullToolkitLock. - X11GLXContext: [create/destroy]ContextARBImpl: Use 'NativeWindowFactory.getGlobalToolkitLockIfRequired()' for extra locking Misc Cleanup: - *DrawableFactory createMutableSurface: Also create new device if type is not suitable - *DrawableFactory createDummySurfaceImpl: Pass chosenCaps and use it (preserves orig. requested user caps) commit 0790108ca9c2a6a6d494e5017589fe083c518e23 Author: Sven Gothel Date: Sun Sep 30 20:36:27 2012 +0200 JAWTUtil ToolkitLock: Add lock counter to make lock validation recursive (Fix regression of commit 92398025abdabb2fdef0d78edd41e730991a6f94) commit c69d62a7869ba8e42ba4f4a6d4467bc1c49080e4 Author: Sven Gothel Date: Sun Sep 30 20:29:54 2012 +0200 test script: remove deleted unit test commit 7302b1014a33c373650ed20e6dd363bb6c2a984e Author: Sven Gothel Date: Sun Sep 30 20:29:06 2012 +0200 NullToolkitLock.validateLocker(): Throw exception if locking is required (detecting impl. bugs) commit e5c1e607d582d002256a07916aba71841744fb4d Author: Sven Gothel Date: Sun Sep 30 20:28:24 2012 +0200 X11Util: Detailed closing information only in DEBUG mode, just print summary commit 2d35fc546097818aba5db51885f796cb0b442734 Author: Sven Gothel Date: Sun Sep 30 19:52:20 2012 +0200 Bug 623: X11Util adds property 'nativewindow.debug.X11Util.ATI_HAS_NO_MULTITHREADING_BUG' to disable GlobalToolkitLock workaround for testing. commit 92398025abdabb2fdef0d78edd41e730991a6f94 Author: Sven Gothel Date: Sun Sep 30 19:47:46 2012 +0200 Workaround for Bug 623: Sporadic XCB assertion failures w/ ATI proprietary driver and w/o native X11 locking The proprietary ATI X11 driver does not handle multi-threaded [GL] clients well, i.e. triggers an XCB assertion 'from time to time'. It almost seems like that the driver either: - aliases all display connections to it's connection name, i.e. server; or - utilizes a build-in display connection w/o locking, used for some reason +++ - X11Lib: Add QueryExtension(dpy, name) allowing early driver determination w/o GL - X11Util detects 'requiresGlobalToolkitLock' and 'markAllDisplaysUnclosable' via X11 extensions. In case certain ATI extensions are available, both are set to true. - X11GLXDrawableFactory: Dropped setting 'markAllDisplaysUnclosable', using X11Util's detection (see above). - New GlobalToolkitLock to satisfy certain driver restrictions (ATI's XCB multithreading bug) - NativeWindowFactory handles new property requiresGlobalToolkitLock, in which case the new GlobalToolkitLock is being used instead of ResourceToolkitLock. - JAWTUtil ToolkitLock locks GlobalToolkitLock 1st to match new 'requiresGlobalToolkitLock' property. - Document static method requirement of X11Util, GDIUtil and OSXUtil via marker interface ToolkitProperties - ToolkitLock: New method 'validateLocked()', allowing use to validate whether the device/toolkit is properly locked and hence to detect implementation bugs. See unit test class: ValidateLockListener commit 8351d513730009316b81149414ea87f3c631f9a2 Author: Xerxes Rånby Date: Sun Sep 30 01:32:35 2012 +0200 Add braces and fix indentation to conform with jogl coding standards. commit fa55b54822a256eb73147763829b946433c3d3f7 Author: Xerxes Rånby Date: Sun Sep 30 01:24:07 2012 +0200 ".bcm.vc.iv" is enough now -> NEWT agnostic relative package path. commit 8a1e50dc33e14e9423e2f4bc066b32a835bb33fb Author: Xerxes Rånby Date: Sun Sep 30 00:51:39 2012 +0200 _getNativeWindowingType() TYPE_BCM_VC_IV autodetection. Signed-off-by: Xerxes Rånby commit 43891be36e8485353ac74f329fd2f7438303a846 Author: Sven Gothel Date: Sat Sep 29 04:41:47 2012 +0200 Cache XineramaIsEnabled(dpy) per display-name in X11Util minimize triggering ATI driver bug of sporadic XCB errors and to reduce server roundtrips. Enhances commit: e4176f4e76f519b3599ad557210def3d35266e7b X11Util.XineramaIsEnabled(dpy) hash maps the Xinerama enable result to the dpy-name. Minimize triggering ATI driver bug of sporadic XCB errors: Our multithreading code somehow triggers an _XReply in XQueryExtension beside other functions, which fails the XCB assertion: ../../src/xcb_io.c:178: dequeue_pending_request: Assertion `!xcb_xlib_unknown_req_in_deq' failed. This only appears w/ ATI driver and is probably due to a race condition in the driver (?). This change also reduces server roundtrips / querying time for the cost of 1 hash-map. commit e0904a65bcf87ea0fd41d76cc1af7ad29daaefb5 Author: Sven Gothel Date: Sat Sep 29 03:14:30 2012 +0200 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. commit 18ae6451a5531f46f56389bd7071db1d988e80d7 Author: Sven Gothel Date: Sat Sep 29 03:03:20 2012 +0200 GLContext.makeCurrent(): Clean API doc commit 4f8432b0a5ac2a030056884c8f6c877435aaf5c8 Author: Sven Gothel Date: Sat Sep 29 03:02:09 2012 +0200 GLDrawableHelper.init(..): Avoid double reshape if subsequent display issues reshape Adding boolean sendReshape argument to be set to false, if subsequent display won't reshape. commit 27fe889023c7366e264647e5dc25053f22df0956 Author: Sven Gothel Date: Fri Sep 28 18:59:11 2012 +0200 Adding Mesa Quirk 'NoSetSwapIntervalPostRetarget': SIGSEGV on setSwapInterval() after changing the context's drawable w/ 'Mesa 8.0.4' dri2SetSwapInterval/DRI2 (soft & intel) Analyzing 'TestGLContextDrawableSwitchNEWT' crash at setSwapInterval -> dri2SetSwapInterval after retargeting the context (new drawable association). Turns out Mesa's dri2SetSwapInterval may have a bug. +++ GLContext TRACE_SWITCH: Add drawable handle to debug/trace output. commit 30d6d5e3c1ee7132c2b3cc722839528882e03053 Author: Sven Gothel Date: Fri Sep 28 18:55:09 2012 +0200 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. commit 52b499095dbe18d6a8f4383093e840480d50e930 Author: Sven Gothel Date: Fri Sep 28 18:52:57 2012 +0200 Texture: Clarifiy API doc of getTextureObject(GL) commit e4176f4e76f519b3599ad557210def3d35266e7b Author: Sven Gothel Date: Fri Sep 28 18:52:31 2012 +0200 NativeWindow/X11 + NEWT/X11: Cache 'isXineramaEnabled()' to reduce X11 server roundtrips. commit 54f79e402ddb87de9caa3297228cbd16c452cfb4 Author: Sven Gothel Date: Fri Sep 28 09:56:46 2012 +0200 NEWT X11 ScreenMode: Ignore invalid rotation event commit 4c24011e3cb0aa12a9d5200075e87eda84a18bcf Author: Sven Gothel Date: Fri Sep 28 09:56:02 2012 +0200 GLXUtil: Lock X11 Device commit 285bd9b718621a70f180dff6dfea73092c2b75cc Author: Sven Gothel Date: Thu Sep 27 17:38:01 2012 +0200 FBObject: Clarify reset(..), resetSamplingSink(..) ; Rename syncFramebuffer(..) -> syncSamplingSink(..) - reset(..) adds a new argument, boolean resetSamplingSink, allowing to trigger a reset on the samplink sink as well. Use cases are documented. - made public: resetSamplingSink() - Rename syncFramebuffer(..) -> syncSamplingSink(..) to clarify semantics commit fbe331f013608eb31ff0d8675f4e4c9881c9c48b Author: Sven Gothel Date: Thu Sep 27 17:33:39 2012 +0200 Fix Bug 616: X11: Remove XInitThreads() dependency while cleaning up device locking, resulting in a native-lock-free impl. The X11 implementation details of NativeWindow and NEWT used the X11 implicit locking facility XLockDisplay/XUnlockDisplay, enabled via XInitThreads(). The latter useage is complicated within an unsure environment where the initialization point of JOGL is unknown, but XInitThreads() requires to be called once and before any other X11 calls. The solution is simple and thorough, replace native X11 locking w/ 'application level' locking. Following this pattern actually cleans up a pretty messy part of X11 NativeWindow and NEWT, since the generalization of platform independent locking simplifies code. Simply using our RecursiveLock also speeds up locking, since it doesn't require JNI calls down to X11 anymore. It allows us to get rid of X11ToolkitLock and X11JAWTToolkitLock. Using the RecursiveLock also allows us to remove the shortcut of explicitly createing a NullToolkitLocked device for 'private' display connections. All devices use proper locking as claimed in their toolkit util 'requiresToolkitLock()' in X11Util, OSXUtil, .. Further more a bug has been fixed of X11ErrorHandler usage, i.e. we need to keep our handler alive at all times due to async X11 messaging behavior. This allows to remove the redundant code in X11/NEWT. The AbstractGraphicsDevice lifecycle has been fixed as well, i.e. called when closing NEWT's Display for all driver implementations. On the NEWT side the Display's AbstractGraphicsDevice semantics has been clarified, i.e. it's usage for EDT and lifecycle operations. Hence the X11 Display 2nd device for rendering operations has been moved to X11 Window where it belongs - and the X11 Display's default device used for EDT/lifecycle-ops as it should be. This allows running X11/NEWT properly with the default usage, where the Display instance and hence the EDT thread is shared with many Screen and Window. Rendering using NEWT Window is decoupled from it's shared Display lock via it's own native X11 display. Lock free AbstractGraphicsDevice impl. (Windows, OSX, ..) don't require any attention in this regard since they use NullToolkitLock. Tests: ====== This implementation has been tested manually with Mesa3d (soft, Intel), ATI and Nvidia on X11, Windows and OSX w/o any regressions found in any unit test. Issues on ATI: ============== Only on ATI w/o a composite renderer the unit tests expose a driver or WM bug where XCB claims a lack of locking. Setting env. var 'LIBXCB_ALLOW_SLOPPY_LOCK=true' is one workaround if users refuse to enable compositing. We may investigate this issue in more detail later on. commit ba846a478d616327817dd530dbdcd9a786be5b7a Author: Sven Gothel Date: Fri Sep 21 22:18:20 2012 +0200 Fix Bug 621, JVM Crashes During X11 Shutdown while closing all unclosed display connections. This is a regression of JOGL commit f2cfb6119a3663715ed2d572643949b3bef58662 to fix Bug 610. Commit f2cfb6119a3663715ed2d572643949b3bef58662 closed all open display connections at JVM shutdown in order of their creation. This is required IF the driver is the proprietary ATI on X11. X11Util.setMarkAllDisplaysUnclosable(true) is called in this case. However, this behavior causes a SIGSEGV for other GPU driver, i.e. Nvidia :) This fix only closes the pending display connections in their respective order IF X11Util.getMarkAllDisplaysUnclosable() == true. Hence the 'new' cleanup as introduced in the offending commit is only performed on the erroneous ATI driver. Manually tested w/ TestGearsES2AWT, see it's commandline options for details. commit 495a1fbd591dfd9c428d9be660c3db33b7cb7aae Author: Sven Gothel Date: Fri Sep 21 20:26:31 2012 +0200 FBObject: Small cleanup of freeColorbufferImpl(gl, i) -> freeAllColorbufferImpl(gl) commit 459af1bba130495943e51ff289a094b602c642cd Author: Sven Gothel Date: Fri Sep 21 08:28:42 2012 +0200 MacOSXCGLContext: Fix missing initialization of 'needsSetContextPBuffer' if not offscreen-layer. commit 5b378cb2cd162cb9af44812c37935eb3a83aabd2 Author: Sven Gothel Date: Fri Sep 21 07:20:37 2012 +0200 MacOSXCGLDrawableFactory: Cannot use shared context to retrieve quirks since it's transient, store it. commit 48f033d61dcf6c6d6964457710f6ac273ef4fc58 Author: Sven Gothel Date: Thu Sep 20 23:18:30 2012 +0200 NativeWindowFactory/NEWT: Use relative sub-package names in NativeWindowFactory's TYPE_* strings, not NEWT's; NEWTFactory: Use default NEWT package name if rel. 'path'. Use relative sub-package names in NativeWindowFactory's TYPE_* strings, not NEWT's Otherwise NEWT depends solely on NativeWindowFactory strings - Default subpackages denominate a relative path, i.e. start with a dot: '.egl', '.windows', '.x11' - Custom name may be absolute, eg: 'my.company.special.drivers.chip4' NEWTFactory: Use default NEWT package name if relative 'path'. - If NativeWindowFactory type starts w/ dot (rel. path), simply prepend the default NEWT package prefix otherwise use complete package name as-is. commit 923d9dd7f1d40db72d35ca76a761ca14babf147f Author: Sven Gothel Date: Thu Sep 20 23:12:48 2012 +0200 Add GLRendererQuirks; Fix shared EGL/ES resources; Add GLRendererQuirks: - Contains centralized 'tagged' workarounds for GL renderer bugs (quirks) - Accessible via GLContext and GLDrawableFactory - Initialized in GLContext.setAvailability* - Simplify GLGraphicsConfigurationUtil.fixOffscreenGLCapabilities(..) & use Quirks - use quirks - instead of passing booleans for each config, pass factory & device Fix shared EGL/ES resources: - GLProfile needs to initialize EGLDrawableFactory's shared resources before desktop, so EGLDrawableFactory can use the fallback defaultDisplay & defaultSharedResource for host mapped sharedResources (hack). - If using defaultSharedResources for host mapped ones, do not go through initialization cycles - simply map (sharedResource + context). - EGLDrawableFactory: Use device's unique-key instead of connection only, since the latter causes a collision (EGL-connection == X11-connection). commit 0f531ec116245b10fcb41e7b0905f240b91aa93a Author: Sven Gothel Date: Thu Sep 20 22:46:53 2012 +0200 FBO tests: Add singleBuffer cmd-line option for offscreen-layered tests; FBOMRT: Allow test w/ only one attachment number (sure not MRT then) commit 60c63acc298fd33ada43f37962d1d6c32a0359c3 Author: Sven Gothel Date: Thu Sep 20 22:45:19 2012 +0200 OSX CALayer / MacOSXCGLContext: Remove pbuffer swap garbage; Split pbuffer/FBO revalidation/redraw; Don't sync @ needsDisplay Simplified pbuffer replacement: Simply keep holding the pbuffer reference in native code until receiving newPBuffer @ swap. The newPBuffer will be established @draw method. This allows removing interaction at destroy pbuffer, which caused garbage and crash. Remove pbuffer swap garbage See above. Split pbuffer/FBO revalidation/redraw Don't sync @ needsDisplay - No need to sync @ repaint command setNSOpenGLLayerNeedsDisplay* since we use volatiles and all lifecycle action is done @draw -> faster commit 7da8654b49aa3ddd01fbc64a710b5efe04529381 Author: Sven Gothel Date: Thu Sep 20 19:03:26 2012 +0200 GLFBODrawableImpl: Fix garbage @ swap, add [disabled] reset-quirk for testing Fix garbage @ swap: Reset the front buffer _after_ swap. Add [disabled] reset-quirk for testing: On some OSX GPUs (old NV 7xxx only ?), reconfig/resize of FBO fails, recreate whole FBO w/ quirk enabled. commit 8be507ab52506f50804d0254aeacf45e171b919e Author: Sven Gothel Date: Thu Sep 20 18:59:03 2012 +0200 FBObject cleanup / review: strings, simplified re-attachment, removed redundancy, adding quirk. Strings: Cleanup status strings; More verbose TextureAttachment toString() Simplified re-attachment: Using simple switch/case block to recreate renderbuffer instead of task list (duh!) Removed redundant calls to bind(gl) Adding quirk for re-attachment: detach all 1st, then recreate. Disabled per default. commit 55e2ff7c04aa4dc1e8838bcf23690dc9e01c0130 Author: Sven Gothel Date: Thu Sep 20 15:25:55 2012 +0200 GLReadBufferUtil, ShaderUtil: Catch GLException (and dump if thrown), to increase robustness $ glReadPixels and Get NUM_SHADER_BINARY_FORMATS commit 5684b94b1e7330b0008463bdee170358e9ecfa4c Author: Sven Gothel Date: Thu Sep 20 15:23:34 2012 +0200 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 commit 3c09f42d372f89bdb41ab4cf2f96962971ad909a Author: Sven Gothel Date: Thu Sep 20 11:54:57 2012 +0200 Fix Bug 612: glVertexAttribIPointer/glVertexAttribLPointer are BufferObjectKind (VBO) and needs a RangeCheck as well Fix glVertexAttribIPointer/glVertexAttribLPointer (Bug 612) Similar to glVertexAttribPointer: - Mark both BufferObjectKind - Add RangeCheck to both commit 3f5aac3536956e245d0e151e4915e7dd67a08b7e Author: Sven Gothel Date: Thu Sep 20 11:54:20 2012 +0200 Fix non NIO direct GL semantics: Restrict certain GL function to NIODirectOnly (again) Partially reverting commits 375ab2da54ded1f3b3d90dc21b91fc6b87c64285 45a42f7c7f7fce4e6c7eb495591c438bdf0170a2 Both commits had flaws regarding: - GL spec: Pointer functions required passed memory pointers to persist - JNI: Primitive arrays may change their native memory location (swap), even if they were not GC'ed. Xerxes Ranby and I discussed whether we are able to track the primitive non direct NIO backed arrays and pinpoint them. JNI's Get*ArrayElements may be able to pinpoint, however it could result in a copy of the data, which would render this feature non performant. The tracking itself may be another no-go, since it would add up complexity and failing to free resources would be another negative sideeffect. commit 2ea3f82baa32ff7f25856c7e3210fb70664b49e6 Author: Sven Gothel Date: Tue Sep 18 08:33:01 2012 +0200 unit test, typo in doc commit 608a8aaee0da2d32eeb6f9b4efe9c34013efda31 Author: Sven Gothel Date: Mon Sep 17 05:41:16 2012 +0200 Documenting Bug 586 commit c0cc74a7d525aaa7eb89f60c836589678053d5fb Author: Sven Gothel Date: Mon Sep 17 03:30:36 2012 +0200 Fixes Bug 615 - X11: Use proper screen index/name for shared resources and device denominated 'mutable' surfaces (dummy, offscreen, ..) Fix follows findings of Rob Hatcherson, but instead of parsing the display connection ourself we use the X11 macro 'DefaultScreen(display)' See "The screen number specified in the display_name argument is returned by the DefaultScreen() macro (or the XDefaultScreen() function)." Since I currently have no two-head X11 setup here, only xinerama via virtualbox, pls test / validate. Note: One Display connection may span multiple screens, i.e.: display 'lala:0.1' may span from screen 1 - 3 (non xinerama mode) Discussion: [1] How to validate whether a screen number belongs to one display connection ? We can query ScreenCount(display), however it is not clear what the range would be. [2] With 1 display connection spanning multiple screens, what is/are the proper connection string[s] ? [3] After all, it seems this ancient configuration really cannot beat a modern setup w/ XRandR having Xinerama enabled. The latter is the default anyways. commit 3704d1553c9eac8b3d9fb1e24b9a513cb362b092 Author: Sven Gothel Date: Mon Sep 17 00:27:37 2012 +0200 Anotate focus tests in regards to OSX stability .. sporadically won't gain focus and receive keyboard input via AWTRobot commit 94eae65015f188ff88324710d12895aba71d6f9d Author: Sven Gothel Date: Mon Sep 17 00:01:51 2012 +0200 Analyze crash of shared context each running in multiple threads, disabled test for OSX > 10.7.0 Shared context w/ 3 context each running in there own thread is instable here on OSX 10.7.4/NVidia, SIGSEGV @ glDrawArrays / glBindBuffer .. any shared VBO. Seems to run fine on 10.6.8/NVidia. commit 8777a6f0b8d5aa7c97643c68c4641593c6fa2c46 Author: Sven Gothel Date: Sun Sep 16 21:24:58 2012 +0200 Complete 646714d3dab87396b9a3119bf90ca26e0b1c97ce / Fix Bug 601: Add missing enqueueKeyEvent(..) in WindowsDriver; Fix API doc typo. commit 646714d3dab87396b9a3119bf90ca26e0b1c97ce Author: Sven Gothel Date: Sun Sep 16 21:13:51 2012 +0200 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. As now described in NEWT's KeyEvent: +/** + * Key events are delivered in the following order: + *
    + *
  1. {@link #EVENT_KEY_PRESSED}
  2. + *
  3. {@link #EVENT_KEY_RELEASED}
  4. + *
  5. {@link #EVENT_KEY_TYPED}
  6. + *
+ * In case the native platform does not + * deliver keyboard events in the above order or skip events, + * the NEWT driver will reorder and inject synthetic events if required. + *

+ * Besides regular modifiers like {@link InputEvent##SHIFT_MASK} etc., + * the {@link InputEvent#AUTOREPEAT_MASK} bit is added if repetition is detected. + *

+ */ commit f2bd50ff25009de477a203460abe8a5597acdbc5 Author: Sven Gothel Date: Sun Sep 16 15:39:10 2012 +0200 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. commit 266d0ba5a4acde851dab3abd7dfe4b72542d0675 Author: Sven Gothel Date: Sun Sep 16 15:30:48 2012 +0200 OSX: Disable TestSWTAccessor03AWTGLn - NSLocking issues w/ SWT/AWT .. commit f91d827623c037ed16e743f49f74b5a3be6f8a99 Author: Sven Gothel Date: Sun Sep 16 13:43:45 2012 +0200 Added very basic unit test of 1 GLProfile initialization commit e30c2c7d06847889d961d12b50e77e4dfd6e525f Author: Sven Gothel Date: Sun Sep 16 13:27:06 2012 +0200 OSX: Capture 'invalid drawable' message cause by NSOpenGLContext::setView(NULL || incomplete-view) ; Add missing [ctx release] in MyNSOpenGLLayer ; Misc NSOpenGLContext::setView(NULL || incomplete-view) was called on 2 occasions: [1] - MacOSXCGLContext native createContext [2] - NSOpenGLLayer internals For [1], we simply don't call setView(..) ourselfs in case view is NULL or incomplete (invisible) For [2], we need to wrap the class 'MyNSOpenGLContext:NSOpenGLContext' and capture setView(NULL) ++ Add missing [ctx release] in MyNSOpenGLLayer, otherwise resource won't get dealloc'ed +++ Misc: - MacOSXCGLContext. contextRealized(true): set pbuffer -> ctx, otherwise 1st makeCurrent call will not catch it - MacOSXOnscreenCGLContext: don't add ContextUpdater to invisible ProxySurface's (dummy window) commit 33896a42dcec55d52030fae33e64fa966c67f91d Author: Sven Gothel Date: Sun Sep 16 08:26:58 2012 +0200 Disable double-buffer mode when offscreen-bitmap is chosen, remove dbl-buff bitmap test commit 4dd44b985fe0541be3a3bcd9045d201ed3ca2cc5 Author: Sven Gothel Date: Sat Sep 15 16:54:52 2012 +0200 Seamless Integration of an FBObject based GLFBODrawable as GLOffscreenAutoDrawable.FBO and as an OffscreenLayerSurface's drawable (OSX) - Fix Bugs 569 and 599 Summary: ========= The new FBObject based GLFBODrawable implementation allows the seamless utilization of FBO offscreen rendering in single buffer, double buffer and MSAA mode. The GLFBODrawable uses a parent drawable based on a dummy surface to allow a GLOffscreenAutoDrawable.FBO creation or a mutable surface supporting an existing offscreen layer surface (OSX CALayer). Offscreen GLDrawable's and GLOffscreenAutoDrawable's can be selected via the GLCapabilities. If simply !onscreen is selected in the caps instance w/o enabling FBO, PBuffer or Bitmap, the factory will automatically choose regarding availability: FBO > PBuffer > Bitmap Double buffering is supported in MSAA more (intrinsic) and explicit in non MSAA. It is preferred when delivering resources (texture id's or framebuffer names) to a shared GLContext. This is demonstrated in (emulates our OSX CALayer implementation): TestFBOOffThreadSharedContextMix2DemosES2NEWT, TestFBOOnThreadSharedContext1DemoES2NEWT and with the OSX JAWT OffscreenLayerSurface itself. FBO is the preferred choice. +++ Offscreen drawables can be resized while maintaining a bound GLContext (e.g. w/ GLAutoDrawable). Previously both, drawable and context, needed to be destroyed and recreated at offscreen resize. Common implementation in GLDrawableHelper is used in the implementations (NEWT's GLWindow, AWT GLCanvas, SWT GLCanvas). +++ Tested: ======= Manually run all unit tests on: - Linux x86_64 NVidia/AMD/Mesa3d(ES) - OSX x86_64 NVidia - Windows x86_64 NVidia - Android arm Mali-400/Tegra-2 No regressions. Disclaimer: =========== This feature is committed almost in one patch. Both previous commits were introducing / fixing the capabilities behavior: 90d45928186f2be99999461cfe45f76a783cc961 9036376b7806a5fc61590bf49404eb71830de92f I have to appologize for the huge size and impact (files and platforms) of this commit however, I could not find a better way to inject this feature in one sane piece. NativeWindow Details: ===================== Complete decoupling of platform impl. detail of surfaces implementing ProxySurface. Used to generalize dummy surfaces and EGL surfaces on top of a native platform surface. - ProxySurface.UpstreamSurfaceHook -> UpstreamSurfaceHook - abstract class ProxySurface -> interface ProxySurface + ProxySurfaceImpl - Misc. implementations JOGL Details: ===================== FBOObject: API Change / Simplification & Usability - Removed reference counter to remove complexity, allow user to choose. - Add 'dispose' flag for detachColorbuffer(..), allowing to keep attachment alive - Fix equals operation of Attachment - Check pre-exising GL errors - Interface Colobuffer gets lifecycle methods - Add static factory methods to create Attachments w/o FBObject instance - Reset: - Clip min size to 1 - Keep alive samplingSink, i.e. don't issue resetMSAATexture2DSink(..). It gets called at syncFramebuffer()/use(..) later on before actual usage. This allows the consumer to utilize the GL_FRONT buffer until (e.g.) swap. - misc bugfixes GLOffscreenAutoDrawable: API Change - Reloc and interfacing - class com.jogamp.opengl.OffscreenAutoDrawable -> javax.media.opengl.* interfaces GLOffscreenAutoDrawable extends GLAutoDrawable GLOffscreenAutoDrawable.FBO extends GLOffscreenAutoDrawable, GLFBODrawable - Added general implementation and FBO specialization - Replacing GLPBuffer (deprecated) .. usable for any offscreen GLDrawable via factory GLAutoDrawable: - Add 'GLDrawable getDelegatedDrawable()' - Refine documentation of setContext(..), remove disclaimer and fixme tags GLDrawableFactory: - Refine API doc and it's selection mechanism for offscreen. - Add createOffscreenDrawable(..) - Add createOffscreenAutoDrawable(..) - Add canCreateFBO(..) - Mark createGLPbuffer(..) deprectated Mark GLPBuffer deprecated New: GLFBODrawable extends GLDrawable GLCanvas (AWT and SWT): Add offscreen resize support w/o GLContext recreation GLAutoDrawableBase .. GLWindow: - Add offscreen resize support w/o GLContext recreation - Remove double swapBuffer call - GLBase/GLContext: - Add: - boolean hasBasicFBOSupport() - boolean hasFullFBOSupport() - int getMaxRenderbufferSamples() - boolean isTextureFormatBGRA8888Available() GLContext: Fix version detection and hasGLSL() - Version detection in setGLFunctionAvailability(..) - Query GL_VERSION ASAP and parse it and compare w/ given major/minor - Use parsed version if valid and lower than given _or_ given is invalid. - Use validated version for caching (procaddr, ..), version number, etc. - Fix hasGLSL() Since 'isGL2ES2()' is true if 'isGL2()' and the latter simply alows GL 1.*, we confine the result to a GL >= 2.0 on desktops. FIXME: May consider GL 1.5 w/ extensions. - return isGL2ES2(); + return isGLES2() || + isGL3() || + isGL2() && ctxMajorVersion>1 ; GLDrawableImpl: - Add 'associateContext(GLContext, boolean)' allowing impl. to have a (weak) reference list of bound context. This is was pulled up from the OSX specific drawable impl. - swapBuffersImpl() -> swapBuffersImpl(boolean doubleBuffered) and call it regardless of single buffering. This is required to propagate this event to impl. properly, i.e. FBODrawable requires a swap notification. - Clarify 'contextMadeCurrent(..)' protocol GLDrawableHelper: - Add resize and recreate offscreen drawable util method - Simplify required init/reshape calls for GLEventListener - GLGraphicsConfigurationUtil: - fixWinAttribBitsAndHwAccel: Reflect sharede context hw-accel bits - OSX has no offscreen bitmap, use pbuffer - use proper offscreen auto selection if offscreen and no modes are set EGL Context/Drawable/DrawableFactory: Abstract native platform code out of base classes - Use EGLWrappedSurface w/ UpstreamSurfaceHook to handle upstream (X11, WGL, ..) lifecycle - in case the EGL resource is hooked up on it. Invisible dummy surfaces: All platforms - size is now reduced to 64x64 and decoupled of actual generic mutable size - fix device lifecycle, no more leaks +++ OSX ==== Enable support for GLFBODrawableImpl in offscreen CALayer mode - NSOpenGLImpl: hooks to calayer native code - calayer code: - allows pbuffer and texures (FBO) - decouple size and draw calls avoiding flickering - enable auto resize of calayer tree MacOSXCGLContext: - NSOpenGLImpl: - Fix false pbuffer 'usage', validate the pointer - If !pbuffer, copy other window mode bits of caps - MacOSXCGLGraphicsConfiguration: - Only assume pbuffer if !onscreen - Remove reference of native pixelformat pointer Native code: - use 'respondsToSelector:' query before calling 'new' methods avoiding an error message where unsuported (prev. OSX versions) - if monitor refresh-rate is queried 0, set to default 60hz - add missing NSAutoreleasePool decoration +++ Android / NEWT: =============== Issue setVisible(..) w/o wait, i.e. queue on EDT, @Android surfaceChanged() callback. Otherwise we could deadlock: setVisible(..) -> EDT -> setVisibleImpl(..) -> 'GL-display'. the latter may may cause havoc while Android-EDT is blocked [until it's return]. commit 9036376b7806a5fc61590bf49404eb71830de92f Author: Sven Gothel Date: Sat Sep 8 19:45:11 2012 +0200 Fix window mode attribute bit FBO_BIT usage in platform dependent code (map it to native type) ; OSX Caps selection ; WGL/GDI BITMAP fix Fix window mode attribute bit FBO_BIT usage in platform dependent code (map it to native type) All platform dependent winAttrBit mapping: 'nativeType -> winAttrBit' and 'GLCapabilities -> winAttrBits' shall replace FBO_BIT w/ the native type of the wrapper surface, i.e. WINDOW_BIT (X11, WGL, CGL) or PBUFFER_BIT (EGL). This condenses to changes in - EGLGraphicsConfiguration: EGLConfigDrawableTypeBits / GLCapabilities2AttribList - X11GLXGraphicsConfiguration: FBCfgDrawableTypeBits, XVisualInfo2GLCapabilities / GLCapabilities2AttribList - WindowsWGLGraphicsConfiguration: AttribList2DrawableTypeBits, PFD2DrawableTypeBits / GLCapabilities2AttribList - OSX CGL/NS requires changes in MacOSXCGLContext, i.e. fix the surface mode of NSPixelFormat2GLCapabilities, CGLPixelFormat2GLCapabilities results. This change is included in the upcoming commit (class is heavily edited). OSX chooseGraphicsConfigurationStatic: Add missing 'GLGraphicsConfigurationUtil.fixGLCapabilities(..)' call - all platform impl. require to fix the given user caps due to the new offscreen auto selection mode WindowsWGLGraphicsConfiguration*: ARB / GDI updateGraphicsConfiguration*() - ARB method detects early whether it's suitable for given HDC, i.e. in case of BITMAP (it's not here) - GDI methods detect failure while choosing PFD and doesn't care of DOUBLEBUFFER in case of bitmap (fixes BITMAP usage) Capabilities/GLCapabilities: - Fix missing double-buffer check in GLCapabilities.equals() - add 'copyFrom(..)' method copy all data from give caps commit d22ac65d0f841e4c3698ec817d4ebbfdb7ee25a0 Author: Sven Gothel Date: Fri Sep 7 08:34:32 2012 +0200 NEWT AWT Driver: Remove flashing (clear background @ update/paint method) ; Proper canvas size and direct events. commit 1b6593f973970ad00a0a0f08b56cc83501a55ad2 Author: Sven Gothel Date: Fri Sep 7 08:32:31 2012 +0200 NEWT EDTUtil: Complete AWT and SWT impl. w/ Newt event dequeue thread (NEDT) AWT and SWT impl. use the toolkit thread to deliver toolkit events and to execute task. However, NEWT dispatches event using its own queue for NEWT events. Adding a simple thread to dequeue those. Remove 'EDTUtil.start()', since this is implicit @ invoke(). commit f2cfb6119a3663715ed2d572643949b3bef58662 Author: Sven Gothel Date: Fri Sep 7 08:13:06 2012 +0200 Cleanup shutdown mechanism ; Fix X11/ATI SIGV at shutdown ; EGLDisplayUtil: Check for leaked display handles GLProfile / all shutdown methods: Remove ShutdownType to remove complexity (not required) Proper shutdown sequence: GLProfile - GLDrawableFactory+ - GLContext - NativeWindowFactory - [X11Util, OSXUtil, ..] GLDrawableFactory: Always keep shutdown-hook alive, required for X11Util shutdown (@ JVMShutdown only) X11Util: Shutdown - @ JVMShutdown only - If GL vendor ATI: close pending X11 display connections in proper order of creation. This finally removes the SIGV when shutting down the JVM on X11 w/ ATI driver. EGLDisplayUtil: Add shutdown, allowing to validate whether leaked EGL display handles remain. commit ffcfd35929407c75308ab41883463bc8c8a89b91 Author: Sven Gothel Date: Fri Sep 7 05:46:52 2012 +0200 Windows scripts: bump to 1.6.0_35 commit 90d45928186f2be99999461cfe45f76a783cc961 Author: Sven Gothel Date: Fri Sep 7 05:46:22 2012 +0200 Fix Capabilities ambiguity and explosion of queried available-list; Add FBO availability detection for EGL, WGL and OSX. Introducing Capabilities 'bitmap' boolean, complementing the offscreen modes FBO and PBuffer. This allows: 1 - deterministic setting of the offscreen mode 2 - utilizing auto configuration of offscreen mode, if !onscreen !FBO !PBuffer and !Bitmap 3 - adding 'availability' semantic of 'onscreen' boolean, i.e. if onscree:=1 for a queried instance, the offscreen modes still indicate offscreen availability - see [4] 4 - avoiding explosion of the availability list due to [3], one Capability entry reflect on- and offscreen settings. Add FBO availability detection for EGL, WGL and OSX. Tested manually w/ 'TestGLCapabilities01NEWT' on X11 [NV, ATI], WGL[NV], OSX[NV]. commit 3ee639687c4d1e2431066f7dfe7a922b569079ec Author: Sven Gothel Date: Thu Aug 23 22:28:27 2012 +0200 Android: Bump version.code: 914011 commit 8516fe0358805e8549a96cde785dfa7ac2576e87 Author: Sven Gothel Date: Thu Aug 23 21:09:23 2012 +0200 Fix Android Power-suspend and Power-resume NewtBaseActivity onPause()/onResume(): add setVisible(..) allowing recreation and avoid usage of unavail resources - crucial for power suspend/resume, which itself calls activity onPause()/onResume(), this ensures resources are not used onPause(). - Animator suspend is not sufficient due to surfaceRedrawNeeded(..) hook etc .. - iff power suspend leads to surfaceDestroyed(..), recreation is now possible due to setVisible(true) on onResume() even though I have not observed this on Android 2.3 and 4.0.1 Tested on Android 2.3 and Android 4.0.1 commit ab3ec08822e7958943686a7ba5157a4ff314e7ac Author: Sven Gothel Date: Thu Aug 23 21:07:55 2012 +0200 Fix Android/NEWT WindowDriver: Add missing eglDestroySurface() in closeNativeImpl(); Complete visibleChanged() in reconfigureWindowImpl() even if resize or reposition can't be handled Add missing eglDestroySurface() in closeNativeImpl() - missing egl surface destruction leaked it's resource .. Complete visibleChanged() in reconfigureWindowImpl() even if resize or reposition can't be handled - properly detect resize and reposition request, warn if this action cannot be completed but contine w/ workflow -> visibleChanged() - this allows properly handling of setVisible(..) and it's visible-changed detection polling commit 6d241fc2a46413ee478985d676d2481c5a7ed119 Author: Sven Gothel Date: Thu Aug 23 14:01:08 2012 +0200 GLContext: Remove integer-key based attach/detach object - use String based (minor API change) The integer based attachement is currently not used and since it has no benefit over the String based hash map - remove it. commit 71b204eb577bc6e5e9fb6cf29c5f76e52a6c9726 Author: Xerxes Rånby Date: Wed Aug 22 11:35:35 2012 +0200 JNLP: Cache jogl-all-natives and jogl-cg-natives for linux-armv6 and linux-armv6hf. Gluegen commit gluegen/commit/422d7a5eb53fca6642ebf4e8910d8b0311bb2597 Change/Lower ARM Requierements for GNU/Linux changed the *native-linux-arm* jar names; update jnlp-files accordingly. Due to the lack of OS Arch and ABI detection in JNLP launchers force us download both armv6 armel and armv6hf armhf ABI jars on ARM. commit 4abaf513bcc91a2d4b3ec4842c532807cbe66167 Author: Sven Gothel Date: Tue Aug 21 15:55:37 2012 +0200 Fix/Workaround: For BCM_VC_IV EGL (alpha) configuration Native BCM_VC_IV code CreateWindow() uses the default alpha value setting, which is alpha:8 ! Hence we require to chose alpha from the egl configurations TODO: Properly select the alpha mode in CreateWindow()! This will allow this hack. commit 27e81bf4d851ce2b81763920b4d1981c6a44b42a Author: Sven Gothel Date: Tue Aug 21 15:51:55 2012 +0200 Fix EGLDrawableFactory ES1/ES2 detection for !pbuffer ; Misc robustness changes for GLDrawableFactory .. - EGLDrawableFactory ES1/ES2 detection for !pbuffer - isEGLContextAvailable(..) -> mapAvailableEGLESConfig(..) - handle case where no pbuffer configuration is available (nokia n9 meego ..). in such case, assume availability if onscreen profile is avail. - EGLDrawableFactory.getOrCreateEGLSharedResource(..) - avoid double creation attempt (similar to SharedResourceRunner) - EGLGraphicsConfiguration.EGLConfig2Capabilities(..) respect EGL.EGL_CONFIG_CAVEAT's EGL.EGL_SLOW_CONFIG - if EGL.EGL_SLOW_CONFIG -> no hw accel. - Fix GLContext.getRequestMajorAndCompat(..): Proper handling of ES1 and ES2 - Add abstract GLDrawableFactory.isComplete(): Only if true use the factory for 'getFactory(..)' avoid using incomplete ones. commit dd4ca98f24583eba6ca5a0e48f81c7a53799bef3 Author: Sven Gothel Date: Tue Aug 21 00:36:04 2012 +0200 crossref userguide/deployment commit f59ca38aa9a7813ff2a8acf8ea9a83139ee4b8c7 Author: Sven Gothel Date: Tue Aug 21 00:25:11 2012 +0200 Update TODO ; Update JOGL-DEPLOYMENT.html w/ new jar names and added applets commit ee306d4900c9aad5248d30ce0594f07d2f79bb71 Author: Sven Gothel Date: Sun Aug 19 11:48:04 2012 +0200 NEWT Windows.closeNativeImpl(): Remove 'GDI.SetParent(windowHandleClose, 0)' for NewtCanvasSWT workaround - not required anymore commit ea7bd4789892f063182fd9970e11cfe9ffa44bea Author: Sven Gothel Date: Sat Aug 18 21:07:37 2012 +0200 Fix missing NEWT driver class name change - regression of a694cadca4ab72481e777222f412f006f973f77e commit b275393db0062c98baa055230fe0e89abd2756ae Author: Sven Gothel Date: Sat Aug 18 20:28:01 2012 +0200 Fix bcm_vc_iv.h: redefinition of typedef ‘DISPMANX_ELEMENT_HANDLE_T commit c5835a2e19a84cb08957d6c742e4334d578c3c66 Author: Sven Gothel Date: Sat Aug 18 14:52:32 2012 +0200 NativeWindowFactory.getNativeWindowType(..): Return canonical string representation allowing proper use of ref. comparison '==', instead of 'String.equals()' Also make NativeWindowFactory's instances of nativeWindowingTypePure and nativeWindowingTypeCustom static final. commit a694cadca4ab72481e777222f412f006f973f77e Author: Sven Gothel Date: Sat Aug 18 14:12:54 2012 +0200 NEWT Platform Driver: Uniform impl. class names [DisplayDriver, ScreenDriver, WindowDriver] to reduce complexity and programatic selection. commit 3ab518e90eb4cf82bcb8b990d337a5e4a531136b Author: Sven Gothel Date: Sat Aug 18 11:46:01 2012 +0200 GLProfile/NativeWindowFactory: Remove deprecated argument 'firstUIActionOnProcess' of initSingleton() method The notion of changing the threading behavior of native initialization was deprecated for over a year. The code still contained the bits and pieces, i.e. whether X11Util.initSingletion() is invoked before or after optional AWT initialization. This condition has been removed now and behavior is uniform, i.e. X11Util.initSingletion() is invoked after optional AWT initialization. - Removed GLProfile.initSingleton(boolean firstUIActionOnProcess), use remaining GLProfile.initSingleton() - Removed NativeWindowFactory.isFirstUIActionOnProcess() - Changed NativeWindowFactory.initSingleton(boolean firstUIActionOnProcess) to NativeWindowFactory.initSingleton() commit 5a5c2bc7a113906453e0de6f0403f394acdb9a4f Author: Sven Gothel Date: Sat Aug 18 00:45:13 2012 +0200 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 Fix GLCanvas's JAWTWindow reference - drawable.getNativeSurface() may not be a JAWTWindow due to our EGL WrappedSurface. Hence store the created JAWTWindow reference locally. Add ES2 test in TestAWT01GLn - test EGL/ES2 w/ AWT GLCanvas Ubuntu 12.04/Pandaboard(Omap4, PowerVR SGX 540): 103/108 tests passed (before freeze) of 124 total - machine freezes around test 108 .. - new passed unit test high for ES2 incl. AWT tests commit b255e569c5197aa60255a6141960a39a827222c4 Author: Sven Gothel Date: Fri Aug 17 20:53:25 2012 +0200 Fix EGLDrawableFactory.createOffscreenDrawableImpl(NativeSurface): Validate passed NativeSurface 'target' via getEGLSurface(target) Makes impl. consistent w/ EGLDrawableFactory.createOnscreenDrawableImpl(). Even for offscreen drawable creation, the passed NativeSurface maybe platform specific (X11, GLX) for which we require to create a WrappedSurface w/ EGL instances. commit ec0f4a5ab604c73d40d3585c0147b451ad53dcf5 Author: Sven Gothel Date: Fri Aug 17 20:50:44 2012 +0200 GLDrawableFactory.createGLDrawable() offscreen: Fix caps - set double-buffer := false to be consistent w/ GLDrawableFactory.createOffscreenDrawable() TestGLDrawable01NEWT: Enhance test case to run w/ EGLDrawableFactory (ES2) besides GL2 and GLX/WGL/..-Factory commit fe78d5095ef98215ce6c73d8912dfa19ae708bd0 Author: Sven Gothel Date: Fri Aug 17 17:11:03 2012 +0200 Robostness FBObject / GLReadBufferUtil: Ignore pre-existing GL errors - remove GL error checking in FBObject bind/unbind. - User GL code caused errors shall not fail impl. - FBObject bind/unbind GL error checking is almost useless due to it's simple code, would only catch user GL code errors, which should be ignored here. - MultisampleDemoES2: Only enable GL_MULTISAMPLE if available, i.e. validate passed multisample flag commit da697607fce1e6d2b0c65fcc37030c88981b76ec Author: Sven Gothel Date: Fri Aug 17 15:33:12 2012 +0200 Fix EGLDrawableFactory.getEGLSurface(..): Catch WrappedSurface case w/ EGLDevice and EGLGraphicsConfiguration - Regression of 43a473b2005d7f59a7f4f5b8bc7ca9ae88b4e894 Do not create a WrappedSurface around a given WrappedSurface if the latter is intended for EGL, i.e. uses EGLDevice and EGLGraphicsConfiguration even though the surface handle is not valid [yet]. For this case we assume the WrappedSurface has a lifecycle hook as it is used for the dummy drawable. Otherwise we would have a recursive WrappedSurface, ie with EGLDrawableFactory.createOnscreenDrawableImpl( dummySurface ), where dummySurface is a WrappedSurface w/ EGL pbuffer drawable lifecycle hook. Commit 43a473b2005d7f59a7f4f5b8bc7ca9ae88b4e894 didn't take the above case into account. commit b193d85b406b36ce091ad6bfcc488e9dfda9e12b Author: Sven Gothel Date: Fri Aug 17 14:20:14 2012 +0200 Robustness: FBObject or reset(..) - Add property 'jogl.fbo.force.min' to simulate minimum FBO caps - Check new size in reset(..) - Ignore the status in attachColorbuffer(..), attachRenderbufferImpl(..) and attachTexture2D(..) when recreating the resources in detachAllImpl(..)/reset(..). The status is validated after recreation of all resources in detachAllImpl(..) commit ee5c34e5bb067631572a7001ab1ec3543c52065f Author: Sven Gothel Date: Fri Aug 17 13:47:48 2012 +0200 Robostness: GLDrawableImpl's contextMadeCurrent()/contextRealized() ; GLFBODrawableImpl.contextMadeCurrent(false), OffscreenAutoDrawable.setSize(..) GLDrawableImpl's contextMadeCurrent()/contextRealized(): - Catch exception which may appear during callback and cont. w/ GLContextImpl's release()/destroy() while throwing catched exception at end. GLFBODrawableImpl.contextMadeCurrent(false): - Detect null Colorbuffer ASAP and throw exception OffscreenAutoDrawable.setSize(..): - Catch exceptions at 1) GLFBODrawableImpl.setSize(..) and 2) GLContext.release() .. throw it in proper order. commit 09a8151abe3934ccf17fa84d5b2000e259351312 Author: Sven Gothel Date: Thu Aug 16 16:06:57 2012 +0200 Fix FFMPEGMediaPlayer: Use GL_ALPHA (texture format intern/data) instead of GL_RGBA/GL_ALPHA ; Load dedicated native libav/libffmpeg - ES2 spec does not allow GL_RGBA/GL_ALPHA. - Load dedicated native libs (libav/libffmpeg) since distributions don't create symlink e.g. libavutil.so -> libavutil.so.53 commit ef099612d2adb7223d928d2ba7a88f984501ddb9 Author: Sven Gothel Date: Thu Aug 16 16:01:49 2012 +0200 EGLGraphicsConfigurationFactory: Fix platform w/o GLX but X11 window handle. Without GLX but X11 windows, there is no pre-configured X11GLXGraphicsConfigurationFactory set, hence fetch the fallback X11GraphicsConfigurationFactory via: GraphicsConfigurationFactory.getFactory(com.jogamp.nativewindow.x11.X11GraphicsDevice.class, CapabilitiesImmutable.class) TODO: Cleanup cases for other platform - simplify! commit 43a473b2005d7f59a7f4f5b8bc7ca9ae88b4e894 Author: Sven Gothel Date: Thu Aug 16 15:58:33 2012 +0200 EGLDisplayUtil: Workaround (latest) PVR 540 EGL regression where 3nd EGLDisplay's eglInitialize(..) fails ; Fix EGLDrawableFactory.getEGLSurface() - EGLDisplayUtil: Workaround (latest) PVR 540 EGL regression where 3nd EGLDisplay's eglInitialize(..) fails In this case and if eglGetDisplay(..) fails w/ a non EGL_DEFAULT_DEVICE, fall back to EGL_DEFAULT_DEVICE - always. This workaround actually simplifies handling both cases. - Fix EGLDrawableFactory.getEGLSurface() Tests whether a given NativeSurface w/ EGLGraphicsDevice and EGLGraphicsConfiguration has a valid EGL Surface. Only if true, reuse the whole NativeSurface, otherwise construct the missing pieces (device, config and use a WrappedSurface for EGL). commit 53ba263381c7b0434cfe834e4be1ff67ebebe1fe Author: Sven Gothel Date: Thu Aug 16 15:48:02 2012 +0200 Include NEWT driver BCM_VC_IV to 'all' JAR (completes 0ca481381b51b4082ac2b3bbae80cfaf5b60c3b8) commit 0ca481381b51b4082ac2b3bbae80cfaf5b60c3b8 Author: Sven Gothel Date: Thu Aug 16 15:46:49 2012 +0200 NEWT: Adding support for BCM VC IV (Broadcom VideoCodec 4) and Linux console mouse tracker Rasperry PI uses the 'BCM VC IV' GPU via console as it's default configuration. This driver enables direct support for JOGL/NEWT. Due to the lack of detection (TODO) users have to specify the Java property: -Dnativewindow.ws.name=jogamp.newt.driver.bcm.vc.iv - Autodetection should be included in 'NativeWindowFactory._getNativeWindowingType()' while adding a new TYPE: 'TYPE_BCM_VC_IV'. - Autodetection may need to detect whether an X11 Display runs and the installed EGL library uses it (instead of the default console one) This work is authored in coop w/ Xerxes Rånby ! commit 3732d0162051ffe56af34ba345b59c15bfc6f552 Author: Sven Gothel Date: Thu Aug 16 14:47:16 2012 +0200 Adapt to GlueGen ARM Build Changes 422d7a5eb53fca6642ebf4e8910d8b0311bb2597 Note: Patch set not clean since build*xml files contain 'NEWT Broadcom' driver changes of upcoming commit due to pervious uncommitted work. Will be fixed w/ next commit. commit 6e4051d8c9faeec003b15b68bd01e3caf22869fb Author: Xerxes Rånby Date: Mon Aug 6 21:00:19 2012 +0000 Use armv6 optimization for armhf to stay compatible with the new Raspberry Pi Raspbian distribution. commit a4e3bb6af06a58ec5247f3e044546f1a2ea4a786 Author: Xerxes Rånby Date: Tue Jul 10 17:12:12 2012 +0200 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 commit b84ab35da4fc9ab735934dd01ff99ab3465f1085 Author: Xerxes Rånby Date: Tue Jul 10 17:03:01 2012 +0200 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