Bug 1116 - Add OculusVR DK2 Support
Summary: Add OculusVR DK2 Support
Status: RESOLVED FIXED
Alias: None
Product: Jogl
Classification: JogAmp
Component: core (show other bugs)
Version: 2.3.2
Hardware: All all
: --- enhancement
Assignee: Sven Gothel
URL:
Depends on: 1021 1147 1149
Blocks: 1151
  Show dependency treegraph
 
Reported: 2015-01-08 13:24 CET by Sven Gothel
Modified: 2015-09-27 01:11 CEST (History)
2 users (show)

See Also:
Type: ---
SCM Refs:
gluegen 030b580cf8bb7f1e91eed6e47a341eb50fc2e6be oculusvr-sdk e2c8888763eb304f92dcea89047655f402f3a9c5 oculusvr-sdk 6affd0dec1bb50d2df258e114d20ec848efad6e0 oculusvr-sdk 232cdbe43ca11477bc32ef7a7ce2f9fa31f9e05f oculusvr-sdk cbbd775b6c754927632c333ff01424a0d2048c7c oculusvr-sdk 2374cb20cfe6d129e10b35a49be96bce273b97fb oculusvr-sdk 05bb4364bfd9930fb1902efec86446ef035ee07a oculusvr-sdk e490c3c7f7bb5461cfa78a214827aa534fb43a3e oculusvr-sdk 0c5c4be020c2d55540058a49b2a879f46d5a1e13 oculusvr-sdk 633f70342fe270fd91bca8f724049aceec602337 oculusvr-sdk 3c7b8a17e907f4ef2afd9f77db566a3f6179cbe4 jogl 32fc8f3a64cfeee8936af98ae49f8e7c8dfe982f jogl 9a8ae7c79cb6a89626eeb6a9a00fc9e32f9c0a71 jogl bb6a8fdc8decdbec64bbab0fe2175e76211d0e77 jogl e626312c79f49b2244b5fdae8dbbf1ee22520817 jogl eae39dbad70d6ecfe0f47766ee8afe99890e7337 jogl 3b7a8f5f4e89adf84fd871c1440859ed3d89802e jogl d09a50bdc7aca2d441fe7c595711a44fe9dc4a23 jogl ee2c18211a5128f5cde5312a7bbb5c0e80674903
Workaround: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sven Gothel 2015-01-08 13:24:09 CET
- Enhance current OculusVR DK1 module to work w/ DK2
- Create DK2 binding to support head tracking driver blob, 
  w/ limited platform support
Comment 1 Sven Gothel 2015-03-20 02:41:21 CET
DK2's screen on X11 (at least) starts in rotated mode.

At least we need to rotate the screen.
We are blocked by Bug 1147, i.e. issue w/ our X11RandR13 code ..
Comment 2 Sven Gothel 2015-03-20 21:51:51 CET
gluegen 030b580cf8bb7f1e91eed6e47a341eb50fc2e6be

Fix DynamicLibraryBundle.isToolLibComplete() no tool-lib case, regression of commit 12feaa7d3b1544098f684d851e3caff1ec88cbc8
    
    Regression of commit 12feaa7d3b1544098f684d851e3caff1ec88cbc8
    
    'isToolLibComplete()' returned false if dynLinkGlobal is null,
    even if no tool-lib has been used. In which case dynLinkGlobal
    has not been initialized and hence is always null.
    
    'isToolLibComplete()' now takes no tool-lib into consideration!
    
    Currently only 'OVRDynamicLibraryBundleInfo' of JOGL's 'oculusvr' binding
    used this configuration within JogAmp.
Comment 3 Sven Gothel 2015-03-21 04:43:46 CET
Part-1 (DK2 on DK1 SDK w/o Eye Tracker) completed!

oculusvr-sdk e2c8888763eb304f92dcea89047655f402f3a9c5
  Product 3 (DK2) not properly detected
