added functionality to use front mounted vive camera. 2nd try

empirephoenix-patch-1
Rickard Edén 7 years ago
parent 2c044a29c5
commit a65b0ba3af
  1. 21
      jme3-vr/src/main/java/com/jme3/input/vr/OpenVR.java

@ -18,6 +18,7 @@ import com.jme3.system.jopenvr.OpenVRUtil;
import com.jme3.system.jopenvr.TrackedDevicePose_t;
import com.jme3.system.jopenvr.VR_IVRCompositor_FnTable;
import com.jme3.system.jopenvr.VR_IVRSystem_FnTable;
import com.jme3.system.jopenvr.VR_IVRTrackedCamera_FnTable;
import com.jme3.util.VRUtil;
import com.sun.jna.Memory;
import com.sun.jna.Pointer;
@ -41,6 +42,7 @@ public class OpenVR implements VRAPI {
private static final Logger logger = Logger.getLogger(OpenVR.class.getName());
private static VR_IVRCompositor_FnTable compositorFunctions;
private static VR_IVRTrackedCamera_FnTable cameraFunctions;
private static VR_IVRSystem_FnTable vrsystemFunctions;
private static boolean initSuccess = false;
@ -107,6 +109,10 @@ public class OpenVR implements VRAPI {
return compositorFunctions;
}
public VR_IVRTrackedCamera_FnTable getTrackedCamera(){
return cameraFunctions;
}
@Override
public String getName() {
return "OpenVR";
@ -236,6 +242,21 @@ public class OpenVR implements VRAPI {
return compositorFunctions != null;
}
public void initCamera(boolean allowed) {
hmdErrorStore.setValue(0); // clear the error store
if( allowed && vrsystemFunctions != null ) {
IntByReference intptr = JOpenVRLibrary.VR_GetGenericInterface(JOpenVRLibrary.IVRTrackedCamera_Version, hmdErrorStore);
if (intptr != null){
cameraFunctions = new VR_IVRTrackedCamera_FnTable(intptr.getPointer());
if(cameraFunctions != null && hmdErrorStore.getValue() == 0 ){
cameraFunctions.setAutoSynch(false);
cameraFunctions.read();
logger.config("OpenVR Camera initialized");
}
}
}
}
@Override
public void destroy() {
JOpenVRLibrary.VR_ShutdownInternal();

Loading…
Cancel
Save