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 /src/oculusvr/native | |
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 'src/oculusvr/native')
-rw-r--r-- | src/oculusvr/native/OVRImplMisc.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/oculusvr/native/OVRImplMisc.cpp b/src/oculusvr/native/OVRImplMisc.cpp new file mode 100644 index 000000000..08ebddf62 --- /dev/null +++ b/src/oculusvr/native/OVRImplMisc.cpp @@ -0,0 +1,30 @@ +#include "OVR_CAPI.h" + +#include "CAPI_DistortionRenderer.h" + +namespace OVR { namespace CAPI { + + /** + * Index is: apiConfig->Header.API, with + * ovrRenderAPIConfig * apiConfig + * ovrRenderAPIConfigHeader Header + * ovrRenderAPIType Header.API + */ + DistortionRenderer::CreateFunc DistortionRenderer::APICreateRegistry[ovrRenderAPI_Count] = + { + 0, // None + 0, // None for GL - &GL::DistortionRenderer::Create, + 0, // Android_GLES + 0, // D3D9 + 0, // D3D10 + 0 // D3D11 + }; + +}} // namespace OVR::CAPI + +// +// TBD: Replace stdc++ for compatibility ! +// +// This is not enough: +// extern "C" void __cxa_pure_virtual() { while (1); } + |