aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* JAWTWindow: Fix binary compatibility: Add old variants of deprecated method, ↵Sven Gothel2015-07-281-0/+14
| | | | throwing a RuntimeException
* Bug 1161 - Fix Canvas resize stops the rendering in Mac OS X (mostly from ↵Sven Gothel2015-07-281-2/+3
| | | | | | | | | | | | | | | | | | | | | | WebStart) Root cause: JAWTWindow's JAWTComponentListener 'isShowing' state is initialized while attaching it on-thread and updated via hierarchy-changed event. JAWTComponentListener attachment to the component is issued at JAWTWindow's creation but on the AWT-EDT, hence it may happen at a later time. In this bug scenario, it happens very late, so that the hierarchy-changed event is missed and 'isShowing' is never set to 'true'. Solution is to update 'isShowing' state on the actual AWT-EDT when attaching to the component. Also make 'isShowing' volatile.
* Bug 1181 - JOGL WebStart Applications using GLCanvas/AWT may Deadlock by two ↵Sven Gothel2015-07-275-26/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | AWT-EDT on Java >= 1.8.0_45 Root cause: - AWT Toolkit global Lock Our locking scheme (AWT-EDT-1): - Surface Lock - sun.awt.SunToolkit.awtLock() - Component.getGraphicsConfiguration() -> synchronized(Component.getTreeLock()) Other AWT-EDT-2 by Webstart: - synchronized(Component.getTreeLock()) - sun.awt.SunToolkit.awtLock() Results in a deadlock. Solution: - Issue Component.getGraphicsConfiguration() before awtLock(), where Component.getGraphicsConfiguration() is being used to detect possible reconfiguration. - Also use updated AWTGraphicsConfiguration's GraphicsConfiguration if no 'new' detection is required.
* Bug 1184 - JOGL AWT Canvas Components don't update AWTGraphicsConfiguration ↵Sven Gothel2015-07-275-159/+375
| | | | | | | | | | | | | | | | | | | | | | | | | | when reconfigured. JOGL AWT Components, e.g. GLCanvas or NewtCanvasAWT, may be reconfigured by moving them to another display/monitor or by other means. Since AWT has no means to notify the user code via an event, JOGL components usually determine the reconfiguration via the override 'GraphicsConfiguration getGraphicsConfiguration()'. GLCanvas is sensible to this reconfiguration, however its AWTGraphicsConfiguration (owned via JAWTWindow) is not changed. Implement reconfiguration detection for all JOGL AWT Components and update the AWTGraphicsConfiguration if required. For now, constraint reconfiguration on GraphicsDevice change as currently implemented in GLCanvas. The updated AWTGraphicsConfiguration allows using the updated GraphicsDevice as it might be required for further information, e.g. pixel-scale on OSX.
* Bug 1180: Refine TestMapBufferRead01NEWT, add TestMapBufferRead02NEWT: Add ↵Sven Gothel2015-07-242-30/+235
| | | | assertion checks and latter test uses FloatBuffer
* Fix TestBug1146GLContextDialogToolTipAWT / AWTRobotUtil.mouseClick(..) use ↵Sven Gothel2015-07-242-6/+8
| | | | BUTTON1_MASK instead of BUTTON1_DOWN_MASK
* Bug 1160: Fix/Refine test case: Stable master thread; Disable 'masterLock' ↵Sven Gothel2015-07-241-19/+40
| | | | in slave-creation (causes failure on windows)
* Bug 1160: Fix test case (Avoid blocking/concurrent master context usage on AWT)Sven Gothel2015-07-241-81/+125
| | | | | | | | | | | | | | + // We cannot use EventQueue.invokeAndWait(..) since it will + // block this will block the current thread, holding the context! + // The whole issue w/ an external shared context is make-current + // synchronization. JOGL attempts to lock the surface/drawable + // of the master context to avoid concurrent usage. + // The semantic constraints of a shared context are not well defined, + // i.e. some driver may allow creating a shared context w/ a master context + // to be in use - others don't. + // Hence it is up to the user to sync the external master context in this case, + // see 'masterLock' of in this code! + // EventQueue.invokeAndWait(initializer);
* GLContextImpl: Update uncommented code (method name changed)Sven Gothel2015-07-241-2/+2
|
* Bug 1160: Fix unit test name and some minor details .. (convention)Sven Gothel2015-07-241-30/+46
|
* Bug 1146, Bug 1158: Add missing GLClearColor classSven Gothel2015-07-241-0/+61
|
* Merge pull request #87 from TomNuydens/bug_1160Sven Gothel2015-07-241-0/+180
|\ | | | | Unit test for bug 1160: context sharing between external GL context and offscreen drawable
| * Unit test for bug 1160; context sharing between an offscreen drawable and an ↵Tom Nuydens2015-06-011-0/+180
| | | | | | | | external GL context
* | Bug 1146, Bug 1158: Add unit test for GLContext creation after showing ↵Sven Gothel2015-07-244-5/+293
| | | | | | | | | | | | | | | | tool-tip within JDialog Test passes on GNU/Linux X11 and Windows - both using NVidia driver. Unit test is based on Robin Provost's code as attached in Bug 1158.
* | Bug 1151 - Fix using DK1 on OVR 0.5*; Minor changesSven Gothel2015-07-204-13/+26
| |
* | StereoDevice (Generic/OVR): Add knowledge about LocationSensorParameter and ↵Sven Gothel2015-07-206-13/+133
| | | | | | | | allow reset origin of location-sensor
* | Clarify code in stereo/ovr: Comments, states, names, formatting.Sven Gothel2015-07-206-33/+22
| |
* | Refine Frustum definition: Adding Frustum.FovDesc; Clarify makeFrustum ↵Sven Gothel2015-07-206-36/+104
| | | | | | | | argument constraints -> Exceptions
* | ShaderCode: Add 'create' variations w/ custom shader file suffixes as well ↵Sven Gothel2015-07-191-19/+303
| | | | | | | | as w/ Uri usage
* | Fix javadoc typo: </count> -> </code>Sven Gothel2015-07-181-4/+4
| |
* | Bug 1151 - Working OculusVR SDK 0.5.0.1 on GNU/Linux w/ Positional Tracker (DK2)Sven Gothel2015-07-1818-155/+422
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Note: The ovrd server must run, otherwise no device is being detected. General Stereo API Changes: - EyePose -> ViewerPose - We only use the viewer pose and derive the pupile position via EyeParameter. - Hence we reduce complexity. - A single ViewerPose will be maintained by StereoDeviceRenderer - position is in meter, allowing StereoGLEventListener to scale device independent. - StereoDevice receives knowledge of certain sensors, to be queried and used for start-sensors. OVR: - Simply apply the above general changes - Build: Remove [more] unused API entries for SDK rendering
* | Merge branch 'master' of https://github.com/xranby/joglSven Gothel2015-07-171-0/+2
|\ \
| * | bcm/vc/iv/DisplayDriver depend on libEGL, pre-load it using GLProfileXerxes Rånby2015-07-171-0/+2
| | | | | | | | | | | | | | | | | | | | | Fixes libnewt.so: undefined symbol: bcm_host_init" when the NEWT Screen is initialized before OpenGL ES. Signed-off-by: Xerxes Rånby <[email protected]>
* | | Merge branch 'Bug1170' of https://github.com/rhatcher/joglSven Gothel2015-07-171-3/+3
|\ \ \ | |/ / |/| |
| * | Expand bitmasks in SWTAccessor GTK_VERSION methodrhatcher2015-07-101-3/+3
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SWTAccessor's GTK_VERSION method accepts a single int argument. The argument is interpreted as a bit-packed version number with the apparent intent that the three least significant bytes of the int version number are the major, minor, and micro version number components. The code that extracts these three components from the int argument was using four-bit mask 0x0f instead of eight-bit mask 0xff, and therefore was discarding the four most significant bits of each component. This caused any component greater than 15 to lose information. For example, a component whose value should have been 20 would end up as 4. The version number is used in comparisons in a static initializer to determine how to retrieve references to Method objects via reflection. One such comparison decides whether to retrieve a reference to method GTK_WIDGET_WINDOW or method gtk_widget_get_window. The problem initially presented itself after an attempt to use JOGL with SWT 4.527 and GTK 2.20.1 because this version of SWT removed the GTK_WIDGET_WINDOW method. Due to the bug SWTAccessor believed the GTK version was 2.4.1 instead of 2.20.1, so the code attempted to find GTK_WIDGET_WINDOW instead of gtk_widget_get_window. Because this method was no longer there a runtime exception was raised.
* | Bug 1176: BCM VC IV: Refine clamping of window position and size at native ↵Sven Gothel2015-07-172-15/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | creation - Refines commit a566a1b5a2828b38f1a5c4dfb215ab9b03e7acaa - Issue clamping at 'canCreateNativeImpl()' instead of 'createNativeImpl()', allowing to define clamped position and size before utilizing these values at caller 'createNative()'. Otherwise a clamped position would cause to wait for the original position after 'createNativeImpl()'. This also allows to remove the positionChanged(..) / sizeChanged(..) calls in the native CreateWindow0() implementation.
* | Bug 1176: BCM VC IV: Add window-position to window-relative mouse position ↵Sven Gothel2015-07-171-1/+1
| | | | | | | | in DisplayDriver.moveActivePointerIcon(..) call
* | Bug 1176: Clamp window position and size to 0/0 and screen-size, avoiding ↵Sven Gothel2015-07-172-4/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | out-of screen window positions on BCM VC IV hardware Out of screen window positions on BCM VC IV hardware cause: - Misalignment of self-rendered mouse-pointer / window due to window-offset. - Artifacts when moving the mouse pointer partially out of screen. We still need to add the window position to rel. mouse-pointer position.
* | PointShader: Use same precision for shared uniform in vertex- and fragment ↵Sven Gothel2015-07-162-2/+14
| | | | | | | | | | | | | | | | | | shader On GNU/Linux NVidia 340.76 the test TestGLPointsNEWT failed otherwise: error: precision mismatch between shaders for uniform (named mgl_PointParams[0]) error: precision mismatch between shaders for uniform (named mgl_PointParams[1])
* | openmax: fix compile errors (clang)Sven Gothel2015-07-162-1/+2
| |
* | Bump OculusVR RIFT SDK to 0.5.0.1Sven Gothel2015-07-142-3/+12
|/ | | | State: Build clean on GNU/Linux and OSX
* Use CompatibilityType.BACKWARD_COMPATIBLE_BINARY for 2.3.1 / Add ↵Sven Gothel2015-04-041-3/+3
| | | | EGL.KHRONOS_BOOLEAN_ENUM_FORCE_SIZE manually to avoid binary incompatibility
* TestVersionSemanticsNOUI: Fix expected compat result (inactive tests)Sven Gothel2015-04-031-4/+4
|
* Bug 1153 - GLEmitter: Only dump extra comment if w/o enum-name or w/o extensionSven Gothel2015-04-011-7/+8
| | | | Since GlueGen handles enum typedef's properly, this relation to the enum-name is already printed.
* Bug 1153 - Adopt to ArrayHashSet change, don't use deprecated ctor (gluegen ↵Sven Gothel2015-04-018-14/+17
| | | | commit c156343fec33ceea7f238b9766a9f4985fb92687)
* TestVersionSemanticsNOUI: Add version tests: v221 -> v230 and v230 -> v23x (*)v2.3.1v2.3.1_winexeSven Gothel2015-03-271-2/+25
| | | | | | | | | | | | | | | | | (*) Version v230 -> v23x Violates the semantic versioning spec a bit, i.e. minor API change within 'com/jogamp/opengl/util/stereo/' ! 2/ 11: com.jogamp.opengl.util.stereo.StereoDevice.Config : Remove 1, Change 0, Deprecate 0, Add 0 4/ 11: com.jogamp.opengl.util.stereo.StereoDeviceFactory : Remove 1, Change 0, Deprecate 0, Add 4 6/ 11: com.jogamp.opengl.util.stereo.StereoDeviceRenderer : Remove 1, Change 0, Deprecate 0, Add 1 Class com.jogamp.opengl.util.stereo.StereoDevice.Config Removed Class , access public super synchronized Class com.jogamp.opengl.util.stereo.StereoDeviceFactory Removed Method createDevice, desc (ILcom/jogamp/opengl/util/stereo/StereoDevice$Config;Z)Lcom/jogamp/opengl/util/stereo/StereoDevice;, access abstract public Class com.jogamp.opengl.util.stereo.StereoDeviceRenderer Removed Method getSingleSurfaceSize, desc ()Lcom/jogamp/nativewindow/util/DimensionImmutable;, access abstract public
* Bug 1116: Add ShutdownHook for all factories and devices to ↵Sven Gothel2015-03-276-15/+133
| | | | StereoDeviceFactory using NativeWindowFactory
* Bug 1116: Oculus SDK 0.4.4: Add extra DK1 detection; Add call to ↵Sven Gothel2015-03-275-4/+42
| | | | | | | | | | | | | | ovr_Shutdown() and ovrHmd_Destroy(hmdDesc). Add extra DK1 detection - SDK 0.4.4 w/ DK1 (Linux): ovrHmd_Detect() returns zero! - In such case: Try creating one device, which works for DK1 on Linux Add call to ovr_Shutdown() and ovrHmd_Destroy(hmdDesc). - Add StereoDeviceFactory.shutdown() and call ovr_Shutdown() for in OVRStereoDeviceFactory.shutdown(). - Call ovrHmd_Destroy(hmdDesc) in OVRStereoDevice.dispose().
* StereoDeviceUtil: Only rotate if current mode doesn't match required ↵Sven Gothel2015-03-272-2/+12
| | | | | | rotation. Add verbosity. Allowing user to permanently rotate the device ..
* Bug 1116: Oculus SDK 0.4.4 support for JOGL - Part-3: New set of C-files, ↵Sven Gothel2015-03-274-36/+24
| | | | | | adapt to new SDK API - Tested on Windows and working StereoDemo01 w/ DK2!
* Bug 1116 - Add OculusVR DK2 Support - Part-2 (DK1 and DK2 on DK2 SDK w/ Eye ↵Sven Gothel2015-03-265-95/+73
| | | | Tracker if available)
* Bug 1150 - Fix unit tests: Use same definition as in GLProfile for ↵Sven Gothel2015-03-262-2/+70
| | | | | | | | 'disableOpenGLARBContext', i.e. exclude OSX Also add 'TestGLProfileXXNEWTPost', run w/o any properties after TestGLProfile*NoARBCtx to be sure follow-up unit tests are tested under default conditions.
* GLContext glVersionString: Group all 'compat' flags to save space, add ES32 ↵Sven Gothel2015-03-261-3/+10
| | | | compatibility
* Bug 1150 - Fix GLContextImpl.createImpl(..) NoARBCreateContext and '!ARB GL ↵Sven Gothel2015-03-2611-925/+1324
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | >= 3.1' issues This fix solves the described issues below. Test cases added for onscreen and offscreen drawables, the latter includes Window's bitmap special case. GLContextImpl.createImpl(..): Fix NoARBCreateContext and '!ARB GL >= 3.1' issues: ================================================================================= GLContextImpl.createImpl(..) implementation of X11GLXContext and WindowsWGLContext wrongly handles the case of NoARBCreateContext. Here the !ARB created context shall allow GL >= 3.1, since ARB context creation is disabled and 'no mix' can occur. The latter was already intended due to failure criteris 'createContextARBTried' in: if( glCaps.getGLProfile().isGL3() && createContextARBTried ) { failure("createImpl ctx !ARB but ARB is used, profile > GL2 requested"); } Further, WindowsWGLContext treats glCaps.isBitmap() within the 'createContextARBTried=true' case, but it shall never tried using the ARB context creation method. This even lead to the issue of creating a 1.1 context, but having the ProcAddressTable being still on the GL > 2 cached table. This is due to 'setGLFunctionAvailability(..)'. Ensure 'setGLFunctionAvailability(..)' is functional ==================================================== Caller shall either throws an exception if method returns false or issues a state reset. In case 'setGLFunctionAvailability(..)' throws an exception itself, the states are no issue.
* Bug 1148 - OSX MonitorDevice: Use unique and native deviceID instead of indexSven Gothel2015-03-219-153/+160
| | | | | | | | | | | | | Adopt to bug 1147, commit 2c88b6dfd4eb7e2cd9a50fa48e08ecafc980931a. Using the native unique deviceID makes monitor identification more robust. This also allows us simplify displayID -> NSScreen-idx -> MonitorDevice into displayID -> MonitorDevice and to survive a primary monitor change.
* Bug 1116 - Add OculusVR DK2 Support - Part-1 (DK2 on DK1 SDK w/o Eye Tracker)Sven Gothel2015-03-2116-372/+756
| | | | | | | | | | | | | | | | | - DK2's screen on X11 (at least) starts in rotated mode, detect and apply MonitorDevice rotation via NEWT's OpenGL StereoDeviceUtil - Move StereoDevice.Config -> StereoDeviceConfig - Expose generic StereoDevice to public: GenericStereoDeviceConfig + GenericStereoDeviceFactory - GenericStereoDeviceFactory exposes public GenericStereoDeviceConfig creation for mono, sbs-stereo and lense-sbs-stereo w/ diff. parameters. - Pass eye surface/texture size for each eye from device to renderer, instead of assuming unified values. - Unify GenericStereoDevice.createRenderer(..) and OVRStereoDevice.createRenderer(..) code
* Bug 1147 - Fix XRandR13 Usage: Rotate / Change-Mode, use unique CRTC/Mode ↵Sven Gothel2015-03-2016-229/+766
| | | | | | | | | | | | | | | | | | | | | ids, .. RandR 1.3 XRRSetCrtcConfig related: - X11RandR13 now sets the new screen size via XRRSetScreenSize(..) - X11RandR13 now propagates RRScreenChangeNotify events via XRRUpdateConfiguration(event). Hence reporting virtual desktop size now. - X11RandR13 now disables the CRTC before XRRSetCrtcConfig(..) to avoid invalid configuration (see spec)! RandR 1.3 General: - Uses unique id named instead of unstable index for modes and CRTC. This allows proper identification even for 'swizzled' devices.
* Fix API Doc: GLBufferObjectTracker / GLBufferStorageSven Gothel2015-03-122-12/+22
|
* Resolve RenameJavaSymbol issues (GLUgl2 and CGL) using GLEmitter (-> ↵v2.3.0Sven Gothel2015-03-112-13/+3
| | | | | | | | | | | | | | | | DelegateImplementation) due to new GlueGen Semantics GlueGen would usually use the original native C method name for proc-address or direct call. GLEmitter however uses the renamed method name, assuming it is shorter and resulted from a 'RenameExtensionIntoCore' directive. GLUgl2 native usage was broken since 2.2.4 GLUgl2 and CGL use RenameJavaSymbol w/ the intention of delegation, hence resolve the issue using the new DelegateImplementation directive which preserves the original function name for the native call.
* Bug 1135: Complete GLBufferObjectTracker for GL 4.5 using GlueGen's ↵Sven Gothel2015-03-114-54/+58
| | | | | | | | | | | | DelegateImplementation/ReturnsOpaque (Bug 1144) Using GlueGen's new DelegateImplementation/ReturnsOpaque feature (Bug 1144) allows us to drop manually C implementation stubs, while simply delegating into the renamed private generated variant using the manual stub. Completed glBufferStorage and glNamedBufferStorage for GL 4.4 while subsuming DSA's of GL 4.5 and GL_EXT_direct_state_access (only the single functions, otherwise extension is not compatible).