summaryrefslogtreecommitdiffstats
path: root/src/oculusvr/native
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2014-06-19 23:21:19 +0200
committerSven Gothel <[email protected]>2014-06-19 23:21:19 +0200
commit40d7d0d18ed11b8dbb0f16137f82eef828b822a4 (patch)
tree954cb10ac50d0eea506c4b4b9dc5b5bac39d99e0 /src/oculusvr/native
parent20bf51f2ccbecf1ab21ef3dbd2ff06e04ebd40cc (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.cpp30
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); }
+