OpenVR 1.0.9 and Occulus Support (#779)

* Updated OpenVR implementation to 1.0.9

User can specify external OpenVR library to load with
openvr.library.path system property.
Usage: java -Dopenvr.library.name=my_path_to_library MyApp

Removed reference to OCCULUS VR and OpenVR from VRAppstate as this class
is generic and does not have to be linked to specific implementation.

VRMouseManager can be buggous using OSVR or Occulus VR. 

Refactored VR implementation packages in order to separate all available
implementation. Modifying or adding implementation should no more impact
other ones. 

Renamed some classes in order to be uniform
empirephoenix-patch-1
Julien Seinturier 7 years ago committed by Rémy Bouquet
parent 96836de6e8
commit 58a9211879
  1. 42
      jme3-vr/src/main/java/com/jme3/app/VRAppState.java
  2. 24
      jme3-vr/src/main/java/com/jme3/app/VRApplication.java
  3. 28
      jme3-vr/src/main/java/com/jme3/app/VRConstants.java
  4. 64
      jme3-vr/src/main/java/com/jme3/app/VREnvironment.java
  5. 2
      jme3-vr/src/main/java/com/jme3/input/lwjgl/GlfwKeyInputVR.java
  6. 2
      jme3-vr/src/main/java/com/jme3/input/lwjgl/GlfwMouseInputVR.java
  7. 563
      jme3-vr/src/main/java/com/jme3/input/vr/AbstractVRMouseManager.java
  8. 8
      jme3-vr/src/main/java/com/jme3/input/vr/AbstractVRViewManager.java
  9. 2
      jme3-vr/src/main/java/com/jme3/input/vr/HmdType.java
  10. 6
      jme3-vr/src/main/java/com/jme3/input/vr/VRAPI.java
  11. 78
      jme3-vr/src/main/java/com/jme3/input/vr/VRBounds.java
  12. 2
      jme3-vr/src/main/java/com/jme3/input/vr/VRInputAPI.java
  13. 26
      jme3-vr/src/main/java/com/jme3/input/vr/VRInputType.java
  14. 107
      jme3-vr/src/main/java/com/jme3/input/vr/VRMouseManager.java
  15. 3
      jme3-vr/src/main/java/com/jme3/input/vr/VRTrackedController.java
  16. 12
      jme3-vr/src/main/java/com/jme3/input/vr/VRViewManager.java
  17. 108
      jme3-vr/src/main/java/com/jme3/input/vr/oculus/OculusMouseManager.java
  18. 4
      jme3-vr/src/main/java/com/jme3/input/vr/oculus/OculusVR.java
  19. 11
      jme3-vr/src/main/java/com/jme3/input/vr/oculus/OculusVRInput.java
  20. 14
      jme3-vr/src/main/java/com/jme3/input/vr/oculus/OculusViewManager.java
  21. 58
      jme3-vr/src/main/java/com/jme3/input/vr/openvr/OpenVR.java
  22. 59
      jme3-vr/src/main/java/com/jme3/input/vr/openvr/OpenVRBounds.java
  23. 12
      jme3-vr/src/main/java/com/jme3/input/vr/openvr/OpenVRInput.java
  24. 114
      jme3-vr/src/main/java/com/jme3/input/vr/openvr/OpenVRMouseManager.java
  25. 8
      jme3-vr/src/main/java/com/jme3/input/vr/openvr/OpenVRTrackedController.java
  26. 21
      jme3-vr/src/main/java/com/jme3/input/vr/openvr/OpenVRViewManager.java
  27. 7
      jme3-vr/src/main/java/com/jme3/input/vr/osvr/OSVR.java
  28. 12
      jme3-vr/src/main/java/com/jme3/input/vr/osvr/OSVRInput.java
  29. 108
      jme3-vr/src/main/java/com/jme3/input/vr/osvr/OSVRMouseManager.java
  30. 27
      jme3-vr/src/main/java/com/jme3/input/vr/osvr/OSVRViewManager.java
  31. 2
      jme3-vr/src/main/java/com/jme3/post/CartoonSSAO.java
  32. 2
      jme3-vr/src/main/java/com/jme3/post/PreNormalCaching.java
  33. 2
      jme3-vr/src/main/java/com/jme3/shadow/AbstractShadowFilterVR.java
  34. 2
      jme3-vr/src/main/java/com/jme3/shadow/AbstractShadowRendererVR.java
  35. 2
      jme3-vr/src/main/java/com/jme3/shadow/DirectionalLightShadowFilterVR.java
  36. 2
      jme3-vr/src/main/java/com/jme3/shadow/DirectionalLightShadowRendererVR.java
  37. 2
      jme3-vr/src/main/java/com/jme3/shadow/InstancedDirectionalShadowFilter.java
  38. 78
      jme3-vr/src/main/java/com/jme3/system/jopenvr/AppOverrideKeys_t.java
  39. 143
      jme3-vr/src/main/java/com/jme3/system/jopenvr/COpenVRContext.java
  40. 88
      jme3-vr/src/main/java/com/jme3/system/jopenvr/CameraVideoStreamFrameHeader_t.java
  41. 72
      jme3-vr/src/main/java/com/jme3/system/jopenvr/Compositor_CumulativeStats.java
  42. 92
      jme3-vr/src/main/java/com/jme3/system/jopenvr/Compositor_FrameTiming.java
  43. 72
      jme3-vr/src/main/java/com/jme3/system/jopenvr/Compositor_OverlaySettings.java
  44. 82
      jme3-vr/src/main/java/com/jme3/system/jopenvr/D3D12TextureData_t.java
  45. 104
      jme3-vr/src/main/java/com/jme3/system/jopenvr/DistortionCoordinates_t.java
  46. 68
      jme3-vr/src/main/java/com/jme3/system/jopenvr/HiddenAreaMesh_t.java
  47. 64
      jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdColor_t.java
  48. 68
      jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdMatrix34_t.java
  49. 68
      jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdMatrix44_t.java
  50. 68
      jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdQuad_t.java
  51. 64
      jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdQuaternion_t.java
  52. 66
      jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdRect2_t.java
  53. 68
      jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdVector2_t.java
  54. 68
      jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdVector3_t.java
  55. 68
      jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdVector3d_t.java
  56. 68
      jme3-vr/src/main/java/com/jme3/system/jopenvr/HmdVector4_t.java
  57. 60
      jme3-vr/src/main/java/com/jme3/system/jopenvr/IntersectionMaskCircle_t.java
  58. 64
      jme3-vr/src/main/java/com/jme3/system/jopenvr/IntersectionMaskRectangle_t.java
  59. 3387
      jme3-vr/src/main/java/com/jme3/system/jopenvr/JOpenVRLibrary.java
  60. 76
      jme3-vr/src/main/java/com/jme3/system/jopenvr/NotificationBitmap_t.java
  61. 8
      jme3-vr/src/main/java/com/jme3/system/jopenvr/OpenVRUtil.java
  62. 74
      jme3-vr/src/main/java/com/jme3/system/jopenvr/RenderModel_ComponentState_t.java
  63. 52
      jme3-vr/src/main/java/com/jme3/system/jopenvr/RenderModel_ControllerMode_State_t.java
  64. 72
      jme3-vr/src/main/java/com/jme3/system/jopenvr/RenderModel_TextureMap_t.java
  65. 84
      jme3-vr/src/main/java/com/jme3/system/jopenvr/RenderModel_Vertex_t.java
  66. 94
      jme3-vr/src/main/java/com/jme3/system/jopenvr/RenderModel_t.java
  67. 92
      jme3-vr/src/main/java/com/jme3/system/jopenvr/Texture_t.java
  68. 96
      jme3-vr/src/main/java/com/jme3/system/jopenvr/TrackedDevicePose_t.java
  69. 56
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VRControllerAxis_t.java
  70. 80
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VRControllerState_t.java
  71. 56
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_ApplicationLaunch_t.java
  72. 56
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Chaperone_t.java
  73. 52
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Controller_t.java
  74. 260
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Data_t.java
  75. 56
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_EditingCameraSurface_t.java
  76. 52
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Ipd_t.java
  77. 72
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Keyboard_t.java
  78. 52
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_MessageOverlay_t.java
  79. 60
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Mouse_t.java
  80. 56
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Notification_t.java
  81. 52
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Overlay_t.java
  82. 52
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_PerformanceTest_t.java
  83. 60
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Process_t.java
  84. 72
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Property_t.java
  85. 56
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Reserved_t.java
  86. 52
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_ScreenshotProgress_t.java
  87. 56
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Screenshot_t.java
  88. 60
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Scroll_t.java
  89. 52
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_SeatedZeroPoseReset_t.java
  90. 52
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_Status_t.java
  91. 72
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_TouchPadMove_t.java
  92. 80
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VREvent_t.java
  93. 68
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VROverlayIntersectionMaskPrimitive_Data_t.java
  94. 72
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VROverlayIntersectionMaskPrimitive_t.java
  95. 80
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VROverlayIntersectionParams_t.java
  96. 78
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VROverlayIntersectionResults_t.java
  97. 64
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VRTextureBounds_t.java
  98. 86
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VRVulkanTextureData_t.java
  99. 414
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRApplications_FnTable.java
  100. 282
      jme3-vr/src/main/java/com/jme3/system/jopenvr/VR_IVRChaperoneSetup_FnTable.java
  101. Some files were not shown because too many files have changed in this diff Show More

@ -34,10 +34,10 @@ package com.jme3.app;
import com.jme3.app.Application; import com.jme3.app.Application;
import com.jme3.app.state.AbstractAppState; import com.jme3.app.state.AbstractAppState;
import com.jme3.app.state.AppStateManager; import com.jme3.app.state.AppStateManager;
import com.jme3.input.vr.OculusVR;
import com.jme3.input.vr.OpenVR;
import com.jme3.input.vr.VRAPI; import com.jme3.input.vr.VRAPI;
import com.jme3.input.vr.VRInputAPI; import com.jme3.input.vr.VRInputAPI;
import com.jme3.input.vr.VRMouseManager;
import com.jme3.input.vr.VRViewManager;
import com.jme3.math.ColorRGBA; import com.jme3.math.ColorRGBA;
import com.jme3.math.Quaternion; import com.jme3.math.Quaternion;
import com.jme3.math.Vector3f; import com.jme3.math.Vector3f;
@ -48,8 +48,6 @@ import com.jme3.scene.Spatial;
import com.jme3.system.AppSettings; import com.jme3.system.AppSettings;
import com.jme3.util.VRGUIPositioningMode; import com.jme3.util.VRGUIPositioningMode;
import com.jme3.util.VRGuiManager; import com.jme3.util.VRGuiManager;
import com.jme3.util.VRMouseManager;
import com.jme3.util.VRViewManager;
import java.awt.GraphicsDevice; import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment; import java.awt.GraphicsEnvironment;
@ -74,7 +72,7 @@ import java.util.logging.Logger;
* <li>To start the main {@link Application application}. * <li>To start the main {@link Application application}.
* </ul> * </ul>
* Attaching an instance of this app state to an already started application may cause crashes. * Attaching an instance of this app state to an already started application may cause crashes.
* @author Julien Seinturier - JOrigin project - <a href="http://www.jorigin.org">http:/www.jorigin.org</a> * @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
*/ */
public class VRAppState extends AbstractAppState { public class VRAppState extends AbstractAppState {
@ -404,17 +402,25 @@ public class VRAppState extends AbstractAppState {
// it will get updated automatically in the viewmanager update otherwise // it will get updated automatically in the viewmanager update otherwise
// TODO isn't this done by SimpleApplication? // TODO isn't this done by SimpleApplication?
for (Spatial spatial : application.getGuiViewPort().getScenes()) { for (Spatial spatial : application.getGuiViewPort().getScenes()) {
//spatial.updateLogicalState(tpf);
spatial.updateGeometricState(); spatial.updateGeometricState();
} }
} }
// use the analog control on the first tracked controller to push around the mouse // use the analog control on the first tracked controller to push around the mouse
// FIXME crashes on Rift/Touch (and probably OSVR), as it assumes the presence of the Vive touchpads environment.getVRMouseManager().updateAnalogAsMouse(0, null, null, null, tpf);
if(getVRHardware() instanceof OpenVR) {
environment.getVRMouseManager().updateAnalogAsMouse(0, null, null, null, tpf);
}
} }
@Override
public void render(RenderManager rm) {
super.render(rm);
// update compositor
if( environment.getVRViewManager() != null ) {
environment.getVRViewManager().render();
}
}
@Override @Override
public void postRender() { public void postRender() {
super.postRender(); super.postRender();
@ -425,16 +431,6 @@ public class VRAppState extends AbstractAppState {
} }
} }
@Override
public void render(RenderManager rm) {
super.render(rm);
// update compositor
if( environment.getVRViewManager() != null ) {
environment.getVRViewManager().render();
}
}
@Override @Override
public void initialize(AppStateManager stateManager, Application app) { public void initialize(AppStateManager stateManager, Application app) {
super.initialize(stateManager, app); super.initialize(stateManager, app);
@ -601,11 +597,7 @@ public class VRAppState extends AbstractAppState {
settings.setFrequency(environment.getVRHardware().getDisplayFrequency()); settings.setFrequency(environment.getVRHardware().getDisplayFrequency());
settings.setFullscreen(false); settings.setFullscreen(false);
settings.setVSync(false); // stop vsyncing on primary monitor! settings.setVSync(false); // stop vsyncing on primary monitor!
settings.setSwapBuffers(environment.isSwapBuffers());
// TODO: Is this preventing desktop display on _ALL_ HMDs?
if(!(getVRHardware() instanceof OculusVR)) {
settings.setSwapBuffers(environment.isSwapBuffers());
}
} }
// Updating application settings // Updating application settings

@ -18,10 +18,12 @@ import com.jme3.input.KeyInput;
import com.jme3.input.MouseInput; import com.jme3.input.MouseInput;
import com.jme3.input.TouchInput; import com.jme3.input.TouchInput;
import com.jme3.input.controls.KeyTrigger; import com.jme3.input.controls.KeyTrigger;
import com.jme3.input.vr.OSVR;
import com.jme3.input.vr.OpenVR;
import com.jme3.input.vr.VRAPI; import com.jme3.input.vr.VRAPI;
import com.jme3.input.vr.VRInputAPI; import com.jme3.input.vr.VRInputAPI;
import com.jme3.input.vr.openvr.OpenVR;
import com.jme3.input.vr.openvr.OpenVRMouseManager;
import com.jme3.input.vr.openvr.OpenVRViewManager;
import com.jme3.input.vr.osvr.OSVR;
import com.jme3.math.ColorRGBA; import com.jme3.math.ColorRGBA;
import com.jme3.math.Quaternion; import com.jme3.math.Quaternion;
import com.jme3.math.Vector3f; import com.jme3.math.Vector3f;
@ -47,8 +49,6 @@ import com.jme3.system.lwjgl.LwjglDisplayVR;
import com.jme3.system.lwjgl.LwjglOffscreenBufferVR; import com.jme3.system.lwjgl.LwjglOffscreenBufferVR;
import com.jme3.util.VRGUIPositioningMode; import com.jme3.util.VRGUIPositioningMode;
import com.jme3.util.VRGuiManager; import com.jme3.util.VRGuiManager;
import com.jme3.util.VRMouseManager;
import com.jme3.util.VRViewManagerOpenVR;
import java.awt.GraphicsDevice; import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment; import java.awt.GraphicsEnvironment;
@ -72,7 +72,7 @@ import org.lwjgl.system.Platform;
* <p> * <p>
* <b>This class is no more functional and is deprecated. Please use {@link VRAppState VRAppState} instead.</b> * <b>This class is no more functional and is deprecated. Please use {@link VRAppState VRAppState} instead.</b>
* @author reden - phr00t - https://github.com/phr00t * @author reden - phr00t - https://github.com/phr00t
* @author Julien Seinturier - (c) 2016 - JOrigin project - <a href="http://www.jorigin.org">http:/www.jorigin.org</a> * @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
* @deprecated use {@link VRAppState VRAppState} instead. * @deprecated use {@link VRAppState VRAppState} instead.
*/ */
public abstract class VRApplication implements Application, SystemListener { public abstract class VRApplication implements Application, SystemListener {
@ -171,8 +171,8 @@ public abstract class VRApplication implements Application, SystemListener {
private VRAPI VRhardware = null; private VRAPI VRhardware = null;
private VRGuiManager guiManager = null; private VRGuiManager guiManager = null;
private VRMouseManager mouseManager = null; private OpenVRMouseManager mouseManager = null;
private VRViewManagerOpenVR viewmanager = null; private OpenVRViewManager viewmanager = null;
private String OS; private String OS;
@ -259,10 +259,10 @@ public abstract class VRApplication implements Application, SystemListener {
guiManager = new VRGuiManager(null); guiManager = new VRGuiManager(null);
// Create a new view manager. // Create a new view manager.
viewmanager = new VRViewManagerOpenVR(null); viewmanager = new OpenVRViewManager(null);
// Create a new mouse manager. // Create a new mouse manager.
mouseManager = new VRMouseManager(null); mouseManager = new OpenVRMouseManager(null);
// we are going to use OpenVR now, not the Oculus Rift // we are going to use OpenVR now, not the Oculus Rift
// OpenVR does support the Rift // OpenVR does support the Rift
@ -311,7 +311,7 @@ public abstract class VRApplication implements Application, SystemListener {
* Get the VR view manager. * Get the VR view manager.
* @return the VR view manager. * @return the VR view manager.
*/ */
public VRViewManagerOpenVR getVRViewManager() { public OpenVRViewManager getVRViewManager() {
return viewmanager; return viewmanager;
} }
@ -327,7 +327,7 @@ public abstract class VRApplication implements Application, SystemListener {
* Get the VR mouse manager attached to this application. * Get the VR mouse manager attached to this application.
* @return the VR mouse manager attached to this application. * @return the VR mouse manager attached to this application.
*/ */
public VRMouseManager getVRMouseManager(){ public OpenVRMouseManager getVRMouseManager(){
return mouseManager; return mouseManager;
} }
@ -1359,7 +1359,7 @@ public abstract class VRApplication implements Application, SystemListener {
} }
//FIXME: WARNING !! //FIXME: WARNING !!
viewmanager = new VRViewManagerOpenVR(null); viewmanager = new OpenVRViewManager(null);
viewmanager.setResolutionMultiplier(resMult); viewmanager.setResolutionMultiplier(resMult);
inputManager.addMapping(RESET_HMD, new KeyTrigger(KeyInput.KEY_F9)); inputManager.addMapping(RESET_HMD, new KeyTrigger(KeyInput.KEY_F9));
setLostFocusBehavior(LostFocusBehavior.Disabled); setLostFocusBehavior(LostFocusBehavior.Disabled);

@ -6,7 +6,7 @@ import com.jme3.system.AppSettings;
/** /**
* Some constants dedicated to the VR module. * Some constants dedicated to the VR module.
* @author Julien Seinturier - JOrigin project - <a href="http://www.jorigin.org">http:/www.jorigin.org</a> * @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
* @since 3.1.0 * @since 3.1.0
*/ */
public class VRConstants { public class VRConstants {
@ -117,6 +117,7 @@ public class VRConstants {
* <li>{@link VRConstants#SETTING_VRAPI_OPENVR_VALUE SETTING_VRAPI_OPENVR_VALUE}: Use OpenVR binding. * <li>{@link VRConstants#SETTING_VRAPI_OPENVR_VALUE SETTING_VRAPI_OPENVR_VALUE}: Use OpenVR binding.
* <li>{@link VRConstants#SETTING_VRAPI_OSVR_VALUE SETTING_VRAPI_OSVR_VALUE}: Use OSVR binding. * <li>{@link VRConstants#SETTING_VRAPI_OSVR_VALUE SETTING_VRAPI_OSVR_VALUE}: Use OSVR binding.
* <li>{@link VRConstants#SETTING_VRAPI_OPENVR_LWJGL_VALUE SETTING_VRAPI_OPENVR_LWJGL_VALUE}: Use OpenVR binding from LWJGL. * <li>{@link VRConstants#SETTING_VRAPI_OPENVR_LWJGL_VALUE SETTING_VRAPI_OPENVR_LWJGL_VALUE}: Use OpenVR binding from LWJGL.
* <li>{@link VRConstants#SETTING_VRAPI_OCULUSVR_VALUE SETTING_VRAPI_OCULUSVR_VALUE}: Use Occulus Rift binding binding.
* </ul> * </ul>
* <b>Type: </b><code>int</code><br> * <b>Type: </b><code>int</code><br>
* <b>Usage: </b><code>{@link AppSettings appSettings}.{@link HashMap#put(Object, Object) put}(VRConstants.SETTING_VRAPI, value)</code> * <b>Usage: </b><code>{@link AppSettings appSettings}.{@link HashMap#put(Object, Object) put}(VRConstants.SETTING_VRAPI, value)</code>
@ -126,29 +127,34 @@ public class VRConstants {
/** /**
* The identifier of the OpenVR system. * The identifier of the OpenVR system.
* @see #SETTING_VRAPI * @see #SETTING_VRAPI_OSVR_VALUE
* @see #SETTING_VRAPI_OPENVR_LWJGL_VALUE
* @see #SETTING_VRAPI_OCULUSVR_VALUE
*/ */
public static final int SETTING_VRAPI_OPENVR_VALUE = 1; public static final int SETTING_VRAPI_OPENVR_VALUE = 1;
/** /**
* The identifier of the OSVR system. * The identifier of the OSVR system.
* @see #SETTING_VRAPI * @see #SETTING_VRAPI_OPENVR_VALUE
* @see #SETTING_VRAPI_OPENVR_LWJGL_VALUE
* @see #SETTING_VRAPI_OCULUSVR_VALUE
*/ */
public static final int SETTING_VRAPI_OSVR_VALUE = 2; public static final int SETTING_VRAPI_OSVR_VALUE = 2;
/** /**
* The identifier of the OpenVR from LWJGL system. * The identifier of the OpenVR from LWJGL system.
* @see #SETTING_VRAPI * @see #SETTING_VRAPI_OPENVR_VALUE
* @see #SETTING_VRAPI_OSVR_VALUE
* @see #SETTING_VRAPI_OCULUSVR_VALUE
*/ */
public static final int SETTING_VRAPI_OPENVR_LWJGL_VALUE = 3; public static final int SETTING_VRAPI_OPENVR_LWJGL_VALUE = 3;
/** /**
* The identifier of the LibOVR (Oculus) system. * The identifier of the Oculus Rift system.
* * @see #SETTING_VRAPI_OPENVR_VALUE
* @see #SETTING_VRAPI * @see #SETTING_VRAPI_OSVR_VALUE
* @see #SETTING_VRAPI_OPENVR_LWJGL_VALUE
*/ */
public static final int SETTING_VRAPI_OCULUSVR_VALUE = 4; public static final int SETTING_VRAPI_OCULUSVR_VALUE = 4;
} }

@ -5,23 +5,30 @@ import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import com.jme3.app.state.AppState; import com.jme3.app.state.AppState;
import com.jme3.input.vr.OSVR;
import com.jme3.input.vr.OpenVR;
import com.jme3.input.vr.OculusVR;
import com.jme3.input.vr.VRAPI; import com.jme3.input.vr.VRAPI;
import com.jme3.input.vr.VRBounds; import com.jme3.input.vr.VRBounds;
import com.jme3.input.vr.VRInputAPI; import com.jme3.input.vr.VRInputAPI;
import com.jme3.input.vr.VRMouseManager;
import com.jme3.input.vr.VRViewManager;
import com.jme3.input.vr.oculus.OculusMouseManager;
import com.jme3.input.vr.oculus.OculusVR;
import com.jme3.input.vr.oculus.OculusViewManager;
import com.jme3.input.vr.openvr.OpenVR;
import com.jme3.input.vr.openvr.OpenVRMouseManager;
import com.jme3.input.vr.openvr.OpenVRViewManager;
import com.jme3.input.vr.osvr.OSVR;
import com.jme3.input.vr.osvr.OSVRViewManager;
import com.jme3.renderer.Camera; import com.jme3.renderer.Camera;
import com.jme3.scene.Spatial; import com.jme3.scene.Spatial;
import com.jme3.system.AppSettings; import com.jme3.system.AppSettings;
import com.jme3.system.jopenvr.JOpenVRLibrary; import com.jme3.system.jopenvr.JOpenVRLibrary;
import com.jme3.util.VRGuiManager; import com.jme3.util.VRGuiManager;
import com.jme3.util.VRMouseManager;
import com.jme3.util.VRViewManager;
import com.jme3.util.VRViewManagerOSVR;
import com.jme3.util.VRViewManagerOculus;
import com.jme3.util.VRViewManagerOpenVR;
/**
*
* @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
*
*/
public class VREnvironment { public class VREnvironment {
private static final Logger logger = Logger.getLogger(VREnvironment.class.getName()); private static final Logger logger = Logger.getLogger(VREnvironment.class.getName());
@ -74,11 +81,8 @@ public class VREnvironment {
public VREnvironment(AppSettings settings){ public VREnvironment(AppSettings settings){
this.settings = settings; this.settings = settings;
guiManager = new VRGuiManager(this); bounds = null;
mouseManager = new VRMouseManager(this);
bounds = new VRBounds();
processSettings(); processSettings();
} }
@ -91,9 +95,19 @@ public class VREnvironment {
return hardware; return hardware;
} }
/**
* Set the VR bounds.
* @return the VR bounds.
* @see #getVRBounds()
*/
public void setVRBounds(VRBounds bounds){
this.bounds = bounds;
}
/** /**
* Get the VR bounds. * Get the VR bounds.
* @return the VR bounds. * @return the VR bounds.
* @see #setVRBounds(VRBounds)
*/ */
public VRBounds getVRBounds(){ public VRBounds getVRBounds(){
return bounds; return bounds;
@ -387,11 +401,11 @@ public class VREnvironment {
// Instanciate view manager // Instanciate view manager
if (vrBinding == VRConstants.SETTING_VRAPI_OPENVR_VALUE){ if (vrBinding == VRConstants.SETTING_VRAPI_OPENVR_VALUE){
viewmanager = new VRViewManagerOpenVR(this); viewmanager = new OpenVRViewManager(this);
} else if (vrBinding == VRConstants.SETTING_VRAPI_OSVR_VALUE){ } else if (vrBinding == VRConstants.SETTING_VRAPI_OSVR_VALUE){
viewmanager = new VRViewManagerOSVR(this); viewmanager = new OSVRViewManager(this);
} else if (vrBinding == VRConstants.SETTING_VRAPI_OCULUSVR_VALUE) { } else if (vrBinding == VRConstants.SETTING_VRAPI_OCULUSVR_VALUE) {
viewmanager = new VRViewManagerOculus(this); viewmanager = new OculusViewManager(this);
} else { } else {
logger.severe("Cannot instanciate view manager, unknown VRAPI type: "+vrBinding); logger.severe("Cannot instanciate view manager, unknown VRAPI type: "+vrBinding);
} }
@ -416,17 +430,29 @@ public class VREnvironment {
if( vrSupportedOS) { if( vrSupportedOS) {
if( vrBinding == VRConstants.SETTING_VRAPI_OSVR_VALUE ) { if( vrBinding == VRConstants.SETTING_VRAPI_OSVR_VALUE ) {
guiManager = new VRGuiManager(this);
mouseManager = new OpenVRMouseManager(this);
hardware = new OSVR(this); hardware = new OSVR(this);
initialized = true; initialized = true;
logger.config("Creating OSVR wrapper [SUCCESS]"); logger.config("Creating OSVR wrapper [SUCCESS]");
} else if( vrBinding == VRConstants.SETTING_VRAPI_OPENVR_VALUE ) { } else if( vrBinding == VRConstants.SETTING_VRAPI_OPENVR_VALUE ) {
guiManager = new VRGuiManager(this);
mouseManager = new OpenVRMouseManager(this);
hardware = new OpenVR(this); hardware = new OpenVR(this);
initialized = true; initialized = true;
logger.config("Creating OpenVR wrapper [SUCCESS]"); logger.config("Creating OpenVR wrapper [SUCCESS]");
} else if (vrBinding == VRConstants.SETTING_VRAPI_OCULUSVR_VALUE) { } else if (vrBinding == VRConstants.SETTING_VRAPI_OCULUSVR_VALUE) {
guiManager = new VRGuiManager(this);
mouseManager = new OculusMouseManager(this);
hardware = new OculusVR(this); hardware = new OculusVR(this);
initialized = true; initialized = true;
logger.config("Creating LibOVR wrapper [SUCCESS]"); logger.config("Creating Occulus Rift wrapper [SUCCESS]");
} else { } else {
logger.config("Cannot create VR binding: "+vrBinding+" [FAILED]"); logger.config("Cannot create VR binding: "+vrBinding+" [FAILED]");
logger.log(Level.SEVERE, "Cannot initialize VR environment [FAILED]"); logger.log(Level.SEVERE, "Cannot initialize VR environment [FAILED]");

@ -48,7 +48,7 @@ import static org.lwjgl.glfw.GLFW.*;
/** /**
* A key input that wraps GLFW underlying components. * A key input that wraps GLFW underlying components.
* @author reden - phr00t - https://github.com/phr00t * @author reden - phr00t - https://github.com/phr00t
* @author Julien Seinturier - (c) 2016 - JOrigin project - <a href="http://www.jorigin.org">http:/www.jorigin.org</a> * @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
* *
*/ */
public class GlfwKeyInputVR implements KeyInput { public class GlfwKeyInputVR implements KeyInput {

@ -63,7 +63,7 @@ import org.lwjgl.system.MemoryUtil;
* This class support modifications dedicated to VR rendering. * This class support modifications dedicated to VR rendering.
* @author Daniel Johansson (dannyjo) * @author Daniel Johansson (dannyjo)
* @author reden - phr00t - https://github.com/phr00t * @author reden - phr00t - https://github.com/phr00t
* @author Julien Seinturier - (c) 2016 - JOrigin project - <a href="http://www.jorigin.org">http:/www.jorigin.org</a> * @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a> * @author Julien Seinturier - (c) 2016 - JOrigin project - <a href="http://www.jorigin.org">http:/www.jorigin.org</a>
*/ */
public class GlfwMouseInputVR implements MouseInput { public class GlfwMouseInputVR implements MouseInput {

@ -1,335 +1,228 @@
/* package com.jme3.input.vr;
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates import java.util.logging.Logger;
* and open the template in the editor.
*/ import org.lwjgl.glfw.GLFW;
package com.jme3.util;
import com.jme3.app.VREnvironment;
import java.util.logging.Logger; import com.jme3.input.MouseInput;
import com.jme3.input.lwjgl.GlfwMouseInputVR;
import org.lwjgl.glfw.GLFW; import com.jme3.material.RenderState.BlendMode;
import com.jme3.math.Vector2f;
import com.jme3.app.VREnvironment; import com.jme3.scene.Node;
import com.jme3.input.MouseInput; import com.jme3.system.AppSettings;
import com.jme3.input.controls.AnalogListener; import com.jme3.system.lwjgl.LwjglWindow;
import com.jme3.input.lwjgl.GlfwMouseInputVR; import com.jme3.texture.Texture;
import com.jme3.input.vr.VRInputType; import com.jme3.texture.Texture2D;
import com.jme3.material.RenderState.BlendMode; import com.jme3.ui.Picture;
import com.jme3.math.Vector2f;
import com.jme3.scene.Node; /**
import com.jme3.system.AppSettings; * An abstract implementation of a {@link VRMouseManager}. This class should be overrided by specific hardware implementation of VR devices.
import com.jme3.system.lwjgl.LwjglWindow; * @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
import com.jme3.texture.Texture; *
import com.jme3.texture.Texture2D; */
import com.jme3.ui.Picture; public abstract class AbstractVRMouseManager implements VRMouseManager {
/** private static final Logger logger = Logger.getLogger(AbstractVRMouseManager.class.getName());
* A class dedicated to the handling of the mouse within VR environment.
* @author Julien Seinturier - (c) 2016 - JOrigin project - <a href="http://www.jorigin.org">http:/www.jorigin.org</a> private VREnvironment environment = null;
*
*/
public class VRMouseManager {
private Picture mouseImage;
private static final Logger logger = Logger.getLogger(VRMouseManager.class.getName()); private int recentCenterCount = 0;
protected final Vector2f cursorPos = new Vector2f();
private VREnvironment environment = null;
private float ySize, sensitivity = 8f, acceleration = 2f;
private final int AVERAGE_AMNT = 4;
private int avgCounter; private boolean thumbstickMode;
private float moveScale = 1f;
private Picture mouseImage;
private int recentCenterCount = 0; /**
private final Vector2f cursorPos = new Vector2f(); * Create a new AbstractVRMouseManager attached to the given {@link VREnvironment VR environment}.
private float ySize, sensitivity = 8f, acceleration = 2f; * @param environment the {@link VREnvironment VR environment} that this manager is attached to.
private final float[] lastXmv = new float[AVERAGE_AMNT], lastYmv = new float[AVERAGE_AMNT]; */
private boolean thumbstickMode; public AbstractVRMouseManager(VREnvironment environment) {
private float moveScale = 1f; this.environment = environment;
}
private float avg(float[] arr) {
float amt = 0f; @Override
for(float f : arr) amt += f; public void initialize() {
return amt / arr.length;
} logger.config("Initializing VR mouse manager.");
/** // load default mouseimage
* Create a new VR mouse manager within the given {@link VREnvironment VR environment}. mouseImage = new Picture("mouse");
* @param environment the VR environment of the mouse manager. setImage("Common/Util/mouse.png");
*/ // hide default cursor by making it invisible
public VRMouseManager(VREnvironment environment){
this.environment = environment; MouseInput mi = environment.getApplication().getContext().getMouseInput();
} if( mi instanceof GlfwMouseInputVR ){
((GlfwMouseInputVR)mi).hideActiveCursor();
/** }
* Initialize the VR mouse manager. centerMouse();
*/
protected void initialize() { logger.config("Initialized VR mouse manager [SUCCESS]");
}
logger.config("Initializing VR mouse manager.");
@Override
// load default mouseimage public VREnvironment getVREnvironment() {
mouseImage = new Picture("mouse"); return environment;
setImage("Common/Util/mouse.png"); }
// hide default cursor by making it invisible
@Override
MouseInput mi = environment.getApplication().getContext().getMouseInput(); public void setThumbstickMode(boolean set) {
if( mi instanceof GlfwMouseInputVR ){ thumbstickMode = set;
((GlfwMouseInputVR)mi).hideActiveCursor(); }
}
centerMouse(); @Override
public boolean isThumbstickMode() {
logger.config("Initialized VR mouse manager [SUCCESS]"); return thumbstickMode;
} }
public void setThumbstickMode(boolean set) { @Override
thumbstickMode = set; public void setSpeed(float sensitivity, float acceleration) {
} this.sensitivity = sensitivity;
this.acceleration = acceleration;
public boolean isThumbstickMode() { }
return thumbstickMode;
} @Override
public float getSpeedSensitivity() {
/** return sensitivity;
* Set the speed of the mouse. }
* @param sensitivity the sensitivity of the mouse.
* @param acceleration the acceleration of the mouse. @Override
* @see #getSpeedAcceleration() public float getSpeedAcceleration() {
* @see #getSpeedSensitivity() return acceleration;
*/ }
public void setSpeed(float sensitivity, float acceleration) {
this.sensitivity = sensitivity; @Override
this.acceleration = acceleration; public float getMouseMoveScale() {
} return moveScale;
}
/**
* Get the sensitivity of the mouse. @Override
* @return the sensitivity of the mouse. public void setMouseMoveScale(float set) {
* @see #setSpeed(float, float) moveScale = set;
*/ }
public float getSpeedSensitivity() {
return sensitivity; @Override
} public void setImage(String texture) {
/** if (environment != null){
* Get the acceleration of the mouse.
* @return the acceleration of the mouse. if (environment.getApplication() != null){
* @see #setSpeed(float, float) if( environment.isInVR() == false ){
*/ Texture tex = environment.getApplication().getAssetManager().loadTexture(texture);
public float getSpeedAcceleration() { mouseImage.setTexture(environment.getApplication().getAssetManager(), (Texture2D)tex, true);
return acceleration; ySize = tex.getImage().getHeight();
} mouseImage.setHeight(ySize);
mouseImage.setWidth(tex.getImage().getWidth());
/** mouseImage.getMaterial().getAdditionalRenderState().setBlendMode(BlendMode.Alpha);
* Set the mouse move scale. mouseImage.getMaterial().getAdditionalRenderState().setDepthWrite(false);
* @param set the mouse move scale. } else {
*/ Texture tex = environment.getApplication().getAssetManager().loadTexture(texture);
public void setMouseMoveScale(float set) { mouseImage.setTexture(environment.getApplication().getAssetManager(), (Texture2D)tex, true);
moveScale = set; ySize = tex.getImage().getHeight();
} mouseImage.setHeight(ySize);
mouseImage.setWidth(tex.getImage().getWidth());
/** mouseImage.getMaterial().getAdditionalRenderState().setBlendMode(BlendMode.Alpha);
* Set the image to use as mouse cursor. The given string describe an asset that the underlying application asset manager has to load. mouseImage.getMaterial().getAdditionalRenderState().setDepthWrite(false);
* @param texture the image to use as mouse cursor. }
*/ } else {
public void setImage(String texture) { throw new IllegalStateException("This VR environment is not attached to any application.");
}
if (environment != null){
} else {
if (environment.getApplication() != null){ throw new IllegalStateException("This VR view manager is not attached to any VR environment.");
if( environment.isInVR() == false ){ }
Texture tex = environment.getApplication().getAssetManager().loadTexture(texture); }
mouseImage.setTexture(environment.getApplication().getAssetManager(), (Texture2D)tex, true);
ySize = tex.getImage().getHeight();
mouseImage.setHeight(ySize); @Override
mouseImage.setWidth(tex.getImage().getWidth()); public Vector2f getCursorPosition() {
mouseImage.getMaterial().getAdditionalRenderState().setBlendMode(BlendMode.Alpha);
mouseImage.getMaterial().getAdditionalRenderState().setDepthWrite(false); if (environment != null){
} else { if (environment.getApplication() != null){
Texture tex = environment.getApplication().getAssetManager().loadTexture(texture); if( environment.isInVR() ) {
mouseImage.setTexture(environment.getApplication().getAssetManager(), (Texture2D)tex, true); return cursorPos;
ySize = tex.getImage().getHeight(); }
mouseImage.setHeight(ySize);
mouseImage.setWidth(tex.getImage().getWidth()); return environment.getApplication().getInputManager().getCursorPosition();
mouseImage.getMaterial().getAdditionalRenderState().setBlendMode(BlendMode.Alpha); } else {
mouseImage.getMaterial().getAdditionalRenderState().setDepthWrite(false); throw new IllegalStateException("This VR environment is not attached to any application.");
} }
} else { } else {
throw new IllegalStateException("This VR environment is not attached to any application."); throw new IllegalStateException("This VR view manager is not attached to any VR environment.");
} }
}
} else {
throw new IllegalStateException("This VR view manager is not attached to any VR environment."); @Override
} public void centerMouse() {
}
if (environment != null){
/** if (environment.getApplication() != null){
* Update analog controller as it was a mouse controller. // set mouse in center of the screen if newly added
* @param inputIndex the index of the controller attached to the VR system. Vector2f size = environment.getVRGUIManager().getCanvasSize();
* @param mouseListener the JMonkey mouse listener to trigger. MouseInput mi = environment.getApplication().getContext().getMouseInput();
* @param mouseXName the mouseX identifier. AppSettings as = environment.getApplication().getContext().getSettings();
* @param mouseYName the mouseY identifier if( mi instanceof GlfwMouseInputVR ) ((GlfwMouseInputVR)mi).setCursorPosition((int)(as.getWidth() / 2f), (int)(as.getHeight() / 2f));
* @param tpf the time per frame. if( environment.isInVR() ) {
*/ cursorPos.x = size.x / 2f;
public void updateAnalogAsMouse(int inputIndex, AnalogListener mouseListener, String mouseXName, String mouseYName, float tpf) { cursorPos.y = size.y / 2f;
recentCenterCount = 2;
if (environment != null){ }
if (environment.getApplication() != null){ } else {
// got a tracked controller to use as the "mouse" throw new IllegalStateException("This VR environment is not attached to any application.");
if( environment.isInVR() == false || }
environment.getVRinput() == null || } else {
environment.getVRinput().isInputDeviceTracking(inputIndex) == false ){ throw new IllegalStateException("This VR view manager is not attached to any VR environment.");
return; }
}
}
Vector2f tpDelta;
// TODO option to use Touch joysticks @Override
if( thumbstickMode ) { public void update(float tpf) {
tpDelta = environment.getVRinput().getAxis(inputIndex, VRInputType.ViveTrackpadAxis); // if we are showing the cursor, add our picture as it
} else {
tpDelta = environment.getVRinput().getAxisDeltaSinceLastCall(inputIndex, VRInputType.ViveTrackpadAxis); if( environment.getApplication().getInputManager().isCursorVisible() ) {
} if( mouseImage.getParent() == null ) {
float Xamount = (float)Math.pow(Math.abs(tpDelta.x) * sensitivity, acceleration); environment.getApplication().getGuiViewPort().attachScene(mouseImage);
float Yamount = (float)Math.pow(Math.abs(tpDelta.y) * sensitivity, acceleration); centerMouse();
// the "real" mouse pointer should stay hidden
if( tpDelta.x < 0f ){ if (environment.getApplication().getContext() instanceof LwjglWindow){
Xamount = -Xamount; GLFW.glfwSetInputMode(((LwjglWindow)environment.getApplication().getContext()).getWindowHandle(), GLFW.GLFW_CURSOR, GLFW.GLFW_CURSOR_DISABLED);
} }
}
if( tpDelta.y < 0f ){ // handle mouse movements, which may be in addition to (or exclusive from) tracked movement
Yamount = -Yamount; MouseInput mi = environment.getApplication().getContext().getMouseInput();
} if( mi instanceof GlfwMouseInputVR ) {
if( recentCenterCount <= 0 ) {
Xamount *= moveScale; Yamount *= moveScale; //Vector2f winratio = VRGuiManager.getCanvasToWindowRatio();
if( mouseListener != null ) { cursorPos.x += ((GlfwMouseInputVR)mi).getLastDeltaX();// * winratio.x;
if( tpDelta.x != 0f && mouseXName != null ) mouseListener.onAnalog(mouseXName, Xamount * 0.2f, tpf); cursorPos.y += ((GlfwMouseInputVR)mi).getLastDeltaY();// * winratio.y;
if( tpDelta.y != 0f && mouseYName != null ) mouseListener.onAnalog(mouseYName, Yamount * 0.2f, tpf); if( cursorPos.x < 0f ) cursorPos.x = 0f;
} if( cursorPos.y < 0f ) cursorPos.y = 0f;
if( cursorPos.x > environment.getVRGUIManager().getCanvasSize().x ) cursorPos.x = environment.getVRGUIManager().getCanvasSize().x;
if( environment.getApplication().getInputManager().isCursorVisible() ) { if( cursorPos.y > environment.getVRGUIManager().getCanvasSize().y ) cursorPos.y = environment.getVRGUIManager().getCanvasSize().y;
int index = (avgCounter+1) % AVERAGE_AMNT; } else recentCenterCount--;
lastXmv[index] = Xamount * 133f; ((GlfwMouseInputVR)mi).clearDeltas();
lastYmv[index] = Yamount * 133f; }
cursorPos.x -= avg(lastXmv); // ok, update the cursor graphic position
cursorPos.y -= avg(lastYmv); Vector2f currentPos = getCursorPosition();
Vector2f maxsize = environment.getVRGUIManager().getCanvasSize(); mouseImage.setLocalTranslation(currentPos.x, currentPos.y - ySize, environment.getVRGUIManager().getGuiDistance() + 1f);
if( cursorPos.x > maxsize.x ){ mouseImage.updateGeometricState();
cursorPos.x = maxsize.x;
} } else if( mouseImage.getParent() != null ) {
Node n = mouseImage.getParent();
if( cursorPos.x < 0f ){ mouseImage.removeFromParent();
cursorPos.x = 0f;
} if (n != null){
n.updateGeometricState();
if( cursorPos.y > maxsize.y ){ }
cursorPos.y = maxsize.y; }
} }
}
if( cursorPos.y < 0f ){
cursorPos.y = 0f;
}
}
} else {
throw new IllegalStateException("This VR environment is not attached to any application.");
}
} else {
throw new IllegalStateException("This VR view manager is not attached to any VR environment.");
}
}
/**
* Get the actual cursor position.
* @return the actual cursor position.
*/
public Vector2f getCursorPosition() {
if (environment != null){
if (environment.getApplication() != null){
if( environment.isInVR() ) {
return cursorPos;
}
return environment.getApplication().getInputManager().getCursorPosition();
} else {
throw new IllegalStateException("This VR environment is not attached to any application.");
}
} else {
throw new IllegalStateException("This VR view manager is not attached to any VR environment.");
}
}
/**
* Center the mouse on the display.
*/
public void centerMouse() {
if (environment != null){
if (environment.getApplication() != null){
// set mouse in center of the screen if newly added
Vector2f size = environment.getVRGUIManager().getCanvasSize();
MouseInput mi = environment.getApplication().getContext().getMouseInput();
AppSettings as = environment.getApplication().getContext().getSettings();
if( mi instanceof GlfwMouseInputVR ) ((GlfwMouseInputVR)mi).setCursorPosition((int)(as.getWidth() / 2f), (int)(as.getHeight() / 2f));
if( environment.isInVR() ) {
cursorPos.x = size.x / 2f;
cursorPos.y = size.y / 2f;
recentCenterCount = 2;
}
} else {
throw new IllegalStateException("This VR environment is not attached to any application.");
}
} else {
throw new IllegalStateException("This VR view manager is not attached to any VR environment.");
}
}
/**
* Update the mouse manager. This method should not be called manually.
* The standard behavior for this method is to be called from the {@link VRViewManager#update(float) update method} of the attached {@link VRViewManager VR view manager}.
* @param tpf the time per frame.
*/
protected void update(float tpf) {
// if we are showing the cursor, add our picture as it
if( environment.getApplication().getInputManager().isCursorVisible() ) {
if( mouseImage.getParent() == null ) {
environment.getApplication().getGuiViewPort().attachScene(mouseImage);
centerMouse();
// the "real" mouse pointer should stay hidden
if (environment.getApplication().getContext() instanceof LwjglWindow){
GLFW.glfwSetInputMode(((LwjglWindow)environment.getApplication().getContext()).getWindowHandle(), GLFW.GLFW_CURSOR, GLFW.GLFW_CURSOR_DISABLED);
}
}
// handle mouse movements, which may be in addition to (or exclusive from) tracked movement
MouseInput mi = environment.getApplication().getContext().getMouseInput();
if( mi instanceof GlfwMouseInputVR ) {
if( recentCenterCount <= 0 ) {
//Vector2f winratio = VRGuiManager.getCanvasToWindowRatio();
cursorPos.x += ((GlfwMouseInputVR)mi).getLastDeltaX();// * winratio.x;
cursorPos.y += ((GlfwMouseInputVR)mi).getLastDeltaY();// * winratio.y;
if( cursorPos.x < 0f ) cursorPos.x = 0f;
if( cursorPos.y < 0f ) cursorPos.y = 0f;
if( cursorPos.x > environment.getVRGUIManager().getCanvasSize().x ) cursorPos.x = environment.getVRGUIManager().getCanvasSize().x;
if( cursorPos.y > environment.getVRGUIManager().getCanvasSize().y ) cursorPos.y = environment.getVRGUIManager().getCanvasSize().y;
} else recentCenterCount--;
((GlfwMouseInputVR)mi).clearDeltas();
}
// ok, update the cursor graphic position
Vector2f currentPos = getCursorPosition();
mouseImage.setLocalTranslation(currentPos.x, currentPos.y - ySize, environment.getVRGUIManager().getGuiDistance() + 1f);
mouseImage.updateGeometricState();
} else if( mouseImage.getParent() != null ) {
Node n = mouseImage.getParent();
mouseImage.removeFromParent();
if (n != null){
n.updateGeometricState();
}
}
}
}

@ -1,4 +1,4 @@
package com.jme3.util; package com.jme3.input.vr;
import com.jme3.app.VREnvironment; import com.jme3.app.VREnvironment;
import com.jme3.post.CartoonSSAO; import com.jme3.post.CartoonSSAO;
@ -18,7 +18,7 @@ import com.jme3.texture.Texture2D;
/** /**
* A VR view manager. This class holds methods that enable to submit 3D views to the VR compositor. * A VR view manager. This class holds methods that enable to submit 3D views to the VR compositor.
* System dependent classes should extends from this one. * System dependent classes should extends from this one.
* @author Julien Seinturier - (c) 2016 - JOrigin project - <a href="http://www.jorigin.org">http:/www.jorigin.org</a> * @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
*/ */
public abstract class AbstractVRViewManager implements VRViewManager { public abstract class AbstractVRViewManager implements VRViewManager {
@ -128,10 +128,6 @@ public abstract class AbstractVRViewManager implements VRViewManager {
public VREnvironment getVREnvironment(){ public VREnvironment getVREnvironment(){
return environment; return environment;
} }
@Override
public void render() {
}
/** /**
* Handles moving filters from the main view to each eye * Handles moving filters from the main view to each eye

@ -3,7 +3,7 @@ package com.jme3.input.vr;
/** /**
* The type of VR Head Mounted Device (HMD) * The type of VR Head Mounted Device (HMD)
* @author reden - phr00t - https://github.com/phr00t * @author reden - phr00t - https://github.com/phr00t
* @author Julien Seinturier - (c) 2016 - JOrigin project - <a href="http://www.jorigin.org">http:/www.jorigin.org</a> * @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
*/ */
public enum HmdType { public enum HmdType {

@ -14,7 +14,7 @@ import com.jme3.renderer.Camera;
/** /**
* An interface that represents a VR system. This interface has to be implemented in order to wrap underlying VR system (OpenVR, OSVR, ...) * An interface that represents a VR system. This interface has to be implemented in order to wrap underlying VR system (OpenVR, OSVR, ...)
* @author reden - phr00t - https://github.com/phr00t * @author reden - phr00t - https://github.com/phr00t
* @author Julien Seinturier - (c) 2016 - JOrigin project - <a href="http://www.jorigin.org">http:/www.jorigin.org</a> * @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
*/ */
public interface VRAPI { public interface VRAPI {
@ -86,8 +86,8 @@ public interface VRAPI {
public boolean isInitialized(); public boolean isInitialized();
/** /**
* Reset (recenter) the VR system. The current position of the HMD is * Reset the VR system. After a call to this method, the current position of the HMD should be
* now considered the origin (observer+[0,0,0]). * the origin (i-e the observer without any combined transformation).
*/ */
public void reset(); public void reset();

@ -1,61 +1,17 @@
package com.jme3.input.vr; package com.jme3.input.vr;
import com.jme3.math.Vector2f; import com.jme3.math.Vector2f;
import com.jme3.system.jopenvr.JOpenVRLibrary;
import com.jme3.system.jopenvr.VR_IVRChaperone_FnTable; /**
import com.sun.jna.ptr.FloatByReference; * This interface describe the VR playground bounds.
* @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
import java.util.logging.Logger; *
*/
/** public interface VRBounds {
* A class that represents VR world bounds.
* @author reden - phr00t - https://github.com/phr00t /**
* @author Julien Seinturier - (c) 2016 - JOrigin project - <a href="http://www.jorigin.org">http:/www.jorigin.org</a> * Get the size of the VR playground.
*/ * @return the size of the VR playground.
public class VRBounds { */
public Vector2f getPlaySize();
private static Logger logger = Logger.getLogger(VRBounds.class.getName()); }
private VR_IVRChaperone_FnTable vrChaperone;
private Vector2f playSize;
/**
* Initialize the VR bounds.
* @return <code>true</code> if the initialization is a success and <code>false</code> otherwise.
*/
public boolean init(OpenVR api) {
logger.config("Initialize VR bounds...");
if( vrChaperone == null ) {
vrChaperone = new VR_IVRChaperone_FnTable(JOpenVRLibrary.VR_GetGenericInterface(JOpenVRLibrary.IVRChaperone_Version, api.hmdErrorStore).getPointer());
if( vrChaperone != null ) {
vrChaperone.setAutoSynch(false);
vrChaperone.read();
FloatByReference fbX = new FloatByReference();
FloatByReference fbZ = new FloatByReference();
vrChaperone.GetPlayAreaSize.apply(fbX, fbZ);
playSize = new Vector2f(fbX.getValue(), fbZ.getValue());
logger.config("Initialize VR bounds [SUCCESS]");
return true; // init success
}
logger.warning("Initialize VR bounds [FAILED].");
return false; // failed to init
}
logger.config("Initialize VR bounds already done.");
return true; // already initialized
}
/**
* Get the size of the VR world.
* @return the size of the VR world.
*/
public Vector2f getPlaySize() {
return playSize;
}
}

@ -12,7 +12,7 @@ import com.jme3.math.Vector3f;
/** /**
* An interface that represents a VR input (typically a VR device such as a controller). * An interface that represents a VR input (typically a VR device such as a controller).
* @author reden - phr00t - https://github.com/phr00t * @author reden - phr00t - https://github.com/phr00t
* @author Julien Seinturier - (c) 2016 - JOrigin project - <a href="http://www.jorigin.org">http:/www.jorigin.org</a> * @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
*/ */
public interface VRInputAPI { public interface VRInputAPI {

@ -1,11 +1,9 @@
package com.jme3.input.vr; package com.jme3.input.vr;
import static org.lwjgl.ovr.OVR.*; // For the button constants
/** /**
* The type of a VR input. This enumeration enables to determine which part of the VR device is involved within input callback. * The type of a VR input. This enumeration enables to determine which part of the VR device is involved within input callback.
* @author reden - phr00t - https://github.com/phr00t * @author reden - phr00t - https://github.com/phr00t
* @author Julien Seinturier - (c) 2016 - JOrigin project - <a href="http://www.jorigin.org">http:/www.jorigin.org</a> * @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
* *
*/ */
public enum VRInputType { public enum VRInputType {
@ -59,18 +57,18 @@ public enum VRInputType {
/** /**
* The upper buttons on the Oculus Touch controllers - B on the right controller, and Y on the left. * The upper buttons on the Oculus Touch controllers - B on the right controller, and Y on the left.
*/ */
OculusTopButton(ovrButton_B | ovrButton_Y), OculusTopButton(org.lwjgl.ovr.OVR.ovrButton_B | org.lwjgl.ovr.OVR.ovrButton_Y),
/** /**
* The lower (not counting menu) buttons on the Oculus Touch * The lower (not counting menu) buttons on the Oculus Touch
* controllers - A on the right controller, and X on the left. * controllers - A on the right controller, and X on the left.
*/ */
OculusBottomButton(ovrButton_A | ovrButton_X), OculusBottomButton(org.lwjgl.ovr.OVR.ovrButton_A | org.lwjgl.ovr.OVR.ovrButton_X),
/** /**
* The 'click' button on the Oculus Touch thumbsticks. * The 'click' button on the Oculus Touch thumbsticks.
*/ */
OculusThumbstickButton(ovrButton_LThumb | ovrButton_RThumb), OculusThumbstickButton(org.lwjgl.ovr.OVR.ovrButton_LThumb | org.lwjgl.ovr.OVR.ovrButton_RThumb),
/** /**
* The game-usable menu button, under and to the left of the 'X' button on the left controller. * The game-usable menu button, under and to the left of the 'X' button on the left controller.
@ -78,22 +76,22 @@ public enum VRInputType {
* Most games use this to pause - it preferably should be used for at least that purpose, and is * Most games use this to pause - it preferably should be used for at least that purpose, and is
* uncomfortable to rest your thumb on (in games where you suddenly have to pause/open a menu). * uncomfortable to rest your thumb on (in games where you suddenly have to pause/open a menu).
*/ */
OculusMenuButton(ovrButton_Enter), OculusMenuButton(org.lwjgl.ovr.OVR.ovrButton_Enter),
/** /**
* The capacitive touch sensors on the top buttons (Y and B) of the Oculus Touch. * The capacitive touch sensors on the top buttons (Y and B) of the Oculus Touch.
*/ */
OculusTopTouch(ovrTouch_B | ovrTouch_Y), OculusTopTouch(org.lwjgl.ovr.OVR.ovrTouch_B | org.lwjgl.ovr.OVR.ovrTouch_Y),
/** /**
* The capacitive touch sensors on the lower buttons (X and A) of the Oculus Touch. * The capacitive touch sensors on the lower buttons (X and A) of the Oculus Touch.
*/ */
OculusBottomTouch(ovrTouch_A | ovrTouch_X), OculusBottomTouch(org.lwjgl.ovr.OVR.ovrTouch_A | org.lwjgl.ovr.OVR.ovrTouch_X),
/** /**
* The capacitive touch sensors on the thumbsticks of the Oculus Touch. * The capacitive touch sensors on the thumbsticks of the Oculus Touch.
*/ */
OculusThumbstickTouch(ovrTouch_LThumb | ovrTouch_RThumb), OculusThumbstickTouch(org.lwjgl.ovr.OVR.ovrTouch_LThumb | org.lwjgl.ovr.OVR.ovrTouch_RThumb),
/** /**
* The capacitive touch sensors on the thumbrests of the Oculus Touch - this is a textured pad * The capacitive touch sensors on the thumbrests of the Oculus Touch - this is a textured pad
@ -102,7 +100,7 @@ public enum VRInputType {
* While it probably goes without saying, only use this for gesture support and do not bind game * While it probably goes without saying, only use this for gesture support and do not bind game
* elements to it. * elements to it.
*/ */
OculusThumbrestTouch(ovrTouch_LThumbRest | ovrTouch_RThumbRest), OculusThumbrestTouch(org.lwjgl.ovr.OVR.ovrTouch_LThumbRest | org.lwjgl.ovr.OVR.ovrTouch_RThumbRest),
/** /**
* The state of a software calculation based on the capacitive touch sensor values that determine if * The state of a software calculation based on the capacitive touch sensor values that determine if
@ -111,12 +109,12 @@ public enum VRInputType {
* This should be used instead of calculating this yourself based on the touch results of all the other * This should be used instead of calculating this yourself based on the touch results of all the other
* parts of the controller. * parts of the controller.
*/ */
OculusThumbUp(ovrTouch_LThumbUp | ovrTouch_RThumbUp), OculusThumbUp(org.lwjgl.ovr.OVR.ovrTouch_LThumbUp | org.lwjgl.ovr.OVR.ovrTouch_RThumbUp),
/** /**
* Is the user resting their finger on the trigger of an Oculus Touch controller? * Is the user resting their finger on the trigger of an Oculus Touch controller?
*/ */
OculusIndexTouch(ovrTouch_LIndexPointing | ovrTouch_RIndexPointing), OculusIndexTouch(org.lwjgl.ovr.OVR.ovrTouch_LIndexPointing | org.lwjgl.ovr.OVR.ovrTouch_RIndexPointing),
/** /**
* Is the user pointing their finger forwards, as if to press a button? * Is the user pointing their finger forwards, as if to press a button?
@ -124,7 +122,7 @@ public enum VRInputType {
* This is internally calculated from proximity and filtering is applied - it should be used rather * This is internally calculated from proximity and filtering is applied - it should be used rather
* than !OculusIndexTouch, as it will probably lead to better results. * than !OculusIndexTouch, as it will probably lead to better results.
*/ */
OculusIndexPointing(ovrTouch_LIndexPointing | ovrTouch_RIndexPointing); OculusIndexPointing(org.lwjgl.ovr.OVR.ovrTouch_LIndexPointing | org.lwjgl.ovr.OVR.ovrTouch_RIndexPointing);
/** /**
* The value that codes the input type. * The value that codes the input type.

@ -0,0 +1,107 @@
package com.jme3.input.vr;
import com.jme3.app.VREnvironment;
import com.jme3.input.controls.AnalogListener;
import com.jme3.math.Vector2f;
/**
* A class dedicated to the handling of the mouse within VR environment.
* @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
*/
public interface VRMouseManager {
/**
* Initialize the VR mouse manager.
*/
public void initialize();
/**
* Get the {@link VREnvironment VR Environment} to which this manager is attached.
* @return the {@link VREnvironment VR Environment} to which this manager is attached.
*/
public VREnvironment getVREnvironment();
/**
* Set if the VR device controller is used within thumb stick mode.
* @param set <code>true</code> if the VR device controller is used within thumb stick mode and <code>false</code> otherwise.
*/
public void setThumbstickMode(boolean set);
/**
* Get if the VR device controller is used within thumb stick mode.
* @return <code>true</code> if the VR device controller is used within thumb stick mode and <code>false</code> otherwise.
*/
public boolean isThumbstickMode();
/**
* Set the speed of the mouse.
* @param sensitivity the sensitivity of the mouse.
* @param acceleration the acceleration of the mouse.
* @see #getSpeedAcceleration()
* @see #getSpeedSensitivity()
*/
public void setSpeed(float sensitivity, float acceleration);
/**
* Get the sensitivity of the mouse.
* @return the sensitivity of the mouse.
* @see #setSpeed(float, float)
*/
public float getSpeedSensitivity();
/**
* Get the acceleration of the mouse.
* @return the acceleration of the mouse.
* @see #setSpeed(float, float)
*/
public float getSpeedAcceleration();
/**
* Get the move scale.
* return the move scale.
* @see #setMouseMoveScale(float)
*/
public float getMouseMoveScale();
/**
* Set the mouse move scale.
* @param set the mouse move scale.
* @see #getMouseMoveScale()
*/
public void setMouseMoveScale(float set);
/**
* Set the image to use as mouse cursor. The given string describe an asset that the underlying application asset manager has to load.
* @param texture the image to use as mouse cursor.
*/
public void setImage(String texture);
/**
* Update analog controller as it was a mouse controller.
* @param inputIndex the index of the controller attached to the VR system.
* @param mouseListener the JMonkey mouse listener to trigger.
* @param mouseXName the mouseX identifier.
* @param mouseYName the mouseY identifier
* @param tpf the time per frame.
*/
public void updateAnalogAsMouse(int inputIndex, AnalogListener mouseListener, String mouseXName, String mouseYName, float tpf);
/**
* Get the actual cursor position.
* @return the actual cursor position.
*/
public Vector2f getCursorPosition();
/**
* Center the mouse on the display.
*/
public void centerMouse();
/**
* Update the mouse manager. This method should not be called manually.
* The standard behavior for this method is to be called from the {@link VRViewManager#update(float) update method} of the attached {@link VRViewManager VR view manager}.
* @param tpf the time per frame.
*/
public void update(float tpf);
}

@ -6,8 +6,7 @@ import com.jme3.math.Vector3f;
/** /**
* TODO * TODO
* @author Julien Seinturier - (c) 2016 - JOrigin project - <a href="http://www.jorigin.org">http:/www.jorigin.org</a> * @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
*
*/ */
public interface VRTrackedController { public interface VRTrackedController {

@ -1,4 +1,4 @@
package com.jme3.util; package com.jme3.input.vr;
import com.jme3.app.VRAppState; import com.jme3.app.VRAppState;
import com.jme3.app.VREnvironment; import com.jme3.app.VREnvironment;
@ -11,7 +11,7 @@ import com.jme3.texture.Texture2D;
/** /**
* A VR view manager. This interface describes methods that enable to submit 3D views to the VR compositor. * A VR view manager. This interface describes methods that enable to submit 3D views to the VR compositor.
* @author reden - phr00t - https://github.com/phr00t * @author reden - phr00t - https://github.com/phr00t
* @author Julien Seinturier - (c) 2016 - JOrigin project - <a href="http://www.jorigin.org">http:/www.jorigin.org</a> * @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
*/ */
public interface VRViewManager { public interface VRViewManager {
@ -151,15 +151,17 @@ public interface VRViewManager {
public void update(float tpf); public void update(float tpf);
/** /**
* Set up the scene for rendering. * This method contains action to be done during the rendering phase.
* This method should be called before any rendering takes place. * This method should be called for example from the {@link com.jme3.app.state.AppState#render(com.jme3.renderer.RenderManager) render} method of an {@link com.jme3.app.state.AppState app state}.
* @see #postRender()
*/ */
public void render(); public void render();
/** /**
* Send the rendering result as textures to the two eyes. * Send the rendering result as textures to the two eyes.
* This method should be called after all the rendering operations * This method should be called after all the rendering operations
* (for example at the end of the {@link AppState#postRender() postRender()} method of the attached app state.) * (for example at the end of the {@link AppState#postRender() postRender()} method of the attached app state.)
* @see #preRender()
*/ */
public void postRender(); public void postRender();

@ -0,0 +1,108 @@
package com.jme3.input.vr.oculus;
import com.jme3.app.VREnvironment;
import com.jme3.input.controls.AnalogListener;
import com.jme3.input.vr.AbstractVRMouseManager;
import com.jme3.input.vr.VRInputType;
import com.jme3.math.Vector2f;
/**
* A class dedicated to the mouse handling within Oculus Rift based VR experience.
* @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
*
*/
public class OculusMouseManager extends AbstractVRMouseManager {
private final int AVERAGE_AMNT = 4;
private int avgCounter;
private final float[] lastXmv = new float[AVERAGE_AMNT];
private final float[] lastYmv = new float[AVERAGE_AMNT];
/**
* Create a new VR mouse manager within the given {@link VREnvironment VR environment}.
* @param environment the VR environment of the mouse manager.
*/
public OculusMouseManager(VREnvironment environment){
super(environment);
}
@Override
public void updateAnalogAsMouse(int inputIndex, AnalogListener mouseListener, String mouseXName, String mouseYName, float tpf) {
if (getVREnvironment() != null){
if (getVREnvironment().getApplication() != null){
// got a tracked controller to use as the "mouse"
if( getVREnvironment().isInVR() == false ||
getVREnvironment().getVRinput() == null ||
getVREnvironment().getVRinput().isInputDeviceTracking(inputIndex) == false ){
return;
}
Vector2f tpDelta;
// TODO option to use Touch joysticks
if( isThumbstickMode() ) {
tpDelta = getVREnvironment().getVRinput().getAxis(inputIndex, VRInputType.OculusThumbstickAxis);
} else {
tpDelta = getVREnvironment().getVRinput().getAxisDeltaSinceLastCall(inputIndex, VRInputType.OculusThumbstickAxis);
}
float Xamount = (float)Math.pow(Math.abs(tpDelta.x) * getSpeedSensitivity(), getSpeedAcceleration());
float Yamount = (float)Math.pow(Math.abs(tpDelta.y) * getSpeedSensitivity(), getSpeedAcceleration());
if( tpDelta.x < 0f ){
Xamount = -Xamount;
}
if( tpDelta.y < 0f ){
Yamount = -Yamount;
}
Xamount *= getMouseMoveScale();
Yamount *= getMouseMoveScale();
if( mouseListener != null ) {
if( tpDelta.x != 0f && mouseXName != null ) mouseListener.onAnalog(mouseXName, Xamount * 0.2f, tpf);
if( tpDelta.y != 0f && mouseYName != null ) mouseListener.onAnalog(mouseYName, Yamount * 0.2f, tpf);
}
if( getVREnvironment().getApplication().getInputManager().isCursorVisible() ) {
int index = (avgCounter+1) % AVERAGE_AMNT;
lastXmv[index] = Xamount * 133f;
lastYmv[index] = Yamount * 133f;
cursorPos.x -= avg(lastXmv);
cursorPos.y -= avg(lastYmv);
Vector2f maxsize = getVREnvironment().getVRGUIManager().getCanvasSize();
if( cursorPos.x > maxsize.x ){
cursorPos.x = maxsize.x;
}
if( cursorPos.x < 0f ){
cursorPos.x = 0f;
}
if( cursorPos.y > maxsize.y ){
cursorPos.y = maxsize.y;
}
if( cursorPos.y < 0f ){
cursorPos.y = 0f;
}
}
} else {
throw new IllegalStateException("This VR environment is not attached to any application.");
}
} else {
throw new IllegalStateException("This VR view manager is not attached to any VR environment.");
}
}
private float avg(float[] arr) {
float amt = 0f;
for(float f : arr) amt += f;
return amt / arr.length;
}
}

@ -3,9 +3,11 @@
* To change this template file, choose Tools | Templates * To change this template file, choose Tools | Templates
* and open the template in the editor. * and open the template in the editor.
*/ */
package com.jme3.input.vr; package com.jme3.input.vr.oculus;
import com.jme3.app.VREnvironment; import com.jme3.app.VREnvironment;
import com.jme3.input.vr.HmdType;
import com.jme3.input.vr.VRAPI;
import com.jme3.math.*; import com.jme3.math.*;
import com.jme3.renderer.Camera; import com.jme3.renderer.Camera;
import com.jme3.texture.*; import com.jme3.texture.*;

@ -1,10 +1,13 @@
package com.jme3.input.vr; package com.jme3.input.vr.oculus;
import com.jme3.app.VREnvironment; import com.jme3.app.VREnvironment;
import com.jme3.input.vr.VRInputAPI;
import com.jme3.input.vr.VRInputType;
import com.jme3.input.vr.VRTrackedController;
import com.jme3.math.*; import com.jme3.math.*;
import com.jme3.renderer.Camera; import com.jme3.renderer.Camera;
import com.jme3.scene.Spatial; import com.jme3.scene.Spatial;
import com.jme3.util.VRViewManagerOculus;
import org.lwjgl.ovr.*; import org.lwjgl.ovr.*;
import static org.lwjgl.ovr.OVR.*; import static org.lwjgl.ovr.OVR.*;
@ -129,7 +132,7 @@ public class OculusVRInput implements VRInputAPI {
// Copied from OpenVRInput // Copied from OpenVRInput
VREnvironment env = hardware.getEnvironment(); VREnvironment env = hardware.getEnvironment();
VRViewManagerOculus vrvm = (VRViewManagerOculus) hardware.getEnvironment().getVRViewManager(); OculusViewManager vrvm = (OculusViewManager) hardware.getEnvironment().getVRViewManager();
Object obs = env.getObserver(); Object obs = env.getObserver();
Quaternion tempq = new Quaternion(); // TODO move to class scope? Quaternion tempq = new Quaternion(); // TODO move to class scope?
@ -147,7 +150,7 @@ public class OculusVRInput implements VRInputAPI {
// Copied from OpenVRInput // Copied from OpenVRInput
VREnvironment env = hardware.getEnvironment(); VREnvironment env = hardware.getEnvironment();
VRViewManagerOculus vrvm = (VRViewManagerOculus) hardware.getEnvironment().getVRViewManager(); OculusViewManager vrvm = (OculusViewManager) hardware.getEnvironment().getVRViewManager();
Object obs = env.getObserver(); Object obs = env.getObserver();
Vector3f pos = getPosition(index); Vector3f pos = getPosition(index);

@ -29,16 +29,18 @@
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
package com.jme3.util; package com.jme3.input.vr.oculus;
import com.jme3.app.VREnvironment; import com.jme3.app.VREnvironment;
import com.jme3.input.vr.OculusVR; import com.jme3.input.vr.AbstractVRViewManager;
import com.jme3.input.vr.VRAPI; import com.jme3.input.vr.VRAPI;
import com.jme3.math.*; import com.jme3.math.*;
import com.jme3.renderer.Camera; import com.jme3.renderer.Camera;
import com.jme3.renderer.ViewPort; import com.jme3.renderer.ViewPort;
import com.jme3.scene.Spatial; import com.jme3.scene.Spatial;
import com.jme3.texture.*; import com.jme3.texture.*;
import com.jme3.util.BufferUtils;
import com.jme3.util.VRGUIPositioningMode;
import java.nio.IntBuffer; import java.nio.IntBuffer;
import java.util.Iterator; import java.util.Iterator;
@ -55,9 +57,9 @@ import static org.lwjgl.ovr.OVRErrorCode.*;
* *
* @author Campbell Suter <znix@znix.xyz> * @author Campbell Suter <znix@znix.xyz>
*/ */
public class VRViewManagerOculus extends AbstractVRViewManager { public class OculusViewManager extends AbstractVRViewManager {
private static final Logger LOG = Logger.getLogger(VRViewManagerOculus.class.getName()); private static final Logger LOG = Logger.getLogger(OculusViewManager.class.getName());
private final VREnvironment environment; private final VREnvironment environment;
private final OculusVR hardware; private final OculusVR hardware;
@ -69,7 +71,7 @@ public class VRViewManagerOculus extends AbstractVRViewManager {
private final Vector3f hmdPos = new Vector3f(); private final Vector3f hmdPos = new Vector3f();
private final Quaternion hmdRot = new Quaternion(); private final Quaternion hmdRot = new Quaternion();
public VRViewManagerOculus(VREnvironment environment) { public OculusViewManager(VREnvironment environment) {
this.environment = environment; this.environment = environment;
VRAPI hardware = environment.getVRHardware(); VRAPI hardware = environment.getVRHardware();
@ -153,7 +155,7 @@ public class VRViewManagerOculus extends AbstractVRViewManager {
environment.getVRMouseManager().update(tpf); environment.getVRMouseManager().update(tpf);
// update GUI position? // update GUI position?
if (environment.getVRGUIManager().wantsReposition || environment.getVRGUIManager().getPositioningMode() != VRGUIPositioningMode.MANUAL) { if (environment.getVRGUIManager().isWantsReposition() || environment.getVRGUIManager().getPositioningMode() != VRGUIPositioningMode.MANUAL) {
environment.getVRGUIManager().positionGuiNow(tpf); environment.getVRGUIManager().positionGuiNow(tpf);
environment.getVRGUIManager().updateGuiQuadGeometricState(); environment.getVRGUIManager().updateGuiQuadGeometricState();
} }

@ -3,9 +3,11 @@
* To change this template file, choose Tools | Templates * To change this template file, choose Tools | Templates
* and open the template in the editor. * and open the template in the editor.
*/ */
package com.jme3.input.vr; package com.jme3.input.vr.openvr;
import com.jme3.app.VREnvironment; import com.jme3.app.VREnvironment;
import com.jme3.input.vr.HmdType;
import com.jme3.input.vr.VRAPI;
import com.jme3.math.Matrix4f; import com.jme3.math.Matrix4f;
import com.jme3.math.Quaternion; import com.jme3.math.Quaternion;
import com.jme3.math.Vector2f; import com.jme3.math.Vector2f;
@ -35,15 +37,15 @@ import java.util.logging.Logger;
/** /**
* A class that wraps an <a href="https://github.com/ValveSoftware/openvr/wiki/API-Documentation">OpenVR</a> system. * A class that wraps an <a href="https://github.com/ValveSoftware/openvr/wiki/API-Documentation">OpenVR</a> system.
* @author reden - phr00t - https://github.com/phr00t * @author reden - phr00t - https://github.com/phr00t
* @author Julien Seinturier - (c) 2016 - JOrigin project - <a href="http://www.jorigin.org">http:/www.jorigin.org</a> * @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
*/ */
public class OpenVR implements VRAPI { public class OpenVR implements VRAPI {
private static final Logger logger = Logger.getLogger(OpenVR.class.getName()); private static final Logger logger = Logger.getLogger(OpenVR.class.getName());
private static VR_IVRCompositor_FnTable compositorFunctions; private static VR_IVRCompositor_FnTable compositorFunctions;
private static VR_IVRTrackedCamera_FnTable cameraFunctions;
private static VR_IVRSystem_FnTable vrsystemFunctions; private static VR_IVRSystem_FnTable vrsystemFunctions;
private static VR_IVRTrackedCamera_FnTable cameraFunctions;
private static boolean initSuccess = false; private static boolean initSuccess = false;
private static boolean flipEyes = false; private static boolean flipEyes = false;
@ -110,7 +112,7 @@ public class OpenVR implements VRAPI {
} }
public VR_IVRTrackedCamera_FnTable getTrackedCamera(){ public VR_IVRTrackedCamera_FnTable getTrackedCamera(){
return cameraFunctions; return cameraFunctions;
} }
@Override @Override
@ -145,7 +147,17 @@ public class OpenVR implements VRAPI {
hmdErrorStore = new IntByReference(); hmdErrorStore = new IntByReference();
vrsystemFunctions = null; vrsystemFunctions = null;
// Init the native linking to the OpenVR library.
try{
JOpenVRLibrary.init();
} catch(Throwable t){
logger.log(Level.SEVERE, "Cannot link to OpenVR system library: "+t.getMessage(), t);
return false;
}
JOpenVRLibrary.VR_InitInternal(hmdErrorStore, JOpenVRLibrary.EVRApplicationType.EVRApplicationType_VRApplication_Scene); JOpenVRLibrary.VR_InitInternal(hmdErrorStore, JOpenVRLibrary.EVRApplicationType.EVRApplicationType_VRApplication_Scene);
if( hmdErrorStore.getValue() == 0 ) { if( hmdErrorStore.getValue() == 0 ) {
vrsystemFunctions = new VR_IVRSystem_FnTable(JOpenVRLibrary.VR_GetGenericInterface(JOpenVRLibrary.IVRSystem_Version, hmdErrorStore).getPointer()); vrsystemFunctions = new VR_IVRSystem_FnTable(JOpenVRLibrary.VR_GetGenericInterface(JOpenVRLibrary.IVRSystem_Version, hmdErrorStore).getPointer());
} }
@ -160,6 +172,7 @@ public class OpenVR implements VRAPI {
vrsystemFunctions.setAutoSynch(false); vrsystemFunctions.setAutoSynch(false);
vrsystemFunctions.read(); vrsystemFunctions.read();
tlastVsync = new FloatByReference(); tlastVsync = new FloatByReference();
_tframeCount = new LongByReference(); _tframeCount = new LongByReference();
@ -188,7 +201,9 @@ public class OpenVR implements VRAPI {
VRinput.updateConnectedControllers(); VRinput.updateConnectedControllers();
// init bounds & chaperone info // init bounds & chaperone info
environment.getVRBounds().init(this); OpenVRBounds bounds = new OpenVRBounds();
bounds.init(this);
environment.setVRBounds(bounds);
logger.config("Initializing OpenVR system [SUCCESS]"); logger.config("Initializing OpenVR system [SUCCESS]");
initSuccess = true; initSuccess = true;
@ -241,22 +256,27 @@ public class OpenVR implements VRAPI {
} }
return compositorFunctions != null; return compositorFunctions != null;
} }
/**
* Initialize the headset camera.
* @param allowed <code>true</code> is the use of the headset camera is allowed and <code>false</code> otherwise.
*/
public void initCamera(boolean allowed) { public void initCamera(boolean allowed) {
hmdErrorStore.setValue(0); // clear the error store hmdErrorStore.setValue(0); // clear the error store
if( allowed && vrsystemFunctions != null ) {
IntByReference intptr = JOpenVRLibrary.VR_GetGenericInterface(JOpenVRLibrary.IVRTrackedCamera_Version, hmdErrorStore); if( allowed && vrsystemFunctions != null ) {
if (intptr != null){ IntByReference intptr = JOpenVRLibrary.VR_GetGenericInterface(JOpenVRLibrary.IVRTrackedCamera_Version, hmdErrorStore);
cameraFunctions = new VR_IVRTrackedCamera_FnTable(intptr.getPointer()); if (intptr != null){
if(cameraFunctions != null && hmdErrorStore.getValue() == 0 ){ cameraFunctions = new VR_IVRTrackedCamera_FnTable(intptr.getPointer());
cameraFunctions.setAutoSynch(false); if(cameraFunctions != null && hmdErrorStore.getValue() == 0 ){
cameraFunctions.read(); cameraFunctions.setAutoSynch(false);
logger.config("OpenVR Camera initialized"); cameraFunctions.read();
} logger.config("OpenVR Camera initialized");
} }
} }
}
} }
@Override @Override
public void destroy() { public void destroy() {
JOpenVRLibrary.VR_ShutdownInternal(); JOpenVRLibrary.VR_ShutdownInternal();

@ -0,0 +1,59 @@
package com.jme3.input.vr.openvr;
import com.jme3.input.vr.VRBounds;
import com.jme3.math.Vector2f;
import com.jme3.system.jopenvr.JOpenVRLibrary;
import com.jme3.system.jopenvr.VR_IVRChaperone_FnTable;
import com.sun.jna.ptr.FloatByReference;
import java.util.logging.Logger;
/**
* A class that represents VR world bounds.
* @author reden - phr00t - https://github.com/phr00t
* @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
*/
public class OpenVRBounds implements VRBounds {
private static Logger logger = Logger.getLogger(OpenVRBounds.class.getName());
private VR_IVRChaperone_FnTable vrChaperone;
private Vector2f playSize;
/**
* Initialize the VR bounds.
* @return <code>true</code> if the initialization is a success and <code>false</code> otherwise.
*/
public boolean init(OpenVR api) {
logger.config("Initialize VR bounds...");
if( vrChaperone == null ) {
vrChaperone = new VR_IVRChaperone_FnTable(JOpenVRLibrary.VR_GetGenericInterface(JOpenVRLibrary.IVRChaperone_Version, api.hmdErrorStore).getPointer());
if( vrChaperone != null ) {
vrChaperone.setAutoSynch(false);
vrChaperone.read();
FloatByReference fbX = new FloatByReference();
FloatByReference fbZ = new FloatByReference();
vrChaperone.GetPlayAreaSize.apply(fbX, fbZ);
playSize = new Vector2f(fbX.getValue(), fbZ.getValue());
logger.config("Initialize VR bounds [SUCCESS]");
return true; // init success
}
logger.warning("Initialize VR bounds [FAILED].");
return false; // failed to init
}
logger.config("Initialize VR bounds already done.");
return true; // already initialized
}
@Override
public Vector2f getPlaySize() {
return playSize;
}
}

@ -3,7 +3,7 @@
* To change this template file, choose Tools | Templates * To change this template file, choose Tools | Templates
* and open the template in the editor. * and open the template in the editor.
*/ */
package com.jme3.input.vr; package com.jme3.input.vr.openvr;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -11,6 +11,9 @@ import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import com.jme3.app.VREnvironment; import com.jme3.app.VREnvironment;
import com.jme3.input.vr.VRInputAPI;
import com.jme3.input.vr.VRInputType;
import com.jme3.input.vr.VRTrackedController;
import com.jme3.math.Quaternion; import com.jme3.math.Quaternion;
import com.jme3.math.Vector2f; import com.jme3.math.Vector2f;
import com.jme3.math.Vector3f; import com.jme3.math.Vector3f;
@ -21,7 +24,6 @@ import com.jme3.system.jopenvr.OpenVRUtil;
import com.jme3.system.jopenvr.VRControllerState_t; import com.jme3.system.jopenvr.VRControllerState_t;
import com.jme3.system.jopenvr.VR_IVRSystem_FnTable; import com.jme3.system.jopenvr.VR_IVRSystem_FnTable;
import com.jme3.util.VRUtil; import com.jme3.util.VRUtil;
import com.jme3.util.VRViewManagerOpenVR;
/* /*
make helper functions to pull the following easily from raw data (DONE) make helper functions to pull the following easily from raw data (DONE)
@ -65,7 +67,7 @@ Button press: 2, touch: 2
* <code>null</code> values will be returned if no valid pose exists, or that input device isn't available * <code>null</code> values will be returned if no valid pose exists, or that input device isn't available
* user code should check for <code>null</code> values. * user code should check for <code>null</code> values.
* @author reden - phr00t - https://github.com/phr00t * @author reden - phr00t - https://github.com/phr00t
* @author Julien Seinturier - (c) 2016 - JOrigin project - <a href="http://www.jorigin.org">http:/www.jorigin.org</a> * @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
*/ */
public class OpenVRInput implements VRInputAPI { public class OpenVRInput implements VRInputAPI {
@ -393,7 +395,7 @@ public class OpenVRInput implements VRInputAPI {
public Quaternion getFinalObserverRotation(int index) { public Quaternion getFinalObserverRotation(int index) {
if (environment != null){ if (environment != null){
VRViewManagerOpenVR vrvm = (VRViewManagerOpenVR)environment.getVRViewManager(); OpenVRViewManager vrvm = (OpenVRViewManager)environment.getVRViewManager();
if (vrvm != null){ if (vrvm != null){
if(isInputDeviceTracking(index) == false ){ if(isInputDeviceTracking(index) == false ){
@ -422,7 +424,7 @@ public class OpenVRInput implements VRInputAPI {
public Vector3f getFinalObserverPosition(int index) { public Vector3f getFinalObserverPosition(int index) {
if (environment != null){ if (environment != null){
VRViewManagerOpenVR vrvm = (VRViewManagerOpenVR)environment.getVRViewManager(); OpenVRViewManager vrvm = (OpenVRViewManager)environment.getVRViewManager();
if (vrvm != null){ if (vrvm != null){
if(isInputDeviceTracking(index) == false ){ if(isInputDeviceTracking(index) == false ){

@ -0,0 +1,114 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.jme3.input.vr.openvr;
import com.jme3.app.VREnvironment;
import com.jme3.input.controls.AnalogListener;
import com.jme3.input.vr.AbstractVRMouseManager;
import com.jme3.input.vr.VRInputType;
import com.jme3.math.Vector2f;
/**
* A class dedicated to the handling of the mouse within VR environment.
* @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
*/
public class OpenVRMouseManager extends AbstractVRMouseManager {
private final int AVERAGE_AMNT = 4;
private int avgCounter;
private final float[] lastXmv = new float[AVERAGE_AMNT];
private final float[] lastYmv = new float[AVERAGE_AMNT];
/**
* Create a new VR mouse manager within the given {@link VREnvironment VR environment}.
* @param environment the VR environment of the mouse manager.
*/
public OpenVRMouseManager(VREnvironment environment){
super(environment);
}
@Override
public void updateAnalogAsMouse(int inputIndex, AnalogListener mouseListener, String mouseXName, String mouseYName, float tpf) {
if (getVREnvironment() != null){
if (getVREnvironment().getApplication() != null){
// got a tracked controller to use as the "mouse"
if( getVREnvironment().isInVR() == false ||
getVREnvironment().getVRinput() == null ||
getVREnvironment().getVRinput().isInputDeviceTracking(inputIndex) == false ){
return;
}
Vector2f tpDelta;
// TODO option to use Touch joysticks
if( isThumbstickMode() ) {
tpDelta = getVREnvironment().getVRinput().getAxis(inputIndex, VRInputType.ViveTrackpadAxis);
} else {
tpDelta = getVREnvironment().getVRinput().getAxisDeltaSinceLastCall(inputIndex, VRInputType.ViveTrackpadAxis);
}
float Xamount = (float)Math.pow(Math.abs(tpDelta.x) * getSpeedSensitivity(), getSpeedAcceleration());
float Yamount = (float)Math.pow(Math.abs(tpDelta.y) * getSpeedSensitivity(), getSpeedAcceleration());
if( tpDelta.x < 0f ){
Xamount = -Xamount;
}
if( tpDelta.y < 0f ){
Yamount = -Yamount;
}
Xamount *= getMouseMoveScale();
Yamount *= getMouseMoveScale();
if( mouseListener != null ) {
if( tpDelta.x != 0f && mouseXName != null ) mouseListener.onAnalog(mouseXName, Xamount * 0.2f, tpf);
if( tpDelta.y != 0f && mouseYName != null ) mouseListener.onAnalog(mouseYName, Yamount * 0.2f, tpf);
}
if( getVREnvironment().getApplication().getInputManager().isCursorVisible() ) {
int index = (avgCounter+1) % AVERAGE_AMNT;
lastXmv[index] = Xamount * 133f;
lastYmv[index] = Yamount * 133f;
cursorPos.x -= avg(lastXmv);
cursorPos.y -= avg(lastYmv);
Vector2f maxsize = getVREnvironment().getVRGUIManager().getCanvasSize();
if( cursorPos.x > maxsize.x ){
cursorPos.x = maxsize.x;
}
if( cursorPos.x < 0f ){
cursorPos.x = 0f;
}
if( cursorPos.y > maxsize.y ){
cursorPos.y = maxsize.y;
}
if( cursorPos.y < 0f ){
cursorPos.y = 0f;
}
}
} else {
throw new IllegalStateException("This VR environment is not attached to any application.");
}
} else {
throw new IllegalStateException("This VR view manager is not attached to any VR environment.");
}
}
private float avg(float[] arr) {
float amt = 0f;
for(float f : arr) amt += f;
return amt / arr.length;
}
}

@ -1,10 +1,16 @@
package com.jme3.input.vr; package com.jme3.input.vr.openvr;
import com.jme3.app.VREnvironment; import com.jme3.app.VREnvironment;
import com.jme3.input.vr.VRTrackedController;
import com.jme3.math.Matrix4f; import com.jme3.math.Matrix4f;
import com.jme3.math.Quaternion; import com.jme3.math.Quaternion;
import com.jme3.math.Vector3f; import com.jme3.math.Vector3f;
/**
*
* @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
*
*/
public class OpenVRTrackedController implements VRTrackedController{ public class OpenVRTrackedController implements VRTrackedController{
/** /**

@ -2,12 +2,11 @@
* To change this template, choose Tools | Templates * To change this template, choose Tools | Templates
* and open the template in the editor. * and open the template in the editor.
*/ */
package com.jme3.util; package com.jme3.input.vr.openvr;
import com.jme3.app.VREnvironment; import com.jme3.app.VREnvironment;
import com.jme3.input.vr.OpenVR; import com.jme3.input.vr.AbstractVRViewManager;
import com.jme3.input.vr.VRAPI; import com.jme3.input.vr.VRAPI;
import com.jme3.input.vr.VRTrackedController;
import com.jme3.material.Material; import com.jme3.material.Material;
import com.jme3.math.ColorRGBA; import com.jme3.math.ColorRGBA;
import com.jme3.math.Quaternion; import com.jme3.math.Quaternion;
@ -32,6 +31,7 @@ import com.jme3.texture.Image;
import com.jme3.texture.Texture; import com.jme3.texture.Texture;
import com.jme3.texture.Texture2D; import com.jme3.texture.Texture2D;
import com.jme3.ui.Picture; import com.jme3.ui.Picture;
import com.jme3.util.VRGUIPositioningMode;
import java.util.Iterator; import java.util.Iterator;
import java.util.logging.Logger; import java.util.logging.Logger;
@ -39,11 +39,11 @@ import java.util.logging.Logger;
/** /**
* A VR view manager based on OpenVR. This class enable to submit 3D views to the VR compositor. * A VR view manager based on OpenVR. This class enable to submit 3D views to the VR compositor.
* @author reden - phr00t - https://github.com/phr00t * @author reden - phr00t - https://github.com/phr00t
* @author Julien Seinturier - (c) 2016 - JOrigin project - <a href="http://www.jorigin.org">http:/www.jorigin.org</a> * @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
*/ */
public class VRViewManagerOpenVR extends AbstractVRViewManager { public class OpenVRViewManager extends AbstractVRViewManager {
private static final Logger logger = Logger.getLogger(VRViewManagerOpenVR.class.getName()); private static final Logger logger = Logger.getLogger(OpenVRViewManager.class.getName());
// OpenVR values // OpenVR values
private VRTextureBounds_t leftTextureBounds; private VRTextureBounds_t leftTextureBounds;
@ -64,7 +64,7 @@ public class VRViewManagerOpenVR extends AbstractVRViewManager {
* Create a new VR view manager attached to the given {@link VREnvironment VR environment}. * Create a new VR view manager attached to the given {@link VREnvironment VR environment}.
* @param environment the {@link VREnvironment VR environment} to which this view manager is attached. * @param environment the {@link VREnvironment VR environment} to which this view manager is attached.
*/ */
public VRViewManagerOpenVR(VREnvironment environment){ public OpenVRViewManager(VREnvironment environment){
this.environment = environment; this.environment = environment;
} }
@ -168,6 +168,11 @@ public class VRViewManagerOpenVR extends AbstractVRViewManager {
} }
} }
@Override
public void render() {
}
@Override @Override
public void postRender() { public void postRender() {
@ -464,7 +469,7 @@ public class VRViewManagerOpenVR extends AbstractVRViewManager {
environment.getVRMouseManager().update(tpf); environment.getVRMouseManager().update(tpf);
// update GUI position? // update GUI position?
if( environment.getVRGUIManager().wantsReposition || environment.getVRGUIManager().getPositioningMode() != VRGUIPositioningMode.MANUAL ) { if( environment.getVRGUIManager().isWantsReposition() || environment.getVRGUIManager().getPositioningMode() != VRGUIPositioningMode.MANUAL ) {
environment.getVRGUIManager().positionGuiNow(tpf); environment.getVRGUIManager().positionGuiNow(tpf);
environment.getVRGUIManager().updateGuiQuadGeometricState(); environment.getVRGUIManager().updateGuiQuadGeometricState();
} }

@ -7,9 +7,12 @@ https://github.com/sensics/OSVR-RenderManager/blob/master/examples/RenderManager
- render manager looks good, but left eye seems stretched - render manager looks good, but left eye seems stretched
*/ */
package com.jme3.input.vr; package com.jme3.input.vr.osvr;
import com.jme3.app.VREnvironment; import com.jme3.app.VREnvironment;
import com.jme3.input.vr.HmdType;
import com.jme3.input.vr.VRAPI;
import com.jme3.input.vr.VRInputAPI;
import com.jme3.math.Matrix4f; import com.jme3.math.Matrix4f;
import com.jme3.math.Quaternion; import com.jme3.math.Quaternion;
import com.jme3.math.Vector2f; import com.jme3.math.Vector2f;
@ -35,7 +38,7 @@ import java.util.logging.Logger;
/** /**
* A class that wraps an <a href="http://www.osvr.org/">OSVR</a> system. * A class that wraps an <a href="http://www.osvr.org/">OSVR</a> system.
* @author reden - phr00t - https://github.com/phr00t * @author reden - phr00t - https://github.com/phr00t
* @author Julien Seinturier - (c) 2016 - JOrigin project - <a href="http://www.jorigin.org">http:/www.jorigin.org</a> * @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
*/ */
public class OSVR implements VRAPI { public class OSVR implements VRAPI {

@ -3,11 +3,14 @@
* To change this template file, choose Tools | Templates * To change this template file, choose Tools | Templates
* and open the template in the editor. * and open the template in the editor.
*/ */
package com.jme3.input.vr; package com.jme3.input.vr.osvr;
import java.util.logging.Logger; import java.util.logging.Logger;
import com.jme3.app.VREnvironment; import com.jme3.app.VREnvironment;
import com.jme3.input.vr.VRInputAPI;
import com.jme3.input.vr.VRInputType;
import com.jme3.input.vr.VRTrackedController;
import com.jme3.math.Quaternion; import com.jme3.math.Quaternion;
import com.jme3.math.Vector2f; import com.jme3.math.Vector2f;
import com.jme3.math.Vector3f; import com.jme3.math.Vector3f;
@ -20,7 +23,6 @@ import com.jme3.system.osvr.osvrclientreporttypes.OSVR_ButtonReport;
import com.jme3.system.osvr.osvrclientreporttypes.OSVR_Pose3; import com.jme3.system.osvr.osvrclientreporttypes.OSVR_Pose3;
import com.jme3.system.osvr.osvrinterface.OsvrInterfaceLibrary; import com.jme3.system.osvr.osvrinterface.OsvrInterfaceLibrary;
import com.jme3.system.osvr.osvrtimevalue.OSVR_TimeValue; import com.jme3.system.osvr.osvrtimevalue.OSVR_TimeValue;
import com.jme3.util.VRViewManagerOSVR;
import com.sun.jna.Callback; import com.sun.jna.Callback;
import com.sun.jna.Pointer; import com.sun.jna.Pointer;
import com.sun.jna.ptr.PointerByReference; import com.sun.jna.ptr.PointerByReference;
@ -29,7 +31,7 @@ import com.sun.jna.ptr.PointerByReference;
/** /**
* A class that wraps an <a href="http://www.osvr.org/">OSVR</a> input. * A class that wraps an <a href="http://www.osvr.org/">OSVR</a> input.
* @author reden - phr00t - https://github.com/phr00t * @author reden - phr00t - https://github.com/phr00t
* @author Julien Seinturier - (c) 2016 - JOrigin project - <a href="http://www.jorigin.org">http:/www.jorigin.org</a> * @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
*/ */
public class OSVRInput implements VRInputAPI { public class OSVRInput implements VRInputAPI {
@ -301,7 +303,7 @@ public class OSVRInput implements VRInputAPI {
@Override @Override
public Quaternion getFinalObserverRotation(int index) { public Quaternion getFinalObserverRotation(int index) {
VRViewManagerOSVR vrvm = (VRViewManagerOSVR)environment.getVRViewManager(); OSVRViewManager vrvm = (OSVRViewManager)environment.getVRViewManager();
if( vrvm == null || isInputDeviceTracking(index) == false ) return null; if( vrvm == null || isInputDeviceTracking(index) == false ) return null;
Object obs = environment.getObserver(); Object obs = environment.getObserver();
if( obs instanceof Camera ) { if( obs instanceof Camera ) {
@ -314,7 +316,7 @@ public class OSVRInput implements VRInputAPI {
@Override @Override
public Vector3f getFinalObserverPosition(int index) { public Vector3f getFinalObserverPosition(int index) {
VRViewManagerOSVR vrvm = (VRViewManagerOSVR) environment.getVRViewManager(); OSVRViewManager vrvm = (OSVRViewManager) environment.getVRViewManager();
if( vrvm == null || isInputDeviceTracking(index) == false ) return null; if( vrvm == null || isInputDeviceTracking(index) == false ) return null;
Object obs = environment.getObserver(); Object obs = environment.getObserver();
Vector3f pos = getPosition(index); Vector3f pos = getPosition(index);

@ -0,0 +1,108 @@
package com.jme3.input.vr.osvr;
import com.jme3.app.VREnvironment;
import com.jme3.input.controls.AnalogListener;
import com.jme3.input.vr.AbstractVRMouseManager;
import com.jme3.input.vr.VRInputType;
import com.jme3.math.Vector2f;
/**
* A class dedicated to the mouse handling within OSVR based VR experience.
* @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
*/
public class OSVRMouseManager extends AbstractVRMouseManager {
private final int AVERAGE_AMNT = 4;
private int avgCounter;
private final float[] lastXmv = new float[AVERAGE_AMNT];
private final float[] lastYmv = new float[AVERAGE_AMNT];
/**
* Create a new VR mouse manager within the given {@link VREnvironment VR environment}.
* @param environment the VR environment of the mouse manager.
*/
public OSVRMouseManager(VREnvironment environment){
super(environment);
}
@Override
public void updateAnalogAsMouse(int inputIndex, AnalogListener mouseListener, String mouseXName, String mouseYName, float tpf) {
if (getVREnvironment() != null){
if (getVREnvironment().getApplication() != null){
// got a tracked controller to use as the "mouse"
if( getVREnvironment().isInVR() == false ||
getVREnvironment().getVRinput() == null ||
getVREnvironment().getVRinput().isInputDeviceTracking(inputIndex) == false ){
return;
}
Vector2f tpDelta;
// TODO option to use Touch joysticks
if( isThumbstickMode() ) {
tpDelta = getVREnvironment().getVRinput().getAxis(inputIndex, VRInputType.ViveTrackpadAxis);
} else {
tpDelta = getVREnvironment().getVRinput().getAxisDeltaSinceLastCall(inputIndex, VRInputType.ViveTrackpadAxis);
}
float Xamount = (float)Math.pow(Math.abs(tpDelta.x) * getSpeedSensitivity(), getSpeedAcceleration());
float Yamount = (float)Math.pow(Math.abs(tpDelta.y) * getSpeedSensitivity(), getSpeedAcceleration());
if( tpDelta.x < 0f ){
Xamount = -Xamount;
}
if( tpDelta.y < 0f ){
Yamount = -Yamount;
}
Xamount *= getMouseMoveScale();
Yamount *= getMouseMoveScale();
if( mouseListener != null ) {
if( tpDelta.x != 0f && mouseXName != null ) mouseListener.onAnalog(mouseXName, Xamount * 0.2f, tpf);
if( tpDelta.y != 0f && mouseYName != null ) mouseListener.onAnalog(mouseYName, Yamount * 0.2f, tpf);
}
if( getVREnvironment().getApplication().getInputManager().isCursorVisible() ) {
int index = (avgCounter+1) % AVERAGE_AMNT;
lastXmv[index] = Xamount * 133f;
lastYmv[index] = Yamount * 133f;
cursorPos.x -= avg(lastXmv);
cursorPos.y -= avg(lastYmv);
Vector2f maxsize = getVREnvironment().getVRGUIManager().getCanvasSize();
if( cursorPos.x > maxsize.x ){
cursorPos.x = maxsize.x;
}
if( cursorPos.x < 0f ){
cursorPos.x = 0f;
}
if( cursorPos.y > maxsize.y ){
cursorPos.y = maxsize.y;
}
if( cursorPos.y < 0f ){
cursorPos.y = 0f;
}
}
} else {
throw new IllegalStateException("This VR environment is not attached to any application.");
}
} else {
throw new IllegalStateException("This VR view manager is not attached to any VR environment.");
}
}
private float avg(float[] arr) {
float amt = 0f;
for(float f : arr) amt += f;
return amt / arr.length;
}
}

@ -1,12 +1,13 @@
package com.jme3.util; package com.jme3.input.vr.osvr;
import java.awt.GraphicsEnvironment; import java.awt.GraphicsEnvironment;
import java.util.Iterator; import java.util.Iterator;
import java.util.logging.Logger; import java.util.logging.Logger;
import com.jme3.app.VREnvironment; import com.jme3.app.VREnvironment;
import com.jme3.input.vr.OSVR; import com.jme3.input.vr.AbstractVRViewManager;
import com.jme3.input.vr.VRAPI; import com.jme3.input.vr.VRAPI;
import com.jme3.input.vr.openvr.OpenVRViewManager;
import com.jme3.material.Material; import com.jme3.material.Material;
import com.jme3.math.ColorRGBA; import com.jme3.math.ColorRGBA;
import com.jme3.math.Quaternion; import com.jme3.math.Quaternion;
@ -44,11 +45,17 @@ import com.jme3.texture.Image;
import com.jme3.texture.Texture; import com.jme3.texture.Texture;
import com.jme3.texture.Texture2D; import com.jme3.texture.Texture2D;
import com.jme3.ui.Picture; import com.jme3.ui.Picture;
import com.jme3.util.VRGUIPositioningMode;
import com.sun.jna.Pointer; import com.sun.jna.Pointer;
import com.sun.jna.ptr.PointerByReference; import com.sun.jna.ptr.PointerByReference;
public class VRViewManagerOSVR extends AbstractVRViewManager{ /**
private static final Logger logger = Logger.getLogger(VRViewManagerOpenVR.class.getName()); *
* @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
*
*/
public class OSVRViewManager extends AbstractVRViewManager{
private static final Logger logger = Logger.getLogger(OpenVRViewManager.class.getName());
// OpenVR values // OpenVR values
private Texture_t leftTextureType; private Texture_t leftTextureType;
@ -75,7 +82,7 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{
* Create a new VR view manager attached to the given {@link VREnvironment VR environment}. * Create a new VR view manager attached to the given {@link VREnvironment VR environment}.
* @param environment the {@link VREnvironment VR environment} to which this view manager is attached. * @param environment the {@link VREnvironment VR environment} to which this view manager is attached.
*/ */
public VRViewManagerOSVR(VREnvironment environment){ public OSVRViewManager(VREnvironment environment){
this.environment = environment; this.environment = environment;
} }
@ -476,7 +483,7 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{
environment.getVRMouseManager().update(tpf); environment.getVRMouseManager().update(tpf);
// update GUI position? // update GUI position?
if( environment.getVRGUIManager().wantsReposition || environment.getVRGUIManager().getPositioningMode() != VRGUIPositioningMode.MANUAL ) { if( environment.getVRGUIManager().isWantsReposition() || environment.getVRGUIManager().getPositioningMode() != VRGUIPositioningMode.MANUAL ) {
environment.getVRGUIManager().positionGuiNow(tpf); environment.getVRGUIManager().positionGuiNow(tpf);
environment.getVRGUIManager().updateGuiQuadGeometricState(); environment.getVRGUIManager().updateGuiQuadGeometricState();
} }
@ -864,5 +871,11 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{
distortionMesh.setBuffer(VertexBuffer.Type.TexCoord3, 2, texcoordB); distortionMesh.setBuffer(VertexBuffer.Type.TexCoord3, 2, texcoordB);
distortionMesh.setStatic(); distortionMesh.setStatic();
return distortionMesh; return distortionMesh;
} }
@Override
public void render() {
// TODO Auto-generated method stub
}
} }

@ -17,7 +17,7 @@ import com.jme3.texture.Image.Format;
/** /**
* A Cartoon Screen Space Ambient Occlusion filter with instance rendering capabilities. * A Cartoon Screen Space Ambient Occlusion filter with instance rendering capabilities.
* @author reden - phr00t - https://github.com/phr00t * @author reden - phr00t - https://github.com/phr00t
* @author Julien Seinturier - (c) 2016 - JOrigin project - <a href="http://www.jorigin.org">http:/www.jorigin.org</a> * @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
* *
*/ */
public class CartoonSSAO extends Filter{ public class CartoonSSAO extends Filter{

@ -15,7 +15,7 @@ import com.jme3.texture.FrameBuffer;
/** /**
* Pre normal caching class. * Pre normal caching class.
* @author reden - phr00t - https://github.com/phr00t * @author reden - phr00t - https://github.com/phr00t
* @author Julien Seinturier - (c) 2016 - JOrigin project - <a href="http://www.jorigin.org">http:/www.jorigin.org</a> * @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
*/ */
public class PreNormalCaching { public class PreNormalCaching {

@ -55,7 +55,7 @@ import java.io.IOException;
* *
* @author Rémy Bouquet aka Nehon * @author Rémy Bouquet aka Nehon
* @author reden - phr00t - https://github.com/phr00t * @author reden - phr00t - https://github.com/phr00t
* @author Julien Seinturier - (c) 2016 - JOrigin project - <a href="http://www.jorigin.org">http:/www.jorigin.org</a> * @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
* @param <T> the type of the underlying renderer (subclass of {@link AbstractShadowRendererVR}). * @param <T> the type of the underlying renderer (subclass of {@link AbstractShadowRendererVR}).
*/ */
public abstract class AbstractShadowFilterVR<T extends AbstractShadowRendererVR> extends Filter { public abstract class AbstractShadowFilterVR<T extends AbstractShadowRendererVR> extends Filter {

@ -71,7 +71,7 @@ import java.util.List;
* *
* @author Rémy Bouquet aka Nehon * @author Rémy Bouquet aka Nehon
* @author reden - phr00t - https://github.com/phr00t * @author reden - phr00t - https://github.com/phr00t
* @author Julien Seinturier - (c) 2016 - JOrigin project - <a href="http://www.jorigin.org">http:/www.jorigin.org</a> * @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
*/ */
public abstract class AbstractShadowRendererVR implements SceneProcessor, Savable { public abstract class AbstractShadowRendererVR implements SceneProcessor, Savable {

@ -55,7 +55,7 @@ import java.io.IOException;
* *
* @author Rémy Bouquet aka Nehon * @author Rémy Bouquet aka Nehon
* @author reden - phr00t - https://github.com/phr00t * @author reden - phr00t - https://github.com/phr00t
* @author Julien Seinturier - (c) 2016 - JOrigin project - <a href="http://www.jorigin.org">http:/www.jorigin.org</a> * @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
*/ */
public class DirectionalLightShadowFilterVR extends AbstractShadowFilterVR<DirectionalLightShadowRendererVR> { public class DirectionalLightShadowFilterVR extends AbstractShadowFilterVR<DirectionalLightShadowRendererVR> {

@ -63,7 +63,7 @@ import java.io.IOException;
* <p/> * <p/>
* @author Rémy Bouquet aka Nehon * @author Rémy Bouquet aka Nehon
* @author reden - phr00t - https://github.com/phr00t * @author reden - phr00t - https://github.com/phr00t
* @author Julien Seinturier - (c) 2016 - JOrigin project - <a href="http://www.jorigin.org">http:/www.jorigin.org</a> * @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
*/ */
public class DirectionalLightShadowRendererVR extends AbstractShadowRendererVR { public class DirectionalLightShadowRendererVR extends AbstractShadowRendererVR {

@ -13,7 +13,7 @@ import com.jme3.renderer.Camera;
/** /**
* An instanced version of the {@link DirectionalLightShadowFilterVR directional light shadow filter} dedi. * An instanced version of the {@link DirectionalLightShadowFilterVR directional light shadow filter} dedi.
* @author reden - phr00t - https://github.com/phr00t * @author reden - phr00t - https://github.com/phr00t
* @author Julien Seinturier - (c) 2016 - JOrigin project - <a href="http://www.jorigin.org">http:/www.jorigin.org</a> * @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
*/ */
public class InstancedDirectionalShadowFilter extends DirectionalLightShadowFilterVR { public class InstancedDirectionalShadowFilter extends DirectionalLightShadowFilterVR {

@ -4,46 +4,46 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1133</i><br> * <i>native declaration : headers\openvr_capi.h:1160</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class AppOverrideKeys_t extends Structure { public class AppOverrideKeys_t extends Structure {
/** /**
* const char *<br> * const char *<br>
* C type : char* * C type : char*
*/ */
public Pointer pchKey; public Pointer pchKey;
/** /**
* const char *<br> * const char *<br>
* C type : char* * C type : char*
*/ */
public Pointer pchValue; public Pointer pchValue;
public AppOverrideKeys_t() { public AppOverrideKeys_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("pchKey", "pchValue"); return Arrays.asList("pchKey", "pchValue");
} }
/** /**
* @param pchKey const char *<br> * @param pchKey const char *<br>
* C type : char*<br> * C type : char*<br>
* @param pchValue const char *<br> * @param pchValue const char *<br>
* C type : char* * C type : char*
*/ */
public AppOverrideKeys_t(Pointer pchKey, Pointer pchValue) { public AppOverrideKeys_t(Pointer pchKey, Pointer pchValue) {
super(); super();
this.pchKey = pchKey; this.pchKey = pchKey;
this.pchValue = pchValue; this.pchValue = pchValue;
} }
public AppOverrideKeys_t(Pointer peer) { public AppOverrideKeys_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends AppOverrideKeys_t implements Structure.ByReference { public static class ByReference extends AppOverrideKeys_t implements Structure.ByReference {
}; };
public static class ByValue extends AppOverrideKeys_t implements Structure.ByValue { public static class ByValue extends AppOverrideKeys_t implements Structure.ByValue {
}; };
} }

@ -5,85 +5,90 @@ import com.sun.jna.ptr.IntByReference;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1262</i><br> * <i>native declaration : headers\openvr_capi.h:1291</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class COpenVRContext extends Structure { public class COpenVRContext extends Structure {
/** /**
* class vr::IVRSystem *<br> * class vr::IVRSystem *<br>
* C type : intptr_t * C type : intptr_t
*/ */
public IntByReference m_pVRSystem; public IntByReference m_pVRSystem;
/** /**
* class vr::IVRChaperone *<br> * class vr::IVRChaperone *<br>
* C type : intptr_t * C type : intptr_t
*/ */
public IntByReference m_pVRChaperone; public IntByReference m_pVRChaperone;
/** /**
* class vr::IVRChaperoneSetup *<br> * class vr::IVRChaperoneSetup *<br>
* C type : intptr_t * C type : intptr_t
*/ */
public IntByReference m_pVRChaperoneSetup; public IntByReference m_pVRChaperoneSetup;
/** /**
* class vr::IVRCompositor *<br> * class vr::IVRCompositor *<br>
* C type : intptr_t * C type : intptr_t
*/ */
public IntByReference m_pVRCompositor; public IntByReference m_pVRCompositor;
/** /**
* class vr::IVROverlay *<br> * class vr::IVROverlay *<br>
* C type : intptr_t * C type : intptr_t
*/ */
public IntByReference m_pVROverlay; public IntByReference m_pVROverlay;
/** /**
* class vr::IVRResources *<br> * class vr::IVRResources *<br>
* C type : intptr_t * C type : intptr_t
*/ */
public IntByReference m_pVRResources; public IntByReference m_pVRResources;
/** /**
* class vr::IVRRenderModels *<br> * class vr::IVRRenderModels *<br>
* C type : intptr_t * C type : intptr_t
*/ */
public IntByReference m_pVRRenderModels; public IntByReference m_pVRRenderModels;
/** /**
* class vr::IVRExtendedDisplay *<br> * class vr::IVRExtendedDisplay *<br>
* C type : intptr_t * C type : intptr_t
*/ */
public IntByReference m_pVRExtendedDisplay; public IntByReference m_pVRExtendedDisplay;
/** /**
* class vr::IVRSettings *<br> * class vr::IVRSettings *<br>
* C type : intptr_t * C type : intptr_t
*/ */
public IntByReference m_pVRSettings; public IntByReference m_pVRSettings;
/** /**
* class vr::IVRApplications *<br> * class vr::IVRApplications *<br>
* C type : intptr_t * C type : intptr_t
*/ */
public IntByReference m_pVRApplications; public IntByReference m_pVRApplications;
/** /**
* class vr::IVRTrackedCamera *<br> * class vr::IVRTrackedCamera *<br>
* C type : intptr_t * C type : intptr_t
*/ */
public IntByReference m_pVRTrackedCamera; public IntByReference m_pVRTrackedCamera;
/** /**
* class vr::IVRScreenshots *<br> * class vr::IVRScreenshots *<br>
* C type : intptr_t * C type : intptr_t
*/ */
public IntByReference m_pVRScreenshots; public IntByReference m_pVRScreenshots;
public COpenVRContext() { /**
super(); * class vr::IVRDriverManager *<br>
} * C type : intptr_t
protected List<String> getFieldOrder() { */
return Arrays.asList("m_pVRSystem", "m_pVRChaperone", "m_pVRChaperoneSetup", "m_pVRCompositor", "m_pVROverlay", "m_pVRResources", "m_pVRRenderModels", "m_pVRExtendedDisplay", "m_pVRSettings", "m_pVRApplications", "m_pVRTrackedCamera", "m_pVRScreenshots"); public IntByReference m_pVRDriverManager;
} public COpenVRContext() {
public COpenVRContext(Pointer peer) { super();
super(peer); }
} protected List<String> getFieldOrder() {
public static class ByReference extends COpenVRContext implements Structure.ByReference { return Arrays.asList("m_pVRSystem", "m_pVRChaperone", "m_pVRChaperoneSetup", "m_pVRCompositor", "m_pVROverlay", "m_pVRResources", "m_pVRRenderModels", "m_pVRExtendedDisplay", "m_pVRSettings", "m_pVRApplications", "m_pVRTrackedCamera", "m_pVRScreenshots", "m_pVRDriverManager");
}
}; public COpenVRContext(Pointer peer) {
public static class ByValue extends COpenVRContext implements Structure.ByValue { super(peer);
}
}; public static class ByReference extends COpenVRContext implements Structure.ByReference {
};
public static class ByValue extends COpenVRContext implements Structure.ByValue {
};
} }

@ -4,50 +4,50 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1127</i><br> * <i>native declaration : headers\openvr_capi.h:1154</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class CameraVideoStreamFrameHeader_t extends Structure { public class CameraVideoStreamFrameHeader_t extends Structure {
/** /**
* @see EVRTrackedCameraFrameType<br> * @see EVRTrackedCameraFrameType<br>
* C type : EVRTrackedCameraFrameType * C type : EVRTrackedCameraFrameType
*/ */
public int eFrameType; public int eFrameType;
public int nWidth; public int nWidth;
public int nHeight; public int nHeight;
public int nBytesPerPixel; public int nBytesPerPixel;
public int nFrameSequence; public int nFrameSequence;
/** C type : TrackedDevicePose_t */ /** C type : TrackedDevicePose_t */
public TrackedDevicePose_t standingTrackedDevicePose; public TrackedDevicePose_t standingTrackedDevicePose;
public CameraVideoStreamFrameHeader_t() { public CameraVideoStreamFrameHeader_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("eFrameType", "nWidth", "nHeight", "nBytesPerPixel", "nFrameSequence", "standingTrackedDevicePose"); return Arrays.asList("eFrameType", "nWidth", "nHeight", "nBytesPerPixel", "nFrameSequence", "standingTrackedDevicePose");
} }
/** /**
* @param eFrameType @see EVRTrackedCameraFrameType<br> * @param eFrameType @see EVRTrackedCameraFrameType<br>
* C type : EVRTrackedCameraFrameType<br> * C type : EVRTrackedCameraFrameType<br>
* @param standingTrackedDevicePose C type : TrackedDevicePose_t * @param standingTrackedDevicePose C type : TrackedDevicePose_t
*/ */
public CameraVideoStreamFrameHeader_t(int eFrameType, int nWidth, int nHeight, int nBytesPerPixel, int nFrameSequence, TrackedDevicePose_t standingTrackedDevicePose) { public CameraVideoStreamFrameHeader_t(int eFrameType, int nWidth, int nHeight, int nBytesPerPixel, int nFrameSequence, TrackedDevicePose_t standingTrackedDevicePose) {
super(); super();
this.eFrameType = eFrameType; this.eFrameType = eFrameType;
this.nWidth = nWidth; this.nWidth = nWidth;
this.nHeight = nHeight; this.nHeight = nHeight;
this.nBytesPerPixel = nBytesPerPixel; this.nBytesPerPixel = nBytesPerPixel;
this.nFrameSequence = nFrameSequence; this.nFrameSequence = nFrameSequence;
this.standingTrackedDevicePose = standingTrackedDevicePose; this.standingTrackedDevicePose = standingTrackedDevicePose;
} }
public CameraVideoStreamFrameHeader_t(Pointer peer) { public CameraVideoStreamFrameHeader_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends CameraVideoStreamFrameHeader_t implements Structure.ByReference { public static class ByReference extends CameraVideoStreamFrameHeader_t implements Structure.ByReference {
}; };
public static class ByValue extends CameraVideoStreamFrameHeader_t implements Structure.ByValue { public static class ByValue extends CameraVideoStreamFrameHeader_t implements Structure.ByValue {
}; };
} }

@ -4,40 +4,40 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1176</i><br> * <i>native declaration : headers\openvr_capi.h:1203</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class Compositor_CumulativeStats extends Structure { public class Compositor_CumulativeStats extends Structure {
public int m_nPid; public int m_nPid;
public int m_nNumFramePresents; public int m_nNumFramePresents;
public int m_nNumDroppedFrames; public int m_nNumDroppedFrames;
public int m_nNumReprojectedFrames; public int m_nNumReprojectedFrames;
public int m_nNumFramePresentsOnStartup; public int m_nNumFramePresentsOnStartup;
public int m_nNumDroppedFramesOnStartup; public int m_nNumDroppedFramesOnStartup;
public int m_nNumReprojectedFramesOnStartup; public int m_nNumReprojectedFramesOnStartup;
public int m_nNumLoading; public int m_nNumLoading;
public int m_nNumFramePresentsLoading; public int m_nNumFramePresentsLoading;
public int m_nNumDroppedFramesLoading; public int m_nNumDroppedFramesLoading;
public int m_nNumReprojectedFramesLoading; public int m_nNumReprojectedFramesLoading;
public int m_nNumTimedOut; public int m_nNumTimedOut;
public int m_nNumFramePresentsTimedOut; public int m_nNumFramePresentsTimedOut;
public int m_nNumDroppedFramesTimedOut; public int m_nNumDroppedFramesTimedOut;
public int m_nNumReprojectedFramesTimedOut; public int m_nNumReprojectedFramesTimedOut;
public Compositor_CumulativeStats() { public Compositor_CumulativeStats() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("m_nPid", "m_nNumFramePresents", "m_nNumDroppedFrames", "m_nNumReprojectedFrames", "m_nNumFramePresentsOnStartup", "m_nNumDroppedFramesOnStartup", "m_nNumReprojectedFramesOnStartup", "m_nNumLoading", "m_nNumFramePresentsLoading", "m_nNumDroppedFramesLoading", "m_nNumReprojectedFramesLoading", "m_nNumTimedOut", "m_nNumFramePresentsTimedOut", "m_nNumDroppedFramesTimedOut", "m_nNumReprojectedFramesTimedOut"); return Arrays.asList("m_nPid", "m_nNumFramePresents", "m_nNumDroppedFrames", "m_nNumReprojectedFrames", "m_nNumFramePresentsOnStartup", "m_nNumDroppedFramesOnStartup", "m_nNumReprojectedFramesOnStartup", "m_nNumLoading", "m_nNumFramePresentsLoading", "m_nNumDroppedFramesLoading", "m_nNumReprojectedFramesLoading", "m_nNumTimedOut", "m_nNumFramePresentsTimedOut", "m_nNumDroppedFramesTimedOut", "m_nNumReprojectedFramesTimedOut");
} }
public Compositor_CumulativeStats(Pointer peer) { public Compositor_CumulativeStats(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends Compositor_CumulativeStats implements Structure.ByReference { public static class ByReference extends Compositor_CumulativeStats implements Structure.ByReference {
}; };
public static class ByValue extends Compositor_CumulativeStats implements Structure.ByValue { public static class ByValue extends Compositor_CumulativeStats implements Structure.ByValue {
}; };
} }

@ -4,50 +4,50 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1159</i><br> * <i>native declaration : headers\openvr_capi.h:1186</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class Compositor_FrameTiming extends Structure { public class Compositor_FrameTiming extends Structure {
public int m_nSize; public int m_nSize;
public int m_nFrameIndex; public int m_nFrameIndex;
public int m_nNumFramePresents; public int m_nNumFramePresents;
public int m_nNumMisPresented; public int m_nNumMisPresented;
public int m_nNumDroppedFrames; public int m_nNumDroppedFrames;
public int m_nReprojectionFlags; public int m_nReprojectionFlags;
public double m_flSystemTimeInSeconds; public double m_flSystemTimeInSeconds;
public float m_flPreSubmitGpuMs; public float m_flPreSubmitGpuMs;
public float m_flPostSubmitGpuMs; public float m_flPostSubmitGpuMs;
public float m_flTotalRenderGpuMs; public float m_flTotalRenderGpuMs;
public float m_flCompositorRenderGpuMs; public float m_flCompositorRenderGpuMs;
public float m_flCompositorRenderCpuMs; public float m_flCompositorRenderCpuMs;
public float m_flCompositorIdleCpuMs; public float m_flCompositorIdleCpuMs;
public float m_flClientFrameIntervalMs; public float m_flClientFrameIntervalMs;
public float m_flPresentCallCpuMs; public float m_flPresentCallCpuMs;
public float m_flWaitForPresentCpuMs; public float m_flWaitForPresentCpuMs;
public float m_flSubmitFrameMs; public float m_flSubmitFrameMs;
public float m_flWaitGetPosesCalledMs; public float m_flWaitGetPosesCalledMs;
public float m_flNewPosesReadyMs; public float m_flNewPosesReadyMs;
public float m_flNewFrameReadyMs; public float m_flNewFrameReadyMs;
public float m_flCompositorUpdateStartMs; public float m_flCompositorUpdateStartMs;
public float m_flCompositorUpdateEndMs; public float m_flCompositorUpdateEndMs;
public float m_flCompositorRenderStartMs; public float m_flCompositorRenderStartMs;
/** C type : TrackedDevicePose_t */ /** C type : TrackedDevicePose_t */
public TrackedDevicePose_t m_HmdPose; public TrackedDevicePose_t m_HmdPose;
public Compositor_FrameTiming() { public Compositor_FrameTiming() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("m_nSize", "m_nFrameIndex", "m_nNumFramePresents", "m_nNumMisPresented", "m_nNumDroppedFrames", "m_nReprojectionFlags", "m_flSystemTimeInSeconds", "m_flPreSubmitGpuMs", "m_flPostSubmitGpuMs", "m_flTotalRenderGpuMs", "m_flCompositorRenderGpuMs", "m_flCompositorRenderCpuMs", "m_flCompositorIdleCpuMs", "m_flClientFrameIntervalMs", "m_flPresentCallCpuMs", "m_flWaitForPresentCpuMs", "m_flSubmitFrameMs", "m_flWaitGetPosesCalledMs", "m_flNewPosesReadyMs", "m_flNewFrameReadyMs", "m_flCompositorUpdateStartMs", "m_flCompositorUpdateEndMs", "m_flCompositorRenderStartMs", "m_HmdPose"); return Arrays.asList("m_nSize", "m_nFrameIndex", "m_nNumFramePresents", "m_nNumMisPresented", "m_nNumDroppedFrames", "m_nReprojectionFlags", "m_flSystemTimeInSeconds", "m_flPreSubmitGpuMs", "m_flPostSubmitGpuMs", "m_flTotalRenderGpuMs", "m_flCompositorRenderGpuMs", "m_flCompositorRenderCpuMs", "m_flCompositorIdleCpuMs", "m_flClientFrameIntervalMs", "m_flPresentCallCpuMs", "m_flWaitForPresentCpuMs", "m_flSubmitFrameMs", "m_flWaitGetPosesCalledMs", "m_flNewPosesReadyMs", "m_flNewFrameReadyMs", "m_flCompositorUpdateStartMs", "m_flCompositorUpdateEndMs", "m_flCompositorRenderStartMs", "m_HmdPose");
} }
public Compositor_FrameTiming(Pointer peer) { public Compositor_FrameTiming(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends Compositor_FrameTiming implements Structure.ByReference { public static class ByReference extends Compositor_FrameTiming implements Structure.ByReference {
}; };
public static class ByValue extends Compositor_FrameTiming implements Structure.ByValue { public static class ByValue extends Compositor_FrameTiming implements Structure.ByValue {
}; };
} }

@ -4,40 +4,40 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1117</i><br> * <i>native declaration : headers\openvr_capi.h:1144</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class Compositor_OverlaySettings extends Structure { public class Compositor_OverlaySettings extends Structure {
public int size; public int size;
public byte curved; public byte curved;
public byte antialias; public byte antialias;
public float scale; public float scale;
public float distance; public float distance;
public float alpha; public float alpha;
public float uOffset; public float uOffset;
public float vOffset; public float vOffset;
public float uScale; public float uScale;
public float vScale; public float vScale;
public float gridDivs; public float gridDivs;
public float gridWidth; public float gridWidth;
public float gridScale; public float gridScale;
/** C type : HmdMatrix44_t */ /** C type : HmdMatrix44_t */
public HmdMatrix44_t transform; public HmdMatrix44_t transform;
public Compositor_OverlaySettings() { public Compositor_OverlaySettings() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("size", "curved", "antialias", "scale", "distance", "alpha", "uOffset", "vOffset", "uScale", "vScale", "gridDivs", "gridWidth", "gridScale", "transform"); return Arrays.asList("size", "curved", "antialias", "scale", "distance", "alpha", "uOffset", "vOffset", "uScale", "vScale", "gridDivs", "gridWidth", "gridScale", "transform");
} }
public Compositor_OverlaySettings(Pointer peer) { public Compositor_OverlaySettings(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends Compositor_OverlaySettings implements Structure.ByReference { public static class ByReference extends Compositor_OverlaySettings implements Structure.ByReference {
}; };
public static class ByValue extends Compositor_OverlaySettings implements Structure.ByValue { public static class ByValue extends Compositor_OverlaySettings implements Structure.ByValue {
}; };
} }

@ -6,48 +6,48 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1003</i><br> * <i>native declaration : headers\openvr_capi.h:1030</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class D3D12TextureData_t extends Structure { public class D3D12TextureData_t extends Structure {
/** /**
* struct ID3D12Resource *<br> * struct ID3D12Resource *<br>
* C type : ID3D12Resource* * C type : ID3D12Resource*
*/ */
public ID3D12Resource m_pResource; public ID3D12Resource m_pResource;
/** /**
* struct ID3D12CommandQueue *<br> * struct ID3D12CommandQueue *<br>
* C type : ID3D12CommandQueue* * C type : ID3D12CommandQueue*
*/ */
public ID3D12CommandQueue m_pCommandQueue; public ID3D12CommandQueue m_pCommandQueue;
public int m_nNodeMask; public int m_nNodeMask;
public D3D12TextureData_t() { public D3D12TextureData_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("m_pResource", "m_pCommandQueue", "m_nNodeMask"); return Arrays.asList("m_pResource", "m_pCommandQueue", "m_nNodeMask");
} }
/** /**
* @param m_pResource struct ID3D12Resource *<br> * @param m_pResource struct ID3D12Resource *<br>
* C type : ID3D12Resource*<br> * C type : ID3D12Resource*<br>
* @param m_pCommandQueue struct ID3D12CommandQueue *<br> * @param m_pCommandQueue struct ID3D12CommandQueue *<br>
* C type : ID3D12CommandQueue* * C type : ID3D12CommandQueue*
*/ */
public D3D12TextureData_t(ID3D12Resource m_pResource, ID3D12CommandQueue m_pCommandQueue, int m_nNodeMask) { public D3D12TextureData_t(ID3D12Resource m_pResource, ID3D12CommandQueue m_pCommandQueue, int m_nNodeMask) {
super(); super();
this.m_pResource = m_pResource; this.m_pResource = m_pResource;
this.m_pCommandQueue = m_pCommandQueue; this.m_pCommandQueue = m_pCommandQueue;
this.m_nNodeMask = m_nNodeMask; this.m_nNodeMask = m_nNodeMask;
} }
public D3D12TextureData_t(Pointer peer) { public D3D12TextureData_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends D3D12TextureData_t implements Structure.ByReference { public static class ByReference extends D3D12TextureData_t implements Structure.ByReference {
}; };
public static class ByValue extends D3D12TextureData_t implements Structure.ByValue { public static class ByValue extends D3D12TextureData_t implements Structure.ByValue {
}; };
} }

@ -4,60 +4,60 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:954</i><br> * <i>native declaration : headers\openvr_capi.h:981</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class DistortionCoordinates_t extends Structure { public class DistortionCoordinates_t extends Structure {
/** /**
* float[2]<br> * float[2]<br>
* C type : float[2] * C type : float[2]
*/ */
public float[] rfRed = new float[2]; public float[] rfRed = new float[2];
/** /**
* float[2]<br> * float[2]<br>
* C type : float[2] * C type : float[2]
*/ */
public float[] rfGreen = new float[2]; public float[] rfGreen = new float[2];
/** /**
* float[2]<br> * float[2]<br>
* C type : float[2] * C type : float[2]
*/ */
public float[] rfBlue = new float[2]; public float[] rfBlue = new float[2];
public DistortionCoordinates_t() { public DistortionCoordinates_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("rfRed", "rfGreen", "rfBlue"); return Arrays.asList("rfRed", "rfGreen", "rfBlue");
} }
/** /**
* @param rfRed float[2]<br> * @param rfRed float[2]<br>
* C type : float[2]<br> * C type : float[2]<br>
* @param rfGreen float[2]<br> * @param rfGreen float[2]<br>
* C type : float[2]<br> * C type : float[2]<br>
* @param rfBlue float[2]<br> * @param rfBlue float[2]<br>
* C type : float[2] * C type : float[2]
*/ */
public DistortionCoordinates_t(float rfRed[], float rfGreen[], float rfBlue[]) { public DistortionCoordinates_t(float rfRed[], float rfGreen[], float rfBlue[]) {
super(); super();
if ((rfRed.length != this.rfRed.length)) if ((rfRed.length != this.rfRed.length))
throw new IllegalArgumentException("Wrong array size !"); throw new IllegalArgumentException("Wrong array size !");
this.rfRed = rfRed; this.rfRed = rfRed;
if ((rfGreen.length != this.rfGreen.length)) if ((rfGreen.length != this.rfGreen.length))
throw new IllegalArgumentException("Wrong array size !"); throw new IllegalArgumentException("Wrong array size !");
this.rfGreen = rfGreen; this.rfGreen = rfGreen;
if ((rfBlue.length != this.rfBlue.length)) if ((rfBlue.length != this.rfBlue.length))
throw new IllegalArgumentException("Wrong array size !"); throw new IllegalArgumentException("Wrong array size !");
this.rfBlue = rfBlue; this.rfBlue = rfBlue;
} }
public DistortionCoordinates_t(Pointer peer) { public DistortionCoordinates_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends DistortionCoordinates_t implements Structure.ByReference { public static class ByReference extends DistortionCoordinates_t implements Structure.ByReference {
}; };
public static class ByValue extends DistortionCoordinates_t implements Structure.ByValue { public static class ByValue extends DistortionCoordinates_t implements Structure.ByValue {
}; };
} }

@ -4,40 +4,40 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1090</i><br> * <i>native declaration : headers\openvr_capi.h:1117</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class HiddenAreaMesh_t extends Structure { public class HiddenAreaMesh_t extends Structure {
/** /**
* const struct vr::HmdVector2_t *<br> * const struct vr::HmdVector2_t *<br>
* C type : HmdVector2_t* * C type : HmdVector2_t*
*/ */
public com.jme3.system.jopenvr.HmdVector2_t.ByReference pVertexData; public com.jme3.system.jopenvr.HmdVector2_t.ByReference pVertexData;
public int unTriangleCount; public int unTriangleCount;
public HiddenAreaMesh_t() { public HiddenAreaMesh_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("pVertexData", "unTriangleCount"); return Arrays.asList("pVertexData", "unTriangleCount");
} }
/** /**
* @param pVertexData const struct vr::HmdVector2_t *<br> * @param pVertexData const struct vr::HmdVector2_t *<br>
* C type : HmdVector2_t* * C type : HmdVector2_t*
*/ */
public HiddenAreaMesh_t(com.jme3.system.jopenvr.HmdVector2_t.ByReference pVertexData, int unTriangleCount) { public HiddenAreaMesh_t(com.jme3.system.jopenvr.HmdVector2_t.ByReference pVertexData, int unTriangleCount) {
super(); super();
this.pVertexData = pVertexData; this.pVertexData = pVertexData;
this.unTriangleCount = unTriangleCount; this.unTriangleCount = unTriangleCount;
} }
public HiddenAreaMesh_t(Pointer peer) { public HiddenAreaMesh_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends HiddenAreaMesh_t implements Structure.ByReference { public static class ByReference extends HiddenAreaMesh_t implements Structure.ByReference {
}; };
public static class ByValue extends HiddenAreaMesh_t implements Structure.ByValue { public static class ByValue extends HiddenAreaMesh_t implements Structure.ByValue {
}; };
} }

@ -4,36 +4,36 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:938</i><br> * <i>native declaration : headers\openvr_capi.h:965</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class HmdColor_t extends Structure { public class HmdColor_t extends Structure {
public float r; public float r;
public float g; public float g;
public float b; public float b;
public float a; public float a;
public HmdColor_t() { public HmdColor_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("r", "g", "b", "a"); return Arrays.asList("r", "g", "b", "a");
} }
public HmdColor_t(float r, float g, float b, float a) { public HmdColor_t(float r, float g, float b, float a) {
super(); super();
this.r = r; this.r = r;
this.g = g; this.g = g;
this.b = b; this.b = b;
this.a = a; this.a = a;
} }
public HmdColor_t(Pointer peer) { public HmdColor_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends HmdColor_t implements Structure.ByReference { public static class ByReference extends HmdColor_t implements Structure.ByReference {
}; };
public static class ByValue extends HmdColor_t implements Structure.ByValue { public static class ByValue extends HmdColor_t implements Structure.ByValue {
}; };
} }

@ -4,40 +4,40 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:906</i><br> * <i>native declaration : headers\openvr_capi.h:933</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class HmdMatrix34_t extends Structure { public class HmdMatrix34_t extends Structure {
/** /**
* float[3][4]<br> * float[3][4]<br>
* C type : float[3][4] * C type : float[3][4]
*/ */
public float[] m = new float[((3) * (4))]; public float[] m = new float[((3) * (4))];
public HmdMatrix34_t() { public HmdMatrix34_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("m"); return Arrays.asList("m");
} }
/** /**
* @param m float[3][4]<br> * @param m float[3][4]<br>
* C type : float[3][4] * C type : float[3][4]
*/ */
public HmdMatrix34_t(float m[]) { public HmdMatrix34_t(float m[]) {
super(); super();
if ((m.length != this.m.length)) if ((m.length != this.m.length))
throw new IllegalArgumentException("Wrong array size !"); throw new IllegalArgumentException("Wrong array size !");
this.m = m; this.m = m;
} }
public HmdMatrix34_t(Pointer peer) { public HmdMatrix34_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends HmdMatrix34_t implements Structure.ByReference { public static class ByReference extends HmdMatrix34_t implements Structure.ByReference {
}; };
public static class ByValue extends HmdMatrix34_t implements Structure.ByValue { public static class ByValue extends HmdMatrix34_t implements Structure.ByValue {
}; };
} }

@ -4,40 +4,40 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:910</i><br> * <i>native declaration : headers\openvr_capi.h:937</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class HmdMatrix44_t extends Structure { public class HmdMatrix44_t extends Structure {
/** /**
* float[4][4]<br> * float[4][4]<br>
* C type : float[4][4] * C type : float[4][4]
*/ */
public float[] m = new float[((4) * (4))]; public float[] m = new float[((4) * (4))];
public HmdMatrix44_t() { public HmdMatrix44_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("m"); return Arrays.asList("m");
} }
/** /**
* @param m float[4][4]<br> * @param m float[4][4]<br>
* C type : float[4][4] * C type : float[4][4]
*/ */
public HmdMatrix44_t(float m[]) { public HmdMatrix44_t(float m[]) {
super(); super();
if ((m.length != this.m.length)) if ((m.length != this.m.length))
throw new IllegalArgumentException("Wrong array size !"); throw new IllegalArgumentException("Wrong array size !");
this.m = m; this.m = m;
} }
public HmdMatrix44_t(Pointer peer) { public HmdMatrix44_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends HmdMatrix44_t implements Structure.ByReference { public static class ByReference extends HmdMatrix44_t implements Structure.ByReference {
}; };
public static class ByValue extends HmdMatrix44_t implements Structure.ByValue { public static class ByValue extends HmdMatrix44_t implements Structure.ByValue {
}; };
} }

@ -4,40 +4,40 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:942</i><br> * <i>native declaration : headers\openvr_capi.h:969</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class HmdQuad_t extends Structure { public class HmdQuad_t extends Structure {
/** /**
* struct vr::HmdVector3_t[4]<br> * struct vr::HmdVector3_t[4]<br>
* C type : HmdVector3_t[4] * C type : HmdVector3_t[4]
*/ */
public HmdVector3_t[] vCorners = new HmdVector3_t[4]; public HmdVector3_t[] vCorners = new HmdVector3_t[4];
public HmdQuad_t() { public HmdQuad_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("vCorners"); return Arrays.asList("vCorners");
} }
/** /**
* @param vCorners struct vr::HmdVector3_t[4]<br> * @param vCorners struct vr::HmdVector3_t[4]<br>
* C type : HmdVector3_t[4] * C type : HmdVector3_t[4]
*/ */
public HmdQuad_t(HmdVector3_t vCorners[]) { public HmdQuad_t(HmdVector3_t vCorners[]) {
super(); super();
if ((vCorners.length != this.vCorners.length)) if ((vCorners.length != this.vCorners.length))
throw new IllegalArgumentException("Wrong array size !"); throw new IllegalArgumentException("Wrong array size !");
this.vCorners = vCorners; this.vCorners = vCorners;
} }
public HmdQuad_t(Pointer peer) { public HmdQuad_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends HmdQuad_t implements Structure.ByReference { public static class ByReference extends HmdQuad_t implements Structure.ByReference {
}; };
public static class ByValue extends HmdQuad_t implements Structure.ByValue { public static class ByValue extends HmdQuad_t implements Structure.ByValue {
}; };
} }

@ -4,36 +4,36 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:932</i><br> * <i>native declaration : headers\openvr_capi.h:959</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class HmdQuaternion_t extends Structure { public class HmdQuaternion_t extends Structure {
public double w; public double w;
public double x; public double x;
public double y; public double y;
public double z; public double z;
public HmdQuaternion_t() { public HmdQuaternion_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("w", "x", "y", "z"); return Arrays.asList("w", "x", "y", "z");
} }
public HmdQuaternion_t(double w, double x, double y, double z) { public HmdQuaternion_t(double w, double x, double y, double z) {
super(); super();
this.w = w; this.w = w;
this.x = x; this.x = x;
this.y = y; this.y = y;
this.z = z; this.z = z;
} }
public HmdQuaternion_t(Pointer peer) { public HmdQuaternion_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends HmdQuaternion_t implements Structure.ByReference { public static class ByReference extends HmdQuaternion_t implements Structure.ByReference {
}; };
public static class ByValue extends HmdQuaternion_t implements Structure.ByValue { public static class ByValue extends HmdQuaternion_t implements Structure.ByValue {
}; };
} }

@ -4,38 +4,38 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:946</i><br> * <i>native declaration : headers\openvr_capi.h:973</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class HmdRect2_t extends Structure { public class HmdRect2_t extends Structure {
/** C type : HmdVector2_t */ /** C type : HmdVector2_t */
public HmdVector2_t vTopLeft; public HmdVector2_t vTopLeft;
/** C type : HmdVector2_t */ /** C type : HmdVector2_t */
public HmdVector2_t vBottomRight; public HmdVector2_t vBottomRight;
public HmdRect2_t() { public HmdRect2_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("vTopLeft", "vBottomRight"); return Arrays.asList("vTopLeft", "vBottomRight");
} }
/** /**
* @param vTopLeft C type : HmdVector2_t<br> * @param vTopLeft C type : HmdVector2_t<br>
* @param vBottomRight C type : HmdVector2_t * @param vBottomRight C type : HmdVector2_t
*/ */
public HmdRect2_t(HmdVector2_t vTopLeft, HmdVector2_t vBottomRight) { public HmdRect2_t(HmdVector2_t vTopLeft, HmdVector2_t vBottomRight) {
super(); super();
this.vTopLeft = vTopLeft; this.vTopLeft = vTopLeft;
this.vBottomRight = vBottomRight; this.vBottomRight = vBottomRight;
} }
public HmdRect2_t(Pointer peer) { public HmdRect2_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends HmdRect2_t implements Structure.ByReference { public static class ByReference extends HmdRect2_t implements Structure.ByReference {
}; };
public static class ByValue extends HmdRect2_t implements Structure.ByValue { public static class ByValue extends HmdRect2_t implements Structure.ByValue {
}; };
} }

@ -4,40 +4,40 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:926</i><br> * <i>native declaration : headers\openvr_capi.h:953</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class HmdVector2_t extends Structure { public class HmdVector2_t extends Structure {
/** /**
* float[2]<br> * float[2]<br>
* C type : float[2] * C type : float[2]
*/ */
public float[] v = new float[2]; public float[] v = new float[2];
public HmdVector2_t() { public HmdVector2_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("v"); return Arrays.asList("v");
} }
/** /**
* @param v float[2]<br> * @param v float[2]<br>
* C type : float[2] * C type : float[2]
*/ */
public HmdVector2_t(float v[]) { public HmdVector2_t(float v[]) {
super(); super();
if ((v.length != this.v.length)) if ((v.length != this.v.length))
throw new IllegalArgumentException("Wrong array size !"); throw new IllegalArgumentException("Wrong array size !");
this.v = v; this.v = v;
} }
public HmdVector2_t(Pointer peer) { public HmdVector2_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends HmdVector2_t implements Structure.ByReference { public static class ByReference extends HmdVector2_t implements Structure.ByReference {
}; };
public static class ByValue extends HmdVector2_t implements Structure.ByValue { public static class ByValue extends HmdVector2_t implements Structure.ByValue {
}; };
} }

@ -4,40 +4,40 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:914</i><br> * <i>native declaration : headers\openvr_capi.h:941</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class HmdVector3_t extends Structure { public class HmdVector3_t extends Structure {
/** /**
* float[3]<br> * float[3]<br>
* C type : float[3] * C type : float[3]
*/ */
public float[] v = new float[3]; public float[] v = new float[3];
public HmdVector3_t() { public HmdVector3_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("v"); return Arrays.asList("v");
} }
/** /**
* @param v float[3]<br> * @param v float[3]<br>
* C type : float[3] * C type : float[3]
*/ */
public HmdVector3_t(float v[]) { public HmdVector3_t(float v[]) {
super(); super();
if ((v.length != this.v.length)) if ((v.length != this.v.length))
throw new IllegalArgumentException("Wrong array size !"); throw new IllegalArgumentException("Wrong array size !");
this.v = v; this.v = v;
} }
public HmdVector3_t(Pointer peer) { public HmdVector3_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends HmdVector3_t implements Structure.ByReference { public static class ByReference extends HmdVector3_t implements Structure.ByReference {
}; };
public static class ByValue extends HmdVector3_t implements Structure.ByValue { public static class ByValue extends HmdVector3_t implements Structure.ByValue {
}; };
} }

@ -4,40 +4,40 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:922</i><br> * <i>native declaration : headers\openvr_capi.h:949</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class HmdVector3d_t extends Structure { public class HmdVector3d_t extends Structure {
/** /**
* double[3]<br> * double[3]<br>
* C type : double[3] * C type : double[3]
*/ */
public double[] v = new double[3]; public double[] v = new double[3];
public HmdVector3d_t() { public HmdVector3d_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("v"); return Arrays.asList("v");
} }
/** /**
* @param v double[3]<br> * @param v double[3]<br>
* C type : double[3] * C type : double[3]
*/ */
public HmdVector3d_t(double v[]) { public HmdVector3d_t(double v[]) {
super(); super();
if ((v.length != this.v.length)) if ((v.length != this.v.length))
throw new IllegalArgumentException("Wrong array size !"); throw new IllegalArgumentException("Wrong array size !");
this.v = v; this.v = v;
} }
public HmdVector3d_t(Pointer peer) { public HmdVector3d_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends HmdVector3d_t implements Structure.ByReference { public static class ByReference extends HmdVector3d_t implements Structure.ByReference {
}; };
public static class ByValue extends HmdVector3d_t implements Structure.ByValue { public static class ByValue extends HmdVector3d_t implements Structure.ByValue {
}; };
} }

@ -4,40 +4,40 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:918</i><br> * <i>native declaration : headers\openvr_capi.h:945</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class HmdVector4_t extends Structure { public class HmdVector4_t extends Structure {
/** /**
* float[4]<br> * float[4]<br>
* C type : float[4] * C type : float[4]
*/ */
public float[] v = new float[4]; public float[] v = new float[4];
public HmdVector4_t() { public HmdVector4_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("v"); return Arrays.asList("v");
} }
/** /**
* @param v float[4]<br> * @param v float[4]<br>
* C type : float[4] * C type : float[4]
*/ */
public HmdVector4_t(float v[]) { public HmdVector4_t(float v[]) {
super(); super();
if ((v.length != this.v.length)) if ((v.length != this.v.length))
throw new IllegalArgumentException("Wrong array size !"); throw new IllegalArgumentException("Wrong array size !");
this.v = v; this.v = v;
} }
public HmdVector4_t(Pointer peer) { public HmdVector4_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends HmdVector4_t implements Structure.ByReference { public static class ByReference extends HmdVector4_t implements Structure.ByReference {
}; };
public static class ByValue extends HmdVector4_t implements Structure.ByValue { public static class ByValue extends HmdVector4_t implements Structure.ByValue {
}; };
} }

@ -4,34 +4,34 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1200</i><br> * <i>native declaration : headers\openvr_capi.h:1227</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class IntersectionMaskCircle_t extends Structure { public class IntersectionMaskCircle_t extends Structure {
public float m_flCenterX; public float m_flCenterX;
public float m_flCenterY; public float m_flCenterY;
public float m_flRadius; public float m_flRadius;
public IntersectionMaskCircle_t() { public IntersectionMaskCircle_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("m_flCenterX", "m_flCenterY", "m_flRadius"); return Arrays.asList("m_flCenterX", "m_flCenterY", "m_flRadius");
} }
public IntersectionMaskCircle_t(float m_flCenterX, float m_flCenterY, float m_flRadius) { public IntersectionMaskCircle_t(float m_flCenterX, float m_flCenterY, float m_flRadius) {
super(); super();
this.m_flCenterX = m_flCenterX; this.m_flCenterX = m_flCenterX;
this.m_flCenterY = m_flCenterY; this.m_flCenterY = m_flCenterY;
this.m_flRadius = m_flRadius; this.m_flRadius = m_flRadius;
} }
public IntersectionMaskCircle_t(Pointer peer) { public IntersectionMaskCircle_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends IntersectionMaskCircle_t implements Structure.ByReference { public static class ByReference extends IntersectionMaskCircle_t implements Structure.ByReference {
}; };
public static class ByValue extends IntersectionMaskCircle_t implements Structure.ByValue { public static class ByValue extends IntersectionMaskCircle_t implements Structure.ByValue {
}; };
} }

@ -4,36 +4,36 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1195</i><br> * <i>native declaration : headers\openvr_capi.h:1222</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class IntersectionMaskRectangle_t extends Structure { public class IntersectionMaskRectangle_t extends Structure {
public float m_flTopLeftX; public float m_flTopLeftX;
public float m_flTopLeftY; public float m_flTopLeftY;
public float m_flWidth; public float m_flWidth;
public float m_flHeight; public float m_flHeight;
public IntersectionMaskRectangle_t() { public IntersectionMaskRectangle_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("m_flTopLeftX", "m_flTopLeftY", "m_flWidth", "m_flHeight"); return Arrays.asList("m_flTopLeftX", "m_flTopLeftY", "m_flWidth", "m_flHeight");
} }
public IntersectionMaskRectangle_t(float m_flTopLeftX, float m_flTopLeftY, float m_flWidth, float m_flHeight) { public IntersectionMaskRectangle_t(float m_flTopLeftX, float m_flTopLeftY, float m_flWidth, float m_flHeight) {
super(); super();
this.m_flTopLeftX = m_flTopLeftX; this.m_flTopLeftX = m_flTopLeftX;
this.m_flTopLeftY = m_flTopLeftY; this.m_flTopLeftY = m_flTopLeftY;
this.m_flWidth = m_flWidth; this.m_flWidth = m_flWidth;
this.m_flHeight = m_flHeight; this.m_flHeight = m_flHeight;
} }
public IntersectionMaskRectangle_t(Pointer peer) { public IntersectionMaskRectangle_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends IntersectionMaskRectangle_t implements Structure.ByReference { public static class ByReference extends IntersectionMaskRectangle_t implements Structure.ByReference {
}; };
public static class ByValue extends IntersectionMaskRectangle_t implements Structure.ByValue { public static class ByValue extends IntersectionMaskRectangle_t implements Structure.ByValue {
}; };
} }

@ -4,44 +4,44 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1236</i><br> * <i>native declaration : headers\openvr_capi.h:1263</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class NotificationBitmap_t extends Structure { public class NotificationBitmap_t extends Structure {
/** /**
* void *<br> * void *<br>
* C type : void* * C type : void*
*/ */
public Pointer m_pImageData; public Pointer m_pImageData;
public int m_nWidth; public int m_nWidth;
public int m_nHeight; public int m_nHeight;
public int m_nBytesPerPixel; public int m_nBytesPerPixel;
public NotificationBitmap_t() { public NotificationBitmap_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("m_pImageData", "m_nWidth", "m_nHeight", "m_nBytesPerPixel"); return Arrays.asList("m_pImageData", "m_nWidth", "m_nHeight", "m_nBytesPerPixel");
} }
/** /**
* @param m_pImageData void *<br> * @param m_pImageData void *<br>
* C type : void* * C type : void*
*/ */
public NotificationBitmap_t(Pointer m_pImageData, int m_nWidth, int m_nHeight, int m_nBytesPerPixel) { public NotificationBitmap_t(Pointer m_pImageData, int m_nWidth, int m_nHeight, int m_nBytesPerPixel) {
super(); super();
this.m_pImageData = m_pImageData; this.m_pImageData = m_pImageData;
this.m_nWidth = m_nWidth; this.m_nWidth = m_nWidth;
this.m_nHeight = m_nHeight; this.m_nHeight = m_nHeight;
this.m_nBytesPerPixel = m_nBytesPerPixel; this.m_nBytesPerPixel = m_nBytesPerPixel;
} }
public NotificationBitmap_t(Pointer peer) { public NotificationBitmap_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends NotificationBitmap_t implements Structure.ByReference { public static class ByReference extends NotificationBitmap_t implements Structure.ByReference {
}; };
public static class ByValue extends NotificationBitmap_t implements Structure.ByValue { public static class ByValue extends NotificationBitmap_t implements Structure.ByValue {
}; };
} }

@ -1,6 +1,6 @@
package com.jme3.system.jopenvr; package com.jme3.system.jopenvr;
import com.jme3.input.vr.OpenVRInput; import com.jme3.input.vr.openvr.OpenVRInput;
import com.jme3.system.jopenvr.JOpenVRLibrary.EColorSpace; import com.jme3.system.jopenvr.JOpenVRLibrary.EColorSpace;
import com.jme3.system.jopenvr.JOpenVRLibrary.ETextureType; import com.jme3.system.jopenvr.JOpenVRLibrary.ETextureType;
import com.jme3.system.jopenvr.JOpenVRLibrary.ETrackedDeviceProperty; import com.jme3.system.jopenvr.JOpenVRLibrary.ETrackedDeviceProperty;
@ -13,8 +13,7 @@ import com.sun.jna.ptr.IntByReference;
/** /**
* A utility class that provide helper methods for OpenVR system. * A utility class that provide helper methods for OpenVR system.
* @author Julien Seinturier - (c) 2016 - JOrigin project - <a href="http://www.jorigin.org">http:/www.jorigin.org</a> * @author Julien Seinturier - 2017 - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
*
*/ */
public class OpenVRUtil { public class OpenVRUtil {
@ -677,9 +676,6 @@ public class OpenVRUtil {
case ETrackedDeviceProperty.ETrackedDeviceProperty_Prop_DisplayMCImageData_Binary: case ETrackedDeviceProperty.ETrackedDeviceProperty_Prop_DisplayMCImageData_Binary:
str = ""; str = "";
break; break;
case ETrackedDeviceProperty.ETrackedDeviceProperty_Prop_UsesDriverDirectMode_Bool:
str = "";
break;
case ETrackedDeviceProperty.ETrackedDeviceProperty_Prop_AttachedDeviceId_String: case ETrackedDeviceProperty.ETrackedDeviceProperty_Prop_AttachedDeviceId_String:
str = ""; str = "";
break; break;

@ -4,42 +4,42 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1205</i><br> * <i>native declaration : headers\openvr_capi.h:1232</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class RenderModel_ComponentState_t extends Structure { public class RenderModel_ComponentState_t extends Structure {
/** C type : HmdMatrix34_t */ /** C type : HmdMatrix34_t */
public HmdMatrix34_t mTrackingToComponentRenderModel; public HmdMatrix34_t mTrackingToComponentRenderModel;
/** C type : HmdMatrix34_t */ /** C type : HmdMatrix34_t */
public HmdMatrix34_t mTrackingToComponentLocal; public HmdMatrix34_t mTrackingToComponentLocal;
/** C type : VRComponentProperties */ /** C type : VRComponentProperties */
public int uProperties; public int uProperties;
public RenderModel_ComponentState_t() { public RenderModel_ComponentState_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("mTrackingToComponentRenderModel", "mTrackingToComponentLocal", "uProperties"); return Arrays.asList("mTrackingToComponentRenderModel", "mTrackingToComponentLocal", "uProperties");
} }
/** /**
* @param mTrackingToComponentRenderModel C type : HmdMatrix34_t<br> * @param mTrackingToComponentRenderModel C type : HmdMatrix34_t<br>
* @param mTrackingToComponentLocal C type : HmdMatrix34_t<br> * @param mTrackingToComponentLocal C type : HmdMatrix34_t<br>
* @param uProperties C type : VRComponentProperties * @param uProperties C type : VRComponentProperties
*/ */
public RenderModel_ComponentState_t(HmdMatrix34_t mTrackingToComponentRenderModel, HmdMatrix34_t mTrackingToComponentLocal, int uProperties) { public RenderModel_ComponentState_t(HmdMatrix34_t mTrackingToComponentRenderModel, HmdMatrix34_t mTrackingToComponentLocal, int uProperties) {
super(); super();
this.mTrackingToComponentRenderModel = mTrackingToComponentRenderModel; this.mTrackingToComponentRenderModel = mTrackingToComponentRenderModel;
this.mTrackingToComponentLocal = mTrackingToComponentLocal; this.mTrackingToComponentLocal = mTrackingToComponentLocal;
this.uProperties = uProperties; this.uProperties = uProperties;
} }
public RenderModel_ComponentState_t(Pointer peer) { public RenderModel_ComponentState_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends RenderModel_ComponentState_t implements Structure.ByReference { public static class ByReference extends RenderModel_ComponentState_t implements Structure.ByReference {
}; };
public static class ByValue extends RenderModel_ComponentState_t implements Structure.ByValue { public static class ByValue extends RenderModel_ComponentState_t implements Structure.ByValue {
}; };
} }

@ -4,30 +4,30 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1229</i><br> * <i>native declaration : headers\openvr_capi.h:1256</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class RenderModel_ControllerMode_State_t extends Structure { public class RenderModel_ControllerMode_State_t extends Structure {
public byte bScrollWheelVisible; public byte bScrollWheelVisible;
public RenderModel_ControllerMode_State_t() { public RenderModel_ControllerMode_State_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("bScrollWheelVisible"); return Arrays.asList("bScrollWheelVisible");
} }
public RenderModel_ControllerMode_State_t(byte bScrollWheelVisible) { public RenderModel_ControllerMode_State_t(byte bScrollWheelVisible) {
super(); super();
this.bScrollWheelVisible = bScrollWheelVisible; this.bScrollWheelVisible = bScrollWheelVisible;
} }
public RenderModel_ControllerMode_State_t(Pointer peer) { public RenderModel_ControllerMode_State_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends RenderModel_ControllerMode_State_t implements Structure.ByReference { public static class ByReference extends RenderModel_ControllerMode_State_t implements Structure.ByReference {
}; };
public static class ByValue extends RenderModel_ControllerMode_State_t implements Structure.ByValue { public static class ByValue extends RenderModel_ControllerMode_State_t implements Structure.ByValue {
}; };
} }

@ -4,42 +4,42 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1217</i><br> * <i>native declaration : headers\openvr_capi.h:1244</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class RenderModel_TextureMap_t extends Structure { public class RenderModel_TextureMap_t extends Structure {
public short unWidth; public short unWidth;
public short unHeight; public short unHeight;
/** /**
* const uint8_t *<br> * const uint8_t *<br>
* C type : uint8_t* * C type : uint8_t*
*/ */
public Pointer rubTextureMapData; public Pointer rubTextureMapData;
public RenderModel_TextureMap_t() { public RenderModel_TextureMap_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("unWidth", "unHeight", "rubTextureMapData"); return Arrays.asList("unWidth", "unHeight", "rubTextureMapData");
} }
/** /**
* @param rubTextureMapData const uint8_t *<br> * @param rubTextureMapData const uint8_t *<br>
* C type : uint8_t* * C type : uint8_t*
*/ */
public RenderModel_TextureMap_t(short unWidth, short unHeight, Pointer rubTextureMapData) { public RenderModel_TextureMap_t(short unWidth, short unHeight, Pointer rubTextureMapData) {
super(); super();
this.unWidth = unWidth; this.unWidth = unWidth;
this.unHeight = unHeight; this.unHeight = unHeight;
this.rubTextureMapData = rubTextureMapData; this.rubTextureMapData = rubTextureMapData;
} }
public RenderModel_TextureMap_t(Pointer peer) { public RenderModel_TextureMap_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends RenderModel_TextureMap_t implements Structure.ByReference { public static class ByReference extends RenderModel_TextureMap_t implements Structure.ByReference {
}; };
public static class ByValue extends RenderModel_TextureMap_t implements Structure.ByValue { public static class ByValue extends RenderModel_TextureMap_t implements Structure.ByValue {
}; };
} }

@ -4,48 +4,48 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1211</i><br> * <i>native declaration : headers\openvr_capi.h:1238</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class RenderModel_Vertex_t extends Structure { public class RenderModel_Vertex_t extends Structure {
/** C type : HmdVector3_t */ /** C type : HmdVector3_t */
public HmdVector3_t vPosition; public HmdVector3_t vPosition;
/** C type : HmdVector3_t */ /** C type : HmdVector3_t */
public HmdVector3_t vNormal; public HmdVector3_t vNormal;
/** /**
* float[2]<br> * float[2]<br>
* C type : float[2] * C type : float[2]
*/ */
public float[] rfTextureCoord = new float[2]; public float[] rfTextureCoord = new float[2];
public RenderModel_Vertex_t() { public RenderModel_Vertex_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("vPosition", "vNormal", "rfTextureCoord"); return Arrays.asList("vPosition", "vNormal", "rfTextureCoord");
} }
/** /**
* @param vPosition C type : HmdVector3_t<br> * @param vPosition C type : HmdVector3_t<br>
* @param vNormal C type : HmdVector3_t<br> * @param vNormal C type : HmdVector3_t<br>
* @param rfTextureCoord float[2]<br> * @param rfTextureCoord float[2]<br>
* C type : float[2] * C type : float[2]
*/ */
public RenderModel_Vertex_t(HmdVector3_t vPosition, HmdVector3_t vNormal, float rfTextureCoord[]) { public RenderModel_Vertex_t(HmdVector3_t vPosition, HmdVector3_t vNormal, float rfTextureCoord[]) {
super(); super();
this.vPosition = vPosition; this.vPosition = vPosition;
this.vNormal = vNormal; this.vNormal = vNormal;
if ((rfTextureCoord.length != this.rfTextureCoord.length)) if ((rfTextureCoord.length != this.rfTextureCoord.length))
throw new IllegalArgumentException("Wrong array size !"); throw new IllegalArgumentException("Wrong array size !");
this.rfTextureCoord = rfTextureCoord; this.rfTextureCoord = rfTextureCoord;
} }
public RenderModel_Vertex_t(Pointer peer) { public RenderModel_Vertex_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends RenderModel_Vertex_t implements Structure.ByReference { public static class ByReference extends RenderModel_Vertex_t implements Structure.ByReference {
}; };
public static class ByValue extends RenderModel_Vertex_t implements Structure.ByValue { public static class ByValue extends RenderModel_Vertex_t implements Structure.ByValue {
}; };
} }

@ -5,54 +5,54 @@ import com.sun.jna.ptr.ShortByReference;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1226</i><br> * <i>native declaration : headers\openvr_capi.h:1253</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class RenderModel_t extends Structure { public class RenderModel_t extends Structure {
/** /**
* const struct vr::RenderModel_Vertex_t *<br> * const struct vr::RenderModel_Vertex_t *<br>
* C type : RenderModel_Vertex_t* * C type : RenderModel_Vertex_t*
*/ */
public com.jme3.system.jopenvr.RenderModel_Vertex_t.ByReference rVertexData; public com.jme3.system.jopenvr.RenderModel_Vertex_t.ByReference rVertexData;
public int unVertexCount; public int unVertexCount;
/** /**
* const uint16_t *<br> * const uint16_t *<br>
* C type : uint16_t* * C type : uint16_t*
*/ */
public ShortByReference rIndexData; public ShortByReference rIndexData;
public int unTriangleCount; public int unTriangleCount;
/** C type : TextureID_t */ /** C type : TextureID_t */
public int diffuseTextureId; public int diffuseTextureId;
public RenderModel_t() { public RenderModel_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("rVertexData", "unVertexCount", "rIndexData", "unTriangleCount", "diffuseTextureId"); return Arrays.asList("rVertexData", "unVertexCount", "rIndexData", "unTriangleCount", "diffuseTextureId");
} }
/** /**
* @param rVertexData const struct vr::RenderModel_Vertex_t *<br> * @param rVertexData const struct vr::RenderModel_Vertex_t *<br>
* C type : RenderModel_Vertex_t*<br> * C type : RenderModel_Vertex_t*<br>
* @param rIndexData const uint16_t *<br> * @param rIndexData const uint16_t *<br>
* C type : uint16_t*<br> * C type : uint16_t*<br>
* @param diffuseTextureId C type : TextureID_t * @param diffuseTextureId C type : TextureID_t
*/ */
public RenderModel_t(com.jme3.system.jopenvr.RenderModel_Vertex_t.ByReference rVertexData, int unVertexCount, ShortByReference rIndexData, int unTriangleCount, int diffuseTextureId) { public RenderModel_t(com.jme3.system.jopenvr.RenderModel_Vertex_t.ByReference rVertexData, int unVertexCount, ShortByReference rIndexData, int unTriangleCount, int diffuseTextureId) {
super(); super();
this.rVertexData = rVertexData; this.rVertexData = rVertexData;
this.unVertexCount = unVertexCount; this.unVertexCount = unVertexCount;
this.rIndexData = rIndexData; this.rIndexData = rIndexData;
this.unTriangleCount = unTriangleCount; this.unTriangleCount = unTriangleCount;
this.diffuseTextureId = diffuseTextureId; this.diffuseTextureId = diffuseTextureId;
} }
public RenderModel_t(Pointer peer) { public RenderModel_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends RenderModel_t implements Structure.ByReference { public static class ByReference extends RenderModel_t implements Structure.ByReference {
}; };
public static class ByValue extends RenderModel_t implements Structure.ByValue { public static class ByValue extends RenderModel_t implements Structure.ByValue {
}; };
} }

@ -4,54 +4,54 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:964</i><br> * <i>native declaration : headers\openvr_capi.h:991</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class Texture_t extends Structure { public class Texture_t extends Structure {
/** /**
* void *<br> * void *<br>
* C type : void* * C type : void*
*/ */
public int handle; public int handle;
/** /**
* @see ETextureType<br> * @see ETextureType<br>
* C type : ETextureType * C type : ETextureType
*/ */
public int eType; public int eType;
/** /**
* @see EColorSpace<br> * @see EColorSpace<br>
* C type : EColorSpace * C type : EColorSpace
*/ */
public int eColorSpace; public int eColorSpace;
public Texture_t() { public Texture_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("handle", "eType", "eColorSpace"); return Arrays.asList("handle", "eType", "eColorSpace");
} }
/** /**
* @param handle void *<br> * @param handle void *<br>
* C type : void*<br> * C type : void*<br>
* @param eType @see ETextureType<br> * @param eType @see ETextureType<br>
* C type : ETextureType<br> * C type : ETextureType<br>
* @param eColorSpace @see EColorSpace<br> * @param eColorSpace @see EColorSpace<br>
* C type : EColorSpace * C type : EColorSpace
*/ */
public Texture_t(int handle, int eType, int eColorSpace) { public Texture_t(int handle, int eType, int eColorSpace) {
super(); super();
this.handle = handle; this.handle = handle;
this.eType = eType; this.eType = eType;
this.eColorSpace = eColorSpace; this.eColorSpace = eColorSpace;
} }
public Texture_t(Pointer peer) { public Texture_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends Texture_t implements Structure.ByReference { public static class ByReference extends Texture_t implements Structure.ByReference {
}; };
public static class ByValue extends Texture_t implements Structure.ByValue { public static class ByValue extends Texture_t implements Structure.ByValue {
}; };
} }

@ -4,54 +4,54 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:974</i><br> * <i>native declaration : headers\openvr_capi.h:1001</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class TrackedDevicePose_t extends Structure { public class TrackedDevicePose_t extends Structure {
/** C type : HmdMatrix34_t */ /** C type : HmdMatrix34_t */
public HmdMatrix34_t mDeviceToAbsoluteTracking; public HmdMatrix34_t mDeviceToAbsoluteTracking;
/** C type : HmdVector3_t */ /** C type : HmdVector3_t */
public HmdVector3_t vVelocity; public HmdVector3_t vVelocity;
/** C type : HmdVector3_t */ /** C type : HmdVector3_t */
public HmdVector3_t vAngularVelocity; public HmdVector3_t vAngularVelocity;
/** /**
* @see ETrackingResult<br> * @see ETrackingResult<br>
* C type : ETrackingResult * C type : ETrackingResult
*/ */
public int eTrackingResult; public int eTrackingResult;
public byte bPoseIsValid; public byte bPoseIsValid;
public byte bDeviceIsConnected; public byte bDeviceIsConnected;
public TrackedDevicePose_t() { public TrackedDevicePose_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("mDeviceToAbsoluteTracking", "vVelocity", "vAngularVelocity", "eTrackingResult", "bPoseIsValid", "bDeviceIsConnected"); return Arrays.asList("mDeviceToAbsoluteTracking", "vVelocity", "vAngularVelocity", "eTrackingResult", "bPoseIsValid", "bDeviceIsConnected");
} }
/** /**
* @param mDeviceToAbsoluteTracking C type : HmdMatrix34_t<br> * @param mDeviceToAbsoluteTracking C type : HmdMatrix34_t<br>
* @param vVelocity C type : HmdVector3_t<br> * @param vVelocity C type : HmdVector3_t<br>
* @param vAngularVelocity C type : HmdVector3_t<br> * @param vAngularVelocity C type : HmdVector3_t<br>
* @param eTrackingResult @see ETrackingResult<br> * @param eTrackingResult @see ETrackingResult<br>
* C type : ETrackingResult * C type : ETrackingResult
*/ */
public TrackedDevicePose_t(HmdMatrix34_t mDeviceToAbsoluteTracking, HmdVector3_t vVelocity, HmdVector3_t vAngularVelocity, int eTrackingResult, byte bPoseIsValid, byte bDeviceIsConnected) { public TrackedDevicePose_t(HmdMatrix34_t mDeviceToAbsoluteTracking, HmdVector3_t vVelocity, HmdVector3_t vAngularVelocity, int eTrackingResult, byte bPoseIsValid, byte bDeviceIsConnected) {
super(); super();
this.mDeviceToAbsoluteTracking = mDeviceToAbsoluteTracking; this.mDeviceToAbsoluteTracking = mDeviceToAbsoluteTracking;
this.vVelocity = vVelocity; this.vVelocity = vVelocity;
this.vAngularVelocity = vAngularVelocity; this.vAngularVelocity = vAngularVelocity;
this.eTrackingResult = eTrackingResult; this.eTrackingResult = eTrackingResult;
this.bPoseIsValid = bPoseIsValid; this.bPoseIsValid = bPoseIsValid;
this.bDeviceIsConnected = bDeviceIsConnected; this.bDeviceIsConnected = bDeviceIsConnected;
} }
public TrackedDevicePose_t(Pointer peer) { public TrackedDevicePose_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends TrackedDevicePose_t implements Structure.ByReference { public static class ByReference extends TrackedDevicePose_t implements Structure.ByReference {
}; };
public static class ByValue extends TrackedDevicePose_t implements Structure.ByValue { public static class ByValue extends TrackedDevicePose_t implements Structure.ByValue {
}; };
} }

@ -4,32 +4,32 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1094</i><br> * <i>native declaration : headers\openvr_capi.h:1121</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VRControllerAxis_t extends Structure { public class VRControllerAxis_t extends Structure {
public float x; public float x;
public float y; public float y;
public VRControllerAxis_t() { public VRControllerAxis_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("x", "y"); return Arrays.asList("x", "y");
} }
public VRControllerAxis_t(float x, float y) { public VRControllerAxis_t(float x, float y) {
super(); super();
this.x = x; this.x = x;
this.y = y; this.y = y;
} }
public VRControllerAxis_t(Pointer peer) { public VRControllerAxis_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VRControllerAxis_t implements Structure.ByReference { public static class ByReference extends VRControllerAxis_t implements Structure.ByReference {
}; };
public static class ByValue extends VRControllerAxis_t implements Structure.ByValue { public static class ByValue extends VRControllerAxis_t implements Structure.ByValue {
}; };
} }

@ -4,46 +4,46 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1101</i><br> * <i>native declaration : headers\openvr_capi.h:1128</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VRControllerState_t extends Structure { public class VRControllerState_t extends Structure {
public int unPacketNum; public int unPacketNum;
public long ulButtonPressed; public long ulButtonPressed;
public long ulButtonTouched; public long ulButtonTouched;
/** /**
* struct vr::VRControllerAxis_t[5]<br> * struct vr::VRControllerAxis_t[5]<br>
* C type : VRControllerAxis_t[5] * C type : VRControllerAxis_t[5]
*/ */
public VRControllerAxis_t[] rAxis = new VRControllerAxis_t[5]; public VRControllerAxis_t[] rAxis = new VRControllerAxis_t[5];
public VRControllerState_t() { public VRControllerState_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("unPacketNum", "ulButtonPressed", "ulButtonTouched", "rAxis"); return Arrays.asList("unPacketNum", "ulButtonPressed", "ulButtonTouched", "rAxis");
} }
/** /**
* @param rAxis struct vr::VRControllerAxis_t[5]<br> * @param rAxis struct vr::VRControllerAxis_t[5]<br>
* C type : VRControllerAxis_t[5] * C type : VRControllerAxis_t[5]
*/ */
public VRControllerState_t(int unPacketNum, long ulButtonPressed, long ulButtonTouched, VRControllerAxis_t rAxis[]) { public VRControllerState_t(int unPacketNum, long ulButtonPressed, long ulButtonTouched, VRControllerAxis_t rAxis[]) {
super(); super();
this.unPacketNum = unPacketNum; this.unPacketNum = unPacketNum;
this.ulButtonPressed = ulButtonPressed; this.ulButtonPressed = ulButtonPressed;
this.ulButtonTouched = ulButtonTouched; this.ulButtonTouched = ulButtonTouched;
if ((rAxis.length != this.rAxis.length)) if ((rAxis.length != this.rAxis.length))
throw new IllegalArgumentException("Wrong array size !"); throw new IllegalArgumentException("Wrong array size !");
this.rAxis = rAxis; this.rAxis = rAxis;
} }
public VRControllerState_t(Pointer peer) { public VRControllerState_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VRControllerState_t implements Structure.ByReference { public static class ByReference extends VRControllerState_t implements Structure.ByReference {
}; };
public static class ByValue extends VRControllerState_t implements Structure.ByValue { public static class ByValue extends VRControllerState_t implements Structure.ByValue {
}; };
} }

@ -4,32 +4,32 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1072</i><br> * <i>native declaration : headers\openvr_capi.h:1099</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VREvent_ApplicationLaunch_t extends Structure { public class VREvent_ApplicationLaunch_t extends Structure {
public int pid; public int pid;
public int unArgsHandle; public int unArgsHandle;
public VREvent_ApplicationLaunch_t() { public VREvent_ApplicationLaunch_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("pid", "unArgsHandle"); return Arrays.asList("pid", "unArgsHandle");
} }
public VREvent_ApplicationLaunch_t(int pid, int unArgsHandle) { public VREvent_ApplicationLaunch_t(int pid, int unArgsHandle) {
super(); super();
this.pid = pid; this.pid = pid;
this.unArgsHandle = unArgsHandle; this.unArgsHandle = unArgsHandle;
} }
public VREvent_ApplicationLaunch_t(Pointer peer) { public VREvent_ApplicationLaunch_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VREvent_ApplicationLaunch_t implements Structure.ByReference { public static class ByReference extends VREvent_ApplicationLaunch_t implements Structure.ByReference {
}; };
public static class ByValue extends VREvent_ApplicationLaunch_t implements Structure.ByValue { public static class ByValue extends VREvent_ApplicationLaunch_t implements Structure.ByValue {
}; };
} }

@ -4,32 +4,32 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1051</i><br> * <i>native declaration : headers\openvr_capi.h:1078</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VREvent_Chaperone_t extends Structure { public class VREvent_Chaperone_t extends Structure {
public long m_nPreviousUniverse; public long m_nPreviousUniverse;
public long m_nCurrentUniverse; public long m_nCurrentUniverse;
public VREvent_Chaperone_t() { public VREvent_Chaperone_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("m_nPreviousUniverse", "m_nCurrentUniverse"); return Arrays.asList("m_nPreviousUniverse", "m_nCurrentUniverse");
} }
public VREvent_Chaperone_t(long m_nPreviousUniverse, long m_nCurrentUniverse) { public VREvent_Chaperone_t(long m_nPreviousUniverse, long m_nCurrentUniverse) {
super(); super();
this.m_nPreviousUniverse = m_nPreviousUniverse; this.m_nPreviousUniverse = m_nPreviousUniverse;
this.m_nCurrentUniverse = m_nCurrentUniverse; this.m_nCurrentUniverse = m_nCurrentUniverse;
} }
public VREvent_Chaperone_t(Pointer peer) { public VREvent_Chaperone_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VREvent_Chaperone_t implements Structure.ByReference { public static class ByReference extends VREvent_Chaperone_t implements Structure.ByReference {
}; };
public static class ByValue extends VREvent_Chaperone_t implements Structure.ByValue { public static class ByValue extends VREvent_Chaperone_t implements Structure.ByValue {
}; };
} }

@ -4,30 +4,30 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1006</i><br> * <i>native declaration : headers\openvr_capi.h:1033</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VREvent_Controller_t extends Structure { public class VREvent_Controller_t extends Structure {
public int button; public int button;
public VREvent_Controller_t() { public VREvent_Controller_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("button"); return Arrays.asList("button");
} }
public VREvent_Controller_t(int button) { public VREvent_Controller_t(int button) {
super(); super();
this.button = button; this.button = button;
} }
public VREvent_Controller_t(Pointer peer) { public VREvent_Controller_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VREvent_Controller_t implements Structure.ByReference { public static class ByReference extends VREvent_Controller_t implements Structure.ByReference {
}; };
public static class ByValue extends VREvent_Controller_t implements Structure.ByValue { public static class ByValue extends VREvent_Controller_t implements Structure.ByValue {
}; };
} }

@ -2,134 +2,134 @@ package com.jme3.system.jopenvr;
import com.sun.jna.Pointer; import com.sun.jna.Pointer;
import com.sun.jna.Union; import com.sun.jna.Union;
/** /**
* <i>native declaration : headers\openvr_capi.h:1278</i><br> * <i>native declaration : headers\openvr_capi.h:1307</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VREvent_Data_t extends Union { public class VREvent_Data_t extends Union {
/** C type : VREvent_Reserved_t */ /** C type : VREvent_Reserved_t */
public VREvent_Reserved_t reserved; public VREvent_Reserved_t reserved;
/** C type : VREvent_Controller_t */ /** C type : VREvent_Controller_t */
public VREvent_Controller_t controller; public VREvent_Controller_t controller;
/** C type : VREvent_Mouse_t */ /** C type : VREvent_Mouse_t */
public VREvent_Mouse_t mouse; public VREvent_Mouse_t mouse;
/** C type : VREvent_Scroll_t */ /** C type : VREvent_Scroll_t */
public VREvent_Scroll_t scroll; public VREvent_Scroll_t scroll;
/** C type : VREvent_Process_t */ /** C type : VREvent_Process_t */
public VREvent_Process_t process; public VREvent_Process_t process;
/** C type : VREvent_Notification_t */ /** C type : VREvent_Notification_t */
public VREvent_Notification_t notification; public VREvent_Notification_t notification;
/** C type : VREvent_Overlay_t */ /** C type : VREvent_Overlay_t */
public VREvent_Overlay_t overlay; public VREvent_Overlay_t overlay;
/** C type : VREvent_Status_t */ /** C type : VREvent_Status_t */
public VREvent_Status_t status; public VREvent_Status_t status;
/** C type : VREvent_Keyboard_t */ /** C type : VREvent_Keyboard_t */
public VREvent_Keyboard_t keyboard; public VREvent_Keyboard_t keyboard;
/** C type : VREvent_Ipd_t */ /** C type : VREvent_Ipd_t */
public VREvent_Ipd_t ipd; public VREvent_Ipd_t ipd;
/** C type : VREvent_Chaperone_t */ /** C type : VREvent_Chaperone_t */
public VREvent_Chaperone_t chaperone; public VREvent_Chaperone_t chaperone;
/** C type : VREvent_PerformanceTest_t */ /** C type : VREvent_PerformanceTest_t */
public VREvent_PerformanceTest_t performanceTest; public VREvent_PerformanceTest_t performanceTest;
/** C type : VREvent_TouchPadMove_t */ /** C type : VREvent_TouchPadMove_t */
public VREvent_TouchPadMove_t touchPadMove; public VREvent_TouchPadMove_t touchPadMove;
/** C type : VREvent_SeatedZeroPoseReset_t */ /** C type : VREvent_SeatedZeroPoseReset_t */
public VREvent_SeatedZeroPoseReset_t seatedZeroPoseReset; public VREvent_SeatedZeroPoseReset_t seatedZeroPoseReset;
public VREvent_Data_t() { public VREvent_Data_t() {
super(); super();
} }
/** @param reserved C type : VREvent_Reserved_t */ /** @param reserved C type : VREvent_Reserved_t */
public VREvent_Data_t(VREvent_Reserved_t reserved) { public VREvent_Data_t(VREvent_Reserved_t reserved) {
super(); super();
this.reserved = reserved; this.reserved = reserved;
setType(VREvent_Reserved_t.class); setType(VREvent_Reserved_t.class);
} }
/** @param controller C type : VREvent_Controller_t */ /** @param controller C type : VREvent_Controller_t */
public VREvent_Data_t(VREvent_Controller_t controller) { public VREvent_Data_t(VREvent_Controller_t controller) {
super(); super();
this.controller = controller; this.controller = controller;
setType(VREvent_Controller_t.class); setType(VREvent_Controller_t.class);
} }
/** @param mouse C type : VREvent_Mouse_t */ /** @param mouse C type : VREvent_Mouse_t */
public VREvent_Data_t(VREvent_Mouse_t mouse) { public VREvent_Data_t(VREvent_Mouse_t mouse) {
super(); super();
this.mouse = mouse; this.mouse = mouse;
setType(VREvent_Mouse_t.class); setType(VREvent_Mouse_t.class);
} }
/** @param scroll C type : VREvent_Scroll_t */ /** @param scroll C type : VREvent_Scroll_t */
public VREvent_Data_t(VREvent_Scroll_t scroll) { public VREvent_Data_t(VREvent_Scroll_t scroll) {
super(); super();
this.scroll = scroll; this.scroll = scroll;
setType(VREvent_Scroll_t.class); setType(VREvent_Scroll_t.class);
} }
/** @param process C type : VREvent_Process_t */ /** @param process C type : VREvent_Process_t */
public VREvent_Data_t(VREvent_Process_t process) { public VREvent_Data_t(VREvent_Process_t process) {
super(); super();
this.process = process; this.process = process;
setType(VREvent_Process_t.class); setType(VREvent_Process_t.class);
} }
/** @param notification C type : VREvent_Notification_t */ /** @param notification C type : VREvent_Notification_t */
public VREvent_Data_t(VREvent_Notification_t notification) { public VREvent_Data_t(VREvent_Notification_t notification) {
super(); super();
this.notification = notification; this.notification = notification;
setType(VREvent_Notification_t.class); setType(VREvent_Notification_t.class);
} }
/** @param overlay C type : VREvent_Overlay_t */ /** @param overlay C type : VREvent_Overlay_t */
public VREvent_Data_t(VREvent_Overlay_t overlay) { public VREvent_Data_t(VREvent_Overlay_t overlay) {
super(); super();
this.overlay = overlay; this.overlay = overlay;
setType(VREvent_Overlay_t.class); setType(VREvent_Overlay_t.class);
} }
/** @param status C type : VREvent_Status_t */ /** @param status C type : VREvent_Status_t */
public VREvent_Data_t(VREvent_Status_t status) { public VREvent_Data_t(VREvent_Status_t status) {
super(); super();
this.status = status; this.status = status;
setType(VREvent_Status_t.class); setType(VREvent_Status_t.class);
} }
/** @param keyboard C type : VREvent_Keyboard_t */ /** @param keyboard C type : VREvent_Keyboard_t */
public VREvent_Data_t(VREvent_Keyboard_t keyboard) { public VREvent_Data_t(VREvent_Keyboard_t keyboard) {
super(); super();
this.keyboard = keyboard; this.keyboard = keyboard;
setType(VREvent_Keyboard_t.class); setType(VREvent_Keyboard_t.class);
} }
/** @param ipd C type : VREvent_Ipd_t */ /** @param ipd C type : VREvent_Ipd_t */
public VREvent_Data_t(VREvent_Ipd_t ipd) { public VREvent_Data_t(VREvent_Ipd_t ipd) {
super(); super();
this.ipd = ipd; this.ipd = ipd;
setType(VREvent_Ipd_t.class); setType(VREvent_Ipd_t.class);
} }
/** @param chaperone C type : VREvent_Chaperone_t */ /** @param chaperone C type : VREvent_Chaperone_t */
public VREvent_Data_t(VREvent_Chaperone_t chaperone) { public VREvent_Data_t(VREvent_Chaperone_t chaperone) {
super(); super();
this.chaperone = chaperone; this.chaperone = chaperone;
setType(VREvent_Chaperone_t.class); setType(VREvent_Chaperone_t.class);
} }
/** @param performanceTest C type : VREvent_PerformanceTest_t */ /** @param performanceTest C type : VREvent_PerformanceTest_t */
public VREvent_Data_t(VREvent_PerformanceTest_t performanceTest) { public VREvent_Data_t(VREvent_PerformanceTest_t performanceTest) {
super(); super();
this.performanceTest = performanceTest; this.performanceTest = performanceTest;
setType(VREvent_PerformanceTest_t.class); setType(VREvent_PerformanceTest_t.class);
} }
/** @param touchPadMove C type : VREvent_TouchPadMove_t */ /** @param touchPadMove C type : VREvent_TouchPadMove_t */
public VREvent_Data_t(VREvent_TouchPadMove_t touchPadMove) { public VREvent_Data_t(VREvent_TouchPadMove_t touchPadMove) {
super(); super();
this.touchPadMove = touchPadMove; this.touchPadMove = touchPadMove;
setType(VREvent_TouchPadMove_t.class); setType(VREvent_TouchPadMove_t.class);
} }
/** @param seatedZeroPoseReset C type : VREvent_SeatedZeroPoseReset_t */ /** @param seatedZeroPoseReset C type : VREvent_SeatedZeroPoseReset_t */
public VREvent_Data_t(VREvent_SeatedZeroPoseReset_t seatedZeroPoseReset) { public VREvent_Data_t(VREvent_SeatedZeroPoseReset_t seatedZeroPoseReset) {
super(); super();
this.seatedZeroPoseReset = seatedZeroPoseReset; this.seatedZeroPoseReset = seatedZeroPoseReset;
setType(VREvent_SeatedZeroPoseReset_t.class); setType(VREvent_SeatedZeroPoseReset_t.class);
} }
public VREvent_Data_t(Pointer peer) { public VREvent_Data_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VREvent_Data_t implements com.sun.jna.Structure.ByReference { public static class ByReference extends VREvent_Data_t implements com.sun.jna.Structure.ByReference {
}; };
public static class ByValue extends VREvent_Data_t implements com.sun.jna.Structure.ByValue { public static class ByValue extends VREvent_Data_t implements com.sun.jna.Structure.ByValue {
}; };
} }

@ -4,32 +4,32 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1076</i><br> * <i>native declaration : headers\openvr_capi.h:1103</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VREvent_EditingCameraSurface_t extends Structure { public class VREvent_EditingCameraSurface_t extends Structure {
public long overlayHandle; public long overlayHandle;
public int nVisualMode; public int nVisualMode;
public VREvent_EditingCameraSurface_t() { public VREvent_EditingCameraSurface_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("overlayHandle", "nVisualMode"); return Arrays.asList("overlayHandle", "nVisualMode");
} }
public VREvent_EditingCameraSurface_t(long overlayHandle, int nVisualMode) { public VREvent_EditingCameraSurface_t(long overlayHandle, int nVisualMode) {
super(); super();
this.overlayHandle = overlayHandle; this.overlayHandle = overlayHandle;
this.nVisualMode = nVisualMode; this.nVisualMode = nVisualMode;
} }
public VREvent_EditingCameraSurface_t(Pointer peer) { public VREvent_EditingCameraSurface_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VREvent_EditingCameraSurface_t implements Structure.ByReference { public static class ByReference extends VREvent_EditingCameraSurface_t implements Structure.ByReference {
}; };
public static class ByValue extends VREvent_EditingCameraSurface_t implements Structure.ByValue { public static class ByValue extends VREvent_EditingCameraSurface_t implements Structure.ByValue {
}; };
} }

@ -4,30 +4,30 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1047</i><br> * <i>native declaration : headers\openvr_capi.h:1074</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VREvent_Ipd_t extends Structure { public class VREvent_Ipd_t extends Structure {
public float ipdMeters; public float ipdMeters;
public VREvent_Ipd_t() { public VREvent_Ipd_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("ipdMeters"); return Arrays.asList("ipdMeters");
} }
public VREvent_Ipd_t(float ipdMeters) { public VREvent_Ipd_t(float ipdMeters) {
super(); super();
this.ipdMeters = ipdMeters; this.ipdMeters = ipdMeters;
} }
public VREvent_Ipd_t(Pointer peer) { public VREvent_Ipd_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VREvent_Ipd_t implements Structure.ByReference { public static class ByReference extends VREvent_Ipd_t implements Structure.ByReference {
}; };
public static class ByValue extends VREvent_Ipd_t implements Structure.ByValue { public static class ByValue extends VREvent_Ipd_t implements Structure.ByValue {
}; };
} }

@ -4,42 +4,42 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1044</i><br> * <i>native declaration : headers\openvr_capi.h:1071</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VREvent_Keyboard_t extends Structure { public class VREvent_Keyboard_t extends Structure {
/** /**
* char[8]<br> * char[8]<br>
* C type : char*[8] * C type : char*[8]
*/ */
public Pointer[] cNewInput = new Pointer[8]; public Pointer[] cNewInput = new Pointer[8];
public long uUserValue; public long uUserValue;
public VREvent_Keyboard_t() { public VREvent_Keyboard_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("cNewInput", "uUserValue"); return Arrays.asList("cNewInput", "uUserValue");
} }
/** /**
* @param cNewInput char[8]<br> * @param cNewInput char[8]<br>
* C type : char*[8] * C type : char*[8]
*/ */
public VREvent_Keyboard_t(Pointer cNewInput[], long uUserValue) { public VREvent_Keyboard_t(Pointer cNewInput[], long uUserValue) {
super(); super();
if ((cNewInput.length != this.cNewInput.length)) if ((cNewInput.length != this.cNewInput.length))
throw new IllegalArgumentException("Wrong array size !"); throw new IllegalArgumentException("Wrong array size !");
this.cNewInput = cNewInput; this.cNewInput = cNewInput;
this.uUserValue = uUserValue; this.uUserValue = uUserValue;
} }
public VREvent_Keyboard_t(Pointer peer) { public VREvent_Keyboard_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VREvent_Keyboard_t implements Structure.ByReference { public static class ByReference extends VREvent_Keyboard_t implements Structure.ByReference {
}; };
public static class ByValue extends VREvent_Keyboard_t implements Structure.ByValue { public static class ByValue extends VREvent_Keyboard_t implements Structure.ByValue {
}; };
} }

@ -4,30 +4,30 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1079</i><br> * <i>native declaration : headers\openvr_capi.h:1106</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VREvent_MessageOverlay_t extends Structure { public class VREvent_MessageOverlay_t extends Structure {
public int unVRMessageOverlayResponse; public int unVRMessageOverlayResponse;
public VREvent_MessageOverlay_t() { public VREvent_MessageOverlay_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("unVRMessageOverlayResponse"); return Arrays.asList("unVRMessageOverlayResponse");
} }
public VREvent_MessageOverlay_t(int unVRMessageOverlayResponse) { public VREvent_MessageOverlay_t(int unVRMessageOverlayResponse) {
super(); super();
this.unVRMessageOverlayResponse = unVRMessageOverlayResponse; this.unVRMessageOverlayResponse = unVRMessageOverlayResponse;
} }
public VREvent_MessageOverlay_t(Pointer peer) { public VREvent_MessageOverlay_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VREvent_MessageOverlay_t implements Structure.ByReference { public static class ByReference extends VREvent_MessageOverlay_t implements Structure.ByReference {
}; };
public static class ByValue extends VREvent_MessageOverlay_t implements Structure.ByValue { public static class ByValue extends VREvent_MessageOverlay_t implements Structure.ByValue {
}; };
} }

@ -4,34 +4,34 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1011</i><br> * <i>native declaration : headers\openvr_capi.h:1038</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VREvent_Mouse_t extends Structure { public class VREvent_Mouse_t extends Structure {
public float x; public float x;
public float y; public float y;
public int button; public int button;
public VREvent_Mouse_t() { public VREvent_Mouse_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("x", "y", "button"); return Arrays.asList("x", "y", "button");
} }
public VREvent_Mouse_t(float x, float y, int button) { public VREvent_Mouse_t(float x, float y, int button) {
super(); super();
this.x = x; this.x = x;
this.y = y; this.y = y;
this.button = button; this.button = button;
} }
public VREvent_Mouse_t(Pointer peer) { public VREvent_Mouse_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VREvent_Mouse_t implements Structure.ByReference { public static class ByReference extends VREvent_Mouse_t implements Structure.ByReference {
}; };
public static class ByValue extends VREvent_Mouse_t implements Structure.ByValue { public static class ByValue extends VREvent_Mouse_t implements Structure.ByValue {
}; };
} }

@ -4,32 +4,32 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1028</i><br> * <i>native declaration : headers\openvr_capi.h:1055</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VREvent_Notification_t extends Structure { public class VREvent_Notification_t extends Structure {
public long ulUserValue; public long ulUserValue;
public int notificationId; public int notificationId;
public VREvent_Notification_t() { public VREvent_Notification_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("ulUserValue", "notificationId"); return Arrays.asList("ulUserValue", "notificationId");
} }
public VREvent_Notification_t(long ulUserValue, int notificationId) { public VREvent_Notification_t(long ulUserValue, int notificationId) {
super(); super();
this.ulUserValue = ulUserValue; this.ulUserValue = ulUserValue;
this.notificationId = notificationId; this.notificationId = notificationId;
} }
public VREvent_Notification_t(Pointer peer) { public VREvent_Notification_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VREvent_Notification_t implements Structure.ByReference { public static class ByReference extends VREvent_Notification_t implements Structure.ByReference {
}; };
public static class ByValue extends VREvent_Notification_t implements Structure.ByValue { public static class ByValue extends VREvent_Notification_t implements Structure.ByValue {
}; };
} }

@ -4,30 +4,30 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1036</i><br> * <i>native declaration : headers\openvr_capi.h:1063</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VREvent_Overlay_t extends Structure { public class VREvent_Overlay_t extends Structure {
public long overlayHandle; public long overlayHandle;
public VREvent_Overlay_t() { public VREvent_Overlay_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("overlayHandle"); return Arrays.asList("overlayHandle");
} }
public VREvent_Overlay_t(long overlayHandle) { public VREvent_Overlay_t(long overlayHandle) {
super(); super();
this.overlayHandle = overlayHandle; this.overlayHandle = overlayHandle;
} }
public VREvent_Overlay_t(Pointer peer) { public VREvent_Overlay_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VREvent_Overlay_t implements Structure.ByReference { public static class ByReference extends VREvent_Overlay_t implements Structure.ByReference {
}; };
public static class ByValue extends VREvent_Overlay_t implements Structure.ByValue { public static class ByValue extends VREvent_Overlay_t implements Structure.ByValue {
}; };
} }

@ -4,30 +4,30 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1058</i><br> * <i>native declaration : headers\openvr_capi.h:1085</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VREvent_PerformanceTest_t extends Structure { public class VREvent_PerformanceTest_t extends Structure {
public int m_nFidelityLevel; public int m_nFidelityLevel;
public VREvent_PerformanceTest_t() { public VREvent_PerformanceTest_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("m_nFidelityLevel"); return Arrays.asList("m_nFidelityLevel");
} }
public VREvent_PerformanceTest_t(int m_nFidelityLevel) { public VREvent_PerformanceTest_t(int m_nFidelityLevel) {
super(); super();
this.m_nFidelityLevel = m_nFidelityLevel; this.m_nFidelityLevel = m_nFidelityLevel;
} }
public VREvent_PerformanceTest_t(Pointer peer) { public VREvent_PerformanceTest_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VREvent_PerformanceTest_t implements Structure.ByReference { public static class ByReference extends VREvent_PerformanceTest_t implements Structure.ByReference {
}; };
public static class ByValue extends VREvent_PerformanceTest_t implements Structure.ByValue { public static class ByValue extends VREvent_PerformanceTest_t implements Structure.ByValue {
}; };
} }

@ -4,34 +4,34 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1033</i><br> * <i>native declaration : headers\openvr_capi.h:1060</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VREvent_Process_t extends Structure { public class VREvent_Process_t extends Structure {
public int pid; public int pid;
public int oldPid; public int oldPid;
public byte bForced; public byte bForced;
public VREvent_Process_t() { public VREvent_Process_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("pid", "oldPid", "bForced"); return Arrays.asList("pid", "oldPid", "bForced");
} }
public VREvent_Process_t(int pid, int oldPid, byte bForced) { public VREvent_Process_t(int pid, int oldPid, byte bForced) {
super(); super();
this.pid = pid; this.pid = pid;
this.oldPid = oldPid; this.oldPid = oldPid;
this.bForced = bForced; this.bForced = bForced;
} }
public VREvent_Process_t(Pointer peer) { public VREvent_Process_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VREvent_Process_t implements Structure.ByReference { public static class ByReference extends VREvent_Process_t implements Structure.ByReference {
}; };
public static class ByValue extends VREvent_Process_t implements Structure.ByValue { public static class ByValue extends VREvent_Process_t implements Structure.ByValue {
}; };
} }

@ -4,42 +4,42 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1085</i><br> * <i>native declaration : headers\openvr_capi.h:1112</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VREvent_Property_t extends Structure { public class VREvent_Property_t extends Structure {
/** C type : PropertyContainerHandle_t */ /** C type : PropertyContainerHandle_t */
public long container; public long container;
/** /**
* @see ETrackedDeviceProperty<br> * @see ETrackedDeviceProperty<br>
* C type : ETrackedDeviceProperty * C type : ETrackedDeviceProperty
*/ */
public int prop; public int prop;
public VREvent_Property_t() { public VREvent_Property_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("container", "prop"); return Arrays.asList("container", "prop");
} }
/** /**
* @param container C type : PropertyContainerHandle_t<br> * @param container C type : PropertyContainerHandle_t<br>
* @param prop @see ETrackedDeviceProperty<br> * @param prop @see ETrackedDeviceProperty<br>
* C type : ETrackedDeviceProperty * C type : ETrackedDeviceProperty
*/ */
public VREvent_Property_t(long container, int prop) { public VREvent_Property_t(long container, int prop) {
super(); super();
this.container = container; this.container = container;
this.prop = prop; this.prop = prop;
} }
public VREvent_Property_t(Pointer peer) { public VREvent_Property_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VREvent_Property_t implements Structure.ByReference { public static class ByReference extends VREvent_Property_t implements Structure.ByReference {
}; };
public static class ByValue extends VREvent_Property_t implements Structure.ByValue { public static class ByValue extends VREvent_Property_t implements Structure.ByValue {
}; };
} }

@ -4,32 +4,32 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1055</i><br> * <i>native declaration : headers\openvr_capi.h:1082</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VREvent_Reserved_t extends Structure { public class VREvent_Reserved_t extends Structure {
public long reserved0; public long reserved0;
public long reserved1; public long reserved1;
public VREvent_Reserved_t() { public VREvent_Reserved_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("reserved0", "reserved1"); return Arrays.asList("reserved0", "reserved1");
} }
public VREvent_Reserved_t(long reserved0, long reserved1) { public VREvent_Reserved_t(long reserved0, long reserved1) {
super(); super();
this.reserved0 = reserved0; this.reserved0 = reserved0;
this.reserved1 = reserved1; this.reserved1 = reserved1;
} }
public VREvent_Reserved_t(Pointer peer) { public VREvent_Reserved_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VREvent_Reserved_t implements Structure.ByReference { public static class ByReference extends VREvent_Reserved_t implements Structure.ByReference {
}; };
public static class ByValue extends VREvent_Reserved_t implements Structure.ByValue { public static class ByValue extends VREvent_Reserved_t implements Structure.ByValue {
}; };
} }

@ -4,30 +4,30 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1068</i><br> * <i>native declaration : headers\openvr_capi.h:1095</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VREvent_ScreenshotProgress_t extends Structure { public class VREvent_ScreenshotProgress_t extends Structure {
public float progress; public float progress;
public VREvent_ScreenshotProgress_t() { public VREvent_ScreenshotProgress_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("progress"); return Arrays.asList("progress");
} }
public VREvent_ScreenshotProgress_t(float progress) { public VREvent_ScreenshotProgress_t(float progress) {
super(); super();
this.progress = progress; this.progress = progress;
} }
public VREvent_ScreenshotProgress_t(Pointer peer) { public VREvent_ScreenshotProgress_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VREvent_ScreenshotProgress_t implements Structure.ByReference { public static class ByReference extends VREvent_ScreenshotProgress_t implements Structure.ByReference {
}; };
public static class ByValue extends VREvent_ScreenshotProgress_t implements Structure.ByValue { public static class ByValue extends VREvent_ScreenshotProgress_t implements Structure.ByValue {
}; };
} }

@ -4,32 +4,32 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1065</i><br> * <i>native declaration : headers\openvr_capi.h:1092</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VREvent_Screenshot_t extends Structure { public class VREvent_Screenshot_t extends Structure {
public int handle; public int handle;
public int type; public int type;
public VREvent_Screenshot_t() { public VREvent_Screenshot_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("handle", "type"); return Arrays.asList("handle", "type");
} }
public VREvent_Screenshot_t(int handle, int type) { public VREvent_Screenshot_t(int handle, int type) {
super(); super();
this.handle = handle; this.handle = handle;
this.type = type; this.type = type;
} }
public VREvent_Screenshot_t(Pointer peer) { public VREvent_Screenshot_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VREvent_Screenshot_t implements Structure.ByReference { public static class ByReference extends VREvent_Screenshot_t implements Structure.ByReference {
}; };
public static class ByValue extends VREvent_Screenshot_t implements Structure.ByValue { public static class ByValue extends VREvent_Screenshot_t implements Structure.ByValue {
}; };
} }

@ -4,34 +4,34 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1016</i><br> * <i>native declaration : headers\openvr_capi.h:1043</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VREvent_Scroll_t extends Structure { public class VREvent_Scroll_t extends Structure {
public float xdelta; public float xdelta;
public float ydelta; public float ydelta;
public int repeatCount; public int repeatCount;
public VREvent_Scroll_t() { public VREvent_Scroll_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("xdelta", "ydelta", "repeatCount"); return Arrays.asList("xdelta", "ydelta", "repeatCount");
} }
public VREvent_Scroll_t(float xdelta, float ydelta, int repeatCount) { public VREvent_Scroll_t(float xdelta, float ydelta, int repeatCount) {
super(); super();
this.xdelta = xdelta; this.xdelta = xdelta;
this.ydelta = ydelta; this.ydelta = ydelta;
this.repeatCount = repeatCount; this.repeatCount = repeatCount;
} }
public VREvent_Scroll_t(Pointer peer) { public VREvent_Scroll_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VREvent_Scroll_t implements Structure.ByReference { public static class ByReference extends VREvent_Scroll_t implements Structure.ByReference {
}; };
public static class ByValue extends VREvent_Scroll_t implements Structure.ByValue { public static class ByValue extends VREvent_Scroll_t implements Structure.ByValue {
}; };
} }

@ -4,30 +4,30 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1061</i><br> * <i>native declaration : headers\openvr_capi.h:1088</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VREvent_SeatedZeroPoseReset_t extends Structure { public class VREvent_SeatedZeroPoseReset_t extends Structure {
public byte bResetBySystemMenu; public byte bResetBySystemMenu;
public VREvent_SeatedZeroPoseReset_t() { public VREvent_SeatedZeroPoseReset_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("bResetBySystemMenu"); return Arrays.asList("bResetBySystemMenu");
} }
public VREvent_SeatedZeroPoseReset_t(byte bResetBySystemMenu) { public VREvent_SeatedZeroPoseReset_t(byte bResetBySystemMenu) {
super(); super();
this.bResetBySystemMenu = bResetBySystemMenu; this.bResetBySystemMenu = bResetBySystemMenu;
} }
public VREvent_SeatedZeroPoseReset_t(Pointer peer) { public VREvent_SeatedZeroPoseReset_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VREvent_SeatedZeroPoseReset_t implements Structure.ByReference { public static class ByReference extends VREvent_SeatedZeroPoseReset_t implements Structure.ByReference {
}; };
public static class ByValue extends VREvent_SeatedZeroPoseReset_t implements Structure.ByValue { public static class ByValue extends VREvent_SeatedZeroPoseReset_t implements Structure.ByValue {
}; };
} }

@ -4,30 +4,30 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1039</i><br> * <i>native declaration : headers\openvr_capi.h:1066</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VREvent_Status_t extends Structure { public class VREvent_Status_t extends Structure {
public int statusState; public int statusState;
public VREvent_Status_t() { public VREvent_Status_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("statusState"); return Arrays.asList("statusState");
} }
public VREvent_Status_t(int statusState) { public VREvent_Status_t(int statusState) {
super(); super();
this.statusState = statusState; this.statusState = statusState;
} }
public VREvent_Status_t(Pointer peer) { public VREvent_Status_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VREvent_Status_t implements Structure.ByReference { public static class ByReference extends VREvent_Status_t implements Structure.ByReference {
}; };
public static class ByValue extends VREvent_Status_t implements Structure.ByValue { public static class ByValue extends VREvent_Status_t implements Structure.ByValue {
}; };
} }

@ -4,40 +4,40 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1024</i><br> * <i>native declaration : headers\openvr_capi.h:1051</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VREvent_TouchPadMove_t extends Structure { public class VREvent_TouchPadMove_t extends Structure {
public byte bFingerDown; public byte bFingerDown;
public float flSecondsFingerDown; public float flSecondsFingerDown;
public float fValueXFirst; public float fValueXFirst;
public float fValueYFirst; public float fValueYFirst;
public float fValueXRaw; public float fValueXRaw;
public float fValueYRaw; public float fValueYRaw;
public VREvent_TouchPadMove_t() { public VREvent_TouchPadMove_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("bFingerDown", "flSecondsFingerDown", "fValueXFirst", "fValueYFirst", "fValueXRaw", "fValueYRaw"); return Arrays.asList("bFingerDown", "flSecondsFingerDown", "fValueXFirst", "fValueYFirst", "fValueXRaw", "fValueYRaw");
} }
public VREvent_TouchPadMove_t(byte bFingerDown, float flSecondsFingerDown, float fValueXFirst, float fValueYFirst, float fValueXRaw, float fValueYRaw) { public VREvent_TouchPadMove_t(byte bFingerDown, float flSecondsFingerDown, float fValueXFirst, float fValueYFirst, float fValueXRaw, float fValueYRaw) {
super(); super();
this.bFingerDown = bFingerDown; this.bFingerDown = bFingerDown;
this.flSecondsFingerDown = flSecondsFingerDown; this.flSecondsFingerDown = flSecondsFingerDown;
this.fValueXFirst = fValueXFirst; this.fValueXFirst = fValueXFirst;
this.fValueYFirst = fValueYFirst; this.fValueYFirst = fValueYFirst;
this.fValueXRaw = fValueXRaw; this.fValueXRaw = fValueXRaw;
this.fValueYRaw = fValueYRaw; this.fValueYRaw = fValueYRaw;
} }
public VREvent_TouchPadMove_t(Pointer peer) { public VREvent_TouchPadMove_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VREvent_TouchPadMove_t implements Structure.ByReference { public static class ByReference extends VREvent_TouchPadMove_t implements Structure.ByReference {
}; };
public static class ByValue extends VREvent_TouchPadMove_t implements Structure.ByValue { public static class ByValue extends VREvent_TouchPadMove_t implements Structure.ByValue {
}; };
} }

@ -4,45 +4,45 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* An event posted by the server to all running applications<br> * An event posted by the server to all running applications<br>
* <i>native declaration : headers\openvr_capi.h:1286</i><br> * <i>native declaration : headers\openvr_capi.h:1315</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VREvent_t extends Structure { public class VREvent_t extends Structure {
/** EVREventType enum */ /** EVREventType enum */
public int eventType; public int eventType;
/** C type : TrackedDeviceIndex_t */ /** C type : TrackedDeviceIndex_t */
public int trackedDeviceIndex; public int trackedDeviceIndex;
public float eventAgeSeconds; public float eventAgeSeconds;
/** C type : VREvent_Data_t */ /** C type : VREvent_Data_t */
public VREvent_Data_t data; public VREvent_Data_t data;
public VREvent_t() { public VREvent_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("eventType", "trackedDeviceIndex", "eventAgeSeconds", "data"); return Arrays.asList("eventType", "trackedDeviceIndex", "eventAgeSeconds", "data");
} }
/** /**
* @param eventType EVREventType enum<br> * @param eventType EVREventType enum<br>
* @param trackedDeviceIndex C type : TrackedDeviceIndex_t<br> * @param trackedDeviceIndex C type : TrackedDeviceIndex_t<br>
* @param data C type : VREvent_Data_t * @param data C type : VREvent_Data_t
*/ */
public VREvent_t(int eventType, int trackedDeviceIndex, float eventAgeSeconds, VREvent_Data_t data) { public VREvent_t(int eventType, int trackedDeviceIndex, float eventAgeSeconds, VREvent_Data_t data) {
super(); super();
this.eventType = eventType; this.eventType = eventType;
this.trackedDeviceIndex = trackedDeviceIndex; this.trackedDeviceIndex = trackedDeviceIndex;
this.eventAgeSeconds = eventAgeSeconds; this.eventAgeSeconds = eventAgeSeconds;
this.data = data; this.data = data;
} }
public VREvent_t(Pointer peer) { public VREvent_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VREvent_t implements Structure.ByReference { public static class ByReference extends VREvent_t implements Structure.ByReference {
}; };
public static class ByValue extends VREvent_t implements Structure.ByValue { public static class ByValue extends VREvent_t implements Structure.ByValue {
}; };
} }

@ -2,38 +2,38 @@ package com.jme3.system.jopenvr;
import com.sun.jna.Pointer; import com.sun.jna.Pointer;
import com.sun.jna.Union; import com.sun.jna.Union;
/** /**
* <i>native declaration : headers\openvr_capi.h:1290</i><br> * <i>native declaration : headers\openvr_capi.h:1319</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VROverlayIntersectionMaskPrimitive_Data_t extends Union { public class VROverlayIntersectionMaskPrimitive_Data_t extends Union {
/** C type : IntersectionMaskRectangle_t */ /** C type : IntersectionMaskRectangle_t */
public IntersectionMaskRectangle_t m_Rectangle; public IntersectionMaskRectangle_t m_Rectangle;
/** C type : IntersectionMaskCircle_t */ /** C type : IntersectionMaskCircle_t */
public IntersectionMaskCircle_t m_Circle; public IntersectionMaskCircle_t m_Circle;
public VROverlayIntersectionMaskPrimitive_Data_t() { public VROverlayIntersectionMaskPrimitive_Data_t() {
super(); super();
} }
/** @param m_Rectangle C type : IntersectionMaskRectangle_t */ /** @param m_Rectangle C type : IntersectionMaskRectangle_t */
public VROverlayIntersectionMaskPrimitive_Data_t(IntersectionMaskRectangle_t m_Rectangle) { public VROverlayIntersectionMaskPrimitive_Data_t(IntersectionMaskRectangle_t m_Rectangle) {
super(); super();
this.m_Rectangle = m_Rectangle; this.m_Rectangle = m_Rectangle;
setType(IntersectionMaskRectangle_t.class); setType(IntersectionMaskRectangle_t.class);
} }
/** @param m_Circle C type : IntersectionMaskCircle_t */ /** @param m_Circle C type : IntersectionMaskCircle_t */
public VROverlayIntersectionMaskPrimitive_Data_t(IntersectionMaskCircle_t m_Circle) { public VROverlayIntersectionMaskPrimitive_Data_t(IntersectionMaskCircle_t m_Circle) {
super(); super();
this.m_Circle = m_Circle; this.m_Circle = m_Circle;
setType(IntersectionMaskCircle_t.class); setType(IntersectionMaskCircle_t.class);
} }
public VROverlayIntersectionMaskPrimitive_Data_t(Pointer peer) { public VROverlayIntersectionMaskPrimitive_Data_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VROverlayIntersectionMaskPrimitive_Data_t implements com.sun.jna.Structure.ByReference { public static class ByReference extends VROverlayIntersectionMaskPrimitive_Data_t implements com.sun.jna.Structure.ByReference {
}; };
public static class ByValue extends VROverlayIntersectionMaskPrimitive_Data_t implements com.sun.jna.Structure.ByValue { public static class ByValue extends VROverlayIntersectionMaskPrimitive_Data_t implements com.sun.jna.Structure.ByValue {
}; };
} }

@ -4,42 +4,42 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1294</i><br> * <i>native declaration : headers\openvr_capi.h:1323</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VROverlayIntersectionMaskPrimitive_t extends Structure { public class VROverlayIntersectionMaskPrimitive_t extends Structure {
/** /**
* @see EVROverlayIntersectionMaskPrimitiveType<br> * @see EVROverlayIntersectionMaskPrimitiveType<br>
* C type : EVROverlayIntersectionMaskPrimitiveType * C type : EVROverlayIntersectionMaskPrimitiveType
*/ */
public int m_nPrimitiveType; public int m_nPrimitiveType;
/** C type : VROverlayIntersectionMaskPrimitive_Data_t */ /** C type : VROverlayIntersectionMaskPrimitive_Data_t */
public VROverlayIntersectionMaskPrimitive_Data_t m_Primitive; public VROverlayIntersectionMaskPrimitive_Data_t m_Primitive;
public VROverlayIntersectionMaskPrimitive_t() { public VROverlayIntersectionMaskPrimitive_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("m_nPrimitiveType", "m_Primitive"); return Arrays.asList("m_nPrimitiveType", "m_Primitive");
} }
/** /**
* @param m_nPrimitiveType @see EVROverlayIntersectionMaskPrimitiveType<br> * @param m_nPrimitiveType @see EVROverlayIntersectionMaskPrimitiveType<br>
* C type : EVROverlayIntersectionMaskPrimitiveType<br> * C type : EVROverlayIntersectionMaskPrimitiveType<br>
* @param m_Primitive C type : VROverlayIntersectionMaskPrimitive_Data_t * @param m_Primitive C type : VROverlayIntersectionMaskPrimitive_Data_t
*/ */
public VROverlayIntersectionMaskPrimitive_t(int m_nPrimitiveType, VROverlayIntersectionMaskPrimitive_Data_t m_Primitive) { public VROverlayIntersectionMaskPrimitive_t(int m_nPrimitiveType, VROverlayIntersectionMaskPrimitive_Data_t m_Primitive) {
super(); super();
this.m_nPrimitiveType = m_nPrimitiveType; this.m_nPrimitiveType = m_nPrimitiveType;
this.m_Primitive = m_Primitive; this.m_Primitive = m_Primitive;
} }
public VROverlayIntersectionMaskPrimitive_t(Pointer peer) { public VROverlayIntersectionMaskPrimitive_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VROverlayIntersectionMaskPrimitive_t implements Structure.ByReference { public static class ByReference extends VROverlayIntersectionMaskPrimitive_t implements Structure.ByReference {
}; };
public static class ByValue extends VROverlayIntersectionMaskPrimitive_t implements Structure.ByValue { public static class ByValue extends VROverlayIntersectionMaskPrimitive_t implements Structure.ByValue {
}; };
} }

@ -4,46 +4,46 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1183</i><br> * <i>native declaration : headers\openvr_capi.h:1210</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VROverlayIntersectionParams_t extends Structure { public class VROverlayIntersectionParams_t extends Structure {
/** C type : HmdVector3_t */ /** C type : HmdVector3_t */
public HmdVector3_t vSource; public HmdVector3_t vSource;
/** C type : HmdVector3_t */ /** C type : HmdVector3_t */
public HmdVector3_t vDirection; public HmdVector3_t vDirection;
/** /**
* @see ETrackingUniverseOrigin<br> * @see ETrackingUniverseOrigin<br>
* C type : ETrackingUniverseOrigin * C type : ETrackingUniverseOrigin
*/ */
public int eOrigin; public int eOrigin;
public VROverlayIntersectionParams_t() { public VROverlayIntersectionParams_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("vSource", "vDirection", "eOrigin"); return Arrays.asList("vSource", "vDirection", "eOrigin");
} }
/** /**
* @param vSource C type : HmdVector3_t<br> * @param vSource C type : HmdVector3_t<br>
* @param vDirection C type : HmdVector3_t<br> * @param vDirection C type : HmdVector3_t<br>
* @param eOrigin @see ETrackingUniverseOrigin<br> * @param eOrigin @see ETrackingUniverseOrigin<br>
* C type : ETrackingUniverseOrigin * C type : ETrackingUniverseOrigin
*/ */
public VROverlayIntersectionParams_t(HmdVector3_t vSource, HmdVector3_t vDirection, int eOrigin) { public VROverlayIntersectionParams_t(HmdVector3_t vSource, HmdVector3_t vDirection, int eOrigin) {
super(); super();
this.vSource = vSource; this.vSource = vSource;
this.vDirection = vDirection; this.vDirection = vDirection;
this.eOrigin = eOrigin; this.eOrigin = eOrigin;
} }
public VROverlayIntersectionParams_t(Pointer peer) { public VROverlayIntersectionParams_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VROverlayIntersectionParams_t implements Structure.ByReference { public static class ByReference extends VROverlayIntersectionParams_t implements Structure.ByReference {
}; };
public static class ByValue extends VROverlayIntersectionParams_t implements Structure.ByValue { public static class ByValue extends VROverlayIntersectionParams_t implements Structure.ByValue {
}; };
} }

@ -4,44 +4,44 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1189</i><br> * <i>native declaration : headers\openvr_capi.h:1216</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VROverlayIntersectionResults_t extends Structure { public class VROverlayIntersectionResults_t extends Structure {
/** C type : HmdVector3_t */ /** C type : HmdVector3_t */
public HmdVector3_t vPoint; public HmdVector3_t vPoint;
/** C type : HmdVector3_t */ /** C type : HmdVector3_t */
public HmdVector3_t vNormal; public HmdVector3_t vNormal;
/** C type : HmdVector2_t */ /** C type : HmdVector2_t */
public HmdVector2_t vUVs; public HmdVector2_t vUVs;
public float fDistance; public float fDistance;
public VROverlayIntersectionResults_t() { public VROverlayIntersectionResults_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("vPoint", "vNormal", "vUVs", "fDistance"); return Arrays.asList("vPoint", "vNormal", "vUVs", "fDistance");
} }
/** /**
* @param vPoint C type : HmdVector3_t<br> * @param vPoint C type : HmdVector3_t<br>
* @param vNormal C type : HmdVector3_t<br> * @param vNormal C type : HmdVector3_t<br>
* @param vUVs C type : HmdVector2_t * @param vUVs C type : HmdVector2_t
*/ */
public VROverlayIntersectionResults_t(HmdVector3_t vPoint, HmdVector3_t vNormal, HmdVector2_t vUVs, float fDistance) { public VROverlayIntersectionResults_t(HmdVector3_t vPoint, HmdVector3_t vNormal, HmdVector2_t vUVs, float fDistance) {
super(); super();
this.vPoint = vPoint; this.vPoint = vPoint;
this.vNormal = vNormal; this.vNormal = vNormal;
this.vUVs = vUVs; this.vUVs = vUVs;
this.fDistance = fDistance; this.fDistance = fDistance;
} }
public VROverlayIntersectionResults_t(Pointer peer) { public VROverlayIntersectionResults_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VROverlayIntersectionResults_t implements Structure.ByReference { public static class ByReference extends VROverlayIntersectionResults_t implements Structure.ByReference {
}; };
public static class ByValue extends VROverlayIntersectionResults_t implements Structure.ByValue { public static class ByValue extends VROverlayIntersectionResults_t implements Structure.ByValue {
}; };
} }

@ -4,36 +4,36 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:980</i><br> * <i>native declaration : headers\openvr_capi.h:1007</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VRTextureBounds_t extends Structure { public class VRTextureBounds_t extends Structure {
public float uMin; public float uMin;
public float vMin; public float vMin;
public float uMax; public float uMax;
public float vMax; public float vMax;
public VRTextureBounds_t() { public VRTextureBounds_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("uMin", "vMin", "uMax", "vMax"); return Arrays.asList("uMin", "vMin", "uMax", "vMax");
} }
public VRTextureBounds_t(float uMin, float vMin, float uMax, float vMax) { public VRTextureBounds_t(float uMin, float vMin, float uMax, float vMax) {
super(); super();
this.uMin = uMin; this.uMin = uMin;
this.vMin = vMin; this.vMin = vMin;
this.uMax = uMax; this.uMax = uMax;
this.vMax = vMax; this.vMax = vMax;
} }
public VRTextureBounds_t(Pointer peer) { public VRTextureBounds_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VRTextureBounds_t implements Structure.ByReference { public static class ByReference extends VRTextureBounds_t implements Structure.ByReference {
}; };
public static class ByValue extends VRTextureBounds_t implements Structure.ByValue { public static class ByValue extends VRTextureBounds_t implements Structure.ByValue {
}; };
} }

@ -8,51 +8,51 @@ import com.sun.jna.Structure;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:996</i><br> * <i>native declaration : headers\openvr_capi.h:1023</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VRVulkanTextureData_t extends Structure { public class VRVulkanTextureData_t extends Structure {
public long m_nImage; public long m_nImage;
/** /**
* struct VkDevice_T *<br> * struct VkDevice_T *<br>
* C type : VkDevice_T* * C type : VkDevice_T*
*/ */
public VkDevice_T m_pDevice; public VkDevice_T m_pDevice;
/** /**
* struct VkPhysicalDevice_T *<br> * struct VkPhysicalDevice_T *<br>
* C type : VkPhysicalDevice_T* * C type : VkPhysicalDevice_T*
*/ */
public VkPhysicalDevice_T m_pPhysicalDevice; public VkPhysicalDevice_T m_pPhysicalDevice;
/** /**
* struct VkInstance_T *<br> * struct VkInstance_T *<br>
* C type : VkInstance_T* * C type : VkInstance_T*
*/ */
public VkInstance_T m_pInstance; public VkInstance_T m_pInstance;
/** /**
* struct VkQueue_T *<br> * struct VkQueue_T *<br>
* C type : VkQueue_T* * C type : VkQueue_T*
*/ */
public VkQueue_T m_pQueue; public VkQueue_T m_pQueue;
public int m_nQueueFamilyIndex; public int m_nQueueFamilyIndex;
public int m_nWidth; public int m_nWidth;
public int m_nHeight; public int m_nHeight;
public int m_nFormat; public int m_nFormat;
public int m_nSampleCount; public int m_nSampleCount;
public VRVulkanTextureData_t() { public VRVulkanTextureData_t() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("m_nImage", "m_pDevice", "m_pPhysicalDevice", "m_pInstance", "m_pQueue", "m_nQueueFamilyIndex", "m_nWidth", "m_nHeight", "m_nFormat", "m_nSampleCount"); return Arrays.asList("m_nImage", "m_pDevice", "m_pPhysicalDevice", "m_pInstance", "m_pQueue", "m_nQueueFamilyIndex", "m_nWidth", "m_nHeight", "m_nFormat", "m_nSampleCount");
} }
public VRVulkanTextureData_t(Pointer peer) { public VRVulkanTextureData_t(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VRVulkanTextureData_t implements Structure.ByReference { public static class ByReference extends VRVulkanTextureData_t implements Structure.ByReference {
}; };
public static class ByValue extends VRVulkanTextureData_t implements Structure.ByValue { public static class ByValue extends VRVulkanTextureData_t implements Structure.ByValue {
}; };
} }

@ -6,211 +6,211 @@ import com.sun.jna.ptr.IntByReference;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1483</i><br> * <i>native declaration : headers\openvr_capi.h:1514</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VR_IVRApplications_FnTable extends Structure { public class VR_IVRApplications_FnTable extends Structure {
/** C type : AddApplicationManifest_callback* */ /** C type : AddApplicationManifest_callback* */
public VR_IVRApplications_FnTable.AddApplicationManifest_callback AddApplicationManifest; public VR_IVRApplications_FnTable.AddApplicationManifest_callback AddApplicationManifest;
/** C type : RemoveApplicationManifest_callback* */ /** C type : RemoveApplicationManifest_callback* */
public VR_IVRApplications_FnTable.RemoveApplicationManifest_callback RemoveApplicationManifest; public VR_IVRApplications_FnTable.RemoveApplicationManifest_callback RemoveApplicationManifest;
/** C type : IsApplicationInstalled_callback* */ /** C type : IsApplicationInstalled_callback* */
public VR_IVRApplications_FnTable.IsApplicationInstalled_callback IsApplicationInstalled; public VR_IVRApplications_FnTable.IsApplicationInstalled_callback IsApplicationInstalled;
/** C type : GetApplicationCount_callback* */ /** C type : GetApplicationCount_callback* */
public VR_IVRApplications_FnTable.GetApplicationCount_callback GetApplicationCount; public VR_IVRApplications_FnTable.GetApplicationCount_callback GetApplicationCount;
/** C type : GetApplicationKeyByIndex_callback* */ /** C type : GetApplicationKeyByIndex_callback* */
public VR_IVRApplications_FnTable.GetApplicationKeyByIndex_callback GetApplicationKeyByIndex; public VR_IVRApplications_FnTable.GetApplicationKeyByIndex_callback GetApplicationKeyByIndex;
/** C type : GetApplicationKeyByProcessId_callback* */ /** C type : GetApplicationKeyByProcessId_callback* */
public VR_IVRApplications_FnTable.GetApplicationKeyByProcessId_callback GetApplicationKeyByProcessId; public VR_IVRApplications_FnTable.GetApplicationKeyByProcessId_callback GetApplicationKeyByProcessId;
/** C type : LaunchApplication_callback* */ /** C type : LaunchApplication_callback* */
public VR_IVRApplications_FnTable.LaunchApplication_callback LaunchApplication; public VR_IVRApplications_FnTable.LaunchApplication_callback LaunchApplication;
/** C type : LaunchTemplateApplication_callback* */ /** C type : LaunchTemplateApplication_callback* */
public VR_IVRApplications_FnTable.LaunchTemplateApplication_callback LaunchTemplateApplication; public VR_IVRApplications_FnTable.LaunchTemplateApplication_callback LaunchTemplateApplication;
/** C type : LaunchApplicationFromMimeType_callback* */ /** C type : LaunchApplicationFromMimeType_callback* */
public VR_IVRApplications_FnTable.LaunchApplicationFromMimeType_callback LaunchApplicationFromMimeType; public VR_IVRApplications_FnTable.LaunchApplicationFromMimeType_callback LaunchApplicationFromMimeType;
/** C type : LaunchDashboardOverlay_callback* */ /** C type : LaunchDashboardOverlay_callback* */
public VR_IVRApplications_FnTable.LaunchDashboardOverlay_callback LaunchDashboardOverlay; public VR_IVRApplications_FnTable.LaunchDashboardOverlay_callback LaunchDashboardOverlay;
/** C type : CancelApplicationLaunch_callback* */ /** C type : CancelApplicationLaunch_callback* */
public VR_IVRApplications_FnTable.CancelApplicationLaunch_callback CancelApplicationLaunch; public VR_IVRApplications_FnTable.CancelApplicationLaunch_callback CancelApplicationLaunch;
/** C type : IdentifyApplication_callback* */ /** C type : IdentifyApplication_callback* */
public VR_IVRApplications_FnTable.IdentifyApplication_callback IdentifyApplication; public VR_IVRApplications_FnTable.IdentifyApplication_callback IdentifyApplication;
/** C type : GetApplicationProcessId_callback* */ /** C type : GetApplicationProcessId_callback* */
public VR_IVRApplications_FnTable.GetApplicationProcessId_callback GetApplicationProcessId; public VR_IVRApplications_FnTable.GetApplicationProcessId_callback GetApplicationProcessId;
/** C type : GetApplicationsErrorNameFromEnum_callback* */ /** C type : GetApplicationsErrorNameFromEnum_callback* */
public VR_IVRApplications_FnTable.GetApplicationsErrorNameFromEnum_callback GetApplicationsErrorNameFromEnum; public VR_IVRApplications_FnTable.GetApplicationsErrorNameFromEnum_callback GetApplicationsErrorNameFromEnum;
/** C type : GetApplicationPropertyString_callback* */ /** C type : GetApplicationPropertyString_callback* */
public VR_IVRApplications_FnTable.GetApplicationPropertyString_callback GetApplicationPropertyString; public VR_IVRApplications_FnTable.GetApplicationPropertyString_callback GetApplicationPropertyString;
/** C type : GetApplicationPropertyBool_callback* */ /** C type : GetApplicationPropertyBool_callback* */
public VR_IVRApplications_FnTable.GetApplicationPropertyBool_callback GetApplicationPropertyBool; public VR_IVRApplications_FnTable.GetApplicationPropertyBool_callback GetApplicationPropertyBool;
/** C type : GetApplicationPropertyUint64_callback* */ /** C type : GetApplicationPropertyUint64_callback* */
public VR_IVRApplications_FnTable.GetApplicationPropertyUint64_callback GetApplicationPropertyUint64; public VR_IVRApplications_FnTable.GetApplicationPropertyUint64_callback GetApplicationPropertyUint64;
/** C type : SetApplicationAutoLaunch_callback* */ /** C type : SetApplicationAutoLaunch_callback* */
public VR_IVRApplications_FnTable.SetApplicationAutoLaunch_callback SetApplicationAutoLaunch; public VR_IVRApplications_FnTable.SetApplicationAutoLaunch_callback SetApplicationAutoLaunch;
/** C type : GetApplicationAutoLaunch_callback* */ /** C type : GetApplicationAutoLaunch_callback* */
public VR_IVRApplications_FnTable.GetApplicationAutoLaunch_callback GetApplicationAutoLaunch; public VR_IVRApplications_FnTable.GetApplicationAutoLaunch_callback GetApplicationAutoLaunch;
/** C type : SetDefaultApplicationForMimeType_callback* */ /** C type : SetDefaultApplicationForMimeType_callback* */
public VR_IVRApplications_FnTable.SetDefaultApplicationForMimeType_callback SetDefaultApplicationForMimeType; public VR_IVRApplications_FnTable.SetDefaultApplicationForMimeType_callback SetDefaultApplicationForMimeType;
/** C type : GetDefaultApplicationForMimeType_callback* */ /** C type : GetDefaultApplicationForMimeType_callback* */
public VR_IVRApplications_FnTable.GetDefaultApplicationForMimeType_callback GetDefaultApplicationForMimeType; public VR_IVRApplications_FnTable.GetDefaultApplicationForMimeType_callback GetDefaultApplicationForMimeType;
/** C type : GetApplicationSupportedMimeTypes_callback* */ /** C type : GetApplicationSupportedMimeTypes_callback* */
public VR_IVRApplications_FnTable.GetApplicationSupportedMimeTypes_callback GetApplicationSupportedMimeTypes; public VR_IVRApplications_FnTable.GetApplicationSupportedMimeTypes_callback GetApplicationSupportedMimeTypes;
/** C type : GetApplicationsThatSupportMimeType_callback* */ /** C type : GetApplicationsThatSupportMimeType_callback* */
public VR_IVRApplications_FnTable.GetApplicationsThatSupportMimeType_callback GetApplicationsThatSupportMimeType; public VR_IVRApplications_FnTable.GetApplicationsThatSupportMimeType_callback GetApplicationsThatSupportMimeType;
/** C type : GetApplicationLaunchArguments_callback* */ /** C type : GetApplicationLaunchArguments_callback* */
public VR_IVRApplications_FnTable.GetApplicationLaunchArguments_callback GetApplicationLaunchArguments; public VR_IVRApplications_FnTable.GetApplicationLaunchArguments_callback GetApplicationLaunchArguments;
/** C type : GetStartingApplication_callback* */ /** C type : GetStartingApplication_callback* */
public VR_IVRApplications_FnTable.GetStartingApplication_callback GetStartingApplication; public VR_IVRApplications_FnTable.GetStartingApplication_callback GetStartingApplication;
/** C type : GetTransitionState_callback* */ /** C type : GetTransitionState_callback* */
public VR_IVRApplications_FnTable.GetTransitionState_callback GetTransitionState; public VR_IVRApplications_FnTable.GetTransitionState_callback GetTransitionState;
/** C type : PerformApplicationPrelaunchCheck_callback* */ /** C type : PerformApplicationPrelaunchCheck_callback* */
public VR_IVRApplications_FnTable.PerformApplicationPrelaunchCheck_callback PerformApplicationPrelaunchCheck; public VR_IVRApplications_FnTable.PerformApplicationPrelaunchCheck_callback PerformApplicationPrelaunchCheck;
/** C type : GetApplicationsTransitionStateNameFromEnum_callback* */ /** C type : GetApplicationsTransitionStateNameFromEnum_callback* */
public VR_IVRApplications_FnTable.GetApplicationsTransitionStateNameFromEnum_callback GetApplicationsTransitionStateNameFromEnum; public VR_IVRApplications_FnTable.GetApplicationsTransitionStateNameFromEnum_callback GetApplicationsTransitionStateNameFromEnum;
/** C type : IsQuitUserPromptRequested_callback* */ /** C type : IsQuitUserPromptRequested_callback* */
public VR_IVRApplications_FnTable.IsQuitUserPromptRequested_callback IsQuitUserPromptRequested; public VR_IVRApplications_FnTable.IsQuitUserPromptRequested_callback IsQuitUserPromptRequested;
/** C type : LaunchInternalProcess_callback* */ /** C type : LaunchInternalProcess_callback* */
public VR_IVRApplications_FnTable.LaunchInternalProcess_callback LaunchInternalProcess; public VR_IVRApplications_FnTable.LaunchInternalProcess_callback LaunchInternalProcess;
/** C type : GetCurrentSceneProcessId_callback* */ /** C type : GetCurrentSceneProcessId_callback* */
public VR_IVRApplications_FnTable.GetCurrentSceneProcessId_callback GetCurrentSceneProcessId; public VR_IVRApplications_FnTable.GetCurrentSceneProcessId_callback GetCurrentSceneProcessId;
/** <i>native declaration : headers\openvr_capi.h:1452</i> */ /** <i>native declaration : headers\openvr_capi.h:1483</i> */
public interface AddApplicationManifest_callback extends Callback { public interface AddApplicationManifest_callback extends Callback {
int apply(Pointer pchApplicationManifestFullPath, byte bTemporary); int apply(Pointer pchApplicationManifestFullPath, byte bTemporary);
}; };
/** <i>native declaration : headers\openvr_capi.h:1453</i> */ /** <i>native declaration : headers\openvr_capi.h:1484</i> */
public interface RemoveApplicationManifest_callback extends Callback { public interface RemoveApplicationManifest_callback extends Callback {
int apply(Pointer pchApplicationManifestFullPath); int apply(Pointer pchApplicationManifestFullPath);
}; };
/** <i>native declaration : headers\openvr_capi.h:1454</i> */ /** <i>native declaration : headers\openvr_capi.h:1485</i> */
public interface IsApplicationInstalled_callback extends Callback { public interface IsApplicationInstalled_callback extends Callback {
byte apply(Pointer pchAppKey); byte apply(Pointer pchAppKey);
}; };
/** <i>native declaration : headers\openvr_capi.h:1455</i> */ /** <i>native declaration : headers\openvr_capi.h:1486</i> */
public interface GetApplicationCount_callback extends Callback { public interface GetApplicationCount_callback extends Callback {
int apply(); int apply();
}; };
/** <i>native declaration : headers\openvr_capi.h:1456</i> */ /** <i>native declaration : headers\openvr_capi.h:1487</i> */
public interface GetApplicationKeyByIndex_callback extends Callback { public interface GetApplicationKeyByIndex_callback extends Callback {
int apply(int unApplicationIndex, Pointer pchAppKeyBuffer, int unAppKeyBufferLen); int apply(int unApplicationIndex, Pointer pchAppKeyBuffer, int unAppKeyBufferLen);
}; };
/** <i>native declaration : headers\openvr_capi.h:1457</i> */ /** <i>native declaration : headers\openvr_capi.h:1488</i> */
public interface GetApplicationKeyByProcessId_callback extends Callback { public interface GetApplicationKeyByProcessId_callback extends Callback {
int apply(int unProcessId, Pointer pchAppKeyBuffer, int unAppKeyBufferLen); int apply(int unProcessId, Pointer pchAppKeyBuffer, int unAppKeyBufferLen);
}; };
/** <i>native declaration : headers\openvr_capi.h:1458</i> */ /** <i>native declaration : headers\openvr_capi.h:1489</i> */
public interface LaunchApplication_callback extends Callback { public interface LaunchApplication_callback extends Callback {
int apply(Pointer pchAppKey); int apply(Pointer pchAppKey);
}; };
/** <i>native declaration : headers\openvr_capi.h:1459</i> */ /** <i>native declaration : headers\openvr_capi.h:1490</i> */
public interface LaunchTemplateApplication_callback extends Callback { public interface LaunchTemplateApplication_callback extends Callback {
int apply(Pointer pchTemplateAppKey, Pointer pchNewAppKey, AppOverrideKeys_t pKeys, int unKeys); int apply(Pointer pchTemplateAppKey, Pointer pchNewAppKey, AppOverrideKeys_t pKeys, int unKeys);
}; };
/** <i>native declaration : headers\openvr_capi.h:1460</i> */ /** <i>native declaration : headers\openvr_capi.h:1491</i> */
public interface LaunchApplicationFromMimeType_callback extends Callback { public interface LaunchApplicationFromMimeType_callback extends Callback {
int apply(Pointer pchMimeType, Pointer pchArgs); int apply(Pointer pchMimeType, Pointer pchArgs);
}; };
/** <i>native declaration : headers\openvr_capi.h:1461</i> */ /** <i>native declaration : headers\openvr_capi.h:1492</i> */
public interface LaunchDashboardOverlay_callback extends Callback { public interface LaunchDashboardOverlay_callback extends Callback {
int apply(Pointer pchAppKey); int apply(Pointer pchAppKey);
}; };
/** <i>native declaration : headers\openvr_capi.h:1462</i> */ /** <i>native declaration : headers\openvr_capi.h:1493</i> */
public interface CancelApplicationLaunch_callback extends Callback { public interface CancelApplicationLaunch_callback extends Callback {
byte apply(Pointer pchAppKey); byte apply(Pointer pchAppKey);
}; };
/** <i>native declaration : headers\openvr_capi.h:1463</i> */ /** <i>native declaration : headers\openvr_capi.h:1494</i> */
public interface IdentifyApplication_callback extends Callback { public interface IdentifyApplication_callback extends Callback {
int apply(int unProcessId, Pointer pchAppKey); int apply(int unProcessId, Pointer pchAppKey);
}; };
/** <i>native declaration : headers\openvr_capi.h:1464</i> */ /** <i>native declaration : headers\openvr_capi.h:1495</i> */
public interface GetApplicationProcessId_callback extends Callback { public interface GetApplicationProcessId_callback extends Callback {
int apply(Pointer pchAppKey); int apply(Pointer pchAppKey);
}; };
/** <i>native declaration : headers\openvr_capi.h:1465</i> */ /** <i>native declaration : headers\openvr_capi.h:1496</i> */
public interface GetApplicationsErrorNameFromEnum_callback extends Callback { public interface GetApplicationsErrorNameFromEnum_callback extends Callback {
Pointer apply(int error); Pointer apply(int error);
}; };
/** <i>native declaration : headers\openvr_capi.h:1466</i> */ /** <i>native declaration : headers\openvr_capi.h:1497</i> */
public interface GetApplicationPropertyString_callback extends Callback { public interface GetApplicationPropertyString_callback extends Callback {
int apply(Pointer pchAppKey, int eProperty, Pointer pchPropertyValueBuffer, int unPropertyValueBufferLen, IntByReference peError); int apply(Pointer pchAppKey, int eProperty, Pointer pchPropertyValueBuffer, int unPropertyValueBufferLen, IntByReference peError);
}; };
/** <i>native declaration : headers\openvr_capi.h:1467</i> */ /** <i>native declaration : headers\openvr_capi.h:1498</i> */
public interface GetApplicationPropertyBool_callback extends Callback { public interface GetApplicationPropertyBool_callback extends Callback {
byte apply(Pointer pchAppKey, int eProperty, IntByReference peError); byte apply(Pointer pchAppKey, int eProperty, IntByReference peError);
}; };
/** <i>native declaration : headers\openvr_capi.h:1468</i> */ /** <i>native declaration : headers\openvr_capi.h:1499</i> */
public interface GetApplicationPropertyUint64_callback extends Callback { public interface GetApplicationPropertyUint64_callback extends Callback {
long apply(Pointer pchAppKey, int eProperty, IntByReference peError); long apply(Pointer pchAppKey, int eProperty, IntByReference peError);
}; };
/** <i>native declaration : headers\openvr_capi.h:1469</i> */ /** <i>native declaration : headers\openvr_capi.h:1500</i> */
public interface SetApplicationAutoLaunch_callback extends Callback { public interface SetApplicationAutoLaunch_callback extends Callback {
int apply(Pointer pchAppKey, byte bAutoLaunch); int apply(Pointer pchAppKey, byte bAutoLaunch);
}; };
/** <i>native declaration : headers\openvr_capi.h:1470</i> */ /** <i>native declaration : headers\openvr_capi.h:1501</i> */
public interface GetApplicationAutoLaunch_callback extends Callback { public interface GetApplicationAutoLaunch_callback extends Callback {
byte apply(Pointer pchAppKey); byte apply(Pointer pchAppKey);
}; };
/** <i>native declaration : headers\openvr_capi.h:1471</i> */ /** <i>native declaration : headers\openvr_capi.h:1502</i> */
public interface SetDefaultApplicationForMimeType_callback extends Callback { public interface SetDefaultApplicationForMimeType_callback extends Callback {
int apply(Pointer pchAppKey, Pointer pchMimeType); int apply(Pointer pchAppKey, Pointer pchMimeType);
}; };
/** <i>native declaration : headers\openvr_capi.h:1472</i> */ /** <i>native declaration : headers\openvr_capi.h:1503</i> */
public interface GetDefaultApplicationForMimeType_callback extends Callback { public interface GetDefaultApplicationForMimeType_callback extends Callback {
byte apply(Pointer pchMimeType, Pointer pchAppKeyBuffer, int unAppKeyBufferLen); byte apply(Pointer pchMimeType, Pointer pchAppKeyBuffer, int unAppKeyBufferLen);
}; };
/** <i>native declaration : headers\openvr_capi.h:1473</i> */ /** <i>native declaration : headers\openvr_capi.h:1504</i> */
public interface GetApplicationSupportedMimeTypes_callback extends Callback { public interface GetApplicationSupportedMimeTypes_callback extends Callback {
byte apply(Pointer pchAppKey, Pointer pchMimeTypesBuffer, int unMimeTypesBuffer); byte apply(Pointer pchAppKey, Pointer pchMimeTypesBuffer, int unMimeTypesBuffer);
}; };
/** <i>native declaration : headers\openvr_capi.h:1474</i> */ /** <i>native declaration : headers\openvr_capi.h:1505</i> */
public interface GetApplicationsThatSupportMimeType_callback extends Callback { public interface GetApplicationsThatSupportMimeType_callback extends Callback {
int apply(Pointer pchMimeType, Pointer pchAppKeysThatSupportBuffer, int unAppKeysThatSupportBuffer); int apply(Pointer pchMimeType, Pointer pchAppKeysThatSupportBuffer, int unAppKeysThatSupportBuffer);
}; };
/** <i>native declaration : headers\openvr_capi.h:1475</i> */ /** <i>native declaration : headers\openvr_capi.h:1506</i> */
public interface GetApplicationLaunchArguments_callback extends Callback { public interface GetApplicationLaunchArguments_callback extends Callback {
int apply(int unHandle, Pointer pchArgs, int unArgs); int apply(int unHandle, Pointer pchArgs, int unArgs);
}; };
/** <i>native declaration : headers\openvr_capi.h:1476</i> */ /** <i>native declaration : headers\openvr_capi.h:1507</i> */
public interface GetStartingApplication_callback extends Callback { public interface GetStartingApplication_callback extends Callback {
int apply(Pointer pchAppKeyBuffer, int unAppKeyBufferLen); int apply(Pointer pchAppKeyBuffer, int unAppKeyBufferLen);
}; };
/** <i>native declaration : headers\openvr_capi.h:1477</i> */ /** <i>native declaration : headers\openvr_capi.h:1508</i> */
public interface GetTransitionState_callback extends Callback { public interface GetTransitionState_callback extends Callback {
int apply(); int apply();
}; };
/** <i>native declaration : headers\openvr_capi.h:1478</i> */ /** <i>native declaration : headers\openvr_capi.h:1509</i> */
public interface PerformApplicationPrelaunchCheck_callback extends Callback { public interface PerformApplicationPrelaunchCheck_callback extends Callback {
int apply(Pointer pchAppKey); int apply(Pointer pchAppKey);
}; };
/** <i>native declaration : headers\openvr_capi.h:1479</i> */ /** <i>native declaration : headers\openvr_capi.h:1510</i> */
public interface GetApplicationsTransitionStateNameFromEnum_callback extends Callback { public interface GetApplicationsTransitionStateNameFromEnum_callback extends Callback {
Pointer apply(int state); Pointer apply(int state);
}; };
/** <i>native declaration : headers\openvr_capi.h:1480</i> */ /** <i>native declaration : headers\openvr_capi.h:1511</i> */
public interface IsQuitUserPromptRequested_callback extends Callback { public interface IsQuitUserPromptRequested_callback extends Callback {
byte apply(); byte apply();
}; };
/** <i>native declaration : headers\openvr_capi.h:1481</i> */ /** <i>native declaration : headers\openvr_capi.h:1512</i> */
public interface LaunchInternalProcess_callback extends Callback { public interface LaunchInternalProcess_callback extends Callback {
int apply(Pointer pchBinaryPath, Pointer pchArguments, Pointer pchWorkingDirectory); int apply(Pointer pchBinaryPath, Pointer pchArguments, Pointer pchWorkingDirectory);
}; };
/** <i>native declaration : headers\openvr_capi.h:1482</i> */ /** <i>native declaration : headers\openvr_capi.h:1513</i> */
public interface GetCurrentSceneProcessId_callback extends Callback { public interface GetCurrentSceneProcessId_callback extends Callback {
int apply(); int apply();
}; };
public VR_IVRApplications_FnTable() { public VR_IVRApplications_FnTable() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("AddApplicationManifest", "RemoveApplicationManifest", "IsApplicationInstalled", "GetApplicationCount", "GetApplicationKeyByIndex", "GetApplicationKeyByProcessId", "LaunchApplication", "LaunchTemplateApplication", "LaunchApplicationFromMimeType", "LaunchDashboardOverlay", "CancelApplicationLaunch", "IdentifyApplication", "GetApplicationProcessId", "GetApplicationsErrorNameFromEnum", "GetApplicationPropertyString", "GetApplicationPropertyBool", "GetApplicationPropertyUint64", "SetApplicationAutoLaunch", "GetApplicationAutoLaunch", "SetDefaultApplicationForMimeType", "GetDefaultApplicationForMimeType", "GetApplicationSupportedMimeTypes", "GetApplicationsThatSupportMimeType", "GetApplicationLaunchArguments", "GetStartingApplication", "GetTransitionState", "PerformApplicationPrelaunchCheck", "GetApplicationsTransitionStateNameFromEnum", "IsQuitUserPromptRequested", "LaunchInternalProcess", "GetCurrentSceneProcessId"); return Arrays.asList("AddApplicationManifest", "RemoveApplicationManifest", "IsApplicationInstalled", "GetApplicationCount", "GetApplicationKeyByIndex", "GetApplicationKeyByProcessId", "LaunchApplication", "LaunchTemplateApplication", "LaunchApplicationFromMimeType", "LaunchDashboardOverlay", "CancelApplicationLaunch", "IdentifyApplication", "GetApplicationProcessId", "GetApplicationsErrorNameFromEnum", "GetApplicationPropertyString", "GetApplicationPropertyBool", "GetApplicationPropertyUint64", "SetApplicationAutoLaunch", "GetApplicationAutoLaunch", "SetDefaultApplicationForMimeType", "GetDefaultApplicationForMimeType", "GetApplicationSupportedMimeTypes", "GetApplicationsThatSupportMimeType", "GetApplicationLaunchArguments", "GetStartingApplication", "GetTransitionState", "PerformApplicationPrelaunchCheck", "GetApplicationsTransitionStateNameFromEnum", "IsQuitUserPromptRequested", "LaunchInternalProcess", "GetCurrentSceneProcessId");
} }
public VR_IVRApplications_FnTable(Pointer peer) { public VR_IVRApplications_FnTable(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VR_IVRApplications_FnTable implements Structure.ByReference { public static class ByReference extends VR_IVRApplications_FnTable implements Structure.ByReference {
}; };
public static class ByValue extends VR_IVRApplications_FnTable implements Structure.ByValue { public static class ByValue extends VR_IVRApplications_FnTable implements Structure.ByValue {
}; };
} }

@ -7,145 +7,145 @@ import com.sun.jna.ptr.IntByReference;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
* <i>native declaration : headers\openvr_capi.h:1543</i><br> * <i>native declaration : headers\openvr_capi.h:1574</i><br>
* This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
* a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br> * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
* For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>. * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
*/ */
public class VR_IVRChaperoneSetup_FnTable extends Structure { public class VR_IVRChaperoneSetup_FnTable extends Structure {
/** C type : CommitWorkingCopy_callback* */ /** C type : CommitWorkingCopy_callback* */
public VR_IVRChaperoneSetup_FnTable.CommitWorkingCopy_callback CommitWorkingCopy; public VR_IVRChaperoneSetup_FnTable.CommitWorkingCopy_callback CommitWorkingCopy;
/** C type : RevertWorkingCopy_callback* */ /** C type : RevertWorkingCopy_callback* */
public VR_IVRChaperoneSetup_FnTable.RevertWorkingCopy_callback RevertWorkingCopy; public VR_IVRChaperoneSetup_FnTable.RevertWorkingCopy_callback RevertWorkingCopy;
/** C type : GetWorkingPlayAreaSize_callback* */ /** C type : GetWorkingPlayAreaSize_callback* */
public VR_IVRChaperoneSetup_FnTable.GetWorkingPlayAreaSize_callback GetWorkingPlayAreaSize; public VR_IVRChaperoneSetup_FnTable.GetWorkingPlayAreaSize_callback GetWorkingPlayAreaSize;
/** C type : GetWorkingPlayAreaRect_callback* */ /** C type : GetWorkingPlayAreaRect_callback* */
public VR_IVRChaperoneSetup_FnTable.GetWorkingPlayAreaRect_callback GetWorkingPlayAreaRect; public VR_IVRChaperoneSetup_FnTable.GetWorkingPlayAreaRect_callback GetWorkingPlayAreaRect;
/** C type : GetWorkingCollisionBoundsInfo_callback* */ /** C type : GetWorkingCollisionBoundsInfo_callback* */
public VR_IVRChaperoneSetup_FnTable.GetWorkingCollisionBoundsInfo_callback GetWorkingCollisionBoundsInfo; public VR_IVRChaperoneSetup_FnTable.GetWorkingCollisionBoundsInfo_callback GetWorkingCollisionBoundsInfo;
/** C type : GetLiveCollisionBoundsInfo_callback* */ /** C type : GetLiveCollisionBoundsInfo_callback* */
public VR_IVRChaperoneSetup_FnTable.GetLiveCollisionBoundsInfo_callback GetLiveCollisionBoundsInfo; public VR_IVRChaperoneSetup_FnTable.GetLiveCollisionBoundsInfo_callback GetLiveCollisionBoundsInfo;
/** C type : GetWorkingSeatedZeroPoseToRawTrackingPose_callback* */ /** C type : GetWorkingSeatedZeroPoseToRawTrackingPose_callback* */
public VR_IVRChaperoneSetup_FnTable.GetWorkingSeatedZeroPoseToRawTrackingPose_callback GetWorkingSeatedZeroPoseToRawTrackingPose; public VR_IVRChaperoneSetup_FnTable.GetWorkingSeatedZeroPoseToRawTrackingPose_callback GetWorkingSeatedZeroPoseToRawTrackingPose;
/** C type : GetWorkingStandingZeroPoseToRawTrackingPose_callback* */ /** C type : GetWorkingStandingZeroPoseToRawTrackingPose_callback* */
public VR_IVRChaperoneSetup_FnTable.GetWorkingStandingZeroPoseToRawTrackingPose_callback GetWorkingStandingZeroPoseToRawTrackingPose; public VR_IVRChaperoneSetup_FnTable.GetWorkingStandingZeroPoseToRawTrackingPose_callback GetWorkingStandingZeroPoseToRawTrackingPose;
/** C type : SetWorkingPlayAreaSize_callback* */ /** C type : SetWorkingPlayAreaSize_callback* */
public VR_IVRChaperoneSetup_FnTable.SetWorkingPlayAreaSize_callback SetWorkingPlayAreaSize; public VR_IVRChaperoneSetup_FnTable.SetWorkingPlayAreaSize_callback SetWorkingPlayAreaSize;
/** C type : SetWorkingCollisionBoundsInfo_callback* */ /** C type : SetWorkingCollisionBoundsInfo_callback* */
public VR_IVRChaperoneSetup_FnTable.SetWorkingCollisionBoundsInfo_callback SetWorkingCollisionBoundsInfo; public VR_IVRChaperoneSetup_FnTable.SetWorkingCollisionBoundsInfo_callback SetWorkingCollisionBoundsInfo;
/** C type : SetWorkingSeatedZeroPoseToRawTrackingPose_callback* */ /** C type : SetWorkingSeatedZeroPoseToRawTrackingPose_callback* */
public VR_IVRChaperoneSetup_FnTable.SetWorkingSeatedZeroPoseToRawTrackingPose_callback SetWorkingSeatedZeroPoseToRawTrackingPose; public VR_IVRChaperoneSetup_FnTable.SetWorkingSeatedZeroPoseToRawTrackingPose_callback SetWorkingSeatedZeroPoseToRawTrackingPose;
/** C type : SetWorkingStandingZeroPoseToRawTrackingPose_callback* */ /** C type : SetWorkingStandingZeroPoseToRawTrackingPose_callback* */
public VR_IVRChaperoneSetup_FnTable.SetWorkingStandingZeroPoseToRawTrackingPose_callback SetWorkingStandingZeroPoseToRawTrackingPose; public VR_IVRChaperoneSetup_FnTable.SetWorkingStandingZeroPoseToRawTrackingPose_callback SetWorkingStandingZeroPoseToRawTrackingPose;
/** C type : ReloadFromDisk_callback* */ /** C type : ReloadFromDisk_callback* */
public VR_IVRChaperoneSetup_FnTable.ReloadFromDisk_callback ReloadFromDisk; public VR_IVRChaperoneSetup_FnTable.ReloadFromDisk_callback ReloadFromDisk;
/** C type : GetLiveSeatedZeroPoseToRawTrackingPose_callback* */ /** C type : GetLiveSeatedZeroPoseToRawTrackingPose_callback* */
public VR_IVRChaperoneSetup_FnTable.GetLiveSeatedZeroPoseToRawTrackingPose_callback GetLiveSeatedZeroPoseToRawTrackingPose; public VR_IVRChaperoneSetup_FnTable.GetLiveSeatedZeroPoseToRawTrackingPose_callback GetLiveSeatedZeroPoseToRawTrackingPose;
/** C type : SetWorkingCollisionBoundsTagsInfo_callback* */ /** C type : SetWorkingCollisionBoundsTagsInfo_callback* */
public VR_IVRChaperoneSetup_FnTable.SetWorkingCollisionBoundsTagsInfo_callback SetWorkingCollisionBoundsTagsInfo; public VR_IVRChaperoneSetup_FnTable.SetWorkingCollisionBoundsTagsInfo_callback SetWorkingCollisionBoundsTagsInfo;
/** C type : GetLiveCollisionBoundsTagsInfo_callback* */ /** C type : GetLiveCollisionBoundsTagsInfo_callback* */
public VR_IVRChaperoneSetup_FnTable.GetLiveCollisionBoundsTagsInfo_callback GetLiveCollisionBoundsTagsInfo; public VR_IVRChaperoneSetup_FnTable.GetLiveCollisionBoundsTagsInfo_callback GetLiveCollisionBoundsTagsInfo;
/** C type : SetWorkingPhysicalBoundsInfo_callback* */ /** C type : SetWorkingPhysicalBoundsInfo_callback* */
public VR_IVRChaperoneSetup_FnTable.SetWorkingPhysicalBoundsInfo_callback SetWorkingPhysicalBoundsInfo; public VR_IVRChaperoneSetup_FnTable.SetWorkingPhysicalBoundsInfo_callback SetWorkingPhysicalBoundsInfo;
/** C type : GetLivePhysicalBoundsInfo_callback* */ /** C type : GetLivePhysicalBoundsInfo_callback* */
public VR_IVRChaperoneSetup_FnTable.GetLivePhysicalBoundsInfo_callback GetLivePhysicalBoundsInfo; public VR_IVRChaperoneSetup_FnTable.GetLivePhysicalBoundsInfo_callback GetLivePhysicalBoundsInfo;
/** C type : ExportLiveToBuffer_callback* */ /** C type : ExportLiveToBuffer_callback* */
public VR_IVRChaperoneSetup_FnTable.ExportLiveToBuffer_callback ExportLiveToBuffer; public VR_IVRChaperoneSetup_FnTable.ExportLiveToBuffer_callback ExportLiveToBuffer;
/** C type : ImportFromBufferToWorking_callback* */ /** C type : ImportFromBufferToWorking_callback* */
public VR_IVRChaperoneSetup_FnTable.ImportFromBufferToWorking_callback ImportFromBufferToWorking; public VR_IVRChaperoneSetup_FnTable.ImportFromBufferToWorking_callback ImportFromBufferToWorking;
/** <i>native declaration : headers\openvr_capi.h:1523</i> */ /** <i>native declaration : headers\openvr_capi.h:1554</i> */
public interface CommitWorkingCopy_callback extends Callback { public interface CommitWorkingCopy_callback extends Callback {
byte apply(int configFile); byte apply(int configFile);
}; };
/** <i>native declaration : headers\openvr_capi.h:1524</i> */ /** <i>native declaration : headers\openvr_capi.h:1555</i> */
public interface RevertWorkingCopy_callback extends Callback { public interface RevertWorkingCopy_callback extends Callback {
void apply(); void apply();
}; };
/** <i>native declaration : headers\openvr_capi.h:1525</i> */ /** <i>native declaration : headers\openvr_capi.h:1556</i> */
public interface GetWorkingPlayAreaSize_callback extends Callback { public interface GetWorkingPlayAreaSize_callback extends Callback {
byte apply(FloatByReference pSizeX, FloatByReference pSizeZ); byte apply(FloatByReference pSizeX, FloatByReference pSizeZ);
}; };
/** <i>native declaration : headers\openvr_capi.h:1526</i> */ /** <i>native declaration : headers\openvr_capi.h:1557</i> */
public interface GetWorkingPlayAreaRect_callback extends Callback { public interface GetWorkingPlayAreaRect_callback extends Callback {
byte apply(HmdQuad_t rect); byte apply(HmdQuad_t rect);
}; };
/** <i>native declaration : headers\openvr_capi.h:1527</i> */ /** <i>native declaration : headers\openvr_capi.h:1558</i> */
public interface GetWorkingCollisionBoundsInfo_callback extends Callback { public interface GetWorkingCollisionBoundsInfo_callback extends Callback {
byte apply(HmdQuad_t pQuadsBuffer, IntByReference punQuadsCount); byte apply(HmdQuad_t pQuadsBuffer, IntByReference punQuadsCount);
}; };
/** <i>native declaration : headers\openvr_capi.h:1528</i> */ /** <i>native declaration : headers\openvr_capi.h:1559</i> */
public interface GetLiveCollisionBoundsInfo_callback extends Callback { public interface GetLiveCollisionBoundsInfo_callback extends Callback {
byte apply(HmdQuad_t pQuadsBuffer, IntByReference punQuadsCount); byte apply(HmdQuad_t pQuadsBuffer, IntByReference punQuadsCount);
}; };
/** <i>native declaration : headers\openvr_capi.h:1529</i> */ /** <i>native declaration : headers\openvr_capi.h:1560</i> */
public interface GetWorkingSeatedZeroPoseToRawTrackingPose_callback extends Callback { public interface GetWorkingSeatedZeroPoseToRawTrackingPose_callback extends Callback {
byte apply(HmdMatrix34_t pmatSeatedZeroPoseToRawTrackingPose); byte apply(HmdMatrix34_t pmatSeatedZeroPoseToRawTrackingPose);
}; };
/** <i>native declaration : headers\openvr_capi.h:1530</i> */ /** <i>native declaration : headers\openvr_capi.h:1561</i> */
public interface GetWorkingStandingZeroPoseToRawTrackingPose_callback extends Callback { public interface GetWorkingStandingZeroPoseToRawTrackingPose_callback extends Callback {
byte apply(HmdMatrix34_t pmatStandingZeroPoseToRawTrackingPose); byte apply(HmdMatrix34_t pmatStandingZeroPoseToRawTrackingPose);
}; };
/** <i>native declaration : headers\openvr_capi.h:1531</i> */ /** <i>native declaration : headers\openvr_capi.h:1562</i> */
public interface SetWorkingPlayAreaSize_callback extends Callback { public interface SetWorkingPlayAreaSize_callback extends Callback {
void apply(float sizeX, float sizeZ); void apply(float sizeX, float sizeZ);
}; };
/** <i>native declaration : headers\openvr_capi.h:1532</i> */ /** <i>native declaration : headers\openvr_capi.h:1563</i> */
public interface SetWorkingCollisionBoundsInfo_callback extends Callback { public interface SetWorkingCollisionBoundsInfo_callback extends Callback {
void apply(HmdQuad_t pQuadsBuffer, int unQuadsCount); void apply(HmdQuad_t pQuadsBuffer, int unQuadsCount);
}; };
/** <i>native declaration : headers\openvr_capi.h:1533</i> */ /** <i>native declaration : headers\openvr_capi.h:1564</i> */
public interface SetWorkingSeatedZeroPoseToRawTrackingPose_callback extends Callback { public interface SetWorkingSeatedZeroPoseToRawTrackingPose_callback extends Callback {
void apply(HmdMatrix34_t pMatSeatedZeroPoseToRawTrackingPose); void apply(HmdMatrix34_t pMatSeatedZeroPoseToRawTrackingPose);
}; };
/** <i>native declaration : headers\openvr_capi.h:1534</i> */ /** <i>native declaration : headers\openvr_capi.h:1565</i> */
public interface SetWorkingStandingZeroPoseToRawTrackingPose_callback extends Callback { public interface SetWorkingStandingZeroPoseToRawTrackingPose_callback extends Callback {
void apply(HmdMatrix34_t pMatStandingZeroPoseToRawTrackingPose); void apply(HmdMatrix34_t pMatStandingZeroPoseToRawTrackingPose);
}; };
/** <i>native declaration : headers\openvr_capi.h:1535</i> */ /** <i>native declaration : headers\openvr_capi.h:1566</i> */
public interface ReloadFromDisk_callback extends Callback { public interface ReloadFromDisk_callback extends Callback {
void apply(int configFile); void apply(int configFile);
}; };
/** <i>native declaration : headers\openvr_capi.h:1536</i> */ /** <i>native declaration : headers\openvr_capi.h:1567</i> */
public interface GetLiveSeatedZeroPoseToRawTrackingPose_callback extends Callback { public interface GetLiveSeatedZeroPoseToRawTrackingPose_callback extends Callback {
byte apply(HmdMatrix34_t pmatSeatedZeroPoseToRawTrackingPose); byte apply(HmdMatrix34_t pmatSeatedZeroPoseToRawTrackingPose);
}; };
/** <i>native declaration : headers\openvr_capi.h:1537</i> */ /** <i>native declaration : headers\openvr_capi.h:1568</i> */
public interface SetWorkingCollisionBoundsTagsInfo_callback extends Callback { public interface SetWorkingCollisionBoundsTagsInfo_callback extends Callback {
void apply(Pointer pTagsBuffer, int unTagCount); void apply(Pointer pTagsBuffer, int unTagCount);
}; };
/** <i>native declaration : headers\openvr_capi.h:1538</i> */ /** <i>native declaration : headers\openvr_capi.h:1569</i> */
public interface GetLiveCollisionBoundsTagsInfo_callback extends Callback { public interface GetLiveCollisionBoundsTagsInfo_callback extends Callback {
byte apply(Pointer pTagsBuffer, IntByReference punTagCount); byte apply(Pointer pTagsBuffer, IntByReference punTagCount);
}; };
/** <i>native declaration : headers\openvr_capi.h:1539</i> */ /** <i>native declaration : headers\openvr_capi.h:1570</i> */
public interface SetWorkingPhysicalBoundsInfo_callback extends Callback { public interface SetWorkingPhysicalBoundsInfo_callback extends Callback {
byte apply(HmdQuad_t pQuadsBuffer, int unQuadsCount); byte apply(HmdQuad_t pQuadsBuffer, int unQuadsCount);
}; };
/** <i>native declaration : headers\openvr_capi.h:1540</i> */ /** <i>native declaration : headers\openvr_capi.h:1571</i> */
public interface GetLivePhysicalBoundsInfo_callback extends Callback { public interface GetLivePhysicalBoundsInfo_callback extends Callback {
byte apply(HmdQuad_t pQuadsBuffer, IntByReference punQuadsCount); byte apply(HmdQuad_t pQuadsBuffer, IntByReference punQuadsCount);
}; };
/** <i>native declaration : headers\openvr_capi.h:1541</i> */ /** <i>native declaration : headers\openvr_capi.h:1572</i> */
public interface ExportLiveToBuffer_callback extends Callback { public interface ExportLiveToBuffer_callback extends Callback {
byte apply(Pointer pBuffer, IntByReference pnBufferLength); byte apply(Pointer pBuffer, IntByReference pnBufferLength);
}; };
/** <i>native declaration : headers\openvr_capi.h:1542</i> */ /** <i>native declaration : headers\openvr_capi.h:1573</i> */
public interface ImportFromBufferToWorking_callback extends Callback { public interface ImportFromBufferToWorking_callback extends Callback {
byte apply(Pointer pBuffer, int nImportFlags); byte apply(Pointer pBuffer, int nImportFlags);
}; };
public VR_IVRChaperoneSetup_FnTable() { public VR_IVRChaperoneSetup_FnTable() {
super(); super();
} }
protected List<String> getFieldOrder() { protected List<String> getFieldOrder() {
return Arrays.asList("CommitWorkingCopy", "RevertWorkingCopy", "GetWorkingPlayAreaSize", "GetWorkingPlayAreaRect", "GetWorkingCollisionBoundsInfo", "GetLiveCollisionBoundsInfo", "GetWorkingSeatedZeroPoseToRawTrackingPose", "GetWorkingStandingZeroPoseToRawTrackingPose", "SetWorkingPlayAreaSize", "SetWorkingCollisionBoundsInfo", "SetWorkingSeatedZeroPoseToRawTrackingPose", "SetWorkingStandingZeroPoseToRawTrackingPose", "ReloadFromDisk", "GetLiveSeatedZeroPoseToRawTrackingPose", "SetWorkingCollisionBoundsTagsInfo", "GetLiveCollisionBoundsTagsInfo", "SetWorkingPhysicalBoundsInfo", "GetLivePhysicalBoundsInfo", "ExportLiveToBuffer", "ImportFromBufferToWorking"); return Arrays.asList("CommitWorkingCopy", "RevertWorkingCopy", "GetWorkingPlayAreaSize", "GetWorkingPlayAreaRect", "GetWorkingCollisionBoundsInfo", "GetLiveCollisionBoundsInfo", "GetWorkingSeatedZeroPoseToRawTrackingPose", "GetWorkingStandingZeroPoseToRawTrackingPose", "SetWorkingPlayAreaSize", "SetWorkingCollisionBoundsInfo", "SetWorkingSeatedZeroPoseToRawTrackingPose", "SetWorkingStandingZeroPoseToRawTrackingPose", "ReloadFromDisk", "GetLiveSeatedZeroPoseToRawTrackingPose", "SetWorkingCollisionBoundsTagsInfo", "GetLiveCollisionBoundsTagsInfo", "SetWorkingPhysicalBoundsInfo", "GetLivePhysicalBoundsInfo", "ExportLiveToBuffer", "ImportFromBufferToWorking");
} }
public VR_IVRChaperoneSetup_FnTable(Pointer peer) { public VR_IVRChaperoneSetup_FnTable(Pointer peer) {
super(peer); super(peer);
} }
public static class ByReference extends VR_IVRChaperoneSetup_FnTable implements Structure.ByReference { public static class ByReference extends VR_IVRChaperoneSetup_FnTable implements Structure.ByReference {
}; };
public static class ByValue extends VR_IVRChaperoneSetup_FnTable implements Structure.ByValue { public static class ByValue extends VR_IVRChaperoneSetup_FnTable implements Structure.ByValue {
}; };
} }

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save