diff options
author | Sven Gothel <[email protected]> | 2014-06-19 23:21:19 +0200 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2014-06-19 23:21:19 +0200 |
commit | 40d7d0d18ed11b8dbb0f16137f82eef828b822a4 (patch) | |
tree | 954cb10ac50d0eea506c4b4b9dc5b5bac39d99e0 /make/config/oculusvr/oculusvr-ovr-CustomJavaCode.java | |
parent | 20bf51f2ccbecf1ab21ef3dbd2ff06e04ebd40cc (diff) |
Bug 1021: Add OculusSDK binding / Basic OVR support
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'
Diffstat (limited to 'make/config/oculusvr/oculusvr-ovr-CustomJavaCode.java')
-rw-r--r-- | make/config/oculusvr/oculusvr-ovr-CustomJavaCode.java | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/make/config/oculusvr/oculusvr-ovr-CustomJavaCode.java b/make/config/oculusvr/oculusvr-ovr-CustomJavaCode.java new file mode 100644 index 000000000..06f7b3234 --- /dev/null +++ b/make/config/oculusvr/oculusvr-ovr-CustomJavaCode.java @@ -0,0 +1,22 @@ + +static { + AccessController.doPrivileged(new PrivilegedAction<DynamicLibraryBundle>() { + public DynamicLibraryBundle run() { + final DynamicLibraryBundle bundle = new DynamicLibraryBundle(new OVRDynamicLibraryBundleInfo()); + if(null==bundle) { + throw new RuntimeException("Null DynamicLibraryBundle"); + } + /** No native tool library to load + if(!bundle.isToolLibLoaded()) { + throw new RuntimeException("Couln't load native OVR library"); + } */ + if(!bundle.isLibComplete()) { + throw new RuntimeException("Couln't load native OVR/JNI glue library"); + } + if( !initializeImpl() ) { + throw new RuntimeException("Initialization failure"); + } + return bundle; + } } ); +} + |