summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix build if oculusvr-sdk submodule is missingSven Gothel2014-06-251-1/+1
|
* Bug 1021: OVR GlueGen Mapping: Handle non-existent native oculusvr lib ↵Sven Gothel2014-06-252-20/+35
| | | | | | | gracefully - query isAvailable() in ovr_Initialize(), ovrHmd_Create(..) and ovrHmd_CreateDebug(..) and return appropriate values.
* Bug 1021: OVR GlueGen Mapping: Compile all generated C files, add missing C ↵Sven Gothel2014-06-253-0/+9
| | | | ovrHmdStruct in generated files, reduce warnings.
* Bug 1021: Enhance OVR GlueGen Mapping / Adapt to GlueGen commit ↵Sven Gothel2014-06-255-24/+86
| | | | 9ee44e1a289ecbac024662dd5a2ffc42e8add023 (Bug 1025)
* www .. c3d desc (2)Sven Gothel2014-06-201-1/+1
|
* www: shorten c3d desc.Sven Gothel2014-06-201-1/+1
|
* WWW: Update CCT's C3D EntrySven Gothel2014-06-203-12/+13
|
* Bug 1021: Add note about 'Oculus VR Rift SDK Software License' in LICENSE.txtSven Gothel2014-06-201-0/+16
|
* Bug 1021: Add OculusSDK binding (Bring-up on OSX w/ clang/clang++ ; Split ↵Sven Gothel2014-06-202-21/+55
| | | | | | | | | | | | | | native build: cc, c++, linkage) - Bring-up on OSX w/ clang/clang++ - Build and tested on OSX 10.9 - Split native build: cc, c++, linkage - Perform steps sequentually to not differentiate c and c++ compiler as required for clang/clang++ - compile c code - compile c++ code - link all object files
* Bug 1021: Add OculusSDK binding / Basic OVR support (Bring-up on Windows w/ ↵Sven Gothel2014-06-208-112/+74
| | | | | | | | | | | | | | | | | Mingw64 ; Solve static linkage of stdc++) - Bring-up on Windows w/ Mingw64 - Bumped oculusvr-sdk to commit 70e44b846ceaf9eebc336b12a07406c3a418a5c3 - Added required mingw64 linker statments - Builds and runs on x86_64 and i386 - Solve static linkage of stdc++ - "-Wl,-Bstatic -lstdc++ -Wl,-Bdynamic" MUST come AFTER all object files!! - No more manual '--undefined=symbol' required .. puhh :) - Cleanup linker cfg .. - Still runs on GNU/Linux x86_64 and i386
* Bug 1021: Add OculusSDK binding / Basic OVR support (HowtoBuild.xml: Mention ↵Sven Gothel2014-06-201-0/+5
| | | | feature loss if not fetching submodules)
* Bug 1021: Add OculusSDK binding / Basic OVR support (Refine build exclusion)Sven Gothel2014-06-193-5/+22
| | | | | | | | | | common: - property 'oculusvr.sdk.available' is only set if sub-module 'oculusvr-sdk' is available - if 'oculusvr.sdk.available' is not set build.xml will not issue build-oculusvr.xml's 'all' target build-oculusvr.xml: - propery 'oculusvr.build.enabled' is only enabled if 'oculusvr.sdk.available' is set and targer 'all' will only pass if set.
* Bug 1021: Add OculusSDK binding / Basic OVR supportSven Gothel2014-06-1917-34/+1130
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bring-up test only initializes the ovrHmdHandle data structure by OVR native code. See com.jogamp.oculusvr.OVRVersion Current evaluation build compiles all OVR-SDK source files itself w/o using provided libovr.a. We also skip the GL dependent renderer of the SDK, i.e. we prefer to utilize our JOGL 'barrel distortion' renderer. This eases the 'chicken-egg' problem of OVR SDK dependencies, i.e. libGL, libGLESv2 .. etc Since the OVR source code is C++, we may still have to figure out how to / and whether we shall link libstdc++ statically to remove platform dependencies. Right now we link libstdc++ statically if using GCC, see make/build-oculusvr.xml (hackish .. TODO: better way to include all symbols). Same consideration applies to GNU/Linux and libudev.so dependency, since there are: - libudev.so.0 and (Older distri's) - libudev.so.1 (Debian8, ..) ... Produced JAR artifacts are - jar/atomic/oculusvr.jar - jar/atomic/oculusvr-natives-<os.and.arch>.jar i.e. only in 'atomic' variants to not bloat the default 'all' JAR files. .... make/build-oculusvr.xml Notes: - Currently native build only enabled on GNU/Linux (isLinux) - Force disable native build via property 'c.build.oculusvr.skip'
* Bug 1021: Adding submodule oculusvr-sdk and adjust HowToBuild (git clone ↵Sven Gothel2014-06-193-1/+4
| | | | --recurse-submodules <jogl-url>)
* Minor refinements: .gitignore HowToBuildSven Gothel2014-06-192-3/+3
|
* Adapt to GlueGen commit 2f6586292cd298bbc19d8acda0f7cf303c82078b (compount ↵Sven Gothel2014-06-187-7/+8
| | | | | | | call-by-value extension) - GLU*: initializeImpl() is no more required, since it's not forced .. uncomment in manual static initializer - GLX: 'ForceStaticInitCode GLX', i.e. forcing native code, as used in our manual implementation.
* Fix regression due to GlueGen commit ↵Sven Gothel2014-06-178-26/+43
| | | | | | | | | | | | | | c3054a01990e55ab35756ea23ab7d7c05f24dd37, completes JOGL commit 68ca3ae8fcce28c62034299bc6e6f7eaab50bd1f Add handling of 'initializeImpl()' of generated GLU* classes: - GLU : no 'initializeImpl()' <- no libs - GLUgl2es1: no 'initializeImpl()' <- no libs - GLUgl: call 'initializeImpl()' in manual static init impl. Further more, we shall not initialize the GLU* classes in GLU static init method, querying GLU* class availability. Tested via OlympicES1.
* Adapt to GlueGen commit c3054a01990e55ab35756ea23ab7d7c05f24dd37 (compount ↵Sven Gothel2014-06-173-71/+8
| | | | call-by-value extension), utilizing native JVMUtil_NewDirectByteBufferCopy(..)
* Fix Bug 826 Regression caused by commit ↵Sven Gothel2014-06-134-62/+106
| | | | | | | | | | | | | 41190c3830157abdf9649cbf7767e57108f55075 (Bug 975) Commit 41190c3830157abdf9649cbf7767e57108f55075, fix for 'Bug 975 GLJPanel's OffscreenDrawable double swap', caused a regression of commit c427ed22244df44b71a0f1f000b0f93e56c283c2, fix for 'Bug 826: GLJPanel: Fully restore TextureState and Viewport'. Commit 41190c3830157abdf9649cbf7767e57108f55075 issues offscreenDrawable.swapBuffers() and hence modifying the texture unit settings before saving the TextureState, the whole purpose of commit c427ed22244df44b71a0f1f000b0f93e56c283c2.
* Fix NEWT EDTUtil Deadlock on EDTUtil.start()Sven Gothel2014-06-126-26/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | DisplayImpl.runOnEDTIfAvail(..) issues EDTUtil.start() while holding it's object-lock - if the EDT is not running, then invokes the given task. EDTUtil.start() impl. holds it's own edt-lock while starting, then releases it's edt-lock while issuing a null-task. If another thread injects a blocking task right in-between which also acquires the display's object-lock it deadlocks. Simply remove issuing the null-task, so EDTUtil.start() can return immediatly (releasing edt-lock) and allowing DisplayImpl.runOnEDTIfAvail(..) also to release it's object-lock. The other threads task then can be executed, where the 'starting task' would come second - which is OK, even though a rare occasion. Above situation was triggered via AWT/NEWT reparenting w/ forced recreation via TestParenting01dAWT. +++ The null-task at EDTUtil.start() was remaining code to ensure that the EDT completed starting, which is redundant.
* Fix Bug 1019 - Remedy of Bug 691 causes 'access/modify after free' and ↵Sven Gothel2014-06-129-225/+254
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | crashes the app The 'magic' MyNSOpenGLContext::dealloc (MacOSXWindowSystemInterface-calayer.m) of force destroying the underlying CGLContextObj of it's associated NSOpenGLContext as introduced as a remedy of Bug 691 is plain wrong. It was added in commit f6e6fab2a7ddfb5c9b614cb072c27ff697629161 to mitigate the experience behavior of delayed GL context destruction when creating/destroying them multiple times as exposed in unit test TestGLCanvasAddRemove01SwingAWT. While this 'hack' worked for some reason on some OSX versions, it caused a 'access/modify after free' issue exposed under some circumstances and crashes the application. The actual culprit of the delayed GL context destruction is different. The offthread CALayer detachment and hence final destruction issued on the main-thread is _not_ issued immediately due to some referencing holding by NSApp. Issuing an empty event on the NSApp (thread) will wake up the thread and release claimed resources. This has been found while realizing that the GL context are released if the mouse is being moved (duh!). This issue is also known when triggering stop on the NSApp (NEWT MainThread), same remedy has been implemented here for a long time.
* GraphUI Demo: Analyze issue w/ OSX and NewtCanvasAWT when rendering / ↵Sven Gothel2014-06-116-20/+55
| | | | | | | | | | animating GLEventListenerButton Analyze issue w/ OSX and NewtCanvasAWT when rendering / animating GLEventListenerButton. FBO of main 'window' is _not_ updated .. Probably related to CALayer - FBO - FBO* (of this button) ..
* Graph RegionRenderer: Fix GL3 and ES3 GLSL issuesSven Gothel2014-06-115-33/+111
| | | | | | Macro redefine 'texture2D -> texture' was added _after_ the custom texture lookup insertion causing GL3-core to fail.
* Graph: Fix GLSL issue w/ ES3, add 'const float sample_count', since define ↵Sven Gothel2014-06-113-5/+7
| | | | SAMPLE_COUNT is of type 'int'
* Bug 1011 / Bug 1012: GLMediaPlayer Audio/Video stuttering w/ OSX and ↵Sven Gothel2014-06-117-16/+75
| | | | OpenAL/JOAL (works using openal-soft default on all platforms now)
* Remove explicit xcode.clang property filesSven Gothel2014-06-111-30/+0
|
* GLMediaPlayer: Fix video stutter if using NullAudioSinkSven Gothel2014-06-094-9/+72
| | | | | NullAudioSink shall return the last enqueued PTS in getPTS() not causing a-v delta measure based on lagging audio in player.
* GraphUI: Fix using multiple texture units w/ opt. colorTexUnit in GLRegionSven Gothel2014-06-094-18/+21
| | | | | The texture unit has to be updated always, since program maybe used by multiple regions and diff. texUnits
* Bug 741 HiDPI: Add ScalableSurface.getNativeSurfaceScale(..) to compute ↵Sven Gothel2014-06-0922-208/+404
| | | | | | | | | | | | | | surface DPI ; Add NEWT Window.getPixelsPerMM(..) to query surface DPI With HiDPI and surface scale, we need knowledge of the native surface's pixel-scale matching the monitor's pixel-per-millimeter value. Preserving the queried native pixel-scale and exposing it via ScalableSurface.getNativeSurfaceScale(..) to compute surface DPI. Add NEWT Window.getPixelsPerMM(..) to query surface DPI. Surface DPI is demonstrated in GraphUI's GPUUISceneGLListener0A .. and TestRulerNEWT01, etc ..
* NEWT Window: Remove deprecated methods: HiDPI + reparentWindow(..)Sven Gothel2014-06-087-131/+25
| | | | | | | | Remove HiDPI pixel- from/to window-unit conversion and getter methods: Rectangle HiDPI pixel- from/to window-units are erroneous in case of multiple monitor setup where a mixed pixel-scale exist, since the methods didn't take the monitor viewport and each of it's pixel-scale into account (expensive). Remove deprecated reparentWindow(..) methods.
* Bug 741 HiDPI: Simplify ScalableSurface (2): Add request pixelScale API ↵Sven Gothel2014-06-0817-82/+113
| | | | | | | | | | | | | | | | | | | entry, fixed NewtCanvasAWT use-case We require the requested pixelScale in NewtCanvasAWT if the NEWT window (child) is not yet realized, so the JAWTWindow can receive the request, since realized/current pixelScale is still 1. Remove return value (requested pixel scale): - public int[] setSurfaceScale(final int[] result, final int[] pixelScale); + public void setSurfaceScale(final int[] pixelScale); Add API hook to query requested pixel scale: + int[] getRequestedSurfaceScale(final int[] result); Unique name for get[Current]*: - public int[] getSurfaceScale(final int[] result); + public int[] getCurrentSurfaceScale(final int[] result);
* Bug 741 HiDPI: Simplify ScalableSurface [set|get]SurfaceScale(..) spec, ↵Sven Gothel2014-06-0819-75/+98
| | | | | | | | | | | | which also fixed JAWTWindow getSurfaceScale() issue on Windows Let setSurfaceScale(..) return the validated requested values and getSurfaceScale(..) always the current values. This removes complication and solves a bug w/ JAWTWindow on Windows, where we used 'drawable' as an indicator for 'previous locked' state. The latter is not true since on Windows 'drawable' is set to null in unlock, getWindowHandle() should be taken instead.
* Bug 741 HiDPI: Add ScalableSurface interface to get/set pixelScale w/ full ↵Sven Gothel2014-06-0825-241/+1098
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | OSX impl. Add ScalableSurface interface - To set pixelScale before and after realization - To get pixelScale - Implemented on: - NEWT Window - Generic impl. in WindowImpl - OSX WindowDriver impl. - Also propagetes pixelScale to parent JAWTWindow if offscreen (NewtCanvasAWT) - AWT WindowDriver impl. - JAWTWindow / OSXCalayer - AWT GLCanvas - AWT GLJPanel - NEWTCanvasAWT: - Propagates NEWT Window's pixelScale to underlying JAWTWindow - WrappedSurface for pixelScale propagation using offscreen drawables, i.e. GLJPanel - Generic helper in SurfaceScaleUtils (nativewindow package) - Fully implemented on OSX - Capable to switch pixelScale before realization, i.e. native-creation, as well as on-the-fly. - Impl. uses int[2] for pixelScale to support non-uniform scale. Test cases: - com.jogamp.opengl.test.junit.jogl.demos.es2.newt.TestGearsES2NEWT - com.jogamp.opengl.test.junit.jogl.demos.es2.awt.TestGearsES2AWT - com.jogamp.opengl.test.junit.jogl.demos.es2.awt.TestGearsES2GLJPanelAWT - com.jogamp.opengl.test.junit.jogl.demos.es2.newt.TestGearsES2NewtCanvasAWT - Press 'x' to toggle HiDPI - Commandline '-pixelScale <value>' - Added basic auto unit test (setting pre-realization)
* Minor: API-Doc / DEBUG Typo, GDISurface: Make fields privateSven Gothel2014-06-083-4/+4
|
* UpstreamSurfaceHook: Add 'NativeSurface getUpstreamSurface()' (from ↵Sven Gothel2014-06-088-14/+61
| | | | EGLUpstreamSurfaceHook) to generalize ProxySurfaceImpl.getUpstreamSurface()
* Bug 741 HiDPI: Add new NativeSurfaceHolder interface to GLDrawable and ↵Sven Gothel2014-06-0640-413/+561
| | | | | | | | | | | | | | NativeWindow; [AWT|SWT]NewtEventFactory use NativeSurfaceHolder as source, fixes pixel unit conversion - Add new NativeSurfaceHolder interface to GLDrawable and NativeWindow, allowing NativeSurface access (pixel unit conversion) A NativeSurfaceHolder is e.g.: - NativeWindow (is-a) - NEWT [GL]Window - GLDrawable (has-a) - [AWT|SWT]GLCanvas - [AWT|SWT]NewtEventFactory use NativeSurfaceHolder as source, fixes pixel unit conversion
* NEWT AWTAdapter: Simplify event processing / Window.enqueueEvent(..): Add ↵Sven Gothel2014-06-055-56/+58
| | | | | | | | | | API doc Simplify event processing of NEWT's AWTAdapter: - enqueueEvent -> processEvent - add return value (new enum) determinating action Using processEvent(..) now reduces manual invocation of NEWT Window.enqeueEvent(..).
* Bug 741 HiDPI: Fix missing window -> pixel unit conversion in ↵Sven Gothel2014-05-281-1/+4
| | | | AWTNewtEventFactory of commit 8b255eb303bba045b4eb087da1d1cb33b2e89e96
* GraphUI: Fix label layout (absolute), add auto no-aa dpi threshold (200 ↵Sven Gothel2014-05-2710-36/+328
| | | | dpi), add all modes to applet test-page
* Bug 741 HiDPI: Add missing window -> pixel unit conversion in ↵Sven Gothel2014-05-272-5/+6
| | | | AWTNewtEventFactory (e.g. for NewtCanvasAWT)
* Bug 741 HiDPI: Fix OSX NEWT Offscreen Size Regression from commit ↵Sven Gothel2014-05-271-9/+9
| | | | | | | | | | 56d60b36798fa8dae48bf2aa5e2de6f3178ab0d1 Fix regression of commit 56d60b36798fa8dae48bf2aa5e2de6f3178ab0d1: createWindow(..) was issuing sizeChanged(..) to ensure size notification, however - the offscreen case used the dummy size 64x64. Fix issues the notifications in caller w/ true size.
* Bug 741 HiDPI: Fix regression MIN_MONITOR_DEVICE_PROPERTIES: Adding missing ↵Sven Gothel2014-05-2711-51/+140
| | | | | | 'Rotated Viewport window-units' / Refine API doc in MonitorModeProps Regression of commit 56d60b36798fa8dae48bf2aa5e2de6f3178ab0d1
* Bug 741 HiDPI: [Core API Change] Bring back get[Width|Height]() in ↵Sven Gothel2014-05-2726-103/+103
| | | | | | | | | | | NativeWindow, i.e. getWindow[Width|Height]() -> get[Width|Height]() We have distinguished pixel- and window units in commit f9a00b91dcd146c72a50237b62270f33bd0da98e and introduced NativeWindow.getWindow[Width|Height]() and NativeSurface.getSurface[Width|Height](). To have a unique naming scheme, we could rename all method using 'Window', but for simplicity and since there will be no 'semantic override' just use the simple version.
* NewtCanvasSWT: Fixe newtChild NPE; Perform getParentLocationOnScreen() on ↵Sven Gothel2014-05-261-21/+79
| | | | valid SWT thread (OSX: on main-thread); unclutter updatePosSizeCheck(..)
* Bug 1010 - Fix ES3.glPixelStorei and revalidate GLPixelStorageModesSven Gothel2014-05-269-124/+238
| | | | | | | | | | | | Remove GLES3Impl.glPixelStorei pname validation which was true for ES2 impl, but is no more valid for ES3, which accepts more values than GL_PACK_ALIGNMENT & GL_UNPACK_ALIGNMENT. Revalidate GLPixelStorageModes: - Properly support ES3 PixelStorageModes - Revalidate PixelStorageModes for all GL profiles - Properly reset values at save - Separate PACK and UNPACK save/reset/restore implementation
* Bug 1009: Refine test case (Add test06_GL3_Demo0Normal)Sven Gothel2014-05-261-9/+18
|
* Bug 1009: Make FBObject's sampling sink format compatible w/ sampling source ↵Sven Gothel2014-05-261-17/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | if possible (ES3 spec requirement) Make FBObject's sampling sink format compatible w/ sampling source if possible, i.e. for all GL profiles but ES1 and ES2. This is an ES3 spec requirement: For ES3, sampling-sink colorbuffer format must be equal w/ the sampling-source Colorbuffer. ES3 BlitFramebuffer Requirements: OpenGL ES 3.0.2 p194: 4.3.2 Copying Pixels: If SAMPLE_BUFFERS for the read framebuffer is greater than zero, no copy is performed and an INVALID_OPERATION error is generated if the formats of the read and draw framebuffers are not identical or if the source and destination rectangles are not defined with the same (X0, Y 0) and (X1, Y 1) bounds. Texture and Renderbuffer format details: ES2 Base iFormat: OpenGL ES 2.0.24 p66: 3.7.1 Texture Image Specification, Table 3.8 - ALPHA, LUMINANCE, LUMINANCE_ALPHA, RGB, RGBA ES3 Base iFormat: OpenGL ES 3.0.2 p125: 3.8.3 Texture Image Specification, Table 3.11 - ALPHA, LUMINANCE, LUMINANCE_ALPHA, RGB, RGBA DEPTH_COMPONENT, STENCIL_COMPONENT, RED, RG ES3 Required Texture and Renderbuffer iFormat: OpenGL ES 3.0.2 p126: 3.8.3 Texture Image Specification - RGBA32I, RGBA32UI, RGBA16I, RGBA16UI, RGBA8, RGBA8I, RGBA8UI, SRGB8_ALPHA8, RGB10_A2, RGB10_A2UI, RGBA4, and RGB5_A1. - RGB8 and RGB565. - RG32I, RG32UI, RG16I, RG16UI, RG8, RG8I, and RG8UI. - R32I, R32UI, R16I, R16UI, R8, R8I, and R8UI. +++ Our implementation shall attempt to use the same format for the sampling-source and -sink wherever possible, e.g. GL2ES3 (excluding ES1 and ES2)!
* Bug 1013: Fix switching monitor resolution for NEWT Window (content black ↵Sven Gothel2014-05-262-49/+78
| | | | | | | | | | | | after) / Bug 741 HiDPI: Update pixelScale after monitor mode change This seems to be a bug within QUARTZ .. hence this is a workaround Monitor-Mode-Changed Notification: - In case the window is not in fullscreen, render it temporary invisible until the mode change is completed. - Also update the HiDPI pixel-scale when the mode change is completed.
* Bug 1012: Fix erroneous handling of multiple monitor coordinates on OSX with ↵Sven Gothel2014-05-265-59/+91
| | | | | | | | | | | NEWT To properly convert Top-Left (TL) from/to Bottom-Left (BL) coordinates we need to utilize the given CGDisplay viewport (TL) and NSScreen (BL) to perform the y-flip. This is especially true for the case of having multiple monitors covering different viewports (mixed resolution).
* Bug 741 HiDPI: Refine Monitor/Screen [virtual] Viewport Definition / Add ↵Sven Gothel2014-05-2660-799/+1550
| | | | | | | | | | | | | | | | | | | | NEWT Support / Fix JAWT getPixelScale deadlock - NativeWindow/Surface/NEWT API DOC: Define Coordinate System of Window and Screen - OSXUtil: Add getPixelScale(..) via Screen index and 'windowOrView' - JAWTWindow/JAWTUtil.getPixelScale(..): Use pre-fetched AWT GraphicsConfiguration to solve AWT-TreeLock (deadlock) - [Virtual] Viewport of MonitorDevice and Screen: - Properly calculate and expose [virtual] viewport in window and pixel units - OSX Monitor viewports in pixel units are 'reconstructed' - Window/Viewport to Monitor selection shall be perfomed via window units (unique) - OSX NEWT Window create/init (native): Use given size and coordinates even in fullscreen mode Don't override by quering NSScreen coordinates, trust given values. - Fix test cases, i.e. usage of pixel- and window-units