aboutsummaryrefslogtreecommitdiffstats
path: root/make
Commit message (Collapse)AuthorAgeFilesLines
* NEWT Windows KeyEvent: We have to store the keyChar for typed events, since ↵Sven Gothel2012-10-312-4/+4
| | | | | | keyChar from pressed/released may be wrong (Uppercase: SHIFT-1, etc ..) Partially reverts commit: b62e1d027c289877686d6008ea8dd40e4e1541ec
* MacOSXCGLContext: Fix ShaderCode instantiation .. (duh!) ; Tested via ↵Sven Gothel2012-10-311-1/+2
| | | | reparenting TestParentingFocusTraversal01AWT
* Fix Unit Tests regarding commit 55f4405dbf9253e6ca686e44c50b2cfc1af7f3eb: ↵Sven Gothel2012-10-311-2/+2
| | | | Shader program name is valid if non-zero.
* Fix ProjectFloat (Bug 633): Adding missing offset of sliced buffer usage; ↵Sven Gothel2012-10-311-1/+2
| | | | | | reduce buffer usage (performance) in favor of float[]. Thomas De Bodt reported this error and provided the unit test.
* Add OSX CALayer OpenGL 3 (core) support: Derive pixelformat from parent ↵Sven Gothel2012-10-313-13/+12
| | | | | | | | (GL3), use GL3.2 compatible shader; Use VBO in general. Covered by: Auto unit tests: TestOffscreenLayer01GLCanvasAWT, TestOffscreenLayer02NewtCanvasAWT Manual: TestGearsES2AWT '-gl3 -layered'
* Shader: Add '#define texture2D texture' for GLSL >= 130 ; TestGearsES2AWT ↵Sven Gothel2012-10-311-2/+3
| | | | add forceGL3; TextureDraw01ES2Listener uses defaultShaderCustomization()
* Fix NEWT KeyEvent: Deliver keyChar w/ pressed and released; Deliver proper ↵Sven Gothel2012-10-312-5/+8
| | | | | | | | | | | | | | | | | | | | | | 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).
* WGL/WGLExt Robustness: Use NIODirectOnly for all bindings. For these ↵Sven Gothel2012-10-302-1/+9
| | | | internal APIs, critical array is not required, hence redundant.
* CGL/CGLExt Robustness: Use NIODirectOnly for all bindings. For these ↵Sven Gothel2012-10-302-0/+8
| | | | internal APIs, critical array is not required, hence redundant.
* GLX/GLXExt Robustness: Use NIODirectOnly for all bindings. For these ↵Sven Gothel2012-10-304-60/+66
| | | | internal APIs, critical array is not required, hence redundant.
* EGL/EGLExt Robustness: Use NIODirectOnly for all bindings. For these ↵Sven Gothel2012-10-302-1/+9
| | | | internal APIs, critical array is not required, hence redundant.
* TestNewtKeyEventAutoRepeatAWT: Wait for 'some' KeyEvents and check count; ↵Sven Gothel2012-10-292-4/+4
| | | | TestNewtKeyPressReleaseUnmaskRepeatAWT: Enable NewtCanvasAWT test
* Complete Rename NEWT KeyEvent Unit tests, commit ↵Sven Gothel2012-10-292-10/+11
| | | | 85851c9839d620bcbbd07b6ca833f1a5901831cc
* GLRendererQuirks: Add RequiresBoundVAO (w/ impl.), GLSLBuggyDiscard (todo) ; ↵Sven Gothel2012-10-281-2/+2
| | | | | | | | | | | | | | | | 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.
* Fix NEWT KeyCode: Basic KeyCode Validation on X11, Windows and OSXSven Gothel2012-10-282-2/+4
| | | | | | | - X11: Add VK_QUOTE mapping - OSX: Add single shift, ctrl alt key press; Fix mapping: Command -> Windows, Option -> ALT, add BACK_QUOTE and QUOTE.
* NEWT KeyEvent (Windows, OSX): Check whether keyCode is tracked before using ↵Sven Gothel2012-10-272-4/+4
| | | | bitfield, use more IntBitfield.put(..) return value for efficiency.
* Fix Bug 631 and enhance 601: Handle multiple keys (pressed, released, types ↵Sven Gothel2012-10-272-2/+4
| | | | | | | | | | 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
* Fix Bug 601 - Auto-Repeat Behavior: Adding unit tests for typed key order w/ ↵Sven Gothel2012-10-263-4/+9
| | | | | | | | | 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.
* tests.sh: TestPointsNEWTSven Gothel2012-10-231-2/+2
|
* Fix regression of commit 40d01bef2a1db44533472c37961aabbef68de644: Test for ↵Sven Gothel2012-10-231-2/+2
| | | | fourth element was invalid
* FixedFuncPipeline GL_POINTS: Fix gl_PointSize (attribute data format), Add ↵Sven Gothel2012-10-221-1/+2
| | | | | | | | | | | | | | 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.
* NEWT / BCM-VC-IV: Fix transparency according to given capabilitiesSven Gothel2012-10-191-2/+2
| | | | Tested manual w/ TestGearsES2NEWT on Raspberry Pi
* FixedFuncPipeline: Cache current ShaderSelectionMode, update PMVMatrix ↵Sven Gothel2012-10-181-1/+0
| | | | according it's usage (update Mvi/Mvit only if lighting is being used)
* ImmModeSink: Add glColor3ub(), glColor4ub(); Add proper value conversion of ↵Sven Gothel2012-10-181-2/+5
| | | | imm. gl* functions; Default color padding is 1f; Make fields private.
* ImmModeSink: Fix buffer grow (+1 element @ named buffer), enable DEBUG_* via ↵Sven Gothel2012-10-161-2/+2
| | | | properties, drawIndices QUAD w/ proper range and add uint; FixedFunctionHook: drawIndices QUAD w/ proper range and add uint
* Fix Windows ANGLE Workaround Regression of commit ↵Sven Gothel2012-10-133-11/+15
| | | | | | | | | | | | | | | | 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
* FixedFuncHook: Add ES2 alignment of certain GL functions, i.e. ↵Sven Gothel2012-10-121-2/+2
| | | | GL_QUAD_STRIP/GL_POLYGON/GL_QUADS mapping, glTexImage2D internalformat/format match.
* GLArrayDataClient.bindBuffer(gl, bind=true): checkSeal and init_vbo if ↵Sven Gothel2012-10-121-2/+2
| | | | required (similar sanity checks as enableBuffer())
* Adding unit tests for ImmModeSink and FixedFunctionPipeline (single & ↵Sven Gothel2012-10-121-3/+15
| | | | combinations, plus texture usage)
* ES2Impl fix: Remove code which could imply recursion if !ES2Compatible ↵Sven Gothel2012-10-122-10/+10
| | | | (although impossible, but looks bad)
* Raise NEWT MouseButton Maximum from 6 -> 16 (API Change)Sven Gothel2012-10-081-3/+3
| | | | | | | | - 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
* Fix Bug 617 (part2): Workaround buggy GPU driver where FBO reattachment of ↵Sven Gothel2012-10-061-2/+2
| | | | | | | | | | | | | | | | | | | 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.
* Adding unit test for Bug 605 - WORKSFORME, i.e. no unwanted y-flip, so I can ↵Sven Gothel2012-10-061-6/+2
| | | | just assume it's the SW renderer, flipping.
* Refine a3cb6bb14f410f67fccf5ccd4cd7ecc66f448389, fix deadlock (regression)Sven Gothel2012-10-051-2/+12
| | | | | | | | 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].
* Fix FBObject DEPTH_STENCIL renderbuffer usageSven Gothel2012-10-051-5/+5
| | | | | | 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.
* Fix Bug 572 (2nd time): GLCanvas.validateGLDrawable() @ display() and ↵Sven Gothel2012-10-051-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Fix SWTEDTUtil bug, where it simply doesn't start by an implicit 'invoke()' ↵Sven Gothel2012-10-051-3/+3
| | | | | | | | | | | | | - 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(..)
* Footprint Stats ; Fix Bug 624 - Compile and generate android JAR files ↵Sven Gothel2012-10-047-19/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (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
* Update PMVMatrix/GLMatrixFunc API doc and refine PMVMatrix update / ↵Sven Gothel2012-10-041-1/+2
| | | | | | | | | | | | | | | | | | | | | | 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 ..
* Fix regression of fbe331f013608eb31ff0d8675f4e4c9881c9c48b [Remove ↵Sven Gothel2012-10-021-2/+2
| | | | | | | | | 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.
* Misc: tests.shSven Gothel2012-10-021-6/+5
|
* Misc: Add commented-out NEWT X11/XCB-Event and X11ScreenRandR1[13] ↵Sven Gothel2012-10-021-0/+8
| | | | | | | | | | 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.
* Fix commit fbe331f013608eb31ff0d8675f4e4c9881c9c48b (Bug 616 - Remove ↵Sven Gothel2012-10-021-0/+1
| | | | | | | | | 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
* test script: remove deleted unit testSven Gothel2012-09-301-1/+0
|
* NullToolkitLock.validateLocker(): Throw exception if locking is required ↵Sven Gothel2012-09-301-1/+1
| | | | (detecting impl. bugs)
* Workaround for Bug 623: Sporadic XCB assertion failures w/ ATI proprietary ↵Sven Gothel2012-09-302-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Cache XineramaIsEnabled(dpy) per display-name in X11Util minimize triggering ↵Sven Gothel2012-09-291-1/+0
| | | | | | | | | | | | | | | | 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.
* Misc X11: Add GLX_MESA_swap_control; GLXExtensions (private); X11GLXContext ↵Sven Gothel2012-09-291-0/+10
| | | | commented out GLX_MESA_swap_control; native test of Mesa context-retarget bug, cannot reproduce yet.
* Adding Mesa Quirk 'NoSetSwapIntervalPostRetarget': SIGSEGV on ↵Sven Gothel2012-09-281-3/+4
| | | | | | | | | | | | 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.
* NEWT X11 ScreenMode: Ignore invalid rotation eventSven Gothel2012-09-281-34/+2
|