oculusvr-sdk 6affd0dec1bb50d2df258e114d20ec848efad6e0
  Fixing DK2 screen parameters for linux, windows and osx
oculusvr-sdk 232cdbe43ca11477bc32ef7a7ce2f9fa31f9e05f
  Adopt to JOGL commit 32fc8f3a64cfeee8936af98ae49f8e7c8dfe982f

jogl 32fc8f3a64cfeee8936af98ae49f8e7c8dfe982f
    - 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
  
jogl 9a8ae7c79cb6a89626eeb6a9a00fc9e32f9c0a71
  Bump oculusvr-sdk - Bug 1116
Comment 4 Sven Gothel 2015-03-23 13:34:22 CET
Depends on Bug 1149, since PCPP is not capable of dealing 
w/ new cpp macros within DK2 header files. Hence need JCPP,
which does a better job ..
Comment 5 Sven Gothel 2015-03-27 03:04:54 CET
oculusvr-sdk cbbd775b6c754927632c333ff01424a0d2048c7c
oculusvr-sdk 2374cb20cfe6d129e10b35a49be96bce273b97fb
oculusvr-sdk 05bb4364bfd9930fb1902efec86446ef035ee07a
oculusvr-sdk e490c3c7f7bb5461cfa78a214827aa534fb43a3e
oculusvr-sdk 0c5c4be020c2d55540058a49b2a879f46d5a1e13
oculusvr-sdk 633f70342fe270fd91bca8f724049aceec602337
 Cleanup and merge w/ vanilla_0.4.4

oculusvr-sdk 3c7b8a17e907f4ef2afd9f77db566a3f6179cbe4
 Use new 'HEADLESS_APP' mode, i.e. drop all display related code.
    
 HEADLESS_APP (new CPP define) is required to drop all display related code.
    
 TODO: JOGL needs to display the HSW (Health and Safety Warning) messages
 to comply w/ license!
Comment 6 Sven Gothel 2015-03-27 03:13:15 CET
jogl bb6a8fdc8decdbec64bbab0fe2175e76211d0e77
  Add OculusVR DK2 Support - 
  Part-2 (DK1 and DK2 on DK2 SDK w/ Eye Tracker if available)

jogl e626312c79f49b2244b5fdae8dbbf1ee22520817
  Oculus SDK 0.4.4 support for JOGL - 
  Part-3: New set of C-files, adapt to new SDK API

StereoDemo01 is working w/ SDK 0.4.4 on Windows w/ DK2,
i.e.:
  - Installed Windows runtime
  - Using ExtendedDisplay mode,
    since we are running 'headless' w/ client rendering.
Comment 7 Sven Gothel 2015-03-27 12:16:38 CET
jogl eae39dbad70d6ecfe0f47766ee8afe99890e7337
  Oculus SDK 0.4.4 support for JOGL - Fix OSX build
Comment 8 Sven Gothel 2015-03-27 12:17:22 CET
While adding support for 0.4.4 SDK 
SDK 0.5.0.1 was released :)
Comment 9 Sven Gothel 2015-03-27 13:12:01 CET
StereoDemo01 is working w/ SDK 0.4.4 on Linux w/ DK2,
Comment 10 Sven Gothel 2015-03-27 15:14:11 CET
jogl 3b7a8f5f4e89adf84fd871c1440859ed3d89802e
   StereoDeviceUtil: Only rotate if current mode doesn't match 
   required rotation. Add verbosity.
    
   Allowing user to permanently rotate the device ..

jogl d09a50bdc7aca2d441fe7c595711a44fe9dc4a23
    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().   

jogl ee2c18211a5128f5cde5312a7bbb5c0e80674903
  Add ShutdownHook for all factories and devices 
  to StereoDeviceFactory using NativeWindowFactory
Comment 11 Sven Gothel 2015-03-27 15:16:24 CET
Moved OculusVR SDK 0.5.* support to Bug 1151.