Jelajahi Sumber

Merge branch 'master' into yaRnMcDonuts-patch-9

Ryan McDonough 6 bulan lalu
induk
melakukan
4748826dc1
77 mengubah file dengan 663 tambahan dan 5934 penghapusan
  1. 3 3
      gradle/libs.versions.toml
  2. 11 2
      jme3-android/src/main/java/com/jme3/system/android/OGLESContext.java
  3. 38 23
      jme3-android/src/main/java/com/jme3/view/surfaceview/JmeSurfaceView.java
  4. 6 9
      jme3-core/src/main/java/com/jme3/anim/AnimComposer.java
  5. 73 135
      jme3-core/src/main/java/com/jme3/anim/SingleLayerInfluenceMask.java
  6. 85 0
      jme3-core/src/main/java/com/jme3/anim/tween/action/BlendSpace.java
  7. 59 4
      jme3-core/src/main/java/com/jme3/input/RawInputListenerAdapter.java
  8. 25 4
      jme3-core/src/main/java/com/jme3/math/Spline.java
  9. 4 30
      jme3-core/src/main/resources/Common/MatDefs/Light/Lighting.frag
  10. 3 4
      jme3-core/src/main/resources/Common/ShaderLib/MaterialFog.glsllib
  11. 28 10
      jme3-core/src/main/resources/Common/ShaderLib/module/pbrlighting/PBRLightingUtils.glsllib
  12. 175 0
      jme3-core/src/test/java/com/jme3/math/SplineTest.java
  13. 24 18
      jme3-desktop/src/main/java/com/jme3/input/awt/AwtMouseInput.java
  14. 108 57
      jme3-examples/src/main/java/jme3test/model/anim/TestSingleLayerInfluenceMask.java
  15. 3 1
      jme3-lwjgl3/build.gradle
  16. 11 2
      jme3-lwjgl3/src/main/java/com/jme3/system/lwjglx/Win32GLPlatform.java
  17. 1 1
      jme3-terrain/src/main/resources/Common/MatDefs/Terrain/Modular/PBRTerrainUtils.glsllib
  18. 4 24
      jme3-vr/src/main/java/com/jme3/app/VRApplication.java
  19. 0 15
      jme3-vr/src/main/java/com/jme3/app/VRConstants.java
  20. 1 12
      jme3-vr/src/main/java/com/jme3/app/VREnvironment.java
  21. 1 1
      jme3-vr/src/main/java/com/jme3/input/vr/VRAPI.java
  22. 0 459
      jme3-vr/src/main/java/com/jme3/input/vr/osvr/OSVR.java
  23. 0 347
      jme3-vr/src/main/java/com/jme3/input/vr/osvr/OSVRInput.java
  24. 0 106
      jme3-vr/src/main/java/com/jme3/input/vr/osvr/OSVRMouseManager.java
  25. 0 867
      jme3-vr/src/main/java/com/jme3/input/vr/osvr/OSVRViewManager.java
  26. 0 380
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientkit/OsvrClientKitLibrary.java
  27. 0 37
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_AccelerationReport.java
  28. 0 49
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_AccelerationState.java
  29. 0 37
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_AnalogReport.java
  30. 0 37
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_AngularAccelerationReport.java
  31. 0 37
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_AngularVelocityReport.java
  32. 0 37
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_ButtonReport.java
  33. 0 41
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_DirectionReport.java
  34. 0 41
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_EyeTracker2DReport.java
  35. 0 41
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_EyeTracker3DReport.java
  36. 0 49
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_EyeTracker3DState.java
  37. 0 41
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_EyeTrackerBlinkReport.java
  38. 0 37
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_IncrementalQuaternion.java
  39. 0 37
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_LinearAccelerationReport.java
  40. 0 37
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_LinearVelocityReport.java
  41. 0 41
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_Location2DReport.java
  42. 0 41
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_NaviPositionReport.java
  43. 0 41
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_NaviVelocityReport.java
  44. 0 37
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_OrientationReport.java
  45. 0 41
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_Pose3.java
  46. 0 37
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_PoseReport.java
  47. 0 37
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_PositionReport.java
  48. 0 37
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_Quaternion.java
  49. 0 37
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_Vec2.java
  50. 0 37
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_Vec3.java
  51. 0 37
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_VelocityReport.java
  52. 0 49
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_VelocityState.java
  53. 0 79
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OsvrClientReportTypesLibrary.java
  54. 0 851
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrdisplay/OsvrDisplayLibrary.java
  55. 0 24
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrinterface/OsvrInterfaceLibrary.java
  56. 0 41
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrmatrixconventions/OSVR_Pose3.java
  57. 0 37
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrmatrixconventions/OSVR_Quaternion.java
  58. 0 37
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrmatrixconventions/OSVR_Vec3.java
  59. 0 192
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrmatrixconventions/OsvrMatrixConventionsLibrary.java
  60. 0 45
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanager/OSVR_ProjectionMatrix.java
  61. 0 37
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanager/OSVR_RGB.java
  62. 0 53
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanager/OSVR_RenderParams.java
  63. 0 49
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanager/OSVR_ViewportDescription.java
  64. 0 117
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanager/OsvrRenderManagerLibrary.java
  65. 0 35
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanageropengl/OSVR_GraphicsLibraryOpenGL.java
  66. 0 57
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanageropengl/OSVR_OpenGLContextParams.java
  67. 0 92
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanageropengl/OSVR_OpenGLToolkitFunctions.java
  68. 0 48
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanageropengl/OSVR_OpenResultsOpenGL.java
  69. 0 45
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanageropengl/OSVR_ProjectionMatrix.java
  70. 0 37
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanageropengl/OSVR_RGB.java
  71. 0 35
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanageropengl/OSVR_RenderBufferOpenGL.java
  72. 0 48
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanageropengl/OSVR_RenderInfoOpenGL.java
  73. 0 53
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanageropengl/OSVR_RenderParams.java
  74. 0 49
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanageropengl/OSVR_ViewportDescription.java
  75. 0 169
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanageropengl/OsvrRenderManagerOpenGLLibrary.java
  76. 0 41
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrtimevalue/OSVR_TimeValue.java
  77. 0 119
      jme3-vr/src/main/java/com/jme3/system/osvr/osvrtimevalue/OsvrTimeValueLibrary.java

+ 3 - 3
gradle/libs.versions.toml

@@ -3,7 +3,7 @@
 [versions]
 
 checkstyle = "9.3"
-lwjgl3 = "3.3.4"
+lwjgl3 = "3.3.6"
 nifty = "1.4.3"
 
 [libraries]
@@ -14,7 +14,7 @@ androidx-annotation = "androidx.annotation:annotation:1.3.0"
 androidx-lifecycle-common = "androidx.lifecycle:lifecycle-common:2.4.0"
 gradle-git = "org.ajoberstar:gradle-git:1.2.0"
 gradle-retrolambda = "me.tatarka:gradle-retrolambda:3.7.1"
-groovy-test = "org.codehaus.groovy:groovy-test:3.0.22"
+groovy-test = "org.codehaus.groovy:groovy-test:3.0.24"
 gson = "com.google.code.gson:gson:2.9.1"
 j-ogg-vorbis = "com.github.stephengold:j-ogg-vorbis:1.0.6"
 jbullet = "com.github.stephengold:jbullet:1.0.3"
@@ -23,7 +23,7 @@ jna = "net.java.dev.jna:jna:5.10.0"
 jnaerator-runtime = "com.nativelibs4java:jnaerator-runtime:0.12"
 junit4 = "junit:junit:4.13.2"
 lwjgl2 = "org.jmonkeyengine:lwjgl:2.9.5"
-lwjgl3-awt = "org.lwjglx:lwjgl3-awt:0.1.8"
+lwjgl3-awt = "org.lwjglx:lwjgl3-awt:0.2.3"
 
 lwjgl3-base     = { module = "org.lwjgl:lwjgl",          version.ref = "lwjgl3" }
 lwjgl3-glfw     = { module = "org.lwjgl:lwjgl-glfw",     version.ref = "lwjgl3" }

+ 11 - 2
jme3-android/src/main/java/com/jme3/system/android/OGLESContext.java

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009-2023 jMonkeyEngine
+ * Copyright (c) 2009-2025 jMonkeyEngine
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -247,10 +247,19 @@ public class OGLESContext implements JmeContext, GLSurfaceView.Renderer, SoftTex
             }
 
             listener.destroy();
-
+            // releases the view holder from the Android Input Resources
+            // releasing the view enables the context instance to be
+            // reclaimed by the GC.
+            // if not released; it leads to a weak reference leak
+            // disabling the destruction of the Context View Holder.
+            androidInput.setView(null);
+
+            // nullifying the references
+            // signals their memory to be reclaimed
             listener = null;
             renderer = null;
             timer = null;
+            androidInput = null;
 
             // do android specific cleaning here
             logger.fine("Display destroyed.");

+ 38 - 23
jme3-android/src/main/java/com/jme3/view/surfaceview/JmeSurfaceView.java

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009-2022 jMonkeyEngine
+ * Copyright (c) 2009-2025 jMonkeyEngine
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -239,11 +239,7 @@ public class JmeSurfaceView extends RelativeLayout implements SystemListener, Di
     }
 
     private void removeGLSurfaceView() {
-        ((Activity) getContext()).runOnUiThread(() -> {
-            if (glSurfaceView != null) {
-                JmeSurfaceView.this.removeView(glSurfaceView);
-            }
-        });
+        ((Activity) getContext()).runOnUiThread(() -> JmeSurfaceView.this.removeView(glSurfaceView));
     }
 
     @Override
@@ -265,19 +261,34 @@ public class JmeSurfaceView extends RelativeLayout implements SystemListener, Di
     public void onStateChanged(@NonNull LifecycleOwner source, @NonNull Lifecycle.Event event) {
         switch (event) {
             case ON_DESTROY:
-                /*destroy only if the policy flag is enabled*/
-                if (destructionPolicy == DestructionPolicy.DESTROY_WHEN_FINISH) {
-                    legacyApplication.stop(!isGLThreadPaused());
-                }
+                // activity is off the foreground stack
+                // activity is being destructed completely as a result of Activity#finish()
+                // this is a killable automata state!
+                jmeSurfaceViewLogger.log(Level.INFO, "Hosting Activity has been destructed.");
                 break;
             case ON_PAUSE:
-                loseFocus();
+                // activity is still on the foreground stack but not
+                // on the topmost level or before transition to stopped/hidden or destroyed state
+                // as a result of dispatch to Activity#finish()
+                // activity is no longer visible and is out of foreground
+                if (((Activity) getContext()).isFinishing()) {
+                    if (destructionPolicy == DestructionPolicy.DESTROY_WHEN_FINISH) {
+                        legacyApplication.stop(!isGLThreadPaused());
+                    } else if (destructionPolicy == DestructionPolicy.KEEP_WHEN_FINISH) {
+                        jmeSurfaceViewLogger.log(Level.INFO, "Context stops, but game is still running.");
+                    }
+                } else {
+                    loseFocus();
+                }
                 break;
             case ON_RESUME:
+                // activity is back to the topmost of the
+                // foreground stack
                 gainFocus();
                 break;
             case ON_STOP:
-                jmeSurfaceViewLogger.log(Level.INFO, "Context stops, but game is still running");
+                // activity is out off the foreground stack or being destructed by a finishing dispatch
+                // this is a killable automata state!
                 break;
         }
     }
@@ -404,13 +415,13 @@ public class JmeSurfaceView extends RelativeLayout implements SystemListener, Di
 
     @Override
     public void destroy() {
-        /*skip the destroy block if the invoking instance is null*/
-        if (legacyApplication == null) {
-            return;
+        if (glSurfaceView != null) {
+            removeGLSurfaceView();
+        }
+        if (legacyApplication != null) {
+            legacyApplication.destroy();
         }
-        removeGLSurfaceView();
-        legacyApplication.destroy();
-        /*help the Dalvik Garbage collector to destruct the pointers, by making them nullptr*/
+        /*help the Dalvik Garbage collector to destruct the objects, by releasing their references*/
         /*context instances*/
         legacyApplication = null;
         appSettings = null;
@@ -430,10 +441,10 @@ public class JmeSurfaceView extends RelativeLayout implements SystemListener, Di
         onRendererCompleted = null;
         onExceptionThrown = null;
         onLayoutDrawn = null;
-        /*nullifying the static memory (pushing zero to registers to prepare for a clean use)*/
         GameState.setLegacyApplication(null);
         GameState.setFirstUpdatePassed(false);
-        jmeSurfaceViewLogger.log(Level.INFO, "Context and Game have been destructed");
+        JmeAndroidSystem.setView(null);
+        jmeSurfaceViewLogger.log(Level.INFO, "Context and Game have been destructed.");
     }
 
     @Override
@@ -516,11 +527,13 @@ public class JmeSurfaceView extends RelativeLayout implements SystemListener, Di
             /*register this Ui Component as an observer to the context of jmeSurfaceView only if this context is a LifeCycleOwner*/
             if (getContext() instanceof LifecycleOwner) {
                 ((LifecycleOwner) getContext()).getLifecycle().addObserver(JmeSurfaceView.this);
+                jmeSurfaceViewLogger.log(Level.INFO, "Command binding SurfaceView to the Activity Lifecycle.");
             }
         } else {
             /*un-register this Ui Component as an observer to the context of jmeSurfaceView only if this context is a LifeCycleOwner*/
             if (getContext() instanceof LifecycleOwner) {
                 ((LifecycleOwner) getContext()).getLifecycle().removeObserver(JmeSurfaceView.this);
+                jmeSurfaceViewLogger.log(Level.INFO, "Command removing SurfaceView from the Activity Lifecycle.");
             }
         }
     }
@@ -917,7 +930,7 @@ public class JmeSurfaceView extends RelativeLayout implements SystemListener, Di
     }
 
     /**
-     * Determines whether the app context would be destructed
+     * Determines whether the app context would be destructed as a result of dispatching {@link Activity#finish()}
      * with the holder activity context in case of {@link DestructionPolicy#DESTROY_WHEN_FINISH} or be
      * spared for a second use in case of {@link DestructionPolicy#KEEP_WHEN_FINISH}.
      * Default value is : {@link DestructionPolicy#DESTROY_WHEN_FINISH}.
@@ -926,12 +939,14 @@ public class JmeSurfaceView extends RelativeLayout implements SystemListener, Di
      */
     public enum DestructionPolicy {
         /**
-         * Finishes the game context with the activity context (ignores the static memory {@link GameState#legacyApplication}).
+         * Finishes the game context with the activity context (ignores the static memory {@link GameState#legacyApplication})
+         * as a result of dispatching {@link Activity#finish()}.
          */
         DESTROY_WHEN_FINISH,
         /**
          * Spares the game context inside a static memory {@link GameState#legacyApplication}
-         * when the activity context is destroyed, but the app stills in the background.
+         * when the activity context is destroyed dispatching {@link Activity#finish()}, but the {@link android.app.Application}
+         * stills in the background.
          */
         KEEP_WHEN_FINISH
     }

+ 6 - 9
jme3-core/src/main/java/com/jme3/anim/AnimComposer.java

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009-2024 jMonkeyEngine
+ * Copyright (c) 2009-2025 jMonkeyEngine
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -313,24 +313,21 @@ public class AnimComposer extends AbstractControl {
     /**
      * Add a layer to this composer.
      *
-     * @param name The desired name for the new layer
-     * @param mask The desired mask for the new layer (alias created)
-     * @return a new layer
+     * @param name the desired name for the new layer
+     * @param mask the desired mask for the new layer (alias created)
      */
-    public AnimLayer makeLayer(String name, AnimationMask mask) {
+    public void makeLayer(String name, AnimationMask mask) {
         AnimLayer l = new AnimLayer(name, mask);
         layers.put(name, l);
-        return l;
     }
 
     /**
      * Remove specified layer. This will stop the current action on this layer.
      *
      * @param name The name of the layer to remove.
-     * @return The removed layer.
      */
-    public AnimLayer removeLayer(String name) {
-        return layers.remove(name);
+    public void removeLayer(String name) {
+        layers.remove(name);
     }
 
     /**

+ 73 - 135
jme3-core/src/main/java/com/jme3/anim/SingleLayerInfluenceMask.java

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2024 jMonkeyEngine
+ * Copyright (c) 2025 jMonkeyEngine
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -31,188 +31,126 @@
  */
 package com.jme3.anim;
 
-import com.jme3.scene.Spatial;
+import com.jme3.export.InputCapsule;
+import com.jme3.export.JmeExporter;
+import com.jme3.export.JmeImporter;
+import com.jme3.export.OutputCapsule;
+import java.io.IOException;
 
 /**
- * Mask that excludes joints from participating in the layer
- * if a higher layer is using those joints in an animation.
- * 
+ * Mask that excludes joints from participating in the layer if a higher layer
+ * is using those joints in an animation.
+ *
  * @author codex
  */
 public class SingleLayerInfluenceMask extends ArmatureMask {
-    
-    private final String layer;
-    private final AnimComposer anim;
-    private final SkinningControl skin;
-    private boolean checkUpperLayers = true;
-    
-    /**
-     * @param layer The layer this mask is targeted for. It is important
-     * that this match the name of the layer this mask is (or will be) part of. You
-     * can use {@link makeLayer} to ensure this.
-     * @param spatial Spatial containing necessary controls ({@link AnimComposer} and {@link SkinningControl})
-     */
-    public SingleLayerInfluenceMask(String layer, Spatial spatial) {
-        super();
-        this.layer = layer;
-        anim = spatial.getControl(AnimComposer.class);
-        skin = spatial.getControl(SkinningControl.class);
-    }
-    /**
-     * @param layer The layer this mask is targeted for. It is important
-     * that this match the name of the layer this mask is (or will be) part of. You
-     * can use {@link makeLayer} to ensure this.
-     * @param anim anim composer this mask is assigned to
-     * @param skin skinning control complimenting the anim composer.
-     */
-    public SingleLayerInfluenceMask(String layer, AnimComposer anim, SkinningControl skin) {
-        super();
-        this.layer = layer;
-        this.anim = anim;
-        this.skin = skin;
-    }
-    
-    /**
-     * Makes a layer from this mask.
-     */
-    public void makeLayer() {
-        anim.makeLayer(layer, this);
-    }
-    
-    /**
-     * Adds all joints to this mask.
-     * @return this.instance
-     */
-    public SingleLayerInfluenceMask addAll() {
-        for (Joint j : skin.getArmature().getJointList()) {
-            super.addBones(skin.getArmature(), j.getName());
-        }
-        return this;
-    }
+
+    private String targetLayer;
+    private AnimComposer animComposer;
     
     /**
-     * Adds the given joint and all its children to this mask.
-     * @param joint
-     * @return this instance
+     * For serialization only. Do not use
      */
-    public SingleLayerInfluenceMask addFromJoint(String joint) {
-        super.addFromJoint(skin.getArmature(), joint);
-        return this;
+    protected SingleLayerInfluenceMask() {
     }
     
     /**
-     * Adds the given joints to this mask.
-     * @param joints
-     * @return this instance
+     * Instantiate a mask that affects all joints in the specified Armature.
+     *
+     * @param targetLayer  The layer this mask is targeted for.
+     * @param animComposer The animation composer associated with this mask.
+     * @param armature     The Armature containing the joints.
      */
-    public SingleLayerInfluenceMask addJoints(String... joints) {
-        super.addBones(skin.getArmature(), joints);
-        return this;
+    public SingleLayerInfluenceMask(String targetLayer, AnimComposer animComposer, Armature armature) {
+        super(armature);
+        this.targetLayer = targetLayer;
+        this.animComposer = animComposer;
     }
     
     /**
-     * Makes this mask check if each joint is being used by a higher layer
-     * before it uses them.
-     * <p>Not checking is more efficient, but checking can avoid some
-     * interpolation issues between layers. Default=true
-     * @param check 
-     * @return this instance
+     * Instantiate a mask that affects no joints.
+     * 
+     * @param targetLayer  The layer this mask is targeted for.
+     * @param animComposer The animation composer associated with this mask.
      */
-    public SingleLayerInfluenceMask setCheckUpperLayers(boolean check) {
-        checkUpperLayers = check;
-        return this;
+    public SingleLayerInfluenceMask(String targetLayer, AnimComposer animComposer) {
+        this.targetLayer = targetLayer;
+        this.animComposer = animComposer;
     }
-    
+
     /**
      * Get the layer this mask is targeted for.
-     * <p>It is extremely important that this value match the actual layer
-     * this is included in, because checking upper layers may not work if
-     * they are different.
-     * @return target layer
+     *
+     * @return The target layer
      */
     public String getTargetLayer() {
-        return layer;
+        return targetLayer;
     }
-    
-    /**
-     * Get the {@link AnimComposer} this mask is for.
-     * @return anim composer
-     */
-    public AnimComposer getAnimComposer() {
-        return anim;
-    }
-    
+
     /**
-     * Get the {@link SkinningControl} this mask is for.
-     * @return skinning control
+     * Sets the animation composer for this mask.
+     *
+     * @param animComposer The new animation composer.
      */
-    public SkinningControl getSkinningControl() {
-        return skin;
+    public void setAnimComposer(AnimComposer animComposer) {
+        this.animComposer = animComposer;
     }
-    
+
     /**
-     * Returns true if this mask is checking upper layers for joint use.
-     * @return 
+     * Checks if the specified target is contained within this mask.
+     *
+     * @param target The target to check.
+     * @return True if the target is contained within this mask, false otherwise.
      */
-    public boolean isCheckUpperLayers() {
-        return checkUpperLayers;
-    }
-    
     @Override
     public boolean contains(Object target) {
-        return simpleContains(target) && (!checkUpperLayers || !isAffectedByUpperLayers(target));
+        return simpleContains(target) && (animComposer == null || !isAffectedByUpperLayers(target));
     }
-    
+
     private boolean simpleContains(Object target) {
         return super.contains(target);
     }
-    
+
     private boolean isAffectedByUpperLayers(Object target) {
         boolean higher = false;
-        for (String name : anim.getLayerNames()) {
-            if (name.equals(layer)) {
+        for (String layerName : animComposer.getLayerNames()) {
+            if (layerName.equals(targetLayer)) {
                 higher = true;
                 continue;
             }
             if (!higher) {
                 continue;
             }
-            AnimLayer lyr = anim.getLayer(name);  
-            // if there is no action playing, no joints are used, so we can skip
-            if (lyr.getCurrentAction() == null) continue;
-            if (lyr.getMask() instanceof SingleLayerInfluenceMask) {
-                // dodge some needless recursion by calling a simpler method
-                if (((SingleLayerInfluenceMask)lyr.getMask()).simpleContains(target)) {
+            
+            AnimLayer animLayer = animComposer.getLayer(layerName);
+            if (animLayer.getCurrentAction() != null) {
+                AnimationMask mask = animLayer.getMask();
+                
+                if (mask instanceof SingleLayerInfluenceMask) {
+                    // dodge some needless recursion by calling a simpler method
+                    if (((SingleLayerInfluenceMask) mask).simpleContains(target)) {
+                        return true;
+                    }
+                } else if (mask != null && mask.contains(target)) {
                     return true;
                 }
             }
-            else if (lyr.getMask().contains(target)) {
-                return true;
-            }
         }
         return false;
     }
     
-    /**
-     * Creates an {@code SingleLayerInfluenceMask} for all joints.
-     * @param layer layer the returned mask is, or will be, be assigned to
-     * @param spatial spatial containing anim composer and skinning control
-     * @return new mask
-     */
-    public static SingleLayerInfluenceMask all(String layer, Spatial spatial) {
-        return new SingleLayerInfluenceMask(layer, spatial).addAll();
+    @Override
+    public void write(JmeExporter ex) throws IOException {
+        super.write(ex);
+        OutputCapsule oc = ex.getCapsule(this);
+        oc.write(targetLayer, "targetLayer", null);
     }
-    
-    /**
-     * Creates an {@code SingleLayerInfluenceMask} for all joints.
-     * @param layer layer the returned mask is, or will be, assigned to
-     * @param anim anim composer
-     * @param skin skinning control
-     * @return new mask
-     */
-    public static SingleLayerInfluenceMask all(String layer, AnimComposer anim, SkinningControl skin) {
-        return new SingleLayerInfluenceMask(layer, anim, skin).addAll();
+
+    @Override
+    public void read(JmeImporter im) throws IOException {
+        super.read(im);
+        InputCapsule ic = im.getCapsule(this);
+        targetLayer = ic.readString("targetLayer", null);
     }
-    
-}
 
+}

+ 85 - 0
jme3-core/src/main/java/com/jme3/anim/tween/action/BlendSpace.java

@@ -1,10 +1,95 @@
+/*
+ * Copyright (c) 2009-2025 jMonkeyEngine
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of 'jMonkeyEngine' nor the names of its contributors
+ *   may be used to endorse or promote products derived from this software
+ *   without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
 package com.jme3.anim.tween.action;
 
+/**
+ * A provider interface which provides a value {@link BlendSpace#getWeight()} to control the blending between 2 successive actions in a {@link BlendAction}.
+ * The blending weight is a read-only value, and it can be manipulated using the arbitrary value {@link BlendSpace#setValue(float)} during the application runtime.
+ * 
+ * <p>
+ * Notes about the blending action and its relations with the blending weight:
+ * <ul>
+ * <li> Blending is the action of mixing between 2 successive animation {@link BlendableAction}s by interpolating their transforms and 
+ * then applying the result on the assigned {@link HasLocalTransform} object, the {@link BlendSpace} provides this blending action with a blend weight value. </li>
+ * <li> The blend weight is the value for the interpolation for the target transforms. </li>
+ * <li> The blend weight value must be in this interval [0, 1]. </li>
+ * </ul>
+ * </p>
+ * 
+ * <p>
+ * Different blending weight case scenarios managed by {@link BlendAction} internally:
+ * <ul>
+ * <li> In case of (0 < Blending weight < 1), the blending is executed each update among 2 actions, the first action will use 
+ * a blend value of 1 and the second action will use the blend space weight as a value for the interpolation. </li>
+ * <li> In case of (Blending weight = 0), the blending hasn't started yet, only the first action will be interpolated at (weight = 1). </li>
+ * <li> In case of (Blending weight = 1), the blending is finished and only the second action will continue to run at (weight = 1). </li>
+ * </ul>
+ * </p>
+ * 
+ * <p>
+ * Notes about the blending weight value:
+ * <ul>
+ * <li> Negative values and values greater than 1 aren't allowed (i.e., extrapolations aren't allowed). </li>
+ * <li> For more details, see {@link BlendAction#doInterpolate(double)} and {@link BlendAction#collectTransform(HasLocalTransform, Transform, float, BlendableAction)}. </li>
+ * </ul>
+ * </p> 
+ *
+ * Created by Nehon.
+ * @see LinearBlendSpace an example of blendspace implementation
+ */
 public interface BlendSpace {
 
+    /**
+     * Adjusts the target blend action instance that will utilize the blend weight value provided by this blend-space implementation.
+     * 
+     * @param action the blend action instance that will utilize this blend-space (not null).
+     */
     public void setBlendAction(BlendAction action);
 
+    /**
+     * Provides the blend weight value to the assigned {@link BlendAction} instance,
+     * this value will be used for interpolating a collection of actions' transformations (i.e., keyframes).
+     * 
+     * @return the blending weight value in the range from 0 to 1, 
+     *         negative values and values above 1 aren't allowed.
+     * @see LinearBlendSpace#getWeight()
+     */
     public float getWeight();
 
+    /**
+     * An arbitrary value used for adjusting the blending weight value.
+     * 
+     * @param value the value in floats.
+     * @see LinearBlendSpace#setValue(float)
+     */
     public void setValue(float value);
 }

+ 59 - 4
jme3-vr/src/main/java/com/jme3/input/vr/osvr/package-info.java → jme3-core/src/main/java/com/jme3/input/RawInputListenerAdapter.java

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2021 jMonkeyEngine
+ * Copyright (c) 2009-2024 jMonkeyEngine
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -29,8 +29,63 @@
  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
+package com.jme3.input;
+
+import com.jme3.input.event.JoyAxisEvent;
+import com.jme3.input.event.JoyButtonEvent;
+import com.jme3.input.event.KeyInputEvent;
+import com.jme3.input.event.MouseButtonEvent;
+import com.jme3.input.event.MouseMotionEvent;
+import com.jme3.input.event.TouchEvent;
+
 /**
- * user-input classes for devices that use the Open Source Virtual Reality
- * (OSVR) API
+ * An abstract adapter class for {@link RawInputListener}.
+ *
+ * This class provides empty implementations for all methods in the
+ * {@link RawInputListener} interface, making it easier to create custom
+ * listeners by extending this class and overriding only the methods of
+ * interest.
  */
-package com.jme3.input.vr.osvr;
+public abstract class RawInputListenerAdapter implements RawInputListener {
+
+    @Override
+    public void beginInput() {
+        // No-op implementation
+    }
+
+    @Override
+    public void endInput() {
+        // No-op implementation
+    }
+
+    @Override
+    public void onJoyAxisEvent(JoyAxisEvent evt) {
+        // No-op implementation
+    }
+
+    @Override
+    public void onJoyButtonEvent(JoyButtonEvent evt) {
+        // No-op implementation
+    }
+
+    @Override
+    public void onMouseMotionEvent(MouseMotionEvent evt) {
+        // No-op implementation
+    }
+
+    @Override
+    public void onMouseButtonEvent(MouseButtonEvent evt) {
+        // No-op implementation
+    }
+
+    @Override
+    public void onKeyEvent(KeyInputEvent evt) {
+        // No-op implementation
+    }
+
+    @Override
+    public void onTouchEvent(TouchEvent evt) {
+        // No-op implementation
+    }
+
+}

+ 25 - 4
jme3-core/src/main/java/com/jme3/math/Spline.java

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009-2021 jMonkeyEngine
+ * Copyright (c) 2009-2025 jMonkeyEngine
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -480,7 +480,18 @@ public class Spline implements Savable {
         oc.writeSavableArrayList((ArrayList) CRcontrolPoints, "CRControlPoints", null);
         oc.write(curveTension, "curveTension", 0.5f);
         oc.write(cycle, "cycle", false);
-        oc.writeSavableArrayList((ArrayList<Float>) knots, "knots", null);
+
+        float[] knotArray;
+        if (knots == null) {
+            knotArray = null;
+        } else {
+            knotArray = new float[knots.size()];
+            for (int i = 0; i < knotArray.length; ++i) {
+                knotArray[i] = knots.get(i);
+            }
+        }
+        oc.write(knotArray, "knots", null);
+
         oc.write(weights, "weights", null);
         oc.write(basisFunctionDegree, "basisFunctionDegree", 0);
     }
@@ -506,12 +517,22 @@ public class Spline implements Savable {
                 segmentsLength.add(list[i]);
             }
         }
-        type = in.readEnum("pathSplineType", SplineType.class, SplineType.CatmullRom);
+        type = in.readEnum("type", SplineType.class, SplineType.CatmullRom);
         totalLength = in.readFloat("totalLength", 0);
         CRcontrolPoints = in.readSavableArrayList("CRControlPoints", null);
         curveTension = in.readFloat("curveTension", 0.5f);
         cycle = in.readBoolean("cycle", false);
-        knots = in.readSavableArrayList("knots", null);
+
+        float[] knotArray = in.readFloatArray("knots", null);
+        if (knotArray == null) {
+            this.knots = null;
+        } else {
+            this.knots = new ArrayList<>(knotArray.length);
+            for (float knot : knotArray) {
+                knots.add(knot);
+            }
+        }
+
         weights = in.readFloatArray("weights", null);
         basisFunctionDegree = in.readInt("basisFunctionDegree", 0);
     }

+ 4 - 30
jme3-core/src/main/resources/Common/MatDefs/Light/Lighting.frag

@@ -6,25 +6,9 @@
     #import "Common/ShaderLib/Lighting.glsllib"
 #endif
 
-// fog - jayfella
 #ifdef USE_FOG
-#import "Common/ShaderLib/MaterialFog.glsllib"
-varying float fog_distance;
-uniform vec4 m_FogColor;
-
-#ifdef FOG_LINEAR
-uniform vec2 m_LinearFog;
-#endif
-
-#ifdef FOG_EXP
-uniform float m_ExpFog;
-#endif
-
-#ifdef FOG_EXPSQ
-uniform float m_ExpSqFog;
-#endif
-
-#endif // end fog
+    #import "Common/ShaderLib/MaterialFog.glsllib"
+#endif 
 
 varying vec2 texCoord;
 #ifdef SEPARATE_TEXCOORD
@@ -231,21 +215,11 @@ void main(){
                            SpecularSum2.rgb * specularColor.rgb * vec3(light.y);
     #endif
 
-
     // add fog after the lighting because shadows will cause the fog to darken
     // which just results in the geometry looking like it's changed color
     #ifdef USE_FOG
-        #ifdef FOG_LINEAR
-            gl_FragColor = getFogLinear(gl_FragColor, m_FogColor, m_LinearFog.x, m_LinearFog.y, fog_distance);
-        #endif
-        #ifdef FOG_EXP
-            gl_FragColor = getFogExp(gl_FragColor, m_FogColor, m_ExpFog, fog_distance);
-        #endif
-        #ifdef FOG_EXPSQ
-            gl_FragColor = getFogExpSquare(gl_FragColor, m_FogColor, m_ExpSqFog, fog_distance);
-        #endif
-    #endif // end fog
-
+        gl_FragColor = MaterialFog_calculateFogColor(vec4(gl_FragColor));
+    #endif
 
     gl_FragColor.a = alpha;
 }

+ 3 - 4
jme3-core/src/main/resources/Common/ShaderLib/MaterialFog.glsllib

@@ -1,7 +1,7 @@
+//author @jayfella
 #ifndef __MATERIAL_FOG_UTIL__
     #define __MATERIAL_FOG_UTIL__
 
-
     vec4 getFogLinear(in vec4 diffuseColor, in vec4 fogColor, in float start, in float end, in float distance) {
 
         float fogFactor = (end - distance) / (end - start);
@@ -39,8 +39,7 @@
 
         #ifdef FOG_EXPSQ
             uniform float m_ExpSqFog;        
-        #endif
-        
+        #endif        
 
         vec4 MaterialFog_calculateFogColor(in vec4 fragColor){
             #ifdef FOG_LINEAR
@@ -54,7 +53,7 @@
             #endif
 
             return fragColor;
-        }           
+        }          
 
     #endif   
 #endif

+ 28 - 10
jme3-core/src/main/resources/Common/ShaderLib/module/pbrlighting/PBRLightingUtils.glsllib

@@ -236,7 +236,7 @@
             Math_lengthAndNormalize(light.vector,dist,L);
 
             float invRange=light.invRadius; // position.w
-            const float light_threshold=0.01;
+            const float light_threshold = 0.01;
 
             #ifdef SRGB
                 light.fallOff = (1.0 - invRange * dist) / (1.0 + invRange * dist * dist); // lightDir.w
@@ -272,11 +272,26 @@
 
     PBRSurface PBRLightingUtils_createPBRSurface(in vec3 wViewDir){
 
-        PBRSurface surface;
+        PBRSurface surface; //creates a new PBRSurface
+        
         surface.position = wPosition;
         surface.viewDir = wViewDir;
         surface.geometryNormal = normalize(wNormal);
 
+        //set default values
+        surface.hasTangents = false;
+        surface.hasBasicLightMap = false;        
+        surface.albedo = vec3(1.0);
+        surface.normal = surface.geometryNormal;
+        surface.emission = vec3(0.0);        
+        surface.ao = vec3(1.0);
+        surface.lightMapColor = vec3(0.0);
+        surface.alpha = 1.0;
+        surface.roughness = 1.0;
+        surface.metallic = 0.0;
+        surface.alpha = 1.0;
+        surface.exposure = 1.0;        
+        
         return surface;
     }
 
@@ -285,9 +300,9 @@
         
         void PBRLightingUtils_readPBRSurface(inout PBRSurface surface){
 
-            surface.bakedLightContribution = vec3(0);
-            surface.directLightContribution = vec3(0);
-            surface.envLightContribution = vec3(0);
+            surface.bakedLightContribution = vec3(0.0);
+            surface.directLightContribution = vec3(0.0);
+            surface.envLightContribution = vec3(0.0);
 
             #ifdef ENABLE_PBRLightingUtils_getWorldTangent
                 vec3 tan = normalize(wTangent.xyz); 
@@ -297,7 +312,7 @@
 
             
             #if (defined(PARALLAXMAP) || (defined(NORMALMAP_PARALLAX) && defined(NORMALMAP)))
-                vec3 vViewDir =  wViewDir * surface.tbnMat;  
+                vec3 vViewDir =  surface.viewDir * surface.tbnMat;  
                 #ifdef STEEP_PARALLAX
                     #ifdef NORMALMAP_PARALLAX
                         //parallax map is stored in the alpha channel of the normal map         
@@ -429,7 +444,7 @@
                 #endif
                 surface.emission = emissive.rgb * pow(emissive.a, m_EmissivePower) * m_EmissiveIntensity;
             #else 
-                surface.emission = vec3(0);
+                surface.emission = vec3(0.0);
             #endif
 
             PBRLightingUtils_readSunLightExposureParams(surface);
@@ -573,8 +588,8 @@
 
 
             #if NB_PROBES > 0
-                float probeNdfSum=0;
-                float invProbeNdfSum=0;    
+                float probeNdfSum = 0.0;
+                float invProbeNdfSum = 0.0;    
 
                 #for i=1..4 ( #if NB_PROBES >= $i $0 #endif )
                     vec3 probeColor$i;
@@ -607,7 +622,7 @@
                 #endfor
 
                 #if NB_PROBES > 1
-                    float probeWeightSum=0;
+                    float probeWeightSum = 0.0;
                     #for i=1..4 ( #if NB_PROBES >= $i $0 #endif )
                         float probeWeight$i = ((1.0 - (probeNdf$i / probeNdfSum)) / (NB_PROBES - 1)) *  ( probeInvNdf$i / invProbeNdfSum);
                         probeWeightSum += probeWeight$i;    
@@ -650,6 +665,9 @@
         else if(debugValuesMode == 7){
             outputColorForLayer.rgb = vec3(surface.alpha);          
         } 
+        else if(debugValuesMode == 8){
+            outputColorForLayer.rgb = vec3(surface.geometryNormal);          
+        }
 
         if(debugValuesMode >= 0){
             gl_FragColor.a = 1.0;

+ 175 - 0
jme3-core/src/test/java/com/jme3/math/SplineTest.java

@@ -0,0 +1,175 @@
+/*
+ * Copyright (c) 2025 jMonkeyEngine
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of 'jMonkeyEngine' nor the names of its contributors
+ *   may be used to endorse or promote products derived from this software
+ *   without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package com.jme3.math;
+
+import com.jme3.asset.AssetManager;
+import com.jme3.asset.DesktopAssetManager;
+import com.jme3.export.binary.BinaryExporter;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * Verifies that the {@link Spline} class works correctly.
+ *
+ * @author Stephen Gold
+ */
+public class SplineTest {
+    // *************************************************************************
+    // fields
+
+    private static final AssetManager assetManager = new DesktopAssetManager();
+    // *************************************************************************
+    // tests
+
+    /**
+     * Verifies that spline serialization/deserialization works correctly.
+     */
+    @Test
+    public void saveAndLoadSplines() {
+        // Serialize and deserialize a Bezier spline:
+        {
+            Vector3f[] controlPoints1 = {
+                new Vector3f(0f, 1f, 0f), new Vector3f(1f, 2f, 1f),
+                new Vector3f(1.5f, 1.5f, 1.5f), new Vector3f(2f, 0f, 1f)
+            };
+
+            Spline test1 = new Spline(
+                    Spline.SplineType.Bezier, controlPoints1, 0.1f, true);
+            Spline copy1 = BinaryExporter.saveAndLoad(assetManager, test1);
+            assertSplineEquals(test1, copy1);
+        }
+
+        // Serialize and deserialize a NURB spline:
+        {
+            List<Vector4f> controlPoints2 = new ArrayList<>(5);
+            controlPoints2.add(new Vector4f(0f, 1f, 2f, 3f));
+            controlPoints2.add(new Vector4f(3f, 1f, 4f, 0f));
+            controlPoints2.add(new Vector4f(2f, 5f, 3f, 0f));
+            controlPoints2.add(new Vector4f(3f, 2f, 3f, 1f));
+            controlPoints2.add(new Vector4f(0.5f, 1f, 0.6f, 5f));
+            List<Float> nurbKnots = new ArrayList<>(6);
+            nurbKnots.add(0.2f);
+            nurbKnots.add(0.3f);
+            nurbKnots.add(0.4f);
+            nurbKnots.add(0.43f);
+            nurbKnots.add(0.51f);
+            nurbKnots.add(0.52f);
+
+            Spline test2 = new Spline(controlPoints2, nurbKnots);
+            Spline copy2 = BinaryExporter.saveAndLoad(assetManager, test2);
+            assertSplineEquals(test2, copy2);
+        }
+
+        // Serialize and deserialize a Catmull-Rom spline:
+        {
+            List<Vector3f> controlPoints3 = new ArrayList<>(6);
+            controlPoints3.add(new Vector3f(0f, 1f, 2f));
+            controlPoints3.add(new Vector3f(3f, -1f, 4f));
+            controlPoints3.add(new Vector3f(2f, 5f, 3f));
+            controlPoints3.add(new Vector3f(3f, -2f, 3f));
+            controlPoints3.add(new Vector3f(0.5f, 1f, 0.6f));
+            controlPoints3.add(new Vector3f(-0.5f, 4f, 0.2f));
+
+            Spline test3 = new Spline(
+                    Spline.SplineType.CatmullRom, controlPoints3, 0.01f, false);
+            Spline copy3 = BinaryExporter.saveAndLoad(assetManager, test3);
+            assertSplineEquals(test3, copy3);
+        }
+
+        // Serialize and deserialize a linear spline:
+        {
+            List<Vector3f> controlPoints4 = new ArrayList<>(3);
+            controlPoints4.add(new Vector3f(3f, -1f, 4f));
+            controlPoints4.add(new Vector3f(2f, 0f, 3f));
+            controlPoints4.add(new Vector3f(3f, -2f, 3f));
+
+            Spline test4 = new Spline(
+                    Spline.SplineType.Linear, controlPoints4, 0f, true);
+            Spline copy4 = BinaryExporter.saveAndLoad(assetManager, test4);
+            assertSplineEquals(test4, copy4);
+        }
+
+        // Serialize and deserialize a default spline:
+        {
+            Spline test5 = new Spline();
+            Spline copy5 = BinaryExporter.saveAndLoad(assetManager, test5);
+            assertSplineEquals(test5, copy5);
+        }
+    }
+    // *************************************************************************
+    // private helper methods
+
+    /**
+     * Verify that the specified lists are equivalent.
+     *
+     * @param s1 the first list to compare (may be null, unaffected)
+     * @param s2 the 2nd list to compare (may be null, unaffected)
+     */
+    private static void assertListEquals(List<?> a1, List<?> a2) {
+        if (a1 != a2) {
+            Assert.assertEquals(a1.size(), a2.size());
+            for (int i = 0; i < a1.size(); ++i) {
+                Assert.assertEquals(a1.get(i), a2.get(i));
+            }
+        }
+    }
+
+    /**
+     * Verify that the specified splines are equivalent.
+     *
+     * @param s1 the first spline to compare (not null, unaffected)
+     * @param s2 the 2nd split to compare (not null, unaffected)
+     */
+    private static void assertSplineEquals(Spline s1, Spline s2) {
+        Assert.assertEquals(s1.getType(), s2.getType());
+        Assert.assertEquals(s1.isCycle(), s2.isCycle());
+
+        Assert.assertEquals(
+                s1.getBasisFunctionDegree(), s2.getBasisFunctionDegree());
+        assertListEquals(s1.getControlPoints(), s2.getControlPoints());
+        Assert.assertEquals(s1.getCurveTension(), s2.getCurveTension(), 0f);
+        assertListEquals(s1.getKnots(), s2.getKnots());
+
+        if (s1.getType() == Spline.SplineType.Nurb) {
+            // These methods throw NPEs on non-NURB splines.
+            Assert.assertEquals(s1.getMaxNurbKnot(), s2.getMaxNurbKnot(), 0f);
+            Assert.assertEquals(s1.getMinNurbKnot(), s2.getMinNurbKnot(), 0f);
+        }
+
+        assertListEquals(s1.getSegmentsLength(), s2.getSegmentsLength());
+        Assert.assertEquals(
+                s1.getTotalLength(), s2.getTotalLength(), 0f);
+        Assert.assertArrayEquals(s1.getWeights(), s2.getWeights(), 0f);
+    }
+}

+ 24 - 18
jme3-desktop/src/main/java/com/jme3/input/awt/AwtMouseInput.java

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009-2021 jMonkeyEngine
+ * Copyright (c) 2009-2024 jMonkeyEngine
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -36,10 +36,16 @@ import com.jme3.input.MouseInput;
 import com.jme3.input.RawInputListener;
 import com.jme3.input.event.MouseButtonEvent;
 import com.jme3.input.event.MouseMotionEvent;
-import java.awt.*;
+
+import java.awt.Component;
+import java.awt.Cursor;
+import java.awt.Point;
+import java.awt.Robot;
+import java.awt.Toolkit;
 import java.awt.event.*;
 import java.awt.image.BufferedImage;
 import java.util.ArrayList;
+import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 import javax.swing.SwingUtilities;
@@ -64,8 +70,8 @@ public class AwtMouseInput implements MouseInput, MouseListener, MouseWheelListe
 
     private Component component;
 
-    private final java.util.List<MouseButtonEvent> eventQueue = new ArrayList<>();
-    private final java.util.List<MouseButtonEvent> eventQueueCopy = new ArrayList<>();
+    private final List<MouseButtonEvent> eventQueue = new ArrayList<>();
+    private final List<MouseButtonEvent> eventQueueCopy = new ArrayList<>();
 
     private int lastEventX;
     private int lastEventY;
@@ -79,6 +85,7 @@ public class AwtMouseInput implements MouseInput, MouseListener, MouseWheelListe
     private Point centerLocation;
     private Point centerLocationOnScreen;
     private Point lastKnownLocation;
+    private Point grabLocation;
     private boolean isRecentering;
     private boolean cursorMoved;
     private int eventsSinceRecenter;
@@ -88,6 +95,7 @@ public class AwtMouseInput implements MouseInput, MouseListener, MouseWheelListe
         centerLocation = new Point();
         centerLocationOnScreen = new Point();
         lastKnownLocation = new Point();
+        grabLocation = new Point();
 
         try {
             robot = new Robot();
@@ -111,6 +119,7 @@ public class AwtMouseInput implements MouseInput, MouseListener, MouseWheelListe
             lastEventY = 0;
             lastEventWheel = 0;
             location = new Point();
+            grabLocation = new Point();
             centerLocation = new Point();
             centerLocationOnScreen = new Point();
             lastKnownLocation = new Point();
@@ -144,28 +153,21 @@ public class AwtMouseInput implements MouseInput, MouseListener, MouseWheelListe
     public long getInputTimeNanos() {
         return System.nanoTime();
     }
-    
+
     @Override
     public void setCursorVisible(boolean visible) {
-//        if(JmeSystem.getPlatform() != Platform.MacOSX32 &&
-//                JmeSystem.getPlatform() != Platform.MacOSX64 &&
-//                JmeSystem.getPlatform() != Platform.MacOSX_PPC32 &&
-//                JmeSystem.getPlatform() != Platform.MacOSX_PPC64){
         if (this.visible != visible) {
-            lastKnownLocation.x = lastKnownLocation.y = 0;
+            grabLocation.x = lastKnownLocation.x;
+            grabLocation.y = lastKnownLocation.y;
 
             this.visible = visible;
             final boolean newVisible = visible;
-            SwingUtilities.invokeLater(new Runnable() {
-                @Override
-                public void run() {
-                    component.setCursor(newVisible ? null : getTransparentCursor());
-                    if (!newVisible) {
+            SwingUtilities.invokeLater(() -> {
+                component.setCursor(newVisible ? null : getTransparentCursor());
+                if (!newVisible) {
                         recenterMouse(component);
-                    }
                 }
             });
-//        }
         }
     }
 
@@ -314,7 +316,11 @@ public class AwtMouseInput implements MouseInput, MouseListener, MouseWheelListe
         if (robot != null) {
             eventsSinceRecenter = 0;
             isRecentering = true;
-            centerLocation.setLocation(component.getWidth() / 2, component.getHeight() / 2);
+            if (grabLocation.x == 0 && grabLocation.y == 0) {
+                centerLocation.setLocation(component.getWidth() / 2, component.getHeight() / 2);
+            } else {
+                centerLocation.setLocation(grabLocation.x, grabLocation.y);
+            }
             centerLocationOnScreen.setLocation(centerLocation);
             SwingUtilities.convertPointToScreen(centerLocationOnScreen, component);
             robot.mouseMove(centerLocationOnScreen.x, centerLocationOnScreen.y);

+ 108 - 57
jme3-examples/src/main/java/jme3test/model/anim/TestSingleLayerInfluenceMask.java

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2024 jMonkeyEngine
+ * Copyright (c) 2025 jMonkeyEngine
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -32,42 +32,47 @@
 package jme3test.model.anim;
 
 import com.jme3.anim.AnimComposer;
+import com.jme3.anim.AnimLayer;
+import com.jme3.anim.Armature;
 import com.jme3.anim.ArmatureMask;
 import com.jme3.anim.SingleLayerInfluenceMask;
 import com.jme3.anim.SkinningControl;
-import com.jme3.anim.tween.action.ClipAction;
+import com.jme3.anim.tween.action.BlendableAction;
 import com.jme3.anim.util.AnimMigrationUtils;
 import com.jme3.app.SimpleApplication;
+import com.jme3.export.binary.BinaryExporter;
 import com.jme3.font.BitmapFont;
 import com.jme3.font.BitmapText;
 import com.jme3.input.KeyInput;
 import com.jme3.input.controls.ActionListener;
 import com.jme3.input.controls.KeyTrigger;
 import com.jme3.light.DirectionalLight;
-import com.jme3.math.ColorRGBA;
 import com.jme3.math.Vector3f;
 import com.jme3.scene.Spatial;
 
 /**
  * Tests {@link SingleLayerInfluenceMask}.
- * 
- * The test runs two simultaneous looping actions on seperate layers.
+ *
+ * The test runs two simultaneous looping actions on separate layers.
  * <p>
  * The test <strong>fails</strong> if the visible dancing action does <em>not</em>
- * loop seamlessly when using SingleLayerInfluenceMasks. Note that the action is not
- * expected to loop seamlessly when <em>not</em> using SingleLayerArmatureMasks.
+ * loop seamlessly when using SingleLayerInfluenceMasks. Note that the action is
+ * not expected to loop seamlessly when <em>not</em> using
+ * SingleLayerArmatureMasks.
  * <p>
- * Press the spacebar to switch between using SingleLayerInfluenceMasks and masks
- * provided by {@link ArmatureMask}.
- * 
+ * Press the spacebar to switch between using SingleLayerInfluenceMasks and
+ * masks provided by {@link ArmatureMask}.
+ *
  * @author codex
  */
 public class TestSingleLayerInfluenceMask extends SimpleApplication implements ActionListener {
-    
+
     private Spatial model;
-    private AnimComposer anim;
-    private SkinningControl skin;
-    private boolean useSLIMask = true;
+    private AnimComposer animComposer;
+    private SkinningControl skinningControl;
+    private final String idleLayer = "idleLayer";
+    private final String danceLayer = "danceLayer";
+    private boolean useSingleLayerInfMask = true;
     private BitmapText display;
 
     public static void main(String[] args) {
@@ -77,74 +82,120 @@ public class TestSingleLayerInfluenceMask extends SimpleApplication implements A
 
     @Override
     public void simpleInitApp() {
-        
-        flyCam.setMoveSpeed(30f);
 
+        flyCam.setMoveSpeed(30f);
+        
         DirectionalLight dl = new DirectionalLight();
         dl.setDirection(new Vector3f(-0.1f, -0.7f, -1).normalizeLocal());
-        dl.setColor(new ColorRGBA(1f, 1f, 1f, 1.0f));
         rootNode.addLight(dl);
-        
+
         BitmapFont font = assetManager.loadFont("Interface/Fonts/Default.fnt");
         display = new BitmapText(font);
         display.setSize(font.getCharSet().getRenderedSize());
         display.setText("");
-        display.setLocalTranslation(5, context.getSettings().getHeight()-5, 0);
+        display.setLocalTranslation(5, context.getSettings().getHeight() - 5, 0);
         guiNode.attachChild(display);
- 
-        inputManager.addMapping("reset", new KeyTrigger(KeyInput.KEY_SPACE));
-        inputManager.addListener(this, "reset");
-        
+
+        inputManager.addMapping("SWITCH_MASKS", new KeyTrigger(KeyInput.KEY_SPACE));
+        inputManager.addListener(this, "SWITCH_MASKS");
+
         setupModel();
-        
+        createAnimMasks();
+        testSerialization();
+        playAnimations();
+        updateUI();
     }
+
     @Override
     public void simpleUpdate(float tpf) {
         cam.lookAt(model.getWorldTranslation(), Vector3f.UNIT_Y);
     }
+
     @Override
     public void onAction(String name, boolean isPressed, float tpf) {
-        if (name.equals("reset") && isPressed) {
-            model.removeFromParent();
-            setupModel();
+        if (name.equals("SWITCH_MASKS") && isPressed) {
+            useSingleLayerInfMask = !useSingleLayerInfMask;
+            animComposer.removeLayer(idleLayer);
+            animComposer.removeLayer(danceLayer);
+            
+            createAnimMasks();
+            playAnimations();
+            updateUI();
         }
     }
-    
+
+    /**
+     * Sets up the model by loading it, migrating animations, and attaching it to
+     * the root node.
+     */
     private void setupModel() {
-        
         model = assetManager.loadModel("Models/Sinbad/SinbadOldAnim.j3o");
+        // Migrate the model's animations to the new system
         AnimMigrationUtils.migrate(model);
-        anim = model.getControl(AnimComposer.class);
-        skin = model.getControl(SkinningControl.class);
-        
-        if (useSLIMask) {
-            SingleLayerInfluenceMask walkLayer = new SingleLayerInfluenceMask("idleLayer", anim, skin);
-            walkLayer.addAll();
-            walkLayer.makeLayer();
-            SingleLayerInfluenceMask danceLayer = new SingleLayerInfluenceMask("danceLayer", anim, skin);
-            danceLayer.addAll();
-            danceLayer.makeLayer();
+        rootNode.attachChild(model);
+
+        animComposer = model.getControl(AnimComposer.class);
+        skinningControl = model.getControl(SkinningControl.class);
+
+        ((BlendableAction) animComposer.action("Dance")).setMaxTransitionWeight(.9f);
+        ((BlendableAction) animComposer.action("IdleTop")).setMaxTransitionWeight(.8f);
+    }
+
+    /**
+     * Creates animation masks for the idle and dance layers.
+     */
+    private void createAnimMasks() {
+        Armature armature = skinningControl.getArmature();
+        ArmatureMask idleMask;
+        ArmatureMask danceMask;
+
+        if (useSingleLayerInfMask) {
+            // Create single layer influence masks for idle and dance layers
+            idleMask = new SingleLayerInfluenceMask(idleLayer, animComposer, armature);
+            danceMask = new SingleLayerInfluenceMask(danceLayer, animComposer, armature);
+
         } else {
-            anim.makeLayer("idleLayer", ArmatureMask.createMask(skin.getArmature(), "Root"));
-            anim.makeLayer("danceLayer", ArmatureMask.createMask(skin.getArmature(), "Root"));
+            // Create default armature masks for idle and dance layers
+            idleMask = new ArmatureMask(armature);
+            danceMask = new ArmatureMask(armature);
         }
-        
-        setSLIMaskInfo();
-        useSLIMask = !useSLIMask;
-        
-        ClipAction clip = (ClipAction)anim.action("Dance");
-        clip.setMaxTransitionWeight(.9f);
-        ClipAction clip2 = (ClipAction)anim.action("IdleTop");
-        clip2.setMaxTransitionWeight(.8f);
-        
-        anim.setCurrentAction("Dance", "danceLayer");
-        anim.setCurrentAction("IdleTop", "idleLayer");
 
-        rootNode.attachChild(model);
-        
+        // Assign the masks to the respective animation layers
+        animComposer.makeLayer(idleLayer, idleMask);
+        animComposer.makeLayer(danceLayer, danceMask);
     }
-    private void setSLIMaskInfo() {
-        display.setText("Using SingleLayerInfluenceMasks: "+useSLIMask+"\nPress Spacebar to switch masks");
+
+    /**
+     * Plays the "Dance" and "IdleTop" animations on their respective layers.
+     */
+    private void playAnimations() {
+        animComposer.setCurrentAction("Dance", danceLayer);
+        animComposer.setCurrentAction("IdleTop", idleLayer);
     }
-    
+
+    /**
+     * Tests the serialization of animation masks.
+     */
+    private void testSerialization() {
+        AnimComposer aComposer = model.getControl(AnimComposer.class);
+        for (String layerName : aComposer.getLayerNames()) {
+
+            System.out.println("layerName: " + layerName);
+            AnimLayer layer = aComposer.getLayer(layerName);
+
+            if (layer.getMask() instanceof SingleLayerInfluenceMask) {
+                SingleLayerInfluenceMask mask = (SingleLayerInfluenceMask) layer.getMask();
+                // Serialize and deserialize the mask
+                mask = BinaryExporter.saveAndLoad(assetManager, mask);
+                // Reassign the AnimComposer to the mask and remake the layer
+                mask.setAnimComposer(aComposer);
+                aComposer.makeLayer(layerName, mask);
+            }
+        }
+    }
+
+    private void updateUI() {
+        display.setText("Using SingleLayerInfluenceMasks: " + useSingleLayerInfMask + "\nPress Spacebar to switch masks");
+    }
+
 }

+ 3 - 1
jme3-lwjgl3/build.gradle

@@ -1,7 +1,9 @@
 dependencies {
     api project(':jme3-core')
     api project(':jme3-desktop')
-    api libs.lwjgl3.awt
+    api (libs.lwjgl3.awt) {
+        exclude group: 'org.lwjgl', module: 'lwjgl'
+    }
 
     api libs.lwjgl3.base
     api libs.lwjgl3.glfw

+ 11 - 2
jme3-lwjgl3/src/main/java/com/jme3/system/lwjglx/Win32GLPlatform.java

@@ -42,8 +42,17 @@ import org.lwjgl.opengl.awt.PlatformWin32GLCanvas;
  */
 final class Win32GLPlatform extends PlatformWin32GLCanvas implements LwjglxGLPlatform {
 
-    /**
-     * (non-Javadoc)
+    /* (non-Javadoc)
+     * @see com.jme3.system.lwjglx.LwjglxGLPlatform#dispose()
+     */
+    @Override
+    public void dispose() {
+        if (ds != null) {
+            super.dispose();
+        }
+    }
+
+    /* (non-Javadoc)
      * @see com.jme3.system.lwjglx.LwjglxGLPlatform#destroy() 
      */
     @Override

+ 1 - 1
jme3-terrain/src/main/resources/Common/MatDefs/Terrain/Modular/PBRTerrainUtils.glsllib

@@ -214,4 +214,4 @@
         }  
 
     #endif
-#endif
+#endif

+ 4 - 24
jme3-vr/src/main/java/com/jme3/app/VRApplication.java

@@ -23,7 +23,6 @@ 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.Quaternion;
 import com.jme3.math.Vector3f;
@@ -88,11 +87,6 @@ public abstract class VRApplication implements Application, SystemListener {
      */
     public float DEFAULT_ASPECT = 1f;
 
-    /**
-     * Is the application is based on OSVR (default is <code>false</code>).
-     */
-    public boolean CONSTRUCT_WITH_OSVR = false;
-
     /**
      * Is the application has not to start within VR mode (default is <code>false</code>).
      */
@@ -272,15 +266,9 @@ public abstract class VRApplication implements Application, SystemListener {
         } else if( DISABLE_VR ) {
             logger.warning("VR disabled via code.");
         } else if( VRSupportedOS && DISABLE_VR == false ) {
-            if( CONSTRUCT_WITH_OSVR ) {
-                //FIXME: WARNING !!
-                vrHardware = new OSVR(null);
-                logger.config("Creating OSVR wrapper [SUCCESS]");
-            } else {
-                //FIXME: WARNING !!
-                vrHardware = new OpenVR(null);
-                logger.config("Creating OpenVR wrapper [SUCCESS]");
-            }
+            //FIXME: WARNING !!
+            vrHardware = new OpenVR(null);
+            logger.config("Creating OpenVR wrapper [SUCCESS]");
             if( vrHardware.initialize() ) {
                 setPauseOnLostFocus(false);
             }
@@ -366,14 +354,6 @@ public abstract class VRApplication implements Application, SystemListener {
         return useCompositor && compositorOS;
     }
 
-    /**
-     * Get if the system currently support VR.
-     * @return <code>true</code> if the system currently support VR and <code>false</Code> otherwise.
-     */
-    public boolean isOSVRSupported() {
-        return VRSupportedOS;
-    }
-
     /**
      * Simple update of the application, this method should contain {@link #getRootNode() root node} updates.
      * This method is called by the {@link #update() update()} method and should not be called manually.
@@ -725,7 +705,7 @@ public abstract class VRApplication implements Application, SystemListener {
             settings.setFrequency(vrHardware.getDisplayFrequency());
             settings.setFullscreen(false);
             settings.setVSync(false); // stop vsyncing on primary monitor!
-            settings.setSwapBuffers(!disableSwapBuffers || vrHardware instanceof OSVR);
+            settings.setSwapBuffers(!disableSwapBuffers);
             settings.setTitle("Put Headset On Now: " + settings.getTitle());
             settings.setResizable(true);
         }

+ 0 - 15
jme3-vr/src/main/java/com/jme3/app/VRConstants.java

@@ -131,30 +131,16 @@ public class VRConstants {
      *
      * Deprecated as only the lwjgl OpenVr version has been upgraded to modern action based inputs
      *
-     * @see #SETTING_VRAPI_OSVR_VALUE
      * @see #SETTING_VRAPI_OPENVR_LWJGL_VALUE
      * @see #SETTING_VRAPI_OCULUSVR_VALUE
      */
     @Deprecated
     public static final int SETTING_VRAPI_OPENVR_VALUE       = 1;
 
-    /**
-     * The identifier of the OSVR system.
-     *
-     * Deprecated as an OpenVr system should be used instead for a non vender specific api
-     *
-     * @see #SETTING_VRAPI_OPENVR_VALUE
-     * @see #SETTING_VRAPI_OPENVR_LWJGL_VALUE
-     * @see #SETTING_VRAPI_OCULUSVR_VALUE
-     */
-    @Deprecated
-    public static final int SETTING_VRAPI_OSVR_VALUE         = 2;
-
     /**
      * The identifier of the OpenVR from LWJGL system.
      *
      * @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;
@@ -165,7 +151,6 @@ public class VRConstants {
      * Deprecated as an OpenVr system should be used instead (and the rift itself is discontinued)
      *
      * @see #SETTING_VRAPI_OPENVR_VALUE
-     * @see #SETTING_VRAPI_OSVR_VALUE
      * @see #SETTING_VRAPI_OPENVR_LWJGL_VALUE
      */
     @Deprecated

+ 1 - 12
jme3-vr/src/main/java/com/jme3/app/VREnvironment.java

@@ -19,8 +19,6 @@ 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.scene.Spatial;
 import com.jme3.system.AppSettings;
@@ -405,8 +403,6 @@ public class VREnvironment {
         // Instantiate view manager
         if (vrBinding == VRConstants.SETTING_VRAPI_OPENVR_VALUE){
             viewManager = new OpenVRViewManager(this);
-        } else if (vrBinding == VRConstants.SETTING_VRAPI_OSVR_VALUE){
-            viewManager = new OSVRViewManager(this);
         } else if (vrBinding == VRConstants.SETTING_VRAPI_OCULUSVR_VALUE) {
             viewManager = new OculusViewManager(this);
         } else if (vrBinding == VRConstants.SETTING_VRAPI_OPENVR_LWJGL_VALUE) {
@@ -438,14 +434,7 @@ public class VREnvironment {
         }
 
         if( vrSupportedOS) {
-            if( vrBinding == VRConstants.SETTING_VRAPI_OSVR_VALUE ) {
-                guiManager   = new VRGuiManager(this);
-                mouseManager = new OpenVRMouseManager(this);
-
-                hardware = new OSVR(this);
-                initialized = true;
-                logger.config("Creating OSVR wrapper [SUCCESS]");
-            } else if( vrBinding == VRConstants.SETTING_VRAPI_OPENVR_VALUE ) {
+            if( vrBinding == VRConstants.SETTING_VRAPI_OPENVR_VALUE ) {
                 guiManager   = new VRGuiManager(this);
                 mouseManager = new OpenVRMouseManager(this);
 

+ 1 - 1
jme3-vr/src/main/java/com/jme3/input/vr/VRAPI.java

@@ -7,7 +7,7 @@ import com.jme3.math.Vector3f;
 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, OculusVR, ...)
  * @author reden - phr00t - https://github.com/phr00t
  * @author Julien Seinturier - COMEX SA - <a href="http://www.seinturier.fr">http://www.seinturier.fr</a>
  */

+ 0 - 459
jme3-vr/src/main/java/com/jme3/input/vr/osvr/OSVR.java

@@ -1,459 +0,0 @@
-/*
-
-https://github.com/sensics/OSVR-RenderManager/blob/master/examples/RenderManagerOpenGLCAPIExample.cpp
-
-- JVM crashes often. Placing breakpoints during initialization clears it up most of the time (WHY!?)
-  - OSVR is just unstable. Any way to improve things?
-- Render manager looks good, but left eye seems stretched.
-
- */
-package com.jme3.input.vr.osvr;
-
-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.Quaternion;
-import com.jme3.math.Vector2f;
-import com.jme3.math.Vector3f;
-import com.jme3.renderer.Camera;
-import com.jme3.system.osvr.osvrclientkit.OsvrClientKitLibrary;
-import com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary;
-import com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.OSVR_DisplayConfig;
-import com.jme3.system.osvr.osvrmatrixconventions.OSVR_Pose3;
-import com.jme3.system.osvr.osvrrendermanageropengl.OSVR_OpenResultsOpenGL;
-import com.jme3.system.osvr.osvrrendermanageropengl.OSVR_RenderBufferOpenGL;
-import com.jme3.system.osvr.osvrrendermanageropengl.OSVR_RenderInfoOpenGL;
-import com.jme3.system.osvr.osvrrendermanageropengl.OSVR_RenderParams;
-import com.jme3.system.osvr.osvrrendermanageropengl.OSVR_ViewportDescription;
-import com.jme3.system.osvr.osvrrendermanageropengl.OsvrRenderManagerOpenGLLibrary;
-import com.ochafik.lang.jnaerator.runtime.NativeSize;
-import com.ochafik.lang.jnaerator.runtime.NativeSizeByReference;
-import com.sun.jna.Pointer;
-import com.sun.jna.ptr.PointerByReference;
-import java.nio.FloatBuffer;
-import java.util.logging.Logger;
-
-/**
- * A class that wraps an <a href="http://www.osvr.org/">OSVR</a> system.
- * @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 OSVR implements VRAPI {
-    private static final Logger logger = Logger.getLogger(OSVR.class.getName());
-
-    /**
-     * The first viewer index.
-     */
-    public static final int FIRST_VIEWER = 0;
-
-    /**
-     * The left eye index.
-     */
-    public static final int EYE_LEFT = 0;
-
-    /**
-     * The right eye index.
-     */
-    public static final int EYE_RIGHT = 1;
-
-    /**
-     * The size of the left eye.
-     */
-    public static final NativeSize EYE_LEFT_SIZE = new NativeSize(EYE_LEFT);
-
-    /**
-     * The size of the right eye.
-     */
-    public static final NativeSize EYE_RIGHT_SIZE = new NativeSize(EYE_RIGHT);
-
-    /**
-     * The default J String.
-     */
-    public static byte[] defaultJString = { 'j', (byte)0 };
-
-    /**
-     * The default OpenGL String.
-     */
-    public static byte[] OpenGLString = { 'O', 'p', 'e', 'n', 'G', 'L', (byte)0 };
-
-    private final Matrix4f[] eyeMatrix = new Matrix4f[2];
-
-    private PointerByReference grabRM;
-    private PointerByReference grabRMOGL;
-    private PointerByReference grabRIC;
-
-    OSVR_RenderParams.ByValue renderParams;
-    OsvrClientKitLibrary.OSVR_ClientContext context;
-    com.jme3.system.osvr.osvrrendermanageropengl.OSVR_GraphicsLibraryOpenGL.ByValue graphicsLibrary;
-    Pointer renderManager, renderManagerOpenGL, renderInfoCollection, registerBufferState;
-    OSVRInput VRinput;
-    NativeSize numRenderInfo;
-    NativeSizeByReference grabNumInfo = new NativeSizeByReference();
-    OSVR_RenderInfoOpenGL.ByValue eyeLeftInfo, eyeRightInfo;
-    Matrix4f hmdPoseLeftEye;
-    Matrix4f hmdPoseRightEye;
-    Vector3f hmdPoseLeftEyeVec, hmdPoseRightEyeVec, hmdSeatToStand;
-    OSVR_DisplayConfig displayConfig;
-    OSVR_Pose3 hmdPose = new OSVR_Pose3();
-    Vector3f storePos = new Vector3f();
-    Quaternion storeRot = new Quaternion();
-    PointerByReference presentState = new PointerByReference();
-    OSVR_OpenResultsOpenGL openResults = new OSVR_OpenResultsOpenGL();
-
-    long glfwContext;
-    long renderManagerContext;
-    long wglGLFW;
-    long wglRM;
-
-    boolean initSuccess = false;
-    boolean flipEyes = false;
-
-    private VREnvironment environment = null;
-
-    /**
-     * Create a new <a href="http://www.osvr.org/">OSVR</a> system attached to the given {@link VREnvironment VR environment}.
-     * @param environment the {@link VREnvironment VR environment} to which the input is attached.
-     */
-    public OSVR(VREnvironment environment){
-        this.environment = environment;
-    }
-
-    /**
-     * Access to the underlying OSVR structures.
-     * @param leftView the left viewport.
-     * @param rightView the right viewport.
-     * @param leftBuffer the left buffer.
-     * @param rightBuffer the right buffer.
-     * @return <code>true</code> if the structure are accessible and <code>false</code> otherwise.
-     */
-    public boolean handleRenderBufferPresent(OSVR_ViewportDescription.ByValue leftView, OSVR_ViewportDescription.ByValue rightView,
-                                             OSVR_RenderBufferOpenGL.ByValue leftBuffer, OSVR_RenderBufferOpenGL.ByValue rightBuffer) {
-        if( eyeLeftInfo == null || eyeRightInfo == null ) return false;
-        byte retval;
-        OsvrRenderManagerOpenGLLibrary.osvrRenderManagerStartPresentRenderBuffers(presentState);
-        getEyeInfo();
-        OsvrRenderManagerOpenGLLibrary.osvrRenderManagerPresentRenderBufferOpenGL(presentState.getValue(), leftBuffer, eyeLeftInfo, leftView);
-        OsvrRenderManagerOpenGLLibrary.osvrRenderManagerPresentRenderBufferOpenGL(presentState.getValue(), rightBuffer, eyeRightInfo, rightView);
-        retval = OsvrRenderManagerOpenGLLibrary.osvrRenderManagerFinishPresentRenderBuffers(renderManager, presentState.getValue(), renderParams, (byte)0);
-        return retval == 0; // only check the last error, since if something errored above, the last call won't work & all calls will log to syserr
-    }
-
-    @Override
-    public boolean initialize() {
-        logger.config("Initialize OSVR system.");
-
-        hmdPose.setAutoSynch(false);
-        context = OsvrClientKitLibrary.osvrClientInit(defaultJString, 0);
-        VRinput = new OSVRInput(environment);
-        initSuccess = context != null && VRinput.init();
-        if( initSuccess ) {
-            PointerByReference grabDisplay = new PointerByReference();
-            byte retval = OsvrDisplayLibrary.osvrClientGetDisplay(context, grabDisplay);
-            if( retval != 0 ) {
-                System.out.println("OSVR Get Display Error: " + retval);
-                initSuccess = false;
-                return false;
-            }
-            displayConfig = new OSVR_DisplayConfig(grabDisplay.getValue());
-            System.out.println("Waiting for the display to fully start up, including receiving initial pose update...");
-            int i = 400;
-            while (OsvrDisplayLibrary.osvrClientCheckDisplayStartup(displayConfig) != 0) {
-                if( i-- < 0 ) {
-                    System.out.println("Couldn't get display startup update in time, continuing anyway...");
-                    break;
-                }
-                OsvrClientKitLibrary.osvrClientUpdate(context);
-                try {
-                    Thread.sleep(5);
-                } catch(Exception e) { }
-            }
-            System.out.println("OK, display startup status is good!");
-        }
-        return initSuccess;
-    }
-
-
-    /**
-     * Grab the current GLFW context.
-     */
-    public void grabGLFWContext() {
-        // get current context
-        wglGLFW = org.lwjgl.opengl.WGL.wglGetCurrentContext();
-        glfwContext = org.lwjgl.glfw.GLFW.glfwGetCurrentContext();
-    }
-
-    /**
-     * Enable context sharing.
-     * @return <code>true</code> if the context is successfully shared and <code>false</code> otherwise.
-     */
-    public boolean shareContext() {
-        if( org.lwjgl.opengl.WGL.wglShareLists(wglRM, wglGLFW)) {
-            System.out.println("Context sharing success!");
-            return true;
-        } else {
-            System.out.println("Context sharing problem...");
-            return false;
-        }
-    }
-
-    @Override
-    public boolean initVRCompositor(boolean allowed) {
-        if( !allowed || renderManager != null ) return false;
-        grabGLFWContext();
-        graphicsLibrary = new com.jme3.system.osvr.osvrrendermanageropengl.OSVR_GraphicsLibraryOpenGL.ByValue();
-        graphicsLibrary.toolkit = null;
-        graphicsLibrary.setAutoSynch(false);
-        grabRM = new PointerByReference(); grabRMOGL = new PointerByReference();
-        byte retval = OsvrRenderManagerOpenGLLibrary.osvrCreateRenderManagerOpenGL(context, OpenGLString, graphicsLibrary, grabRM, grabRMOGL);
-        if( retval == 0 ) {
-            renderManager = grabRM.getValue(); renderManagerOpenGL = grabRMOGL.getValue();
-            if( renderManager == null || renderManagerOpenGL == null ) {
-                System.out.println("Render Manager Created NULL, error!");
-                return false;
-            }
-            openResults.setAutoSynch(false);
-            retval = OsvrRenderManagerOpenGLLibrary.osvrRenderManagerOpenDisplayOpenGL(renderManager, openResults);
-            if( retval == 0 ) {
-                wglRM = org.lwjgl.opengl.WGL.wglGetCurrentContext();
-                renderManagerContext = org.lwjgl.glfw.GLFW.glfwGetCurrentContext();
-                shareContext();
-                OsvrClientKitLibrary.osvrClientUpdate(context);
-                renderParams = new OSVR_RenderParams.ByValue();
-                renderParams.setAutoSynch(false);
-                OsvrRenderManagerOpenGLLibrary.osvrRenderManagerGetDefaultRenderParams(renderParams);
-                grabRIC = new PointerByReference();
-                retval = OsvrRenderManagerOpenGLLibrary.osvrRenderManagerGetRenderInfoCollection(renderManager, renderParams, grabRIC);
-                if( retval == 0 ) {
-                    renderInfoCollection = grabRIC.getValue();
-                    OsvrRenderManagerOpenGLLibrary.osvrRenderManagerGetNumRenderInfoInCollection(renderInfoCollection, grabNumInfo);
-                    numRenderInfo = grabNumInfo.getValue();
-                    eyeLeftInfo = new OSVR_RenderInfoOpenGL.ByValue();
-                    eyeRightInfo = new OSVR_RenderInfoOpenGL.ByValue();
-                    eyeLeftInfo.setAutoSynch(false);
-                    eyeRightInfo.setAutoSynch(false);
-                    return true;
-                }
-                OsvrRenderManagerOpenGLLibrary.osvrDestroyRenderManager(renderManager);
-                System.out.println("OSVR Render Manager Info Collection Error: " + retval);
-                return false;
-            }
-            OsvrRenderManagerOpenGLLibrary.osvrDestroyRenderManager(renderManager);
-            System.out.println("OSVR Open Render Manager Display Error: " + retval);
-            return false;
-        }
-        System.out.println("OSVR Create Render Manager Error: " + retval);
-        return false;
-    }
-
-    @Override
-    public OsvrClientKitLibrary.OSVR_ClientContext getVRSystem() {
-        return context;
-    }
-
-    @Override
-    public Pointer getCompositor() {
-        return renderManager;
-    }
-
-    @Override
-    public String getName() {
-        return "OSVR";
-    }
-
-    @Override
-    public VRInputAPI getVRinput() {
-        return VRinput;
-    }
-
-    @Override
-    public void setFlipEyes(boolean set) {
-        flipEyes = set;
-    }
-
-    @Override
-    public void printLatencyInfoToConsole(boolean set) {
-    }
-
-    @Override
-    public int getDisplayFrequency() {
-        return 60; //debug display frequency
-    }
-
-    @Override
-    public void destroy() {
-        if( renderManager != null ) OsvrRenderManagerOpenGLLibrary.osvrDestroyRenderManager(renderManager);
-        if( displayConfig != null ) OsvrDisplayLibrary.osvrClientFreeDisplay(displayConfig);
-    }
-
-    @Override
-    public boolean isInitialized() {
-        return initSuccess;
-    }
-
-    @Override
-    public void reset() {
-        // TODO: no native OSVR reset function
-        // may need to take current position and negate it from future values
-    }
-
-    @Override
-    public void getRenderSize(Vector2f store) {
-        if( eyeLeftInfo == null || eyeLeftInfo.viewport.width == 0.0 ) {
-            store.x = 1280f; store.y = 720f;
-        } else {
-            store.x = (float)eyeLeftInfo.viewport.width;
-            store.y = (float)eyeLeftInfo.viewport.height;
-        }
-    }
-
-    /**
-     * Read and update the eye info from the underlying OSVR system.
-     */
-    public void getEyeInfo() {
-        OsvrRenderManagerOpenGLLibrary.osvrRenderManagerGetRenderInfoFromCollectionOpenGL(renderInfoCollection, EYE_LEFT_SIZE, eyeLeftInfo);
-        OsvrRenderManagerOpenGLLibrary.osvrRenderManagerGetRenderInfoFromCollectionOpenGL(renderInfoCollection, EYE_RIGHT_SIZE, eyeRightInfo);
-        eyeLeftInfo.read(); eyeRightInfo.read();
-    }
-/*
-    @Override
-    public float getFOV(int dir) {
-        return 105f; //default FOV
-    }
-*/
-    @Override
-    public float getInterpupillaryDistance() {
-        return 0.065f; //default IPD
-    }
-
-    @Override
-    public Quaternion getOrientation() {
-        storeRot.set((float)-hmdPose.rotation.data[1],
-                     (float)hmdPose.rotation.data[2],
-                     (float)-hmdPose.rotation.data[3],
-                     (float)hmdPose.rotation.data[0]);
-        if( storeRot.equals(Quaternion.ZERO) ) storeRot.set(Quaternion.DIRECTION_Z);
-        return storeRot;
-    }
-
-    @Override
-    public Vector3f getPosition() {
-        storePos.x = (float)-hmdPose.translation.data[0];
-        storePos.y = (float)hmdPose.translation.data[1];
-        storePos.z = (float)-hmdPose.translation.data[2];
-        return storePos;
-    }
-
-    @Override
-    public void getPositionAndOrientation(Vector3f storePos, Quaternion storeRot) {
-        storePos.x = (float)-hmdPose.translation.data[0];
-        storePos.y = (float)hmdPose.translation.data[1];
-        storePos.z = (float)-hmdPose.translation.data[2];
-        storeRot.set((float)-hmdPose.rotation.data[1],
-                     (float)hmdPose.rotation.data[2],
-                     (float)-hmdPose.rotation.data[3],
-                     (float)hmdPose.rotation.data[0]);
-        if( storeRot.equals(Quaternion.ZERO) ) storeRot.set(Quaternion.DIRECTION_Z);
-    }
-
-    @Override
-    public void updatePose() {
-        if( context == null || displayConfig == null ) return;
-        OsvrClientKitLibrary.osvrClientUpdate(context);
-        OsvrDisplayLibrary.osvrClientGetViewerPose(displayConfig, FIRST_VIEWER, hmdPose.getPointer());
-        VRinput.updateControllerStates();
-        hmdPose.read();
-    }
-
-    @Override
-    public Matrix4f getHMDMatrixProjectionLeftEye(Camera cam) {
-        if( eyeLeftInfo == null ) return cam.getProjectionMatrix();
-        if( eyeMatrix[EYE_LEFT] == null ) {
-            FloatBuffer tfb = FloatBuffer.allocate(16);
-            com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.osvrClientGetViewerEyeSurfaceProjectionMatrixf(displayConfig, 0, (byte)EYE_LEFT, 0, cam.getFrustumNear(), cam.getFrustumFar(), (short)0, tfb);
-            eyeMatrix[EYE_LEFT] = new Matrix4f();
-            eyeMatrix[EYE_LEFT].set(tfb.get(0), tfb.get(4), tfb.get(8), tfb.get(12),
-                                    tfb.get(1), tfb.get(5), tfb.get(9), tfb.get(13),
-                                    tfb.get(2), tfb.get(6), tfb.get(10), tfb.get(14),
-                                    tfb.get(3), tfb.get(7), tfb.get(11), tfb.get(15));
-        }
-        return eyeMatrix[EYE_LEFT];
-    }
-
-    @Override
-    public Matrix4f getHMDMatrixProjectionRightEye(Camera cam) {
-        if( eyeRightInfo == null ) return cam.getProjectionMatrix();
-        if( eyeMatrix[EYE_RIGHT] == null ) {
-            FloatBuffer tfb = FloatBuffer.allocate(16);
-            com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.osvrClientGetViewerEyeSurfaceProjectionMatrixf(displayConfig, 0, (byte)EYE_RIGHT, 0, cam.getFrustumNear(), cam.getFrustumFar(), (short)0, tfb);
-            eyeMatrix[EYE_RIGHT] = new Matrix4f();
-            eyeMatrix[EYE_RIGHT].set(tfb.get(0), tfb.get(4), tfb.get(8), tfb.get(12),
-                                    tfb.get(1), tfb.get(5), tfb.get(9), tfb.get(13),
-                                    tfb.get(2), tfb.get(6), tfb.get(10), tfb.get(14),
-                                    tfb.get(3), tfb.get(7), tfb.get(11), tfb.get(15));
-        }
-        return eyeMatrix[EYE_RIGHT];
-    }
-
-    @Override
-    public Vector3f getHMDVectorPoseLeftEye() {
-        if( hmdPoseLeftEyeVec == null ) {
-            hmdPoseLeftEyeVec = new Vector3f();
-            hmdPoseLeftEyeVec.x = 0.065f * -0.5f;
-            if( flipEyes == false ) hmdPoseLeftEyeVec.x *= -1f; // it seems these need flipping
-        }
-        return hmdPoseLeftEyeVec;
-    }
-
-    @Override
-    public Vector3f getHMDVectorPoseRightEye() {
-        if( hmdPoseRightEyeVec == null ) {
-            hmdPoseRightEyeVec = new Vector3f();
-            hmdPoseRightEyeVec.x = 0.065f * 0.5f;
-            if( flipEyes == false ) hmdPoseRightEyeVec.x *= -1f; // it seems these need flipping
-        }
-        return hmdPoseRightEyeVec;
-    }
-
-    @Override
-    public Vector3f getSeatedToAbsolutePosition() {
-        return Vector3f.ZERO;
-    }
-
-    @Override
-    public Matrix4f getHMDMatrixPoseLeftEye() {
-        // not actually used internally...
-        /*if( hmdPoseLeftEye != null ) {
-            return hmdPoseLeftEye;
-        } else {
-            FloatBuffer mat = FloatBuffer.allocate(16);
-            OsvrDisplayLibrary.osvrClientGetViewerEyeViewMatrixf(displayConfig, FIRST_VIEWER, (byte)EYE_LEFT,
-                     (short)(OsvrMatrixConventionsLibrary.OSVR_MatrixVectorFlags.OSVR_MATRIX_COLVECTORS |
-                             OsvrMatrixConventionsLibrary.OSVR_MatrixOrderingFlags.OSVR_MATRIX_COLMAJOR), tempfb);
-            hmdPoseLeftEye = new Matrix4f(tempfb.array());
-            return hmdPoseLeftEye;
-        }*/
-        return null;
-    }
-
-    @Override
-    public Matrix4f getHMDMatrixPoseRightEye() {
-        // not actually used internally...
-        /*if( hmdPoseRightEye != null ) {
-            return hmdPoseRightEye;
-        } else {
-            OsvrDisplayLibrary.osvrClientGetViewerEyeViewMatrixf(displayConfig, FIRST_VIEWER, (byte)EYE_RIGHT,
-                     (short)(OsvrMatrixConventionsLibrary.OSVR_MatrixVectorFlags.OSVR_MATRIX_COLVECTORS |
-                             OsvrMatrixConventionsLibrary.OSVR_MatrixOrderingFlags.OSVR_MATRIX_COLMAJOR), tempfb);
-            hmdPoseRightEye = new Matrix4f(tempfb.array());
-            return hmdPoseRightEye;
-        }*/
-        return null;
-    }
-
-    @Override
-    public HmdType getType() {
-        return HmdType.OSVR;
-    }
-}

+ 0 - 347
jme3-vr/src/main/java/com/jme3/input/vr/osvr/OSVRInput.java

@@ -1,347 +0,0 @@
-package com.jme3.input.vr.osvr;
-
-import java.util.logging.Logger;
-
-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.Vector2f;
-import com.jme3.math.Vector3f;
-import com.jme3.renderer.Camera;
-import com.jme3.scene.Spatial;
-import com.jme3.system.osvr.osvrclientkit.OsvrClientKitLibrary;
-import com.jme3.system.osvr.osvrclientkit.OsvrClientKitLibrary.OSVR_ClientInterface;
-import com.jme3.system.osvr.osvrclientreporttypes.OSVR_AnalogReport;
-import com.jme3.system.osvr.osvrclientreporttypes.OSVR_ButtonReport;
-import com.jme3.system.osvr.osvrclientreporttypes.OSVR_Pose3;
-import com.jme3.system.osvr.osvrinterface.OsvrInterfaceLibrary;
-import com.jme3.system.osvr.osvrtimevalue.OSVR_TimeValue;
-import com.sun.jna.Callback;
-import com.sun.jna.Pointer;
-import com.sun.jna.ptr.PointerByReference;
-
-
-/**
- * A class that wraps an <a href="http://www.osvr.org/">OSVR</a> input.
- * @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 OSVRInput implements VRInputAPI {
-    private static final Logger logger = Logger.getLogger(OSVRInput.class.getName());
-
-    // position example: https://github.com/OSVR/OSVR-Core/blob/master/examples/clients/TrackerState.c
-    // button example: https://github.com/OSVR/OSVR-Core/blob/master/examples/clients/ButtonCallback.c
-    // analog example: https://github.com/OSVR/OSVR-Core/blob/master/examples/clients/AnalogCallback.c
-
-    private static final int ANALOG_COUNT = 3, BUTTON_COUNT = 7, CHANNEL_COUNT = 3;
-
-    OSVR_ClientInterface[][] buttons;
-    OSVR_ClientInterface[][][] analogs;
-    OSVR_ClientInterface[] hands;
-
-    OSVR_Pose3[] handState;
-    Callback buttonHandler, analogHandler;
-    OSVR_TimeValue tv = new OSVR_TimeValue();
-    boolean[] isHandTracked = new boolean[2];
-
-    private float[][][] analogState;
-    private float[][] buttonState;
-
-    private final Quaternion tempq = new Quaternion();
-    private final Vector3f tempv = new Vector3f();
-    private final Vector2f temp2 = new Vector2f();
-    private final boolean[][] buttonDown = new boolean[16][16];
-
-    private static final Vector2f temp2Axis = new Vector2f();
-    private static final Vector2f lastCallAxis[] = new Vector2f[16];
-    private static float axisMultiplier = 1f;
-
-    private VREnvironment environment = null;
-
-    /**
-     * Get the system String that identifies a controller.
-     * @param left is the controller is the left one (<code>false</code> if the right controller is needed).
-     * @param index the index of the controller.
-     * @return the system String that identifies the controller.
-     */
-    public static byte[] getButtonString(boolean left, byte index) {
-        if( left ) {
-            return new byte[] { '/', 'c', 'o', 'n', 't', 'r', 'o', 'l', 'l', 'e', 'r', '/', 'l', 'e', 'f', 't', '/', index, (byte)0 };
-        }
-        return new byte[] { '/', 'c', 'o', 'n', 't', 'r', 'o', 'l', 'l', 'e', 'r', '/', 'r', 'i', 'g', 'h', 't', '/', index, (byte)0 };
-    }
-
-    /**
-     * The left-hand system String.
-     */
-    public static byte[] leftHand = { '/', 'm', 'e', '/', 'h', 'a', 'n', 'd', 's', '/', 'l', 'e', 'f', 't', (byte)0 };
-
-    /**
-     * The right-hand system String.
-     */
-    public static byte[] rightHand = { '/', 'm', 'e', '/', 'h', 'a', 'n', 'd', 's', '/', 'r', 'i', 'g', 'h', 't', (byte)0 };
-
-
-    /**
-     * Create a new <a href="http://www.osvr.org/">OSVR</a> input attached to the given {@link VREnvironment VR environment}.
-     * @param environment the {@link VREnvironment VR environment} to which the input is attached.
-     */
-    public OSVRInput(VREnvironment environment){
-      this.environment = environment;
-    }
-
-    @Override
-    public boolean isButtonDown(int controllerIndex, VRInputType checkButton) {
-        return buttonState[controllerIndex][checkButton.getValue()] != 0f;
-    }
-
-    @Override
-    public boolean wasButtonPressedSinceLastCall(int controllerIndex, VRInputType checkButton) {
-        boolean buttonDownNow = isButtonDown(controllerIndex, checkButton);
-        int checkButtonValue = checkButton.getValue();
-        boolean retval = buttonDownNow == true && buttonDown[controllerIndex][checkButtonValue] == false;
-        buttonDown[controllerIndex][checkButtonValue] = buttonDownNow;
-        return retval;
-    }
-
-    @Override
-    public void resetInputSinceLastCall() {
-        for(int i=0;i<lastCallAxis.length;i++) {
-            lastCallAxis[i].x = 0f;
-            lastCallAxis[i].y = 0f;
-        }
-        for(int i=0;i<16;i++) {
-            for(int j=0;j<16;j++) {
-                buttonDown[i][j] = false;
-            }
-        }
-    }
-
-    @Override
-    public Vector2f getAxisDeltaSinceLastCall(int controllerIndex, VRInputType forAxis) {
-        int axisIndex = forAxis.getValue();
-        temp2Axis.set(lastCallAxis[axisIndex]);
-        lastCallAxis[axisIndex].set(getAxis(controllerIndex, forAxis));
-        if( (temp2Axis.x != 0f || temp2Axis.y != 0f) && (lastCallAxis[axisIndex].x != 0f || lastCallAxis[axisIndex].y != 0f) ) {
-            temp2Axis.subtractLocal(lastCallAxis[axisIndex]);
-        } else {
-            // move made from rest, don't count as a delta move
-            temp2Axis.x = 0f;
-            temp2Axis.y = 0f;
-        }
-        return temp2Axis;
-    }
-
-    @Override
-    public Vector3f getVelocity(int controllerIndex) {
-        return Vector3f.ZERO;
-    }
-
-    @Override
-    public Vector3f getAngularVelocity(int controllerIndex) {
-        return Vector3f.ZERO;
-    }
-
-    @Override
-    public Vector2f getAxisRaw(int controllerIndex, VRInputType forAxis) {
-        temp2.x = analogState[controllerIndex][forAxis.getValue()][0];
-        temp2.y = analogState[controllerIndex][forAxis.getValue()][1];
-        return temp2;
-    }
-
-    @Override
-    public Vector2f getAxis(int controllerIndex, VRInputType forAxis) {
-        temp2.x = analogState[controllerIndex][forAxis.getValue()][0] * axisMultiplier;
-        temp2.y = analogState[controllerIndex][forAxis.getValue()][1] * axisMultiplier;
-        return temp2;
-    }
-
-    private OSVR_ClientInterface getInterface(byte[] str) {
-        PointerByReference pbr = new PointerByReference();
-        OsvrClientKitLibrary.osvrClientGetInterface((OsvrClientKitLibrary.OSVR_ClientContext)environment.getVRHardware().getVRSystem(), str, pbr);
-        return new OSVR_ClientInterface(pbr.getValue());
-    }
-
-    @Override
-    public boolean init() {
-        logger.config("Initialize OSVR input.");
-
-        buttonHandler = new Callback() {
-            @SuppressWarnings("unused")
-            public void invoke(Pointer userdata, Pointer timeval, OSVR_ButtonReport report) {
-                for(int i=0;i<2;i++) {
-                    for(int j=0;j<BUTTON_COUNT;j++) {
-                        if( buttons[i][j] == null ) continue;
-                        if( userdata.toString().equals(buttons[i][j].getPointer().toString()) ) {
-                            buttonState[i][j] = report.state;
-                            return;
-                        }
-                    }
-                }
-            }
-        };
-        analogHandler = new Callback() {
-            @SuppressWarnings("unused")
-            public void invoke(Pointer userdata, Pointer timeval, OSVR_AnalogReport report) {
-                for(int i=0;i<2;i++) {
-                    for(int j=0;j<ANALOG_COUNT;j++) {
-                        for(int k=0;k<CHANNEL_COUNT;k++) {
-                            if( analogs[i][j][k] == null ) continue;
-                            if( userdata.toString().equals(analogs[i][j][k].getPointer().toString()) ) {
-                                analogState[i][j][k] = (float)report.state;
-                                return;
-                            }
-                        }
-                    }
-                }
-            }
-        };
-
-        buttons = new OSVR_ClientInterface[2][BUTTON_COUNT];
-        analogs = new OSVR_ClientInterface[2][ANALOG_COUNT][CHANNEL_COUNT];
-        buttonState = new float[2][BUTTON_COUNT];
-        analogState = new float[2][ANALOG_COUNT][CHANNEL_COUNT];
-        hands = new OSVR_ClientInterface[2];
-        hands[0] = getInterface(leftHand);
-        hands[1] = getInterface(rightHand);
-        handState = new OSVR_Pose3[2];
-        handState[0] = new OSVR_Pose3(); handState[1] = new OSVR_Pose3();
-        for(int h=0;h<2;h++) {
-            for(int i=0;i<BUTTON_COUNT-2;i++) {
-                buttons[h][i] = getInterface(getButtonString(h==0, (byte)Integer.toString(i).toCharArray()[0]));
-                OsvrClientKitLibrary.osvrRegisterButtonCallback(buttons[h][i], buttonHandler, buttons[h][i].getPointer());
-            }
-        }
-        buttons[0][BUTTON_COUNT-2] = getInterface(new byte[] { '/', 'c', 'o', 'n', 't', 'r', 'o', 'l', 'l', 'e', 'r', '/', 'l', 'e', 'f', 't', '/', 'b', 'u', 'm', 'p', 'e', 'r', (byte)0 } );
-        OsvrClientKitLibrary.osvrRegisterButtonCallback(buttons[0][BUTTON_COUNT-2], buttonHandler, buttons[0][BUTTON_COUNT-2].getPointer());
-        buttons[1][BUTTON_COUNT-2] = getInterface(new byte[] { '/', 'c', 'o', 'n', 't', 'r', 'o', 'l', 'l', 'e', 'r', '/', 'r', 'i', 'g', 'h', 't', '/', 'b', 'u', 'm', 'p', 'e', 'r', (byte)0 } );
-        OsvrClientKitLibrary.osvrRegisterButtonCallback(buttons[1][BUTTON_COUNT-2], buttonHandler, buttons[1][BUTTON_COUNT-2].getPointer());
-        buttons[0][BUTTON_COUNT-1] = getInterface(new byte[] { '/', 'c', 'o', 'n', 't', 'r', 'o', 'l', 'l', 'e', 'r', '/', 'l', 'e', 'f', 't', '/', 'j', 'o', 'y', 's', 't', 'i', 'c', 'k', '/', 'b', 'u', 't', 't', 'o', 'n', (byte)0 } );
-        OsvrClientKitLibrary.osvrRegisterButtonCallback(buttons[0][BUTTON_COUNT-1], buttonHandler, buttons[0][BUTTON_COUNT-1].getPointer());
-        buttons[1][BUTTON_COUNT-1] = getInterface(new byte[] { '/', 'c', 'o', 'n', 't', 'r', 'o', 'l', 'l', 'e', 'r', '/', 'r', 'i', 'g', 'h', 't', '/', 'j', 'o', 'y', 's', 't', 'i', 'c', 'k', '/', 'b', 'u', 't', 't', 'o', 'n', (byte)0 } );
-        OsvrClientKitLibrary.osvrRegisterButtonCallback(buttons[1][BUTTON_COUNT-1], buttonHandler, buttons[1][BUTTON_COUNT-1].getPointer());
-
-        analogs[0][0][0] = getInterface(new byte[] { '/', 'c', 'o', 'n', 't', 'r', 'o', 'l', 'l', 'e', 'r', '/', 'l', 'e', 'f', 't', '/', 't', 'r', 'i', 'g', 'g', 'e', 'r', (byte)0 } );
-        analogs[1][0][0] = getInterface(new byte[] { '/', 'c', 'o', 'n', 't', 'r', 'o', 'l', 'l', 'e', 'r', '/', 'r', 'i', 'g', 'h', 't', '/', 't', 'r', 'i', 'g', 'g', 'e', 'r', (byte)0 } );
-        OsvrClientKitLibrary.osvrRegisterAnalogCallback(analogs[0][0][0], analogHandler, analogs[0][0][0].getPointer());
-        OsvrClientKitLibrary.osvrRegisterAnalogCallback(analogs[1][0][0], analogHandler, analogs[1][0][0].getPointer());
-        analogs[0][1][0] = getInterface(new byte[] { '/', 'c', 'o', 'n', 't', 'r', 'o', 'l', 'l', 'e', 'r', '/', 'l', 'e', 'f', 't', '/', 'j', 'o', 'y', 's', 't', 'i', 'c', 'k', '/', 'x', (byte)0 } );
-        analogs[0][1][1] = getInterface(new byte[] { '/', 'c', 'o', 'n', 't', 'r', 'o', 'l', 'l', 'e', 'r', '/', 'l', 'e', 'f', 't', '/', 'j', 'o', 'y', 's', 't', 'i', 'c', 'k', '/', 'y', (byte)0 } );
-        OsvrClientKitLibrary.osvrRegisterAnalogCallback(analogs[0][1][0], analogHandler, analogs[0][1][0].getPointer());
-        OsvrClientKitLibrary.osvrRegisterAnalogCallback(analogs[0][1][1], analogHandler, analogs[0][1][1].getPointer());
-        analogs[1][1][0] = getInterface(new byte[] { '/', 'c', 'o', 'n', 't', 'r', 'o', 'l', 'l', 'e', 'r', '/', 'r', 'i', 'g', 'h', 't', '/', 'j', 'o', 'y', 's', 't', 'i', 'c', 'k', '/', 'x', (byte)0 } );
-        analogs[1][1][1] = getInterface(new byte[] { '/', 'c', 'o', 'n', 't', 'r', 'o', 'l', 'l', 'e', 'r', '/', 'r', 'i', 'g', 'h', 't', '/', 'j', 'o', 'y', 's', 't', 'i', 'c', 'k', '/', 'y', (byte)0 } );
-        OsvrClientKitLibrary.osvrRegisterAnalogCallback(analogs[1][1][0], analogHandler, analogs[1][1][0].getPointer());
-        OsvrClientKitLibrary.osvrRegisterAnalogCallback(analogs[1][1][1], analogHandler, analogs[1][1][1].getPointer());
-
-        return true;
-    }
-
-    @Override
-    public int getTrackedControllerCount() {
-        return (isHandTracked[0]?1:0) + (isHandTracked[1]?1:0);
-    }
-
-    @Override
-    public void updateConnectedControllers() {
-    }
-
-    @Override
-    public void updateControllerStates() {
-        for(int i=0;i<hands.length;i++) {
-            isHandTracked[i] = OsvrInterfaceLibrary.osvrGetPoseState(hands[i], tv, handState[i]) == 0;
-        }
-    }
-
-    @Override
-    public Object getRawControllerState(int index) {
-        return handState[index];
-    }
-
-    //@Override
-    //public Matrix4f getPoseForInputDevice(int index) {
-    //    return handState[i].
-    //}
-
-    @Override
-    public boolean isInputFocused() {
-        return true;
-    }
-
-    @Override
-    public boolean isInputDeviceTracking(int index) {
-        return isHandTracked[index];
-    }
-
-    @Override
-    public Quaternion getOrientation(int index) {
-        tempq.set((float)-handState[index].rotation.data[1],
-                  (float)handState[index].rotation.data[2],
-                  (float)-handState[index].rotation.data[3],
-                  (float)handState[index].rotation.data[0]);
-        return tempq;
-    }
-
-    @Override
-    public Vector3f getPosition(int index) {
-        tempv.x = (float)-handState[index].translation.data[0];
-        tempv.y = (float) handState[index].translation.data[1];
-        tempv.z = (float)-handState[index].translation.data[2];
-        return tempv;
-    }
-
-    @Override
-    public Quaternion getFinalObserverRotation(int index) {
-        OSVRViewManager vrvm = (OSVRViewManager)environment.getVRViewManager();
-        if( vrvm == null || isInputDeviceTracking(index) == false ) return null;
-        Object obs = environment.getObserver();
-        if( obs instanceof Camera ) {
-            tempq.set(((Camera)obs).getRotation());
-        } else {
-            tempq.set(((Spatial)obs).getWorldRotation());
-        }
-        return tempq.multLocal(getOrientation(index));
-    }
-
-    @Override
-    public Vector3f getFinalObserverPosition(int index) {
-        OSVRViewManager vrvm = (OSVRViewManager) environment.getVRViewManager();
-        if( vrvm == null || isInputDeviceTracking(index) == false ) return null;
-        Object obs = environment.getObserver();
-        Vector3f pos = getPosition(index);
-        if( obs instanceof Camera ) {
-            ((Camera)obs).getRotation().mult(pos, pos);
-            return pos.addLocal(((Camera)obs).getLocation());
-        } else {
-            ((Spatial)obs).getWorldRotation().mult(pos, pos);
-            return pos.addLocal(((Spatial)obs).getWorldTranslation());
-        }
-    }
-
-    @Override
-    public void triggerHapticPulse(int controllerIndex, float seconds) {
-    }
-
-    @Override
-    public void swapHands() {
-        // not supported yet
-    }
-
-    @Override
-    public float getAxisMultiplier() {
-        return axisMultiplier;
-    }
-
-    @Override
-    public void setAxisMultiplier(float set) {
-        axisMultiplier = set;
-    }
-
-    @Override
-    public VRTrackedController getTrackedController(int index) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-}

+ 0 - 106
jme3-vr/src/main/java/com/jme3/input/vr/osvr/OSVRMouseManager.java

@@ -1,106 +0,0 @@
-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;
-    }
-}

+ 0 - 867
jme3-vr/src/main/java/com/jme3/input/vr/osvr/OSVRViewManager.java

@@ -1,867 +0,0 @@
-package com.jme3.input.vr.osvr;
-
-import java.awt.GraphicsEnvironment;
-import java.util.Iterator;
-import java.util.logging.Logger;
-
-import com.jme3.app.VREnvironment;
-import com.jme3.input.vr.AbstractVRViewManager;
-import com.jme3.input.vr.VRAPI;
-import com.jme3.input.vr.openvr.OpenVRViewManager;
-import com.jme3.material.Material;
-import com.jme3.math.ColorRGBA;
-import com.jme3.math.Quaternion;
-import com.jme3.math.Vector2f;
-import com.jme3.math.Vector3f;
-import com.jme3.post.CartoonSSAO;
-import com.jme3.post.Filter;
-import com.jme3.post.FilterPostProcessor;
-import com.jme3.post.FilterUtil;
-import com.jme3.post.SceneProcessor;
-import com.jme3.post.filters.FogFilter;
-import com.jme3.post.filters.TranslucentBucketFilter;
-import com.jme3.post.ssao.SSAOFilter;
-import com.jme3.renderer.Camera;
-import com.jme3.renderer.ViewPort;
-import com.jme3.renderer.queue.RenderQueue.Bucket;
-import com.jme3.scene.Geometry;
-import com.jme3.scene.Mesh;
-import com.jme3.scene.Node;
-import com.jme3.scene.Spatial;
-import com.jme3.scene.VertexBuffer;
-import com.jme3.shadow.DirectionalLightShadowFilter;
-import com.jme3.shadow.VRDirectionalLightShadowRenderer;
-import com.jme3.system.jopenvr.DistortionCoordinates_t;
-import com.jme3.system.jopenvr.JOpenVRLibrary;
-import com.jme3.system.jopenvr.OpenVRUtil;
-import com.jme3.system.jopenvr.Texture_t;
-import com.jme3.system.jopenvr.VR_IVRSystem_FnTable;
-import com.jme3.system.lwjgl.LwjglWindow;
-import com.jme3.system.osvr.osvrrendermanageropengl.OSVR_RenderBufferOpenGL;
-import com.jme3.system.osvr.osvrrendermanageropengl.OSVR_ViewportDescription;
-import com.jme3.system.osvr.osvrrendermanageropengl.OsvrRenderManagerOpenGLLibrary;
-import com.jme3.texture.FrameBuffer;
-import com.jme3.texture.Image;
-import com.jme3.texture.Texture;
-import com.jme3.texture.Texture2D;
-import com.jme3.ui.Picture;
-import com.jme3.util.VRGUIPositioningMode;
-import com.sun.jna.Pointer;
-import com.sun.jna.ptr.PointerByReference;
-
-/**
- *
- * @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
-    private Texture_t leftTextureType;
-    private Texture_t rightTextureType;
-
-    // OSVR values
-    OSVR_RenderBufferOpenGL.ByValue[] osvr_renderBuffer;
-    OSVR_ViewportDescription.ByValue osvr_viewDescFull;
-    OSVR_ViewportDescription.ByValue osvr_viewDescLeft;
-    OSVR_ViewportDescription.ByValue osvr_viewDescRight;
-    Pointer osvr_rmBufferState;
-
-    private Texture2D dualEyeTex;
-
-    private final PointerByReference grabRBS = new PointerByReference();
-
-    //final & temp values for camera calculations
-    private final Vector3f finalPosition   = new Vector3f();
-    private final Quaternion finalRotation = new Quaternion();
-    private final Vector3f hmdPos          = new Vector3f();
-    private final Quaternion hmdRot        = new Quaternion();
-
-    /**
-     * 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.
-     */
-    public OSVRViewManager(VREnvironment environment){
-        this.environment = environment;
-    }
-
-    /**
-     * Get the identifier of the left eye texture.
-     * @return the identifier of the left eye texture.
-     * @see #getRightTexId()
-     * @see #getFullTexId()
-     */
-    protected int getLeftTexId() {
-        return leftEyeTexture.getImage().getId();
-    }
-
-    /**
-     * Get the identifier of the right eye texture.
-     * @return the identifier of the right eye texture.
-     * @see #getLeftTexId()
-     * @see #getFullTexId()
-     */
-    protected int getRightTexId() {
-        return rightEyeTexture.getImage().getId();
-    }
-
-    /**
-     * Get the identifier of the full (dual eye) texture.
-     * @return the identifier of the full (dual eye) texture.
-     * @see #getLeftTexId()
-     * @see #getRightTexId()
-     */
-    private int getFullTexId() {
-        return dualEyeTex.getImage().getId();
-    }
-
-    /**
-     * Initialize the system binds of the textures.
-     */
-    private void initTextureSubmitStructs() {
-        leftTextureType = new Texture_t();
-        rightTextureType = new Texture_t();
-
-        // must be OSVR
-        osvr_renderBuffer = new OSVR_RenderBufferOpenGL.ByValue[2];
-        osvr_renderBuffer[OSVR.EYE_LEFT] = new OSVR_RenderBufferOpenGL.ByValue();
-        osvr_renderBuffer[OSVR.EYE_RIGHT] = new OSVR_RenderBufferOpenGL.ByValue();
-        osvr_renderBuffer[OSVR.EYE_LEFT].setAutoSynch(false);
-        osvr_renderBuffer[OSVR.EYE_RIGHT].setAutoSynch(false);
-        osvr_viewDescFull = new OSVR_ViewportDescription.ByValue();
-        osvr_viewDescFull.setAutoSynch(false);
-        osvr_viewDescFull.left = osvr_viewDescFull.lower = 0.0;
-        osvr_viewDescFull.width = osvr_viewDescFull.height = 1.0;
-        osvr_viewDescLeft = new OSVR_ViewportDescription.ByValue();
-        osvr_viewDescLeft.setAutoSynch(false);
-        osvr_viewDescLeft.left = osvr_viewDescLeft.lower = 0.0;
-        osvr_viewDescLeft.width = 0.5;
-        osvr_viewDescLeft.height = 1.0;
-        osvr_viewDescRight = new OSVR_ViewportDescription.ByValue();
-        osvr_viewDescRight.setAutoSynch(false);
-        osvr_viewDescRight.left = 0.5;
-        osvr_viewDescRight.lower = 0.0;
-        osvr_viewDescRight.width = 0.5;
-        osvr_viewDescRight.height = 1.0;
-        osvr_viewDescRight.write();
-        osvr_viewDescLeft.write();
-        osvr_viewDescFull.write();
-        osvr_renderBuffer[OSVR.EYE_LEFT].depthStencilBufferName = -1;
-        osvr_renderBuffer[OSVR.EYE_LEFT].colorBufferName = -1;
-        osvr_renderBuffer[OSVR.EYE_RIGHT].depthStencilBufferName = -1;
-        osvr_renderBuffer[OSVR.EYE_RIGHT].colorBufferName = -1;
-    }
-
-    /**
-     * Register the OSVR OpenGL buffer.
-     * @param buf the OSVR OpenGL buffer.
-     */
-    private void registerOSVRBuffer(OSVR_RenderBufferOpenGL.ByValue buf) {
-        if (environment != null){
-            OsvrRenderManagerOpenGLLibrary.osvrRenderManagerStartRegisterRenderBuffers(grabRBS);
-            OsvrRenderManagerOpenGLLibrary.osvrRenderManagerRegisterRenderBufferOpenGL(grabRBS.getValue(), buf);
-            OsvrRenderManagerOpenGLLibrary.osvrRenderManagerFinishRegisterRenderBuffers(((OSVR)environment.getVRHardware()).getCompositor(), grabRBS.getValue(), (byte)0);
-
-        } else {
-            throw new IllegalStateException("This VR view manager is not attached to any VR environment.");
-        }
-    }
-
-    /**
-     * Send the textures to the two eyes.
-     */
-    @Override
-    public void postRender() {
-        if (environment != null){
-            if( environment.isInVR() ) {
-                VRAPI api = environment.getVRHardware();
-                if( api.getCompositor() != null ) {
-                    // using the compositor...
-                    int errl = 0, errr = 0;
-                    if( environment.isInstanceRendering() ) {
-                        if( leftTextureType.handle == -1 || leftTextureType.handle != getFullTexId() ) {
-                            leftTextureType.handle = getFullTexId();
-                            if( leftTextureType.handle != -1 ) {
-                                leftTextureType.write();
-                                if( api instanceof OSVR ) {
-                                    osvr_renderBuffer[OSVR.EYE_LEFT].colorBufferName = leftTextureType.handle;
-                                    osvr_renderBuffer[OSVR.EYE_LEFT].depthStencilBufferName = dualEyeTex.getImage().getId();
-                                    osvr_renderBuffer[OSVR.EYE_LEFT].write();
-                                    registerOSVRBuffer(osvr_renderBuffer[OSVR.EYE_LEFT]);
-                                }
-                            }
-                        } else {
-                            if( api instanceof OSVR ) {
-                                ((OSVR)api).handleRenderBufferPresent(osvr_viewDescLeft, osvr_viewDescRight,
-                                                                      osvr_renderBuffer[OSVR.EYE_LEFT], osvr_renderBuffer[OSVR.EYE_LEFT]);
-                            }
-                        }
-                    } else if( leftTextureType.handle == -1 || rightTextureType.handle == -1 ||
-                               leftTextureType.handle != getLeftTexId() || rightTextureType.handle != getRightTexId() ) {
-                        leftTextureType.handle = getLeftTexId();
-                        if( leftTextureType.handle != -1 ) {
-                            logger.fine("Writing Left texture to native memory at " + leftTextureType.getPointer());
-                            leftTextureType.write();
-                            if( api instanceof OSVR ) {
-                                osvr_renderBuffer[OSVR.EYE_LEFT].colorBufferName = leftTextureType.handle;
-                                if( leftEyeDepth != null ) osvr_renderBuffer[OSVR.EYE_LEFT].depthStencilBufferName = leftEyeDepth.getImage().getId();
-                                osvr_renderBuffer[OSVR.EYE_LEFT].write();
-                                registerOSVRBuffer(osvr_renderBuffer[OSVR.EYE_LEFT]);
-                            }
-                        }
-                        rightTextureType.handle = getRightTexId();
-                        if( rightTextureType.handle != -1 ) {
-                            logger.fine("Writing Right texture to native memory at " + leftTextureType.getPointer());
-                            rightTextureType.write();
-                            if( api instanceof OSVR ) {
-                                osvr_renderBuffer[OSVR.EYE_RIGHT].colorBufferName = rightTextureType.handle;
-                                if( rightEyeDepth != null ) osvr_renderBuffer[OSVR.EYE_RIGHT].depthStencilBufferName = rightEyeDepth.getImage().getId();
-                                osvr_renderBuffer[OSVR.EYE_RIGHT].write();
-                                registerOSVRBuffer(osvr_renderBuffer[OSVR.EYE_RIGHT]);
-                            }
-                        }
-                    } else {
-                        if( api instanceof OSVR ) {
-                            ((OSVR)api).handleRenderBufferPresent(osvr_viewDescFull, osvr_viewDescFull,
-                                                                  osvr_renderBuffer[OSVR.EYE_LEFT], osvr_renderBuffer[OSVR.EYE_RIGHT]);
-                        }
-                    }
-
-                    if( errl != 0 ){
-                        logger.severe("Submit to left compositor error: " + OpenVRUtil.getEVRCompositorErrorString(errl)+" ("+Integer.toString(errl)+")");
-                        logger.severe("  Texture color space: "+OpenVRUtil.getEColorSpaceString(leftTextureType.eColorSpace));
-                        logger.severe("  Texture type: "+OpenVRUtil.getETextureTypeString(leftTextureType.eType));
-                        logger.severe("  Texture handle: "+leftTextureType.handle);
-
-                        logger.severe("  Left eye texture "+leftEyeTexture.getName()+" ("+leftEyeTexture.getImage().getId()+")");
-                        logger.severe("                 Type: "+leftEyeTexture.getType());
-                        logger.severe("                 Size: "+leftEyeTexture.getImage().getWidth()+"x"+leftEyeTexture.getImage().getHeight());
-                        logger.severe("          Image depth: "+leftEyeTexture.getImage().getDepth());
-                        logger.severe("         Image format: "+leftEyeTexture.getImage().getFormat());
-                        logger.severe("    Image color space: "+leftEyeTexture.getImage().getColorSpace());
-                    }
-
-                    if( errr != 0 ){
-                        logger.severe("Submit to right compositor error: " + OpenVRUtil.getEVRCompositorErrorString(errl)+" ("+Integer.toString(errl)+")");
-                        logger.severe("  Texture color space: "+OpenVRUtil.getEColorSpaceString(rightTextureType.eColorSpace));
-                        logger.severe("  Texture type: "+OpenVRUtil.getETextureTypeString(rightTextureType.eType));
-                        logger.severe("  Texture handle: "+rightTextureType.handle);
-
-                        logger.severe("  Right eye texture "+rightEyeTexture.getName()+" ("+rightEyeTexture.getImage().getId()+")");
-                        logger.severe("                 Type: "+rightEyeTexture.getType());
-                        logger.severe("                 Size: "+rightEyeTexture.getImage().getWidth()+"x"+rightEyeTexture.getImage().getHeight());
-                        logger.severe("          Image depth: "+rightEyeTexture.getImage().getDepth());
-                        logger.severe("         Image format: "+rightEyeTexture.getImage().getFormat());
-                        logger.severe("    Image color space: "+rightEyeTexture.getImage().getColorSpace());
-                    }
-                }
-            }
-        } else {
-            throw new IllegalStateException("This VR view manager is not attached to any VR environment.");
-        }
-    }
-
-    /**
-     * Initialize the VR view manager.
-     */
-    @Override
-    public void initialize() {
-        logger.config("Initializing VR view manager.");
-
-        if (environment != null){
-            initTextureSubmitStructs();
-            setupCamerasAndViews();
-            setupVRScene();
-            moveScreenProcessingToEyes();
-            if( environment.hasTraditionalGUIOverlay() ) {
-
-                environment.getVRMouseManager().initialize();
-
-                // update the pose to position the gui correctly on start
-                update(0f);
-                environment.getVRGUIManager().positionGui();
-            }
-
-            if (environment.getApplication() != null){
-                // if we are OSVR, our primary mirror window needs to be the same size as the render manager's output...
-                if( environment.getVRHardware() instanceof OSVR ) {
-                    int origWidth = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDisplayMode().getWidth();
-                    int origHeight = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDisplayMode().getHeight();
-                    long window = ((LwjglWindow)environment.getApplication().getContext()).getWindowHandle();
-                    Vector2f windowSize = new Vector2f();
-                    environment.getVRHardware().getRenderSize(windowSize);
-                    windowSize.x = Math.max(windowSize.x * 2f, leftCamera.getWidth());
-                    org.lwjgl.glfw.GLFW.glfwSetWindowSize(window, (int)windowSize.x, (int)windowSize.y);
-                    environment.getApplication().getContext().getSettings().setResolution((int)windowSize.x, (int)windowSize.y);
-
-                    if (environment.getApplication().getRenderManager() != null) {
-                        environment.getApplication().getRenderManager().notifyReshape((int)windowSize.x, (int)windowSize.y);
-                    }
-
-                    org.lwjgl.glfw.GLFW.glfwSetWindowPos(window, origWidth - (int)windowSize.x, 32);
-
-                    org.lwjgl.glfw.GLFW.glfwFocusWindow(window);
-
-                    org.lwjgl.glfw.GLFW.glfwSetCursorPos(window, origWidth / 2.0, origHeight / 2.0);
-
-                    logger.config("Initialized VR view manager [SUCCESS]");
-                } else {
-                    throw new IllegalStateException("Underlying VR hardware should be "+OSVR.class.getSimpleName());
-                }
-            } 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.");
-        }
-    }
-
-    /**
-     * Prepare the size of the given {@link Camera camera} to adapt it to the underlying rendering context.
-     * @param cam the {@link Camera camera} to prepare.
-     * @param xMult the camera width multiplier.
-     */
-    private void prepareCameraSize(Camera cam, float xMult) {
-        if (environment != null){
-            if (environment.getApplication() != null){
-
-            } else {
-                throw new IllegalStateException("This VR environment is not attached to any application.");
-            }
-
-            Vector2f size = new Vector2f();
-            VRAPI vrhmd = environment.getVRHardware();
-
-            if( vrhmd == null ) {
-                size.x = 1280f;
-                size.y = 720f;
-            } else {
-                vrhmd.getRenderSize(size);
-            }
-
-            if( size.x < environment.getApplication().getContext().getSettings().getWidth() ) {
-                size.x = environment.getApplication().getContext().getSettings().getWidth();
-            }
-            if( size.y < environment.getApplication().getContext().getSettings().getHeight() ) {
-                size.y = environment.getApplication().getContext().getSettings().getHeight();
-            }
-
-            if( environment.isInstanceRendering() ){
-                size.x *= 2f;
-            }
-
-            // other adjustments
-            size.x *= xMult;
-            size.x *= getResolutionMuliplier();
-            size.y *= getResolutionMuliplier();
-
-            if( cam.getWidth() != size.x || cam.getHeight() != size.y ){
-                cam.resize((int)size.x, (int)size.y, false);
-            }
-        } else {
-            throw new IllegalStateException("This VR view manager is not attached to any VR environment.");
-        }
-    }
-
-    /**
-     * Replaces rootNode with the distortion mesh as the main camera's scene.
-     */
-    private void setupVRScene(){
-        if (environment != null){
-            if (environment.getApplication() != null){
-                // no special scene to set up if we are doing instancing
-                if( environment.isInstanceRendering() ) {
-                    // distortion has to be done with compositor here... we want only one pass on our end!
-                    if( environment.getApplication().getContext().getSettings().isSwapBuffers() ) {
-                        setupMirrorBuffers(environment.getCamera(), dualEyeTex, true);
-                    }
-                    return;
-                }
-
-                leftEyeTexture  = (Texture2D) getLeftViewPort().getOutputFrameBuffer().getColorBuffer().getTexture();
-                rightEyeTexture = (Texture2D)getRightViewPort().getOutputFrameBuffer().getColorBuffer().getTexture();
-                leftEyeDepth    = (Texture2D) getLeftViewPort().getOutputFrameBuffer().getDepthBuffer().getTexture();
-                rightEyeDepth   = (Texture2D)getRightViewPort().getOutputFrameBuffer().getDepthBuffer().getTexture();
-
-                // main viewport is either going to be a distortion scene or nothing
-                // mirroring is handled by copying framebuffers
-                Iterator<Spatial> spatialIter = environment.getApplication().getViewPort().getScenes().iterator();
-                while(spatialIter.hasNext()){
-                    environment.getApplication().getViewPort().detachScene(spatialIter.next());
-                }
-
-                spatialIter = environment.getApplication().getGuiViewPort().getScenes().iterator();
-                while(spatialIter.hasNext()){
-                    environment.getApplication().getGuiViewPort().detachScene(spatialIter.next());
-                }
-
-                // only setup distortion scene if compositor isn't running (or using custom mesh distortion option)
-                if( environment.getVRHardware().getCompositor() == null ) {
-                    Node distortionScene = new Node();
-                    Material leftMat = new Material(environment.getApplication().getAssetManager(), "Common/MatDefs/VR/OpenVR.j3md");
-                    leftMat.setTexture("Texture", leftEyeTexture);
-                    Geometry leftEye = new Geometry("box", setupDistortionMesh(JOpenVRLibrary.EVREye.EVREye_Eye_Left, environment.getVRHardware()));
-                    leftEye.setMaterial(leftMat);
-                    distortionScene.attachChild(leftEye);
-
-                    Material rightMat = new Material(environment.getApplication().getAssetManager(), "Common/MatDefs/VR/OpenVR.j3md");
-                    rightMat.setTexture("Texture", rightEyeTexture);
-                    Geometry rightEye = new Geometry("box", setupDistortionMesh(JOpenVRLibrary.EVREye.EVREye_Eye_Right, environment.getVRHardware()));
-                    rightEye.setMaterial(rightMat);
-                    distortionScene.attachChild(rightEye);
-
-                    distortionScene.updateGeometricState();
-
-                    environment.getApplication().getViewPort().attachScene(distortionScene);
-
-                    //if( useCustomDistortion ) setupFinalFullTexture(app.getViewPort().getCamera());
-                }
-
-                if( environment.getApplication().getContext().getSettings().isSwapBuffers() ) {
-                    setupMirrorBuffers(environment.getCamera(), leftEyeTexture, false);
-                }
-            } 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 VR view manager.
-     * This method is called by the attached VR application and should not be called manually.
-     * @param tpf the time per frame.
-     */
-    @Override
-    public void update(float tpf) {
-        if (environment != null){
-            // grab the observer
-            Object obs = environment.getObserver();
-            Quaternion objRot;
-            Vector3f objPos;
-            if( obs instanceof Camera ) {
-                objRot = ((Camera)obs).getRotation();
-                objPos = ((Camera)obs).getLocation();
-            } else {
-                objRot = ((Spatial)obs).getWorldRotation();
-                objPos = ((Spatial)obs).getWorldTranslation();
-            }
-            // grab the hardware handle
-            VRAPI dev = environment.getVRHardware();
-            if( dev != null ) {
-                // update the HMD's position & orientation
-                dev.updatePose();
-                dev.getPositionAndOrientation(hmdPos, hmdRot);
-                if( obs != null ) {
-                    // update hmdPos based on obs rotation
-                    finalRotation.set(objRot);
-                    finalRotation.mult(hmdPos, hmdPos);
-                    finalRotation.multLocal(hmdRot);
-                }
-
-                finalizeCamera(dev.getHMDVectorPoseLeftEye(), objPos, leftCamera);
-                finalizeCamera(dev.getHMDVectorPoseRightEye(), objPos, rightCamera);
-            } else {
-                leftCamera.setFrame(objPos, objRot);
-                rightCamera.setFrame(objPos, objRot);
-            }
-
-            if( environment.hasTraditionalGUIOverlay() ) {
-                // update the mouse?
-                environment.getVRMouseManager().update(tpf);
-
-                // update GUI position?
-                if( environment.getVRGUIManager().isWantsReposition() || environment.getVRGUIManager().getPositioningMode() != VRGUIPositioningMode.MANUAL ) {
-                    environment.getVRGUIManager().positionGuiNow(tpf);
-                    environment.getVRGUIManager().updateGuiQuadGeometricState();
-                }
-            }
-        } else {
-            throw new IllegalStateException("This VR view manager is not attached to any VR environment.");
-        }
-    }
-
-    /**
-     * Place the camera within the scene.
-     * @param eyePos the eye position.
-     * @param obsPosition the observer position.
-     * @param cam the camera to place.
-     */
-    private void finalizeCamera(Vector3f eyePos, Vector3f obsPosition, Camera cam) {
-        finalRotation.mult(eyePos, finalPosition);
-        finalPosition.addLocal(hmdPos);
-        if( obsPosition != null ){
-            finalPosition.addLocal(obsPosition);
-        }
-        finalPosition.y += getHeightAdjustment();
-        cam.setFrame(finalPosition, finalRotation);
-    }
-
-    /**
-     * Handles moving filters from the main view to each eye
-     */
-    @Override
-    public void moveScreenProcessingToEyes() {
-        if( getRightViewPort() == null ){
-            return;
-        }
-
-        if (environment != null){
-            if (environment.getApplication() != null){
-
-                syncScreenProcessing(environment.getApplication().getViewPort());
-                environment.getApplication().getViewPort().clearProcessors();
-            } 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.");
-        }
-    }
-
-    /**
-     * Sets the two views to use the list of {@link SceneProcessor processors}.
-     * @param sourceViewport the {@link ViewPort viewport} that contains the processors to use.
-     */
-    @Override
-    public void syncScreenProcessing(ViewPort sourceViewport) {
-        if( getRightViewPort() == null ){
-            return;
-        }
-
-        if (environment != null){
-            if (environment.getApplication() != null){
-                // set up post-processing filters
-                if( rightPostProcessor == null ) {
-                    rightPostProcessor = new FilterPostProcessor(environment.getApplication().getAssetManager());
-                    leftPostProcessor =  new FilterPostProcessor(environment.getApplication().getAssetManager());
-                }
-                // clear out all filters & processors, to start from scratch
-                rightPostProcessor.removeAllFilters();
-                leftPostProcessor.removeAllFilters();
-                getLeftViewPort().clearProcessors();
-                getRightViewPort().clearProcessors();
-                // if we have no processors to sync, don't add the FilterPostProcessor
-                if( sourceViewport.getProcessors().isEmpty() ) return;
-                // add post processors we just made, which are empty
-                getLeftViewPort().addProcessor(leftPostProcessor);
-                getRightViewPort().addProcessor(rightPostProcessor);
-                // go through all of the filters in the processors list
-                // add them to the left viewport processor & clone them to the right
-                for(SceneProcessor sceneProcessor : sourceViewport.getProcessors()) {
-                    if (sceneProcessor instanceof FilterPostProcessor) {
-                        for(Filter f : ((FilterPostProcessor)sceneProcessor).getFilterList() ) {
-                            if( f instanceof TranslucentBucketFilter ) {
-                                // just remove this filter, we will add it at the end manually
-                                ((FilterPostProcessor)sceneProcessor).removeFilter(f);
-                            } else {
-                                leftPostProcessor.addFilter(f);
-                                // clone to the right
-                                Filter f2;
-                                if(f instanceof FogFilter){
-                                    f2 = FilterUtil.cloneFogFilter((FogFilter)f);
-                                } else if (f instanceof CartoonSSAO ) {
-                                    f2 = new CartoonSSAO((CartoonSSAO)f);
-                                } else if (f instanceof SSAOFilter){
-                                    f2 = FilterUtil.cloneSSAOFilter((SSAOFilter)f);
-                                } else if (f instanceof DirectionalLightShadowFilter){
-                                    f2 = FilterUtil.cloneDirectionalLightShadowFilter(environment.getApplication().getAssetManager(), (DirectionalLightShadowFilter)f);
-                                } else {
-                                    f2 = f; // DoF, bloom, light scattering etc.
-                                }
-                                rightPostProcessor.addFilter(f2);
-                            }
-                        }
-                    } else if (sceneProcessor instanceof VRDirectionalLightShadowRenderer) {
-                        // shadow processing
-                        // TODO: make right shadow processor use same left shadow maps for performance
-                        VRDirectionalLightShadowRenderer dlsr = (VRDirectionalLightShadowRenderer) sceneProcessor;
-                        VRDirectionalLightShadowRenderer dlsrRight = dlsr.clone();
-                        dlsrRight.setLight(dlsr.getLight());
-                        getRightViewPort().getProcessors().add(0, dlsrRight);
-                        getLeftViewPort().getProcessors().add(0, sceneProcessor);
-                    }
-                }
-                // make sure each has a translucent filter renderer
-                leftPostProcessor.addFilter(new TranslucentBucketFilter());
-                rightPostProcessor.addFilter(new TranslucentBucketFilter());
-            } 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 void setupCamerasAndViews() {
-        if (environment != null){
-            if (environment.getApplication() != null){
-                // get desired frustum from original camera
-                Camera origCam = environment.getCamera();
-                float fFar = origCam.getFrustumFar();
-                float fNear = origCam.getFrustumNear();
-
-                // if we are using OSVR get the eye info here
-                if( environment.getVRHardware() instanceof OSVR ) {
-                    ((OSVR)environment.getVRHardware()).getEyeInfo();
-                }
-
-                // restore frustum on distortion scene cam, if needed
-                if( environment.isInstanceRendering() ) {
-                    leftCamera = origCam;
-                } else if( environment.compositorAllowed() == false ) {
-                    origCam.setFrustumFar(100f);
-                    origCam.setFrustumNear(1f);
-                    leftCamera = origCam.clone();
-                    prepareCameraSize(origCam, 2f);
-                } else {
-                    leftCamera = origCam.clone();
-                }
-
-                leftCamera.setFrustumPerspective(environment.getDefaultFOV(), environment.getDefaultAspect(), fNear, fFar);
-
-                prepareCameraSize(leftCamera, 1f);
-                if( environment.getVRHardware() != null ) leftCamera.setProjectionMatrix(environment.getVRHardware().getHMDMatrixProjectionLeftEye(leftCamera));
-                //org.lwjgl.opengl.GL11.glEnable(org.lwjgl.opengl.GL30.GL_FRAMEBUFFER_SRGB);
-
-                if( !environment.isInstanceRendering()) {
-                    leftViewPort = setupViewBuffers(leftCamera, LEFT_VIEW_NAME);
-                    rightCamera = leftCamera.clone();
-                    if( environment.getVRHardware() != null ){
-                        rightCamera.setProjectionMatrix(environment.getVRHardware().getHMDMatrixProjectionRightEye(rightCamera));
-                    }
-                    rightViewPort = setupViewBuffers(rightCamera, RIGHT_VIEW_NAME);
-                } else {
-                    System.err.println("[VRViewManager] THIS CODE NEED CHANGES !!!");
-                    leftViewPort = environment.getApplication().getViewPort();
-                    //leftViewport.attachScene(app.getRootNode());
-                    rightCamera = leftCamera.clone();
-                    if( environment.getVRHardware() != null ){
-                        rightCamera.setProjectionMatrix(environment.getVRHardware().getHMDMatrixProjectionRightEye(rightCamera));
-                    }
-
-                    org.lwjgl.opengl.GL11.glEnable(org.lwjgl.opengl.GL30.GL_CLIP_DISTANCE0);
-
-                    //FIXME: [jme-vr] Fix with JMonkey next release
-                    //RenderManager._VRInstancing_RightCamProjection = camRight.getViewProjectionMatrix();
-                    setupFinalFullTexture(environment.getApplication().getViewPort().getCamera());
-                }
-
-                // setup gui
-                environment.getVRGUIManager().setupGui(leftCamera, rightCamera, getLeftViewPort(), getRightViewPort());
-
-                if( environment.getVRHardware() != null ) {
-                    // call these to cache the results internally
-                    environment.getVRHardware().getHMDMatrixPoseLeftEye();
-                    environment.getVRHardware().getHMDMatrixPoseRightEye();
-                }
-            } 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 ViewPort setupMirrorBuffers(Camera cam, Texture tex, boolean expand) {
-        if (environment != null){
-            if (environment.getApplication() != null){
-                Camera cloneCam = cam.clone();
-                ViewPort viewPort = environment.getApplication().getRenderManager().createPostView("MirrorView", cloneCam);
-                cloneCam.setParallelProjection(true);
-                viewPort.setClearFlags(true, true, true);
-                viewPort.setBackgroundColor(ColorRGBA.Black);
-                Picture pic = new Picture("fullscene");
-                pic.setLocalTranslation(-0.75f, -0.5f, 0f);
-                if( expand ) {
-                    pic.setLocalScale(3f, 1f, 1f);
-                } else {
-                    pic.setLocalScale(1.5f, 1f, 1f);
-                }
-                pic.setQueueBucket(Bucket.Opaque);
-                pic.setTexture(environment.getApplication().getAssetManager(), (Texture2D)tex, false);
-                viewPort.attachScene(pic);
-                viewPort.setOutputFrameBuffer(null);
-
-                pic.updateGeometricState();
-
-                return viewPort;
-            } 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 void setupFinalFullTexture(Camera cam) {
-        if (environment != null){
-            if (environment.getApplication() != null){
-                // create offscreen framebuffer
-                FrameBuffer out = new FrameBuffer(cam.getWidth(), cam.getHeight(), 1);
-                //offBuffer.setSrgb(true);
-
-                //setup framebuffer's texture
-                dualEyeTex = new Texture2D(cam.getWidth(), cam.getHeight(), Image.Format.RGBA8);
-                dualEyeTex.setMinFilter(Texture.MinFilter.BilinearNoMipMaps);
-                dualEyeTex.setMagFilter(Texture.MagFilter.Bilinear);
-
-                logger.config("Dual eye texture "+dualEyeTex.getName()+" ("+dualEyeTex.getImage().getId()+")");
-                logger.config("               Type: "+dualEyeTex.getType());
-                logger.config("               Size: "+dualEyeTex.getImage().getWidth()+"x"+dualEyeTex.getImage().getHeight());
-                logger.config("        Image depth: "+dualEyeTex.getImage().getDepth());
-                logger.config("       Image format: "+dualEyeTex.getImage().getFormat());
-                logger.config("  Image color space: "+dualEyeTex.getImage().getColorSpace());
-
-                //setup framebuffer to use texture
-                out.setDepthBuffer(Image.Format.Depth);
-                out.setColorTexture(dualEyeTex);
-
-                ViewPort viewPort = environment.getApplication().getViewPort();
-                viewPort.setClearFlags(true, true, true);
-                viewPort.setBackgroundColor(ColorRGBA.Black);
-                viewPort.setOutputFrameBuffer(out);
-            } 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 ViewPort setupViewBuffers(Camera cam, String viewName){
-        if (environment != null){
-            if (environment.getApplication() != null){
-                // create offscreen framebuffer
-                FrameBuffer offBufferLeft = new FrameBuffer(cam.getWidth(), cam.getHeight(), 1);
-                //offBufferLeft.setSrgb(true);
-
-                //setup framebuffer's texture
-                Texture2D offTex = new Texture2D(cam.getWidth(), cam.getHeight(), Image.Format.RGBA8);
-                offTex.setMinFilter(Texture.MinFilter.BilinearNoMipMaps);
-                offTex.setMagFilter(Texture.MagFilter.Bilinear);
-
-                //setup framebuffer to use texture
-                offBufferLeft.setDepthBuffer(Image.Format.Depth);
-                offBufferLeft.setColorTexture(offTex);
-
-                ViewPort viewPort = environment.getApplication().getRenderManager().createPreView(viewName, cam);
-                viewPort.setClearFlags(true, true, true);
-                viewPort.setBackgroundColor(ColorRGBA.Black);
-
-                Iterator<Spatial> spatialIter = environment.getApplication().getViewPort().getScenes().iterator();
-                while(spatialIter.hasNext()){
-                    viewPort.attachScene(spatialIter.next());
-                }
-
-                //set viewport to render to offscreen framebuffer
-                viewPort.setOutputFrameBuffer(offBufferLeft);
-                return viewPort;
-            } 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.");
-        }
-    }
-
-    /**
-     * Set up a distortion mesh for the stereo view.
-     * @param eye the eye to apply.
-     * @param api the underlying VR api
-     * @return the distorted mesh.
-     */
-    public static Mesh setupDistortionMesh(int eye, VRAPI api) {
-        Mesh distortionMesh = new Mesh();
-        float m_iLensGridSegmentCountH = 43, m_iLensGridSegmentCountV = 43;
-
-        float w = 1f / (m_iLensGridSegmentCountH - 1f);
-        float h = 1f / (m_iLensGridSegmentCountV - 1f);
-
-        float u, v;
-
-        float verts[] = new float[(int) (m_iLensGridSegmentCountV * m_iLensGridSegmentCountH) * 3];
-
-        float texcoordR[] = new float[(int) (m_iLensGridSegmentCountV * m_iLensGridSegmentCountH) * 2];
-        float texcoordG[] = new float[(int) (m_iLensGridSegmentCountV * m_iLensGridSegmentCountH) * 2];
-        float texcoordB[] = new float[(int) (m_iLensGridSegmentCountV * m_iLensGridSegmentCountH) * 2];
-
-        int vertPos = 0, coordPos = 0;
-
-        float Xoffset = eye == JOpenVRLibrary.EVREye.EVREye_Eye_Left ? -1f : 0;
-        for (int y = 0; y < m_iLensGridSegmentCountV; y++) {
-            for (int x = 0; x < m_iLensGridSegmentCountH; x++) {
-                u = x * w;
-                v = 1 - y * h;
-                verts[vertPos] = Xoffset + u; // x
-                verts[vertPos + 1] = -1 + 2 * y * h; // y
-                verts[vertPos + 2] = 0f; // z
-                vertPos += 3;
-
-                DistortionCoordinates_t dc0 = new DistortionCoordinates_t();
-                if( api.getVRSystem() == null ) {
-                    // default to no distortion
-                    texcoordR[coordPos] = u;
-                    texcoordR[coordPos + 1] = 1 - v;
-                    texcoordG[coordPos] = u;
-                    texcoordG[coordPos + 1] = 1 - v;
-                    texcoordB[coordPos] = u;
-                    texcoordB[coordPos + 1] = 1 - v;
-                } else {
-                    ((VR_IVRSystem_FnTable)api.getVRSystem()).ComputeDistortion.apply(eye, u, v, dc0);
-
-                    texcoordR[coordPos] = dc0.rfRed[0];
-                    texcoordR[coordPos + 1] = 1 - dc0.rfRed[1];
-                    texcoordG[coordPos] = dc0.rfGreen[0];
-                    texcoordG[coordPos + 1] = 1 - dc0.rfGreen[1];
-                    texcoordB[coordPos] = dc0.rfBlue[0];
-                    texcoordB[coordPos + 1] = 1 - dc0.rfBlue[1];
-                }
-
-                coordPos += 2;
-            }
-        }
-
-        // have UV coordinates & positions, now set up indices
-
-        int[] indices = new int[(int) ((m_iLensGridSegmentCountV - 1) * (m_iLensGridSegmentCountH - 1)) * 6];
-        int indexPos = 0;
-        int a, b, c, d;
-
-        int offset = 0;
-        for (int y = 0; y < m_iLensGridSegmentCountV - 1; y++) {
-            for (int x = 0; x < m_iLensGridSegmentCountH - 1; x++) {
-                a = (int) (m_iLensGridSegmentCountH * y + x + offset);
-                b = (int) (m_iLensGridSegmentCountH * y + x + 1 + offset);
-                c = (int) ((y + 1) * m_iLensGridSegmentCountH + x + 1 + offset);
-                d = (int) ((y + 1) * m_iLensGridSegmentCountH + x + offset);
-
-                indices[indexPos] = a;
-                indices[indexPos + 1] = b;
-                indices[indexPos + 2] = c;
-
-                indices[indexPos + 3] = a;
-                indices[indexPos + 4] = c;
-                indices[indexPos + 5] = d;
-
-                indexPos += 6;
-            }
-        }
-
-        // OK, create the mesh
-        distortionMesh.setBuffer(VertexBuffer.Type.Position, 3, verts);
-        distortionMesh.setBuffer(VertexBuffer.Type.Index, 1, indices);
-        distortionMesh.setBuffer(VertexBuffer.Type.TexCoord, 2, texcoordR);
-        distortionMesh.setBuffer(VertexBuffer.Type.TexCoord2, 2, texcoordG);
-        distortionMesh.setBuffer(VertexBuffer.Type.TexCoord3, 2, texcoordB);
-        distortionMesh.setStatic();
-        return distortionMesh;
-  }
-
-    @Override
-    public void render() {
-        // TODO Auto-generated method stub
-    }
-}

+ 0 - 380
jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientkit/OsvrClientKitLibrary.java

@@ -1,380 +0,0 @@
-package com.jme3.system.osvr.osvrclientkit;
-import com.sun.jna.Callback;
-import com.sun.jna.Library;
-import com.sun.jna.Native;
-import com.sun.jna.NativeLibrary;
-import com.sun.jna.Pointer;
-import com.sun.jna.PointerType;
-import com.sun.jna.ptr.PointerByReference;
-/**
- * JNA Wrapper for library <b>osvrClientKit</b><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>
- * 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 OsvrClientKitLibrary implements Library {
-	public static final String JNA_LIBRARY_NAME = "osvrClientKit";
-	public static final NativeLibrary JNA_NATIVE_LIB = NativeLibrary.getInstance(OsvrClientKitLibrary.JNA_LIBRARY_NAME);
-	static {
-            Native.register(OsvrClientKitLibrary.class, OsvrClientKitLibrary.JNA_NATIVE_LIB);
-	}
-	/**
-	 * Initialize the library.
-	 * @param applicationIdentifier A null terminated string identifying your<br>
-	 * application. Reverse DNS format strongly suggested.<br>
-	 * @param flags initialization options (reserved) - pass 0 for now.<br>
-	 * @return Client context - will be needed for subsequent calls<br>
-	 * Original signature : <code>OSVR_ClientContext osvrClientInit(const char[], uint32_t)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrClientInit(byte[], int)}
-         * instead
-	 */
-	@Deprecated 
-	public static native OsvrClientKitLibrary.OSVR_ClientContext osvrClientInit(Pointer applicationIdentifier, int flags);
-	/**
-	 * Initialize the library.
-	 * @param applicationIdentifier A null terminated string identifying your<br>
-	 * application. Reverse DNS format strongly suggested.<br>
-	 * @param flags initialization options (reserved) - pass 0 for now.<br>
-	 * @return Client context - will be needed for subsequent calls<br>
-	 * Original signature : <code>OSVR_ClientContext osvrClientInit(const char[], uint32_t)</code>
-	 */
-	public static native OsvrClientKitLibrary.OSVR_ClientContext osvrClientInit(byte applicationIdentifier[], int flags);
-	/**
-	 * Updates the state of the context - call regularly in your mainloop.
-	 * @param ctx Client context<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientUpdate(OSVR_ClientContext)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrClientUpdate(OsvrClientKitLibrary.OSVR_ClientContext)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrClientUpdate(Pointer ctx);
-	/**
-	 * Updates the state of the context - call regularly in your mainloop.
-	 * @param ctx Client context<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientUpdate(OSVR_ClientContext)</code>
-	 */
-	public static native byte osvrClientUpdate(OsvrClientKitLibrary.OSVR_ClientContext ctx);
-	/**
-	 * Checks to see if the client context is fully started up and connected
-	 * properly to a server.<br>
-	 * If this reports that the client context is not OK, there may not be a server<br>
-	 * running, or you may just have to call osvrClientUpdate() a few times to<br>
-	 * permit startup to finish. The return value of this call will not change from<br>
-	 * failure to success without calling osvrClientUpdate().<br>
-	 * @param ctx Client context<br>
-	 * @return OSVR_RETURN_FAILURE if not yet fully connected/initialized, or if<br>
-	 * some other error (null context) occurs.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientCheckStatus(OSVR_ClientContext)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrClientCheckStatus(com.jme3.system.osvr.osvrclientkit.OsvrClientKitLibrary.OSVR_ClientContext)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrClientCheckStatus(Pointer ctx);
-	/**
-	 * Checks to see if the client context is fully started up and connected
-	 * properly to a server.<br>
-	 * If this reports that the client context is not OK, there may not be a server<br>
-	 * running, or you may just have to call osvrClientUpdate() a few times to<br>
-	 * permit startup to finish. The return value of this call will not change from<br>
-	 * failure to success without calling osvrClientUpdate().<br>
-	 * @param ctx Client context<br>
-	 * @return OSVR_RETURN_FAILURE if not yet fully connected/initialized, or if<br>
-	 * some other error (null context) occurs.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientCheckStatus(OSVR_ClientContext)</code>
-	 */
-	public static native byte osvrClientCheckStatus(OsvrClientKitLibrary.OSVR_ClientContext ctx);
-	/**
-	 * Shut down the library.
-	 * @param ctx Client context<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientShutdown(OSVR_ClientContext)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrClientShutdown(OsvrClientKitLibrary.OSVR_ClientContext)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrClientShutdown(Pointer ctx);
-	/**
-	 * Shut down the library.
-	 * @param ctx Client context<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientShutdown(OSVR_ClientContext)</code>
-	 */
-	public static native byte osvrClientShutdown(OsvrClientKitLibrary.OSVR_ClientContext ctx);
-	/**
-	 * Log a message from the client.
-	 * Original signature : <code>void osvrClientLog(OSVR_ClientContext, OSVR_LogLevel, const char*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrClientLog(com.jme3.system.osvr.osvrclientkit.OsvrClientKitLibrary.OSVR_ClientContext, int, java.lang.String)}
-         * instead
-	 */
-	@Deprecated 
-	public static native void osvrClientLog(Pointer ctx, int severity, Pointer message);
-	/**
-	 * Log a message from the client.
-	 * Original signature : <code>void osvrClientLog(OSVR_ClientContext, OSVR_LogLevel, const char*)</code>
-	 */
-	public static native void osvrClientLog(OsvrClientKitLibrary.OSVR_ClientContext ctx, int severity, String message);
-	/**
-	 * Get the interface associated with the given path.
-	 * @param ctx Client context<br>
-	 * @param path A resource path (null-terminated string)<br>
-	 * @param iface The interface object. May be freed when no longer needed,<br>
-	 * otherwise it will be freed when the context is closed.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetInterface(OSVR_ClientContext, const char[], OSVR_ClientInterface*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrClientGetInterface(com.jme3.system.osvr.osvrclientkit.OsvrClientKitLibrary.OSVR_ClientContext, byte[], com.sun.jna.ptr.PointerByReference)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrClientGetInterface(Pointer ctx, Pointer path, Pointer iface);
-	/**
-	 * Get the interface associated with the given path.
-	 * @param ctx Client context<br>
-	 * @param path A resource path (null-terminated string)<br>
-	 * @param iface The interface object. May be freed when no longer needed,<br>
-	 * otherwise it will be freed when the context is closed.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetInterface(OSVR_ClientContext, const char[], OSVR_ClientInterface*)</code>
-	 */
-	public static native byte osvrClientGetInterface(OsvrClientKitLibrary.OSVR_ClientContext ctx, byte path[], PointerByReference iface);
-	/**
-	 * Get the interface associated with the given path.
-	 * @param ctx Client context<br>
-	 * @param path A resource path (null-terminated string)<br>
-	 * @param iface The interface object. May be freed when no longer needed,<br>
-	 * otherwise it will be freed when the context is closed.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetInterface(OSVR_ClientContext, const char[], OSVR_ClientInterface*)</code>
-	 */
-	public static native byte osvrClientGetInterface(Pointer ctx, Pointer path, PointerByReference iface);
-	/**
-	 * Free an interface object before context closure.
-	 * @param ctx Client context<br>
-	 * @param iface The interface object<br>
-	 * @return OSVR_RETURN_SUCCESS unless a null context or interface was passed<br>
-	 * or the given interface was not found in the context (i.e. had already been<br>
-	 * freed)<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientFreeInterface(OSVR_ClientContext, OSVR_ClientInterface)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrClientFreeInterface(com.jme3.system.osvr.osvrclientkit.OsvrClientKitLibrary.OSVR_ClientContext, com.jme3.system.osvr.osvrclientkit.OsvrClientKitLibrary.OSVR_ClientInterface)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrClientFreeInterface(Pointer ctx, Pointer iface);
-	/**
-	 * Free an interface object before context closure.
-	 * @param ctx Client context<br>
-	 * @param iface The interface object<br>
-	 * @return OSVR_RETURN_SUCCESS unless a null context or interface was passed<br>
-	 * or the given interface was not found in the context (i.e. had already been<br>
-	 * freed)<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientFreeInterface(OSVR_ClientContext, OSVR_ClientInterface)</code>
-	 */
-	public static native byte osvrClientFreeInterface(OsvrClientKitLibrary.OSVR_ClientContext ctx, OsvrClientKitLibrary.OSVR_ClientInterface iface);
-	/**
-	 * Original signature : <code>OSVR_ReturnCode osvrRegisterPoseCallback(OSVR_ClientInterface, OSVR_PoseCallback, void*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrRegisterPoseCallback(OsvrClientKitLibrary.OSVR_ClientInterface, com.sun.jna.Pointer, com.sun.jna.Pointer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrRegisterPoseCallback(Pointer iface, Pointer cb, Pointer userdata);
-	/** Original signature : <code>OSVR_ReturnCode osvrRegisterPoseCallback(OSVR_ClientInterface, OSVR_PoseCallback, void*)</code> */
-	public static native byte osvrRegisterPoseCallback(OsvrClientKitLibrary.OSVR_ClientInterface iface, Pointer cb, Pointer userdata);
-	/**
-	 * Original signature : <code>OSVR_ReturnCode osvrRegisterPositionCallback(OSVR_ClientInterface, OSVR_PositionCallback, void*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrRegisterPositionCallback(OsvrClientKitLibrary.OSVR_ClientInterface, com.sun.jna.Pointer, com.sun.jna.Pointer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrRegisterPositionCallback(Pointer iface, Pointer cb, Pointer userdata);
-	/** Original signature : <code>OSVR_ReturnCode osvrRegisterPositionCallback(OSVR_ClientInterface, OSVR_PositionCallback, void*)</code> */
-	public static native byte osvrRegisterPositionCallback(OsvrClientKitLibrary.OSVR_ClientInterface iface, Pointer cb, Pointer userdata);
-	/**
-	 * Original signature : <code>OSVR_ReturnCode osvrRegisterOrientationCallback(OSVR_ClientInterface, OSVR_OrientationCallback, void*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrRegisterOrientationCallback(OsvrClientKitLibrary.OSVR_ClientInterface, com.sun.jna.Pointer, com.sun.jna.Pointer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrRegisterOrientationCallback(Pointer iface, Pointer cb, Pointer userdata);
-	/** Original signature : <code>OSVR_ReturnCode osvrRegisterOrientationCallback(OSVR_ClientInterface, OSVR_OrientationCallback, void*)</code> */
-	public static native byte osvrRegisterOrientationCallback(OsvrClientKitLibrary.OSVR_ClientInterface iface, Pointer cb, Pointer userdata);
-	/**
-	 * Original signature : <code>OSVR_ReturnCode osvrRegisterVelocityCallback(OSVR_ClientInterface, OSVR_VelocityCallback, void*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrRegisterVelocityCallback(OsvrClientKitLibrary.OSVR_ClientInterface, com.sun.jna.Pointer, com.sun.jna.Pointer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrRegisterVelocityCallback(Pointer iface, Pointer cb, Pointer userdata);
-	/** Original signature : <code>OSVR_ReturnCode osvrRegisterVelocityCallback(OSVR_ClientInterface, OSVR_VelocityCallback, void*)</code> */
-	public static native byte osvrRegisterVelocityCallback(OsvrClientKitLibrary.OSVR_ClientInterface iface, Pointer cb, Pointer userdata);
-	/**
-	 * Original signature : <code>OSVR_ReturnCode osvrRegisterLinearVelocityCallback(OSVR_ClientInterface, OSVR_LinearVelocityCallback, void*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrRegisterLinearVelocityCallback(OsvrClientKitLibrary.OSVR_ClientInterface, com.sun.jna.Pointer, com.sun.jna.Pointer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrRegisterLinearVelocityCallback(Pointer iface, Pointer cb, Pointer userdata);
-	/** Original signature : <code>OSVR_ReturnCode osvrRegisterLinearVelocityCallback(OSVR_ClientInterface, OSVR_LinearVelocityCallback, void*)</code> */
-	public static native byte osvrRegisterLinearVelocityCallback(OsvrClientKitLibrary.OSVR_ClientInterface iface, Pointer cb, Pointer userdata);
-	/**
-	 * Original signature : <code>OSVR_ReturnCode osvrRegisterAngularVelocityCallback(OSVR_ClientInterface, OSVR_AngularVelocityCallback, void*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrRegisterAngularVelocityCallback(OsvrClientKitLibrary.OSVR_ClientInterface, com.sun.jna.Pointer, com.sun.jna.Pointer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrRegisterAngularVelocityCallback(Pointer iface, Pointer cb, Pointer userdata);
-	/** Original signature : <code>OSVR_ReturnCode osvrRegisterAngularVelocityCallback(OSVR_ClientInterface, OSVR_AngularVelocityCallback, void*)</code> */
-	public static native byte osvrRegisterAngularVelocityCallback(OsvrClientKitLibrary.OSVR_ClientInterface iface, Pointer cb, Pointer userdata);
-	/**
-	 * Original signature : <code>OSVR_ReturnCode osvrRegisterAccelerationCallback(OSVR_ClientInterface, OSVR_AccelerationCallback, void*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrRegisterAccelerationCallback(OsvrClientKitLibrary.OSVR_ClientInterface, com.sun.jna.Pointer, com.sun.jna.Pointer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrRegisterAccelerationCallback(Pointer iface, Pointer cb, Pointer userdata);
-	/** Original signature : <code>OSVR_ReturnCode osvrRegisterAccelerationCallback(OSVR_ClientInterface, OSVR_AccelerationCallback, void*)</code> */
-	public static native byte osvrRegisterAccelerationCallback(OsvrClientKitLibrary.OSVR_ClientInterface iface, Pointer cb, Pointer userdata);
-	/**
-	 * Original signature : <code>OSVR_ReturnCode osvrRegisterLinearAccelerationCallback(OSVR_ClientInterface, OSVR_LinearAccelerationCallback, void*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrRegisterLinearAccelerationCallback(OsvrClientKitLibrary.OSVR_ClientInterface, com.sun.jna.Pointer, com.sun.jna.Pointer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrRegisterLinearAccelerationCallback(Pointer iface, Pointer cb, Pointer userdata);
-	/** Original signature : <code>OSVR_ReturnCode osvrRegisterLinearAccelerationCallback(OSVR_ClientInterface, OSVR_LinearAccelerationCallback, void*)</code> */
-	public static native byte osvrRegisterLinearAccelerationCallback(OsvrClientKitLibrary.OSVR_ClientInterface iface, Pointer cb, Pointer userdata);
-	/**
-	 * Original signature : <code>OSVR_ReturnCode osvrRegisterAngularAccelerationCallback(OSVR_ClientInterface, OSVR_AngularAccelerationCallback, void*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrRegisterAngularAccelerationCallback(OsvrClientKitLibrary.OSVR_ClientInterface, com.sun.jna.Pointer, com.sun.jna.Pointer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrRegisterAngularAccelerationCallback(Pointer iface, Pointer cb, Pointer userdata);
-	/** Original signature : <code>OSVR_ReturnCode osvrRegisterAngularAccelerationCallback(OSVR_ClientInterface, OSVR_AngularAccelerationCallback, void*)</code> */
-	public static native byte osvrRegisterAngularAccelerationCallback(OsvrClientKitLibrary.OSVR_ClientInterface iface, Pointer cb, Pointer userdata);
-	/**
-	 * Original signature : <code>OSVR_ReturnCode osvrRegisterButtonCallback(OSVR_ClientInterface, OSVR_ButtonCallback, void*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrRegisterButtonCallback(com.jme3.system.osvr.osvrclientkit.OsvrClientKitLibrary.OSVR_ClientInterface, com.sun.jna.Callback, com.sun.jna.Pointer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrRegisterButtonCallback(Pointer iface, Pointer cb, Pointer userdata);
-	/** Original signature : <code>OSVR_ReturnCode osvrRegisterButtonCallback(OSVR_ClientInterface, OSVR_ButtonCallback, void*)</code> */
-	public static native byte osvrRegisterButtonCallback(OsvrClientKitLibrary.OSVR_ClientInterface iface, Callback cb, Pointer userdata);
-	/**
-	 * Original signature : <code>OSVR_ReturnCode osvrRegisterAnalogCallback(OSVR_ClientInterface, OSVR_AnalogCallback, void*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrRegisterAnalogCallback(com.jme3.system.osvr.osvrclientkit.OsvrClientKitLibrary.OSVR_ClientInterface, com.sun.jna.Callback, com.sun.jna.Pointer)} 
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrRegisterAnalogCallback(Pointer iface, Pointer cb, Pointer userdata);
-	/** Original signature : <code>OSVR_ReturnCode osvrRegisterAnalogCallback(OSVR_ClientInterface, OSVR_AnalogCallback, void*)</code> */
-	public static native byte osvrRegisterAnalogCallback(OsvrClientKitLibrary.OSVR_ClientInterface iface, Callback cb, Pointer userdata);
-	/**
-	 * Original signature : <code>OSVR_ReturnCode osvrRegisterImagingCallback(OSVR_ClientInterface, OSVR_ImagingCallback, void*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrRegisterImagingCallback(OsvrClientKitLibrary.OSVR_ClientInterface, com.sun.jna.Pointer, com.sun.jna.Pointer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrRegisterImagingCallback(Pointer iface, Pointer cb, Pointer userdata);
-	/** Original signature : <code>OSVR_ReturnCode osvrRegisterImagingCallback(OSVR_ClientInterface, OSVR_ImagingCallback, void*)</code> */
-	public static native byte osvrRegisterImagingCallback(OsvrClientKitLibrary.OSVR_ClientInterface iface, Pointer cb, Pointer userdata);
-	/**
-	 * Original signature : <code>OSVR_ReturnCode osvrRegisterLocation2DCallback(OSVR_ClientInterface, OSVR_Location2DCallback, void*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrRegisterLocation2DCallback(OsvrClientKitLibrary.OSVR_ClientInterface, com.sun.jna.Pointer, com.sun.jna.Pointer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrRegisterLocation2DCallback(Pointer iface, Pointer cb, Pointer userdata);
-	/** Original signature : <code>OSVR_ReturnCode osvrRegisterLocation2DCallback(OSVR_ClientInterface, OSVR_Location2DCallback, void*)</code> */
-	public static native byte osvrRegisterLocation2DCallback(OsvrClientKitLibrary.OSVR_ClientInterface iface, Pointer cb, Pointer userdata);
-	/**
-	 * Original signature : <code>OSVR_ReturnCode osvrRegisterDirectionCallback(OSVR_ClientInterface, OSVR_DirectionCallback, void*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrRegisterDirectionCallback(OsvrClientKitLibrary.OSVR_ClientInterface, com.sun.jna.Pointer, com.sun.jna.Pointer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrRegisterDirectionCallback(Pointer iface, Pointer cb, Pointer userdata);
-	/** Original signature : <code>OSVR_ReturnCode osvrRegisterDirectionCallback(OSVR_ClientInterface, OSVR_DirectionCallback, void*)</code> */
-	public static native byte osvrRegisterDirectionCallback(OsvrClientKitLibrary.OSVR_ClientInterface iface, Pointer cb, Pointer userdata);
-	/**
-	 * Original signature : <code>OSVR_ReturnCode osvrRegisterEyeTracker2DCallback(OSVR_ClientInterface, OSVR_EyeTracker2DCallback, void*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrRegisterEyeTracker2DCallback(OsvrClientKitLibrary.OSVR_ClientInterface, com.sun.jna.Pointer, com.sun.jna.Pointer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrRegisterEyeTracker2DCallback(Pointer iface, Pointer cb, Pointer userdata);
-	/** Original signature : <code>OSVR_ReturnCode osvrRegisterEyeTracker2DCallback(OSVR_ClientInterface, OSVR_EyeTracker2DCallback, void*)</code> */
-	public static native byte osvrRegisterEyeTracker2DCallback(OsvrClientKitLibrary.OSVR_ClientInterface iface, Pointer cb, Pointer userdata);
-	/**
-	 * Original signature : <code>OSVR_ReturnCode osvrRegisterEyeTracker3DCallback(OSVR_ClientInterface, OSVR_EyeTracker3DCallback, void*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrRegisterEyeTracker3DCallback(OsvrClientKitLibrary.OSVR_ClientInterface, com.sun.jna.Pointer, com.sun.jna.Pointer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrRegisterEyeTracker3DCallback(Pointer iface, Pointer cb, Pointer userdata);
-	/** Original signature : <code>OSVR_ReturnCode osvrRegisterEyeTracker3DCallback(OSVR_ClientInterface, OSVR_EyeTracker3DCallback, void*)</code> */
-	public static native byte osvrRegisterEyeTracker3DCallback(OsvrClientKitLibrary.OSVR_ClientInterface iface, Pointer cb, Pointer userdata);
-	/**
-	 * Original signature : <code>OSVR_ReturnCode osvrRegisterEyeTrackerBlinkCallback(OSVR_ClientInterface, OSVR_EyeTrackerBlinkCallback, void*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrRegisterEyeTrackerBlinkCallback(OsvrClientKitLibrary.OSVR_ClientInterface, com.sun.jna.Pointer, com.sun.jna.Pointer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrRegisterEyeTrackerBlinkCallback(Pointer iface, Pointer cb, Pointer userdata);
-	/** Original signature : <code>OSVR_ReturnCode osvrRegisterEyeTrackerBlinkCallback(OSVR_ClientInterface, OSVR_EyeTrackerBlinkCallback, void*)</code> */
-	public static native byte osvrRegisterEyeTrackerBlinkCallback(OsvrClientKitLibrary.OSVR_ClientInterface iface, Pointer cb, Pointer userdata);
-	/**
-	 * Original signature : <code>OSVR_ReturnCode osvrRegisterNaviVelocityCallback(OSVR_ClientInterface, OSVR_NaviVelocityCallback, void*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrRegisterNaviVelocityCallback(OsvrClientKitLibrary.OSVR_ClientInterface, com.sun.jna.Pointer, com.sun.jna.Pointer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrRegisterNaviVelocityCallback(Pointer iface, Pointer cb, Pointer userdata);
-	/** Original signature : <code>OSVR_ReturnCode osvrRegisterNaviVelocityCallback(OSVR_ClientInterface, OSVR_NaviVelocityCallback, void*)</code> */
-	public static native byte osvrRegisterNaviVelocityCallback(OsvrClientKitLibrary.OSVR_ClientInterface iface, Pointer cb, Pointer userdata);
-	/**
-	 * Original signature : <code>OSVR_ReturnCode osvrRegisterNaviPositionCallback(OSVR_ClientInterface, OSVR_NaviPositionCallback, void*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrRegisterNaviPositionCallback(OsvrClientKitLibrary.OSVR_ClientInterface, com.sun.jna.Pointer, com.sun.jna.Pointer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrRegisterNaviPositionCallback(Pointer iface, Pointer cb, Pointer userdata);
-	/** Original signature : <code>OSVR_ReturnCode osvrRegisterNaviPositionCallback(OSVR_ClientInterface, OSVR_NaviPositionCallback, void*)</code> */
-	public static native byte osvrRegisterNaviPositionCallback(OsvrClientKitLibrary.OSVR_ClientInterface iface, Pointer cb, Pointer userdata);
-	public static class OSVR_ClientContext extends PointerType {
-		public OSVR_ClientContext(Pointer address) {
-			super(address);
-		}
-		public OSVR_ClientContext() {
-			super();
-		}
-	};
-	public static class OSVR_ClientInterface extends PointerType {
-		public OSVR_ClientInterface(Pointer address) {
-			super(address);
-		}
-		public OSVR_ClientInterface() {
-			super();
-		}
-	};
-}

+ 0 - 37
jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_AccelerationReport.java

@@ -1,37 +0,0 @@
-package com.jme3.system.osvr.osvrclientreporttypes;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_AccelerationReport extends Structure {
-	public int sensor;
-	/** C type : OSVR_AccelerationState */
-	public OSVR_AccelerationState state;
-	public OSVR_AccelerationReport() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("sensor", "state");
-	}
-	/** @param state C type : OSVR_AccelerationState */
-	public OSVR_AccelerationReport(int sensor, OSVR_AccelerationState state) {
-		super();
-		this.sensor = sensor;
-		this.state = state;
-	}
-	public OSVR_AccelerationReport(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_AccelerationReport implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_AccelerationReport implements Structure.ByValue {
-		
-	};
-}

+ 0 - 49
jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_AccelerationState.java

@@ -1,49 +0,0 @@
-package com.jme3.system.osvr.osvrclientreporttypes;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_AccelerationState extends Structure {
-	/** C type : OSVR_LinearAccelerationState */
-	public OSVR_Vec3 linearAcceleration;
-	/** C type : OSVR_CBool */
-	public byte linearAccelerationValid;
-	/** C type : OSVR_AngularAccelerationState */
-	public OSVR_IncrementalQuaternion angularAcceleration;
-	/** C type : OSVR_CBool */
-	public byte angularAccelerationValid;
-	public OSVR_AccelerationState() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("linearAcceleration", "linearAccelerationValid", "angularAcceleration", "angularAccelerationValid");
-	}
-	/**
-	 * @param linearAcceleration C type : OSVR_LinearAccelerationState<br>
-	 * @param linearAccelerationValid C type : OSVR_CBool<br>
-	 * @param angularAcceleration C type : OSVR_AngularAccelerationState<br>
-	 * @param angularAccelerationValid C type : OSVR_CBool
-	 */
-	public OSVR_AccelerationState(OSVR_Vec3 linearAcceleration, byte linearAccelerationValid, OSVR_IncrementalQuaternion angularAcceleration, byte angularAccelerationValid) {
-		super();
-		this.linearAcceleration = linearAcceleration;
-		this.linearAccelerationValid = linearAccelerationValid;
-		this.angularAcceleration = angularAcceleration;
-		this.angularAccelerationValid = angularAccelerationValid;
-	}
-	public OSVR_AccelerationState(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_AccelerationState implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_AccelerationState implements Structure.ByValue {
-		
-	};
-}

+ 0 - 37
jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_AnalogReport.java

@@ -1,37 +0,0 @@
-package com.jme3.system.osvr.osvrclientreporttypes;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_AnalogReport extends Structure {
-	public int sensor;
-	/** C type : OSVR_AnalogState */
-	public double state;
-	public OSVR_AnalogReport() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("sensor", "state");
-	}
-	/** @param state C type : OSVR_AnalogState */
-	public OSVR_AnalogReport(int sensor, double state) {
-		super();
-		this.sensor = sensor;
-		this.state = state;
-	}
-	public OSVR_AnalogReport(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_AnalogReport implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_AnalogReport implements Structure.ByValue {
-		
-	};
-}

+ 0 - 37
jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_AngularAccelerationReport.java

@@ -1,37 +0,0 @@
-package com.jme3.system.osvr.osvrclientreporttypes;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_AngularAccelerationReport extends Structure {
-	public int sensor;
-	/** C type : OSVR_AngularAccelerationState */
-	public OSVR_IncrementalQuaternion state;
-	public OSVR_AngularAccelerationReport() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("sensor", "state");
-	}
-	/** @param state C type : OSVR_AngularAccelerationState */
-	public OSVR_AngularAccelerationReport(int sensor, OSVR_IncrementalQuaternion state) {
-		super();
-		this.sensor = sensor;
-		this.state = state;
-	}
-	public OSVR_AngularAccelerationReport(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_AngularAccelerationReport implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_AngularAccelerationReport implements Structure.ByValue {
-		
-	};
-}

+ 0 - 37
jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_AngularVelocityReport.java

@@ -1,37 +0,0 @@
-package com.jme3.system.osvr.osvrclientreporttypes;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_AngularVelocityReport extends Structure {
-	public int sensor;
-	/** C type : OSVR_AngularVelocityState */
-	public OSVR_IncrementalQuaternion state;
-	public OSVR_AngularVelocityReport() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("sensor", "state");
-	}
-	/** @param state C type : OSVR_AngularVelocityState */
-	public OSVR_AngularVelocityReport(int sensor, OSVR_IncrementalQuaternion state) {
-		super();
-		this.sensor = sensor;
-		this.state = state;
-	}
-	public OSVR_AngularVelocityReport(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_AngularVelocityReport implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_AngularVelocityReport implements Structure.ByValue {
-		
-	};
-}

+ 0 - 37
jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_ButtonReport.java

@@ -1,37 +0,0 @@
-package com.jme3.system.osvr.osvrclientreporttypes;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_ButtonReport extends Structure {
-	public int sensor;
-	/** C type : OSVR_ButtonState */
-	public byte state;
-	public OSVR_ButtonReport() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("sensor", "state");
-	}
-	/** @param state C type : OSVR_ButtonState */
-	public OSVR_ButtonReport(int sensor, byte state) {
-		super();
-		this.sensor = sensor;
-		this.state = state;
-	}
-	public OSVR_ButtonReport(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_ButtonReport implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_ButtonReport implements Structure.ByValue {
-		
-	};
-}

+ 0 - 41
jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_DirectionReport.java

@@ -1,41 +0,0 @@
-package com.jme3.system.osvr.osvrclientreporttypes;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_DirectionReport extends Structure {
-	/** C type : OSVR_ChannelCount */
-	public int sensor;
-	/** C type : OSVR_DirectionState */
-	public OSVR_Vec3 direction;
-	public OSVR_DirectionReport() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("sensor", "direction");
-	}
-	/**
-	 * @param sensor C type : OSVR_ChannelCount<br>
-	 * @param direction C type : OSVR_DirectionState
-	 */
-	public OSVR_DirectionReport(int sensor, OSVR_Vec3 direction) {
-		super();
-		this.sensor = sensor;
-		this.direction = direction;
-	}
-	public OSVR_DirectionReport(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_DirectionReport implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_DirectionReport implements Structure.ByValue {
-		
-	};
-}

+ 0 - 41
jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_EyeTracker2DReport.java

@@ -1,41 +0,0 @@
-package com.jme3.system.osvr.osvrclientreporttypes;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_EyeTracker2DReport extends Structure {
-	/** C type : OSVR_ChannelCount */
-	public int sensor;
-	/** C type : OSVR_EyeTracker2DState */
-	public OSVR_Vec2 state;
-	public OSVR_EyeTracker2DReport() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("sensor", "state");
-	}
-	/**
-	 * @param sensor C type : OSVR_ChannelCount<br>
-	 * @param state C type : OSVR_EyeTracker2DState
-	 */
-	public OSVR_EyeTracker2DReport(int sensor, OSVR_Vec2 state) {
-		super();
-		this.sensor = sensor;
-		this.state = state;
-	}
-	public OSVR_EyeTracker2DReport(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_EyeTracker2DReport implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_EyeTracker2DReport implements Structure.ByValue {
-		
-	};
-}

+ 0 - 41
jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_EyeTracker3DReport.java

@@ -1,41 +0,0 @@
-package com.jme3.system.osvr.osvrclientreporttypes;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_EyeTracker3DReport extends Structure {
-	/** C type : OSVR_ChannelCount */
-	public int sensor;
-	/** C type : OSVR_EyeTracker3DState */
-	public OSVR_EyeTracker3DState state;
-	public OSVR_EyeTracker3DReport() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("sensor", "state");
-	}
-	/**
-	 * @param sensor C type : OSVR_ChannelCount<br>
-	 * @param state C type : OSVR_EyeTracker3DState
-	 */
-	public OSVR_EyeTracker3DReport(int sensor, OSVR_EyeTracker3DState state) {
-		super();
-		this.sensor = sensor;
-		this.state = state;
-	}
-	public OSVR_EyeTracker3DReport(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_EyeTracker3DReport implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_EyeTracker3DReport implements Structure.ByValue {
-		
-	};
-}

+ 0 - 49
jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_EyeTracker3DState.java

@@ -1,49 +0,0 @@
-package com.jme3.system.osvr.osvrclientreporttypes;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_EyeTracker3DState extends Structure {
-	/** C type : OSVR_CBool */
-	public byte directionValid;
-	/** C type : OSVR_DirectionState */
-	public OSVR_Vec3 direction;
-	/** C type : OSVR_CBool */
-	public byte basePointValid;
-	/** C type : OSVR_PositionState */
-	public OSVR_Vec3 basePoint;
-	public OSVR_EyeTracker3DState() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("directionValid", "direction", "basePointValid", "basePoint");
-	}
-	/**
-	 * @param directionValid C type : OSVR_CBool<br>
-	 * @param direction C type : OSVR_DirectionState<br>
-	 * @param basePointValid C type : OSVR_CBool<br>
-	 * @param basePoint C type : OSVR_PositionState
-	 */
-	public OSVR_EyeTracker3DState(byte directionValid, OSVR_Vec3 direction, byte basePointValid, OSVR_Vec3 basePoint) {
-		super();
-		this.directionValid = directionValid;
-		this.direction = direction;
-		this.basePointValid = basePointValid;
-		this.basePoint = basePoint;
-	}
-	public OSVR_EyeTracker3DState(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_EyeTracker3DState implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_EyeTracker3DState implements Structure.ByValue {
-		
-	};
-}

+ 0 - 41
jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_EyeTrackerBlinkReport.java

@@ -1,41 +0,0 @@
-package com.jme3.system.osvr.osvrclientreporttypes;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_EyeTrackerBlinkReport extends Structure {
-	/** C type : OSVR_ChannelCount */
-	public int sensor;
-	/** C type : OSVR_EyeTrackerBlinkState */
-	public byte state;
-	public OSVR_EyeTrackerBlinkReport() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("sensor", "state");
-	}
-	/**
-	 * @param sensor C type : OSVR_ChannelCount<br>
-	 * @param state C type : OSVR_EyeTrackerBlinkState
-	 */
-	public OSVR_EyeTrackerBlinkReport(int sensor, byte state) {
-		super();
-		this.sensor = sensor;
-		this.state = state;
-	}
-	public OSVR_EyeTrackerBlinkReport(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_EyeTrackerBlinkReport implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_EyeTrackerBlinkReport implements Structure.ByValue {
-		
-	};
-}

+ 0 - 37
jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_IncrementalQuaternion.java

@@ -1,37 +0,0 @@
-package com.jme3.system.osvr.osvrclientreporttypes;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_IncrementalQuaternion extends Structure {
-	/** C type : OSVR_Quaternion */
-	public OSVR_Quaternion incrementalRotation;
-	public double dt;
-	public OSVR_IncrementalQuaternion() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("incrementalRotation", "dt");
-	}
-	/** @param incrementalRotation C type : OSVR_Quaternion */
-	public OSVR_IncrementalQuaternion(OSVR_Quaternion incrementalRotation, double dt) {
-		super();
-		this.incrementalRotation = incrementalRotation;
-		this.dt = dt;
-	}
-	public OSVR_IncrementalQuaternion(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_IncrementalQuaternion implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_IncrementalQuaternion implements Structure.ByValue {
-		
-	};
-}

+ 0 - 37
jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_LinearAccelerationReport.java

@@ -1,37 +0,0 @@
-package com.jme3.system.osvr.osvrclientreporttypes;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_LinearAccelerationReport extends Structure {
-	public int sensor;
-	/** C type : OSVR_LinearAccelerationState */
-	public OSVR_Vec3 state;
-	public OSVR_LinearAccelerationReport() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("sensor", "state");
-	}
-	/** @param state C type : OSVR_LinearAccelerationState */
-	public OSVR_LinearAccelerationReport(int sensor, OSVR_Vec3 state) {
-		super();
-		this.sensor = sensor;
-		this.state = state;
-	}
-	public OSVR_LinearAccelerationReport(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_LinearAccelerationReport implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_LinearAccelerationReport implements Structure.ByValue {
-		
-	};
-}

+ 0 - 37
jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_LinearVelocityReport.java

@@ -1,37 +0,0 @@
-package com.jme3.system.osvr.osvrclientreporttypes;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_LinearVelocityReport extends Structure {
-	public int sensor;
-	/** C type : OSVR_LinearVelocityState */
-	public OSVR_Vec3 state;
-	public OSVR_LinearVelocityReport() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("sensor", "state");
-	}
-	/** @param state C type : OSVR_LinearVelocityState */
-	public OSVR_LinearVelocityReport(int sensor, OSVR_Vec3 state) {
-		super();
-		this.sensor = sensor;
-		this.state = state;
-	}
-	public OSVR_LinearVelocityReport(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_LinearVelocityReport implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_LinearVelocityReport implements Structure.ByValue {
-		
-	};
-}

+ 0 - 41
jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_Location2DReport.java

@@ -1,41 +0,0 @@
-package com.jme3.system.osvr.osvrclientreporttypes;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_Location2DReport extends Structure {
-	/** C type : OSVR_ChannelCount */
-	public int sensor;
-	/** C type : OSVR_Location2DState */
-	public OSVR_Vec2 location;
-	public OSVR_Location2DReport() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("sensor", "location");
-	}
-	/**
-	 * @param sensor C type : OSVR_ChannelCount<br>
-	 * @param location C type : OSVR_Location2DState
-	 */
-	public OSVR_Location2DReport(int sensor, OSVR_Vec2 location) {
-		super();
-		this.sensor = sensor;
-		this.location = location;
-	}
-	public OSVR_Location2DReport(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_Location2DReport implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_Location2DReport implements Structure.ByValue {
-		
-	};
-}

+ 0 - 41
jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_NaviPositionReport.java

@@ -1,41 +0,0 @@
-package com.jme3.system.osvr.osvrclientreporttypes;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_NaviPositionReport extends Structure {
-	/** C type : OSVR_ChannelCount */
-	public int sensor;
-	/** C type : OSVR_NaviPositionState */
-	public OSVR_Vec2 state;
-	public OSVR_NaviPositionReport() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("sensor", "state");
-	}
-	/**
-	 * @param sensor C type : OSVR_ChannelCount<br>
-	 * @param state C type : OSVR_NaviPositionState
-	 */
-	public OSVR_NaviPositionReport(int sensor, OSVR_Vec2 state) {
-		super();
-		this.sensor = sensor;
-		this.state = state;
-	}
-	public OSVR_NaviPositionReport(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_NaviPositionReport implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_NaviPositionReport implements Structure.ByValue {
-		
-	};
-}

+ 0 - 41
jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_NaviVelocityReport.java

@@ -1,41 +0,0 @@
-package com.jme3.system.osvr.osvrclientreporttypes;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_NaviVelocityReport extends Structure {
-	/** C type : OSVR_ChannelCount */
-	public int sensor;
-	/** C type : OSVR_NaviVelocityState */
-	public OSVR_Vec2 state;
-	public OSVR_NaviVelocityReport() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("sensor", "state");
-	}
-	/**
-	 * @param sensor C type : OSVR_ChannelCount<br>
-	 * @param state C type : OSVR_NaviVelocityState
-	 */
-	public OSVR_NaviVelocityReport(int sensor, OSVR_Vec2 state) {
-		super();
-		this.sensor = sensor;
-		this.state = state;
-	}
-	public OSVR_NaviVelocityReport(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_NaviVelocityReport implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_NaviVelocityReport implements Structure.ByValue {
-		
-	};
-}

+ 0 - 37
jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_OrientationReport.java

@@ -1,37 +0,0 @@
-package com.jme3.system.osvr.osvrclientreporttypes;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_OrientationReport extends Structure {
-	public int sensor;
-	/** C type : OSVR_OrientationState */
-	public OSVR_Quaternion rotation;
-	public OSVR_OrientationReport() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("sensor", "rotation");
-	}
-	/** @param rotation C type : OSVR_OrientationState */
-	public OSVR_OrientationReport(int sensor, OSVR_Quaternion rotation) {
-		super();
-		this.sensor = sensor;
-		this.rotation = rotation;
-	}
-	public OSVR_OrientationReport(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_OrientationReport implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_OrientationReport implements Structure.ByValue {
-		
-	};
-}

+ 0 - 41
jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_Pose3.java

@@ -1,41 +0,0 @@
-package com.jme3.system.osvr.osvrclientreporttypes;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_Pose3 extends Structure {
-	/** C type : OSVR_Vec3 */
-	public OSVR_Vec3 translation;
-	/** C type : OSVR_Quaternion */
-	public OSVR_Quaternion rotation;
-	public OSVR_Pose3() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("translation", "rotation");
-	}
-	/**
-	 * @param translation C type : OSVR_Vec3<br>
-	 * @param rotation C type : OSVR_Quaternion
-	 */
-	public OSVR_Pose3(OSVR_Vec3 translation, OSVR_Quaternion rotation) {
-		super();
-		this.translation = translation;
-		this.rotation = rotation;
-	}
-	public OSVR_Pose3(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_Pose3 implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_Pose3 implements Structure.ByValue {
-		
-	};
-}

+ 0 - 37
jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_PoseReport.java

@@ -1,37 +0,0 @@
-package com.jme3.system.osvr.osvrclientreporttypes;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_PoseReport extends Structure {
-	public int sensor;
-	/** C type : OSVR_PoseState */
-	public OSVR_Pose3 pose;
-	public OSVR_PoseReport() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("sensor", "pose");
-	}
-	/** @param pose C type : OSVR_PoseState */
-	public OSVR_PoseReport(int sensor, OSVR_Pose3 pose) {
-		super();
-		this.sensor = sensor;
-		this.pose = pose;
-	}
-	public OSVR_PoseReport(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_PoseReport implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_PoseReport implements Structure.ByValue {
-		
-	};
-}

+ 0 - 37
jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_PositionReport.java

@@ -1,37 +0,0 @@
-package com.jme3.system.osvr.osvrclientreporttypes;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_PositionReport extends Structure {
-	public int sensor;
-	/** C type : OSVR_PositionState */
-	public OSVR_Vec3 xyz;
-	public OSVR_PositionReport() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("sensor", "xyz");
-	}
-	/** @param xyz C type : OSVR_PositionState */
-	public OSVR_PositionReport(int sensor, OSVR_Vec3 xyz) {
-		super();
-		this.sensor = sensor;
-		this.xyz = xyz;
-	}
-	public OSVR_PositionReport(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_PositionReport implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_PositionReport implements Structure.ByValue {
-		
-	};
-}

+ 0 - 37
jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_Quaternion.java

@@ -1,37 +0,0 @@
-package com.jme3.system.osvr.osvrclientreporttypes;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_Quaternion extends Structure {
-	/** C type : double[4] */
-	public double[] data = new double[4];
-	public OSVR_Quaternion() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("data");
-	}
-	/** @param data C type : double[4] */
-	public OSVR_Quaternion(double data[]) {
-		super();
-		if ((data.length != this.data.length)) 
-			throw new IllegalArgumentException("Wrong array size !");
-		this.data = data;
-	}
-	public OSVR_Quaternion(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_Quaternion implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_Quaternion implements Structure.ByValue {
-		
-	};
-}

+ 0 - 37
jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_Vec2.java

@@ -1,37 +0,0 @@
-package com.jme3.system.osvr.osvrclientreporttypes;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_Vec2 extends Structure {
-	/** C type : double[2] */
-	public double[] data = new double[2];
-	public OSVR_Vec2() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("data");
-	}
-	/** @param data C type : double[2] */
-	public OSVR_Vec2(double data[]) {
-		super();
-		if ((data.length != this.data.length)) 
-			throw new IllegalArgumentException("Wrong array size !");
-		this.data = data;
-	}
-	public OSVR_Vec2(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_Vec2 implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_Vec2 implements Structure.ByValue {
-		
-	};
-}

+ 0 - 37
jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_Vec3.java

@@ -1,37 +0,0 @@
-package com.jme3.system.osvr.osvrclientreporttypes;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_Vec3 extends Structure {
-	/** C type : double[3] */
-	public double[] data = new double[3];
-	public OSVR_Vec3() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("data");
-	}
-	/** @param data C type : double[3] */
-	public OSVR_Vec3(double data[]) {
-		super();
-		if ((data.length != this.data.length)) 
-			throw new IllegalArgumentException("Wrong array size !");
-		this.data = data;
-	}
-	public OSVR_Vec3(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_Vec3 implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_Vec3 implements Structure.ByValue {
-		
-	};
-}

+ 0 - 37
jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_VelocityReport.java

@@ -1,37 +0,0 @@
-package com.jme3.system.osvr.osvrclientreporttypes;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_VelocityReport extends Structure {
-	public int sensor;
-	/** C type : OSVR_VelocityState */
-	public OSVR_VelocityState state;
-	public OSVR_VelocityReport() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("sensor", "state");
-	}
-	/** @param state C type : OSVR_VelocityState */
-	public OSVR_VelocityReport(int sensor, OSVR_VelocityState state) {
-		super();
-		this.sensor = sensor;
-		this.state = state;
-	}
-	public OSVR_VelocityReport(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_VelocityReport implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_VelocityReport implements Structure.ByValue {
-		
-	};
-}

+ 0 - 49
jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OSVR_VelocityState.java

@@ -1,49 +0,0 @@
-package com.jme3.system.osvr.osvrclientreporttypes;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_VelocityState extends Structure {
-	/** C type : OSVR_LinearVelocityState */
-	public OSVR_Vec3 linearVelocity;
-	/** C type : OSVR_CBool */
-	public byte linearVelocityValid;
-	/** C type : OSVR_AngularVelocityState */
-	public OSVR_IncrementalQuaternion angularVelocity;
-	/** C type : OSVR_CBool */
-	public byte angularVelocityValid;
-	public OSVR_VelocityState() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("linearVelocity", "linearVelocityValid", "angularVelocity", "angularVelocityValid");
-	}
-	/**
-	 * @param linearVelocity C type : OSVR_LinearVelocityState<br>
-	 * @param linearVelocityValid C type : OSVR_CBool<br>
-	 * @param angularVelocity C type : OSVR_AngularVelocityState<br>
-	 * @param angularVelocityValid C type : OSVR_CBool
-	 */
-	public OSVR_VelocityState(OSVR_Vec3 linearVelocity, byte linearVelocityValid, OSVR_IncrementalQuaternion angularVelocity, byte angularVelocityValid) {
-		super();
-		this.linearVelocity = linearVelocity;
-		this.linearVelocityValid = linearVelocityValid;
-		this.angularVelocity = angularVelocity;
-		this.angularVelocityValid = angularVelocityValid;
-	}
-	public OSVR_VelocityState(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_VelocityState implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_VelocityState implements Structure.ByValue {
-		
-	};
-}

+ 0 - 79
jme3-vr/src/main/java/com/jme3/system/osvr/osvrclientreporttypes/OsvrClientReportTypesLibrary.java

@@ -1,79 +0,0 @@
-package com.jme3.system.osvr.osvrclientreporttypes;
-import com.sun.jna.Library;
-import com.sun.jna.Native;
-import com.sun.jna.NativeLibrary;
-/**
- * JNA Wrapper for library <b>osvrClientReportTypes</b><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>
- * 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 OsvrClientReportTypesLibrary implements Library {
-	public static final String JNA_LIBRARY_NAME = "osvrClientKit";
-	public static final NativeLibrary JNA_NATIVE_LIB = NativeLibrary.getInstance(OsvrClientReportTypesLibrary.JNA_LIBRARY_NAME);
-	static {
-		Native.register(OsvrClientReportTypesLibrary.class, OsvrClientReportTypesLibrary.JNA_NATIVE_LIB);
-	}
-	public static final int OSVR_TRUE = 1;
-	public static final int OSVR_FALSE = 0;
-	public static final int OSVR_BUTTON_PRESSED = 1;
-	public static final int OSVR_BUTTON_NOT_PRESSED = 0;
-	public static final int OSVR_EYE_BLINK = 1;
-	public static final int OSVR_EYE_NO_BLINK = 0;
-	/** Original signature : <code>double osvrVec3GetX(const OSVR_Vec3*)</code> */
-	public static native double osvrVec3GetX(OSVR_Vec3 v);
-	/** Original signature : <code>void osvrVec3SetX(OSVR_Vec3*, double)</code> */
-	public static native void osvrVec3SetX(OSVR_Vec3 v, double val);
-	/** Original signature : <code>double osvrVec3GetY(const OSVR_Vec3*)</code> */
-	public static native double osvrVec3GetY(OSVR_Vec3 v);
-	/** Original signature : <code>void osvrVec3SetY(OSVR_Vec3*, double)</code> */
-	public static native void osvrVec3SetY(OSVR_Vec3 v, double val);
-	/** Original signature : <code>double osvrVec3GetZ(const OSVR_Vec3*)</code> */
-	public static native double osvrVec3GetZ(OSVR_Vec3 v);
-	/** Original signature : <code>void osvrVec3SetZ(OSVR_Vec3*, double)</code> */
-	public static native void osvrVec3SetZ(OSVR_Vec3 v, double val);
-	/**
-	 * Set a Vec3 to the zero vector.
-	 * Original signature : <code>void osvrVec3Zero(OSVR_Vec3*)</code>
-	 */
-	public static native void osvrVec3Zero(OSVR_Vec3 v);
-	/** Original signature : <code>double osvrQuatGetW(const OSVR_Quaternion*)</code> */
-	public static native double osvrQuatGetW(OSVR_Quaternion q);
-	/** Original signature : <code>void osvrQuatSetW(OSVR_Quaternion*, double)</code> */
-	public static native void osvrQuatSetW(OSVR_Quaternion q, double val);
-	/** Original signature : <code>double osvrQuatGetX(const OSVR_Quaternion*)</code> */
-	public static native double osvrQuatGetX(OSVR_Quaternion q);
-	/** Original signature : <code>void osvrQuatSetX(OSVR_Quaternion*, double)</code> */
-	public static native void osvrQuatSetX(OSVR_Quaternion q, double val);
-	/** Original signature : <code>double osvrQuatGetY(const OSVR_Quaternion*)</code> */
-	public static native double osvrQuatGetY(OSVR_Quaternion q);
-	/** Original signature : <code>void osvrQuatSetY(OSVR_Quaternion*, double)</code> */
-	public static native void osvrQuatSetY(OSVR_Quaternion q, double val);
-	/** Original signature : <code>double osvrQuatGetZ(const OSVR_Quaternion*)</code> */
-	public static native double osvrQuatGetZ(OSVR_Quaternion q);
-	/** Original signature : <code>void osvrQuatSetZ(OSVR_Quaternion*, double)</code> */
-	public static native void osvrQuatSetZ(OSVR_Quaternion q, double val);
-	/**
-	 * Set a quaternion to the identity rotation.
-	 * Original signature : <code>void osvrQuatSetIdentity(OSVR_Quaternion*)</code>
-	 */
-	public static native void osvrQuatSetIdentity(OSVR_Quaternion q);
-	/**
-	 * Set a pose to identity.
-	 * Original signature : <code>void osvrPose3SetIdentity(OSVR_Pose3*)</code>
-	 */
-	public static native void osvrPose3SetIdentity(OSVR_Pose3 pose);
-	/** Original signature : <code>double osvrVec2GetX(const OSVR_Vec2*)</code> */
-	public static native double osvrVec2GetX(OSVR_Vec2 v);
-	/** Original signature : <code>void osvrVec2SetX(OSVR_Vec2*, double)</code> */
-	public static native void osvrVec2SetX(OSVR_Vec2 v, double val);
-	/** Original signature : <code>double osvrVec2GetY(const OSVR_Vec2*)</code> */
-	public static native double osvrVec2GetY(OSVR_Vec2 v);
-	/** Original signature : <code>void osvrVec2SetY(OSVR_Vec2*, double)</code> */
-	public static native void osvrVec2SetY(OSVR_Vec2 v, double val);
-	/**
-	 * Set a Vec2 to the zero vector.
-	 * Original signature : <code>void osvrVec2Zero(OSVR_Vec2*)</code>
-	 */
-	public static native void osvrVec2Zero(OSVR_Vec2 v);
-}

+ 0 - 851
jme3-vr/src/main/java/com/jme3/system/osvr/osvrdisplay/OsvrDisplayLibrary.java

@@ -1,851 +0,0 @@
-package com.jme3.system.osvr.osvrdisplay;
-import com.jme3.system.osvr.osvrclientkit.OsvrClientKitLibrary;
-import com.sun.jna.Library;
-import com.sun.jna.Native;
-import com.sun.jna.NativeLibrary;
-import com.sun.jna.Pointer;
-import com.sun.jna.PointerType;
-import com.sun.jna.ptr.DoubleByReference;
-import com.sun.jna.ptr.FloatByReference;
-import com.sun.jna.ptr.IntByReference;
-import com.sun.jna.ptr.PointerByReference;
-import java.nio.ByteBuffer;
-import java.nio.DoubleBuffer;
-import java.nio.FloatBuffer;
-import java.nio.IntBuffer;
-
-/**
- * JNA Wrapper for library <b>osvrDisplay</b><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>
- * 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 OsvrDisplayLibrary implements Library {
-	public static final String JNA_LIBRARY_NAME = "osvrClientKit";
-	public static final NativeLibrary JNA_NATIVE_LIB = NativeLibrary.getInstance(OsvrDisplayLibrary.JNA_LIBRARY_NAME);
-	static {
-		Native.register(OsvrDisplayLibrary.class, OsvrDisplayLibrary.JNA_NATIVE_LIB);
-	}
-	/**
-	 * Allocates a display configuration object populated with data from the<br>
-	 * OSVR system.<br>
-	 * Before this call will succeed, your application will need to be correctly<br>
-	 * and fully connected to an OSVR server. You may consider putting this call in<br>
-	 * a loop alternating with osvrClientUpdate() until this call succeeds.<br>
-	 * Data provided by a display configuration object:<br>
-	 * - The logical display topology (number and relationship of viewers, eyes,<br>
-	 * and surfaces), which remains constant throughout the life of the<br>
-	 * configuration object. (A method of notification of change here is TBD).<br>
-	 * - Pose data for viewers (not required for rendering) and pose/view data for<br>
-	 * eyes (used for rendering) which is based on tracker data: if used, these<br>
-	 * should be queried every frame.<br>
-	 * - Projection matrix data for surfaces, which while in current practice may<br>
-	 * be relatively unchanging, we are not guaranteeing them to be constant:<br>
-	 * these should be queried every frame.<br>
-	 * - Video-input-relative viewport size/location for a surface: would like this<br>
-	 * to be variable, but probably not feasible. If you have input, please<br>
-	 * comment on the dev mailing list.<br>
-	 * - Per-surface distortion strategy priorities/availabilities: constant. Note<br>
-	 * the following, though...<br>
-	 * - Per-surface distortion strategy parameters: variable, request each frame.<br>
-	 * (Could make constant with a notification if needed?)<br>
-	 * Important note: While most of this data is immediately available if you are<br>
-	 * successful in getting a display config object, the pose-based data (viewer<br>
-	 * pose, eye pose, eye view matrix) needs tracker state, so at least one (and in<br>
-	 * practice, typically more) osvrClientUpdate() must be performed before a new<br>
-	 * tracker report is available to populate that state. See<br>
-	 * osvrClientCheckDisplayStartup() to query if all startup data is available.<br>
-	 * todo Decide if relative viewport should be constant in a display config,<br>
-	 * and update docs accordingly.<br>
-	 * todo Decide if distortion params should be constant in a display config,<br>
-	 * and update docs accordingly.<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed or some other<br>
-	 * error occurred, in which case the output argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetDisplay(OSVR_ClientContext, OSVR_DisplayConfig*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrClientGetDisplay(com.jme3.system.osvr.osvrclientkit.OsvrClientKitLibrary.OSVR_ClientContext, com.sun.jna.ptr.PointerByReference)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrClientGetDisplay(Pointer ctx, Pointer disp);
-	/**
-	 * Allocates a display configuration object populated with data from the<br>
-	 * OSVR system.<br>
-	 * Before this call will succeed, your application will need to be correctly<br>
-	 * and fully connected to an OSVR server. You may consider putting this call in<br>
-	 * a loop alternating with osvrClientUpdate() until this call succeeds.<br>
-	 * Data provided by a display configuration object:<br>
-	 * - The logical display topology (number and relationship of viewers, eyes,<br>
-	 * and surfaces), which remains constant throughout the life of the<br>
-	 * configuration object. (A method of notification of change here is TBD).<br>
-	 * - Pose data for viewers (not required for rendering) and pose/view data for<br>
-	 * eyes (used for rendering) which is based on tracker data: if used, these<br>
-	 * should be queried every frame.<br>
-	 * - Projection matrix data for surfaces, which while in current practice may<br>
-	 * be relatively unchanging, we are not guaranteeing them to be constant:<br>
-	 * these should be queried every frame.<br>
-	 * - Video-input-relative viewport size/location for a surface: would like this<br>
-	 * to be variable, but probably not feasible. If you have input, please<br>
-	 * comment on the dev mailing list.<br>
-	 * - Per-surface distortion strategy priorities/availabilities: constant. Note<br>
-	 * the following, though...<br>
-	 * - Per-surface distortion strategy parameters: variable, request each frame.<br>
-	 * (Could make constant with a notification if needed?)<br>
-	 * Important note: While most of this data is immediately available if you are<br>
-	 * successful in getting a display config object, the pose-based data (viewer<br>
-	 * pose, eye pose, eye view matrix) needs tracker state, so at least one (and in<br>
-	 * practice, typically more) osvrClientUpdate() must be performed before a new<br>
-	 * tracker report is available to populate that state. See<br>
-	 * osvrClientCheckDisplayStartup() to query if all startup data is available.<br>
-	 * todo Decide if relative viewport should be constant in a display config,<br>
-	 * and update docs accordingly.<br>
-	 * todo Decide if distortion params should be constant in a display config,<br>
-	 * and update docs accordingly.<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed or some other<br>
-	 * error occurred, in which case the output argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetDisplay(OSVR_ClientContext, OSVR_DisplayConfig*)</code>
-	 */
-	public static native byte osvrClientGetDisplay(OsvrClientKitLibrary.OSVR_ClientContext ctx, PointerByReference disp);
-	/**
-	 * Allocates a display configuration object populated with data from the<br>
-	 * OSVR system.<br>
-	 * Before this call will succeed, your application will need to be correctly<br>
-	 * and fully connected to an OSVR server. You may consider putting this call in<br>
-	 * a loop alternating with osvrClientUpdate() until this call succeeds.<br>
-	 * Data provided by a display configuration object:<br>
-	 * - The logical display topology (number and relationship of viewers, eyes,<br>
-	 * and surfaces), which remains constant throughout the life of the<br>
-	 * configuration object. (A method of notification of change here is TBD).<br>
-	 * - Pose data for viewers (not required for rendering) and pose/view data for<br>
-	 * eyes (used for rendering) which is based on tracker data: if used, these<br>
-	 * should be queried every frame.<br>
-	 * - Projection matrix data for surfaces, which while in current practice may<br>
-	 * be relatively unchanging, we are not guaranteeing them to be constant:<br>
-	 * these should be queried every frame.<br>
-	 * - Video-input-relative viewport size/location for a surface: would like this<br>
-	 * to be variable, but probably not feasible. If you have input, please<br>
-	 * comment on the dev mailing list.<br>
-	 * - Per-surface distortion strategy priorities/availabilities: constant. Note<br>
-	 * the following, though...<br>
-	 * - Per-surface distortion strategy parameters: variable, request each frame.<br>
-	 * (Could make constant with a notification if needed?)<br>
-	 * Important note: While most of this data is immediately available if you are<br>
-	 * successful in getting a display config object, the pose-based data (viewer<br>
-	 * pose, eye pose, eye view matrix) needs tracker state, so at least one (and in<br>
-	 * practice, typically more) osvrClientUpdate() must be performed before a new<br>
-	 * tracker report is available to populate that state. See<br>
-	 * osvrClientCheckDisplayStartup() to query if all startup data is available.<br>
-	 * todo Decide if relative viewport should be constant in a display config,<br>
-	 * and update docs accordingly.<br>
-	 * todo Decide if distortion params should be constant in a display config,<br>
-	 * and update docs accordingly.<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed or some other<br>
-	 * error occurred, in which case the output argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetDisplay(OSVR_ClientContext, OSVR_DisplayConfig*)</code>
-	 */
-	public static native byte osvrClientGetDisplay(Pointer ctx, PointerByReference disp);
-	/**
-	 * Frees a display configuration object. The corresponding context must<br>
-	 * still be open.<br>
-	 * If you fail to call this, it will be automatically called as part of<br>
-	 * clean-up when the corresponding context is closed.<br>
-	 * @return OSVR_RETURN_FAILURE if a null config was passed, or if the given<br>
-	 * display object was already freed.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientFreeDisplay(OSVR_DisplayConfig)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrClientFreeDisplay(com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.OSVR_DisplayConfig)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrClientFreeDisplay(Pointer disp);
-	/**
-	 * Frees a display configuration object. The corresponding context must<br>
-	 * still be open.<br>
-	 * If you fail to call this, it will be automatically called as part of<br>
-	 * clean-up when the corresponding context is closed.<br>
-	 * @return OSVR_RETURN_FAILURE if a null config was passed, or if the given<br>
-	 * display object was already freed.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientFreeDisplay(OSVR_DisplayConfig)</code>
-	 */
-	public static native byte osvrClientFreeDisplay(OsvrDisplayLibrary.OSVR_DisplayConfig disp);
-	/**
-	 * Checks to see if a display is fully configured and ready, including<br>
-	 * having received its first pose update.<br>
-	 * Once this first succeeds, it will continue to succeed for the lifetime of<br>
-	 * the display config object, so it is not necessary to keep calling once you<br>
-	 * get a successful result.<br>
-	 * @return OSVR_RETURN_FAILURE if a null config was passed, or if the given<br>
-	 * display config object was otherwise not ready for full use.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientCheckDisplayStartup(OSVR_DisplayConfig)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrClientCheckDisplayStartup(com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.OSVR_DisplayConfig)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrClientCheckDisplayStartup(Pointer disp);
-	/**
-	 * Checks to see if a display is fully configured and ready, including<br>
-	 * having received its first pose update.<br>
-	 * Once this first succeeds, it will continue to succeed for the lifetime of<br>
-	 * the display config object, so it is not necessary to keep calling once you<br>
-	 * get a successful result.<br>
-	 * @return OSVR_RETURN_FAILURE if a null config was passed, or if the given<br>
-	 * display config object was otherwise not ready for full use.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientCheckDisplayStartup(OSVR_DisplayConfig)</code>
-	 */
-	public static native byte osvrClientCheckDisplayStartup(OsvrDisplayLibrary.OSVR_DisplayConfig disp);
-	/**
-	 * A display config can have one or more display inputs to pass pixels<br>
-	 * over (HDMI/DVI connections, etcetera): retrieve the number of display inputs in<br>
-	 * the current configuration.<br>
-	 * @param disp Display config object.<br>
-	 * @param numDisplayInputs Number of display inputs in the logical display<br>
-	 * topology, **constant** throughout the active, valid lifetime of a display<br>
-	 * config object.<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed, in<br>
-	 * which case the output argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetNumDisplayInputs(OSVR_DisplayConfig, OSVR_DisplayInputCount*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrClientGetNumDisplayInputs(com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.OSVR_DisplayConfig, java.nio.ByteBuffer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrClientGetNumDisplayInputs(Pointer disp, Pointer numDisplayInputs);
-	/**
-	 * A display config can have one or more display inputs to pass pixels<br>
-	 * over (HDMI/DVI connections, etcetera): retrieve the number of display inputs in<br>
-	 * the current configuration.<br>
-	 * @param disp Display config object.<br>
-	 * @param numDisplayInputs Number of display inputs in the logical display<br>
-	 * topology, **constant** throughout the active, valid lifetime of a display<br>
-	 * config object.<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed, in<br>
-	 * which case the output argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetNumDisplayInputs(OSVR_DisplayConfig, OSVR_DisplayInputCount*)</code>
-	 */
-	public static native byte osvrClientGetNumDisplayInputs(OsvrDisplayLibrary.OSVR_DisplayConfig disp, ByteBuffer numDisplayInputs);
-	/**
-	 * Retrieve the pixel dimensions of a given display input for a display<br>
-	 * config<br>
-	 * @param disp Display config object.<br>
-	 * @param displayInputIndex The zero-based index of the display input.<br>
-	 * @param width Width (in pixels) of the display input.<br>
-	 * @param height Height (in pixels) of the display input.<br>
-	 * The out parameters are **constant** throughout the active, valid lifetime of<br>
-	 * a display config object.<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed, in<br>
-	 * which case the output arguments are unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetDisplayDimensions(OSVR_DisplayConfig, OSVR_DisplayInputCount, OSVR_DisplayDimension*, OSVR_DisplayDimension*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrClientGetDisplayDimensions(com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.OSVR_DisplayConfig, byte, java.nio.IntBuffer, java.nio.IntBuffer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrClientGetDisplayDimensions(Pointer disp, byte displayInputIndex, IntByReference width, IntByReference height);
-	/**
-	 * Retrieve the pixel dimensions of a given display input for a display<br>
-	 * config<br>
-	 * @param disp Display config object.<br>
-	 * @param displayInputIndex The zero-based index of the display input.<br>
-	 * @param width Width (in pixels) of the display input.<br>
-	 * @param height Height (in pixels) of the display input.<br>
-	 * The out parameters are **constant** throughout the active, valid lifetime of<br>
-	 * a display config object.<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed, in<br>
-	 * which case the output arguments are unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetDisplayDimensions(OSVR_DisplayConfig, OSVR_DisplayInputCount, OSVR_DisplayDimension*, OSVR_DisplayDimension*)</code>
-	 */
-	public static native byte osvrClientGetDisplayDimensions(OsvrDisplayLibrary.OSVR_DisplayConfig disp, byte displayInputIndex, IntBuffer width, IntBuffer height);
-	/**
-	 * A display config can have one (or theoretically more) viewers:<br>
-	 * retrieve the viewer count.<br>
-	 * @param disp Display config object.<br>
-	 * @param viewers Number of viewers in the logical display topology,<br>
-	 * *constant** throughout the active, valid lifetime of a display config<br>
-	 * object.<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed, in which case<br>
-	 * the output argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetNumViewers(OSVR_DisplayConfig, OSVR_ViewerCount*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrClientGetNumViewers(com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.OSVR_DisplayConfig, java.nio.IntBuffer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrClientGetNumViewers(Pointer disp, IntByReference viewers);
-	/**
-	 * A display config can have one (or theoretically more) viewers:<br>
-	 * retrieve the viewer count.<br>
-	 * @param disp Display config object.<br>
-	 * @param viewers Number of viewers in the logical display topology,<br>
-	 * *constant** throughout the active, valid lifetime of a display config<br>
-	 * object.<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed, in which case<br>
-	 * the output argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetNumViewers(OSVR_DisplayConfig, OSVR_ViewerCount*)</code>
-	 */
-	public static native byte osvrClientGetNumViewers(OsvrDisplayLibrary.OSVR_DisplayConfig disp, IntBuffer viewers);
-	/**
-	 * Get the pose of a viewer in a display config.<br>
-	 * Note that there may not necessarily be any surfaces rendered from this pose<br>
-	 * (it's the unused "center" eye in a stereo configuration, for instance) so<br>
-	 * only use this if it makes integration into your engine or existing<br>
-	 * applications (not originally designed for stereo) easier.<br>
-	 * Will only succeed if osvrClientCheckDisplayStartup() succeeds.<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed or no pose was<br>
-	 * yet available, in which case the pose argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetViewerPose(OSVR_DisplayConfig, OSVR_ViewerCount, OSVR_Pose3*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrClientGetViewerPose(com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.OSVR_DisplayConfig, int, com.sun.jna.Pointer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrClientGetViewerPose(Pointer disp, int viewer, Pointer pose);
-	/**
-	 * Get the pose of a viewer in a display config.<br>
-	 * Note that there may not necessarily be any surfaces rendered from this pose<br>
-	 * (it's the unused "center" eye in a stereo configuration, for instance) so<br>
-	 * only use this if it makes integration into your engine or existing<br>
-	 * applications (not originally designed for stereo) easier.<br>
-	 * Will only succeed if osvrClientCheckDisplayStartup() succeeds.<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed or no pose was<br>
-	 * yet available, in which case the pose argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetViewerPose(OSVR_DisplayConfig, OSVR_ViewerCount, OSVR_Pose3*)</code>
-	 */
-	public static native byte osvrClientGetViewerPose(OsvrDisplayLibrary.OSVR_DisplayConfig disp, int viewer, Pointer pose);
-	/**
-	 * Each viewer in a display config can have one or more "eyes" which<br>
-	 * have a substantially similar pose: get the count.<br>
-	 * @param disp Display config object.<br>
-	 * @param viewer Viewer ID<br>
-	 * @param eyes Number of eyes for this viewer in the logical display<br>
-	 * topology, **constant** throughout the active, valid lifetime of a display<br>
-	 * config object<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed, in which case<br>
-	 * the output argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetNumEyesForViewer(OSVR_DisplayConfig, OSVR_ViewerCount, OSVR_EyeCount*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrClientGetNumEyesForViewer(com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.OSVR_DisplayConfig, int, java.nio.ByteBuffer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrClientGetNumEyesForViewer(Pointer disp, int viewer, Pointer eyes);
-	/**
-	 * Each viewer in a display config can have one or more "eyes" which<br>
-	 * have a substantially similar pose: get the count.<br>
-	 * @param disp Display config object.<br>
-	 * @param viewer Viewer ID<br>
-	 * @param eyes Number of eyes for this viewer in the logical display<br>
-	 * topology, **constant** throughout the active, valid lifetime of a display<br>
-	 * config object<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed, in which case<br>
-	 * the output argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetNumEyesForViewer(OSVR_DisplayConfig, OSVR_ViewerCount, OSVR_EyeCount*)</code>
-	 */
-	public static native byte osvrClientGetNumEyesForViewer(OsvrDisplayLibrary.OSVR_DisplayConfig disp, int viewer, ByteBuffer eyes);
-	/**
-	 * Get the "viewpoint" for the given eye of a viewer in a display<br>
-	 * config.<br>
-	 * Will only succeed if osvrClientCheckDisplayStartup() succeeds.<br>
-	 * @param disp Display config object<br>
-	 * @param viewer Viewer ID<br>
-	 * @param eye Eye ID<br>
-	 * @param pose Room-space pose (not relative to pose of the viewer)<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed or no pose was<br>
-	 * yet available, in which case the pose argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetViewerEyePose(OSVR_DisplayConfig, OSVR_ViewerCount, OSVR_EyeCount, OSVR_Pose3*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrClientGetViewerEyePose(com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.OSVR_DisplayConfig, int, byte, com.sun.jna.Pointer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrClientGetViewerEyePose(Pointer disp, int viewer, byte eye, Pointer pose);
-	/**
-	 * Get the "viewpoint" for the given eye of a viewer in a display<br>
-	 * config.<br>
-	 * Will only succeed if osvrClientCheckDisplayStartup() succeeds.<br>
-	 * @param disp Display config object<br>
-	 * @param viewer Viewer ID<br>
-	 * @param eye Eye ID<br>
-	 * @param pose Room-space pose (not relative to pose of the viewer)<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed or no pose was<br>
-	 * yet available, in which case the pose argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetViewerEyePose(OSVR_DisplayConfig, OSVR_ViewerCount, OSVR_EyeCount, OSVR_Pose3*)</code>
-	 */
-	public static native byte osvrClientGetViewerEyePose(OsvrDisplayLibrary.OSVR_DisplayConfig disp, int viewer, byte eye, Pointer pose);
-	/**
-	 * Get the view matrix (inverse of pose) for the given eye of a<br>
-	 * viewer in a display config - matrix of **doubles**.<br>
-	 * Will only succeed if osvrClientCheckDisplayStartup() succeeds.<br>
-	 * @param disp Display config object<br>
-	 * @param viewer Viewer ID<br>
-	 * @param eye Eye ID<br>
-	 * @param flags Bitwise OR of matrix convention flags (see @ref MatrixFlags)<br>
-	 * @param mat Pass a double[::OSVR_MATRIX_SIZE] to get the transformation<br>
-	 * matrix from room space to eye space (not relative to pose of the viewer)<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed or no pose was<br>
-	 * yet available, in which case the output argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetViewerEyeViewMatrixd(OSVR_DisplayConfig, OSVR_ViewerCount, OSVR_EyeCount, OSVR_MatrixConventions, double*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrClientGetViewerEyeViewMatrixd(com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.OSVR_DisplayConfig, int, byte, short, java.nio.DoubleBuffer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrClientGetViewerEyeViewMatrixd(Pointer disp, int viewer, byte eye, short flags, DoubleByReference mat);
-	/**
-	 * Get the view matrix (inverse of pose) for the given eye of a<br>
-	 * viewer in a display config - matrix of **doubles**.<br>
-	 * Will only succeed if osvrClientCheckDisplayStartup() succeeds.<br>
-	 * @param disp Display config object<br>
-	 * @param viewer Viewer ID<br>
-	 * @param eye Eye ID<br>
-	 * @param flags Bitwise OR of matrix convention flags (see @ref MatrixFlags)<br>
-	 * @param mat Pass a double[::OSVR_MATRIX_SIZE] to get the transformation<br>
-	 * matrix from room space to eye space (not relative to pose of the viewer)<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed or no pose was<br>
-	 * yet available, in which case the output argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetViewerEyeViewMatrixd(OSVR_DisplayConfig, OSVR_ViewerCount, OSVR_EyeCount, OSVR_MatrixConventions, double*)</code>
-	 */
-	public static native byte osvrClientGetViewerEyeViewMatrixd(OsvrDisplayLibrary.OSVR_DisplayConfig disp, int viewer, byte eye, short flags, DoubleBuffer mat);
-	/**
-	 * Get the view matrix (inverse of pose) for the given eye of a<br>
-	 * viewer in a display config - matrix of **floats**.<br>
-	 * Will only succeed if osvrClientCheckDisplayStartup() succeeds.<br>
-	 * @param disp Display config object<br>
-	 * @param viewer Viewer ID<br>
-	 * @param eye Eye ID<br>
-	 * @param flags Bitwise OR of matrix convention flags (see @ref MatrixFlags)<br>
-	 * @param mat Pass a float[::OSVR_MATRIX_SIZE] to get the transformation<br>
-	 * matrix from room space to eye space (not relative to pose of the viewer)<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed or no pose was<br>
-	 * yet available, in which case the output argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetViewerEyeViewMatrixf(OSVR_DisplayConfig, OSVR_ViewerCount, OSVR_EyeCount, OSVR_MatrixConventions, float*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrClientGetViewerEyeViewMatrixf(com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.OSVR_DisplayConfig, int, byte, short, java.nio.FloatBuffer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrClientGetViewerEyeViewMatrixf(Pointer disp, int viewer, byte eye, short flags, FloatByReference mat);
-	/**
-	 * Get the view matrix (inverse of pose) for the given eye of a<br>
-	 * viewer in a display config - matrix of **floats**.<br>
-	 * Will only succeed if osvrClientCheckDisplayStartup() succeeds.<br>
-	 * @param disp Display config object<br>
-	 * @param viewer Viewer ID<br>
-	 * @param eye Eye ID<br>
-	 * @param flags Bitwise OR of matrix convention flags (see @ref MatrixFlags)<br>
-	 * @param mat Pass a float[::OSVR_MATRIX_SIZE] to get the transformation<br>
-	 * matrix from room space to eye space (not relative to pose of the viewer)<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed or no pose was<br>
-	 * yet available, in which case the output argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetViewerEyeViewMatrixf(OSVR_DisplayConfig, OSVR_ViewerCount, OSVR_EyeCount, OSVR_MatrixConventions, float*)</code>
-	 */
-	public static native byte osvrClientGetViewerEyeViewMatrixf(OsvrDisplayLibrary.OSVR_DisplayConfig disp, int viewer, byte eye, short flags, FloatBuffer mat);
-	/**
-	 * Each eye of each viewer in a display config has one or more surfaces<br>
-	 * (aka "screens") on which content should be rendered.<br>
-	 * @param disp Display config object<br>
-	 * @param viewer Viewer ID<br>
-	 * @param eye Eye ID<br>
-	 * @param surfaces Number of surfaces (numbered [0, surfaces - 1]) for the<br>
-	 * given viewer and eye. **Constant** throughout the active, valid lifetime of<br>
-	 * a display config object.<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed, in which case<br>
-	 * the output argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetNumSurfacesForViewerEye(OSVR_DisplayConfig, OSVR_ViewerCount, OSVR_EyeCount, OSVR_SurfaceCount*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrClientGetNumSurfacesForViewerEye(com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.OSVR_DisplayConfig, int, byte, java.nio.IntBuffer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrClientGetNumSurfacesForViewerEye(Pointer disp, int viewer, byte eye, IntByReference surfaces);
-	/**
-	 * Each eye of each viewer in a display config has one or more surfaces<br>
-	 * (aka "screens") on which content should be rendered.<br>
-	 * @param disp Display config object<br>
-	 * @param viewer Viewer ID<br>
-	 * @param eye Eye ID<br>
-	 * @param surfaces Number of surfaces (numbered [0, surfaces - 1]) for the<br>
-	 * given viewer and eye. **Constant** throughout the active, valid lifetime of<br>
-	 * a display config object.<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed, in which case<br>
-	 * the output argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetNumSurfacesForViewerEye(OSVR_DisplayConfig, OSVR_ViewerCount, OSVR_EyeCount, OSVR_SurfaceCount*)</code>
-	 */
-	public static native byte osvrClientGetNumSurfacesForViewerEye(OsvrDisplayLibrary.OSVR_DisplayConfig disp, int viewer, byte eye, IntBuffer surfaces);
-	/**
-	 * Get the dimensions/location of the viewport **within the display<br>
-	 * input** for a surface seen by an eye of a viewer in a display config. (This<br>
-	 * does not include other video inputs that may be on a single virtual desktop,<br>
-	 * etc. or explicitly account for display configurations that use multiple<br>
-	 * video inputs. It does not necessarily indicate that a viewport in the sense<br>
-	 * of glViewport must be created with these parameters, though the parameter<br>
-	 * order matches for convenience.)<br>
-	 * @param disp Display config object<br>
-	 * @param viewer Viewer ID<br>
-	 * @param eye Eye ID<br>
-	 * @param surface Surface ID<br>
-	 * @param left Output: Distance in pixels from the left of the video input<br>
-	 * to the left of the viewport.<br>
-	 * @param bottom Output: Distance in pixels from the bottom of the video<br>
-	 * input to the bottom of the viewport.<br>
-	 * @param width Output: Width of viewport in pixels.<br>
-	 * @param height Output: Height of viewport in pixels.<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed, in which case<br>
-	 * the output arguments are unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetRelativeViewportForViewerEyeSurface(OSVR_DisplayConfig, OSVR_ViewerCount, OSVR_EyeCount, OSVR_SurfaceCount, OSVR_ViewportDimension*, OSVR_ViewportDimension*, OSVR_ViewportDimension*, OSVR_ViewportDimension*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrClientGetRelativeViewportForViewerEyeSurface(com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.OSVR_DisplayConfig, int, byte, int, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrClientGetRelativeViewportForViewerEyeSurface(Pointer disp, int viewer, byte eye, int surface, IntByReference left, IntByReference bottom, IntByReference width, IntByReference height);
-	/**
-	 * Get the dimensions/location of the viewport **within the display<br>
-	 * input** for a surface seen by an eye of a viewer in a display config. (This<br>
-	 * does not include other video inputs that may be on a single virtual desktop,<br>
-	 * etc. or explicitly account for display configurations that use multiple<br>
-	 * video inputs. It does not necessarily indicate that a viewport in the sense<br>
-	 * of glViewport must be created with these parameters, though the parameter<br>
-	 * order matches for convenience.)<br>
-	 * @param disp Display config object<br>
-	 * @param viewer Viewer ID<br>
-	 * @param eye Eye ID<br>
-	 * @param surface Surface ID<br>
-	 * @param left Output: Distance in pixels from the left of the video input<br>
-	 * to the left of the viewport.<br>
-	 * @param bottom Output: Distance in pixels from the bottom of the video<br>
-	 * input to the bottom of the viewport.<br>
-	 * @param width Output: Width of viewport in pixels.<br>
-	 * @param height Output: Height of viewport in pixels.<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed, in which case<br>
-	 * the output arguments are unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetRelativeViewportForViewerEyeSurface(OSVR_DisplayConfig, OSVR_ViewerCount, OSVR_EyeCount, OSVR_SurfaceCount, OSVR_ViewportDimension*, OSVR_ViewportDimension*, OSVR_ViewportDimension*, OSVR_ViewportDimension*)</code>
-	 */
-	public static native byte osvrClientGetRelativeViewportForViewerEyeSurface(OsvrDisplayLibrary.OSVR_DisplayConfig disp, int viewer, byte eye, int surface, IntBuffer left, IntBuffer bottom, IntBuffer width, IntBuffer height);
-	/**
-	 * Get the index of the display input for a surface seen by an eye of a<br>
-	 * viewer in a display config.<br>
-	 * This is the OSVR-assigned display input: it may not (and in practice,<br>
-	 * usually will not) match any platform-specific display indices. This function<br>
-	 * exists to associate surfaces with video inputs as enumerated by<br>
-	 * osvrClientGetNumDisplayInputs().<br>
-	 * @param disp Display config object<br>
-	 * @param viewer Viewer ID<br>
-	 * @param eye Eye ID<br>
-	 * @param surface Surface ID<br>
-	 * @param displayInput Zero-based index of the display input pixels for<br>
-	 * this surface are transmitted over.<br>
-	 * This association is **constant** throughout the active, valid lifetime of a<br>
-	 * display config object.<br>
-         * @see #osvrClientGetNumDisplayInputs(com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.OSVR_DisplayConfig, java.nio.ByteBuffer) 
-         * @see #osvrClientGetRelativeViewportForViewerEyeSurface(com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.OSVR_DisplayConfig, int, byte, int, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer)
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed, in which<br>
-	 * case the output argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetViewerEyeSurfaceDisplayInputIndex(OSVR_DisplayConfig, OSVR_ViewerCount, OSVR_EyeCount, OSVR_SurfaceCount, OSVR_DisplayInputCount*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrClientGetViewerEyeSurfaceDisplayInputIndex(com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.OSVR_DisplayConfig, int, byte, int, java.nio.ByteBuffer)} 
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrClientGetViewerEyeSurfaceDisplayInputIndex(Pointer disp, int viewer, byte eye, int surface, Pointer displayInput);
-	/**
-	 * Get the index of the display input for a surface seen by an eye of a<br>
-	 * viewer in a display config.<br>
-	 * This is the OSVR-assigned display input: it may not (and in practice,<br>
-	 * usually will not) match any platform-specific display indices. This function<br>
-	 * exists to associate surfaces with video inputs as enumerated by<br>
-	 * osvrClientGetNumDisplayInputs().<br>
-	 * @param disp Display config object<br>
-	 * @param viewer Viewer ID<br>
-	 * @param eye Eye ID<br>
-	 * @param surface Surface ID<br>
-	 * @param displayInput Zero-based index of the display input pixels for<br>
-	 * this surface are transmitted over.<br>
-	 * This association is **constant** throughout the active, valid lifetime of a<br>
-	 * display config object.<br>
-         * @see #osvrClientGetNumDisplayInputs(com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.OSVR_DisplayConfig, java.nio.ByteBuffer) 
-         * @see #osvrClientGetRelativeViewportForViewerEyeSurface(com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.OSVR_DisplayConfig, int, byte, int, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer)
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed, in which<br>
-	 * case the output argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetViewerEyeSurfaceDisplayInputIndex(OSVR_DisplayConfig, OSVR_ViewerCount, OSVR_EyeCount, OSVR_SurfaceCount, OSVR_DisplayInputCount*)</code>
-	 */
-	public static native byte osvrClientGetViewerEyeSurfaceDisplayInputIndex(OsvrDisplayLibrary.OSVR_DisplayConfig disp, int viewer, byte eye, int surface, ByteBuffer displayInput);
-	/**
-	 * Get the projection matrix for a surface seen by an eye of a viewer<br>
-	 * in a display config. (double version)<br>
-	 * @param disp Display config object<br>
-	 * @param viewer Viewer ID<br>
-	 * @param eye Eye ID<br>
-	 * @param surface Surface ID<br>
-	 * @param near Distance from viewpoint to near clipping plane - must be<br>
-	 * positive.<br>
-	 * @param far Distance from viewpoint to far clipping plane - must be positive<br>
-	 * and not equal to near, typically greater than near.<br>
-	 * @param flags Bitwise OR of matrix convention flags (see @ref MatrixFlags)<br>
-	 * @param matrix Output projection matrix: supply an array of 16<br>
-	 * (::OSVR_MATRIX_SIZE) doubles.<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed, in which case<br>
-	 * the output argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetViewerEyeSurfaceProjectionMatrixd(OSVR_DisplayConfig, OSVR_ViewerCount, OSVR_EyeCount, OSVR_SurfaceCount, double, double, OSVR_MatrixConventions, double*)</code><br>
-	 * @deprecated use the safer method 
-         * {@link #osvrClientGetViewerEyeSurfaceProjectionMatrixd(com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.OSVR_DisplayConfig, int, byte, int, double, double, short, java.nio.DoubleBuffer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrClientGetViewerEyeSurfaceProjectionMatrixd(Pointer disp, int viewer, byte eye, int surface, double near, double far, short flags, DoubleByReference matrix);
-	/**
-	 * Get the projection matrix for a surface seen by an eye of a viewer<br>
-	 * in a display config. (double version)<br>
-	 * @param disp Display config object<br>
-	 * @param viewer Viewer ID<br>
-	 * @param eye Eye ID<br>
-	 * @param surface Surface ID<br>
-	 * @param near Distance from viewpoint to near clipping plane - must be<br>
-	 * positive.<br>
-	 * @param far Distance from viewpoint to far clipping plane - must be positive<br>
-	 * and not equal to near, typically greater than near.<br>
-	 * @param flags Bitwise OR of matrix convention flags (see @ref MatrixFlags)<br>
-	 * @param matrix Output projection matrix: supply an array of 16<br>
-	 * (::OSVR_MATRIX_SIZE) doubles.<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed, in which case<br>
-	 * the output argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetViewerEyeSurfaceProjectionMatrixd(OSVR_DisplayConfig, OSVR_ViewerCount, OSVR_EyeCount, OSVR_SurfaceCount, double, double, OSVR_MatrixConventions, double*)</code>
-	 */
-	public static native byte osvrClientGetViewerEyeSurfaceProjectionMatrixd(OsvrDisplayLibrary.OSVR_DisplayConfig disp, int viewer, byte eye, int surface, double near, double far, short flags, DoubleBuffer matrix);
-	/**
-	 * Get the projection matrix for a surface seen by an eye of a viewer<br>
-	 * in a display config. (float version)<br>
-	 * @param disp Display config object<br>
-	 * @param viewer Viewer ID<br>
-	 * @param eye Eye ID<br>
-	 * @param surface Surface ID<br>
-	 * @param near Distance to near clipping plane - must be nonzero, typically<br>
-	 * positive.<br>
-	 * @param far Distance to far clipping plane - must be nonzero, typically<br>
-	 * positive and greater than near.<br>
-	 * @param flags Bitwise OR of matrix convention flags (see @ref MatrixFlags)<br>
-	 * @param matrix Output projection matrix: supply an array of 16<br>
-	 * (::OSVR_MATRIX_SIZE) floats.<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed, in which case<br>
-	 * the output argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetViewerEyeSurfaceProjectionMatrixf(OSVR_DisplayConfig, OSVR_ViewerCount, OSVR_EyeCount, OSVR_SurfaceCount, float, float, OSVR_MatrixConventions, float*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrClientGetViewerEyeSurfaceProjectionMatrixf(com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.OSVR_DisplayConfig, int, byte, int, float, float, short, java.nio.FloatBuffer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrClientGetViewerEyeSurfaceProjectionMatrixf(Pointer disp, int viewer, byte eye, int surface, float near, float far, short flags, FloatByReference matrix);
-	/**
-	 * Get the projection matrix for a surface seen by an eye of a viewer<br>
-	 * in a display config. (float version)<br>
-	 * @param disp Display config object<br>
-	 * @param viewer Viewer ID<br>
-	 * @param eye Eye ID<br>
-	 * @param surface Surface ID<br>
-	 * @param near Distance to near clipping plane - must be nonzero, typically<br>
-	 * positive.<br>
-	 * @param far Distance to far clipping plane - must be nonzero, typically<br>
-	 * positive and greater than near.<br>
-	 * @param flags Bitwise OR of matrix convention flags (see @ref MatrixFlags)<br>
-	 * @param matrix Output projection matrix: supply an array of 16<br>
-	 * (::OSVR_MATRIX_SIZE) floats.<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed, in which case<br>
-	 * the output argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetViewerEyeSurfaceProjectionMatrixf(OSVR_DisplayConfig, OSVR_ViewerCount, OSVR_EyeCount, OSVR_SurfaceCount, float, float, OSVR_MatrixConventions, float*)</code>
-	 */
-	public static native byte osvrClientGetViewerEyeSurfaceProjectionMatrixf(OsvrDisplayLibrary.OSVR_DisplayConfig disp, int viewer, byte eye, int surface, float near, float far, short flags, FloatBuffer matrix);
-	/**
-	 * Get the clipping planes (positions at unit distance) for a surface<br>
-	 * seen by an eye of a viewer<br>
-	 * in a display config.<br>
-	 * This is only for use in integrations that cannot accept a fully-formulated<br>
-	 * projection matrix as returned by<br>
-	 * osvrClientGetViewerEyeSurfaceProjectionMatrixf() or<br>
-	 * osvrClientGetViewerEyeSurfaceProjectionMatrixd(), and may not necessarily<br>
-	 * provide the same optimizations.<br>
-	 * As all the planes are given at unit (1) distance, before passing these<br>
-	 * planes to a consuming function in your application/engine, you will typically<br>
-	 * divide them by your near clipping plane distance.<br>
-	 * @param disp Display config object<br>
-	 * @param viewer Viewer ID<br>
-	 * @param eye Eye ID<br>
-	 * @param surface Surface ID<br>
-	 * @param left Distance to left clipping plane<br>
-	 * @param right Distance to right clipping plane<br>
-	 * @param bottom Distance to bottom clipping plane<br>
-	 * @param top Distance to top clipping plane<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed, in which case<br>
-	 * the output arguments are unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetViewerEyeSurfaceProjectionClippingPlanes(OSVR_DisplayConfig, OSVR_ViewerCount, OSVR_EyeCount, OSVR_SurfaceCount, double*, double*, double*, double*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrClientGetViewerEyeSurfaceProjectionClippingPlanes(com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.OSVR_DisplayConfig, int, byte, int, java.nio.DoubleBuffer, java.nio.DoubleBuffer, java.nio.DoubleBuffer, java.nio.DoubleBuffer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrClientGetViewerEyeSurfaceProjectionClippingPlanes(Pointer disp, int viewer, byte eye, int surface, DoubleByReference left, DoubleByReference right, DoubleByReference bottom, DoubleByReference top);
-	/**
-	 * Get the clipping planes (positions at unit distance) for a surface<br>
-	 * seen by an eye of a viewer<br>
-	 * in a display config.<br>
-	 * This is only for use in integrations that cannot accept a fully-formulated<br>
-	 * projection matrix as returned by<br>
-	 * osvrClientGetViewerEyeSurfaceProjectionMatrixf() or<br>
-	 * osvrClientGetViewerEyeSurfaceProjectionMatrixd(), and may not necessarily<br>
-	 * provide the same optimizations.<br>
-	 * As all the planes are given at unit (1) distance, before passing these<br>
-	 * planes to a consuming function in your application/engine, you will typically<br>
-	 * divide them by your near clipping plane distance.<br>
-	 * @param disp Display config object<br>
-	 * @param viewer Viewer ID<br>
-	 * @param eye Eye ID<br>
-	 * @param surface Surface ID<br>
-	 * @param left Distance to left clipping plane<br>
-	 * @param right Distance to right clipping plane<br>
-	 * @param bottom Distance to bottom clipping plane<br>
-	 * @param top Distance to top clipping plane<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed, in which case<br>
-	 * the output arguments are unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetViewerEyeSurfaceProjectionClippingPlanes(OSVR_DisplayConfig, OSVR_ViewerCount, OSVR_EyeCount, OSVR_SurfaceCount, double*, double*, double*, double*)</code>
-	 */
-	public static native byte osvrClientGetViewerEyeSurfaceProjectionClippingPlanes(OsvrDisplayLibrary.OSVR_DisplayConfig disp, int viewer, byte eye, int surface, DoubleBuffer left, DoubleBuffer right, DoubleBuffer bottom, DoubleBuffer top);
-	/**
-	 * Determines if a surface seen by an eye of a viewer in a display<br>
-	 * config requests some distortion to be performed.<br>
-	 * This simply reports true or false, and does not specify which kind of<br>
-	 * distortion implementations have been parameterized for this display. For<br>
-	 * each distortion implementation your application supports, you'll want to<br>
-	 * call the corresponding priority function to find out if it is available.<br>
-	 * @param disp Display config object<br>
-	 * @param viewer Viewer ID<br>
-	 * @param eye Eye ID<br>
-	 * @param surface Surface ID<br>
-	 * @param distortionRequested Output parameter: whether distortion is<br>
-	 * requested. **Constant** throughout the active, valid lifetime of a display<br>
-	 * config object.<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed, in which case<br>
-	 * the output argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientDoesViewerEyeSurfaceWantDistortion(OSVR_DisplayConfig, OSVR_ViewerCount, OSVR_EyeCount, OSVR_SurfaceCount, OSVR_CBool*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrClientDoesViewerEyeSurfaceWantDistortion(com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.OSVR_DisplayConfig, int, byte, int, java.nio.ByteBuffer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrClientDoesViewerEyeSurfaceWantDistortion(Pointer disp, int viewer, byte eye, int surface, Pointer distortionRequested);
-	/**
-	 * Determines if a surface seen by an eye of a viewer in a display<br>
-	 * config requests some distortion to be performed.<br>
-	 * This simply reports true or false, and does not specify which kind of<br>
-	 * distortion implementations have been parameterized for this display. For<br>
-	 * each distortion implementation your application supports, you'll want to<br>
-	 * call the corresponding priority function to find out if it is available.<br>
-	 * @param disp Display config object<br>
-	 * @param viewer Viewer ID<br>
-	 * @param eye Eye ID<br>
-	 * @param surface Surface ID<br>
-	 * @param distortionRequested Output parameter: whether distortion is<br>
-	 * requested. **Constant** throughout the active, valid lifetime of a display<br>
-	 * config object.<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed, in which case<br>
-	 * the output argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientDoesViewerEyeSurfaceWantDistortion(OSVR_DisplayConfig, OSVR_ViewerCount, OSVR_EyeCount, OSVR_SurfaceCount, OSVR_CBool*)</code>
-	 */
-	public static native byte osvrClientDoesViewerEyeSurfaceWantDistortion(OsvrDisplayLibrary.OSVR_DisplayConfig disp, int viewer, byte eye, int surface, ByteBuffer distortionRequested);
-	/**
-	 * Returns the priority/availability of radial distortion parameters for<br>
-	 * a surface seen by an eye of a viewer in a display config.<br>
-	 * If osvrClientDoesViewerEyeSurfaceWantDistortion() reports false, then the<br>
-	 * display does not request distortion of any sort, and thus neither this nor<br>
-	 * any other distortion strategy priority function will report an "available"<br>
-	 * priority.<br>
-	 * @param disp Display config object<br>
-	 * @param viewer Viewer ID<br>
-	 * @param eye Eye ID<br>
-	 * @param surface Surface ID<br>
-	 * @param priority Output: the priority level. Negative values<br>
-	 * (canonically OSVR_DISTORTION_PRIORITY_UNAVAILABLE) indicate this technique<br>
-	 * not available, higher values indicate higher preference for the given<br>
-	 * technique based on the device's description. **Constant** throughout the<br>
-	 * active, valid lifetime of a display config object.<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed, in which case<br>
-	 * the output argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetViewerEyeSurfaceRadialDistortionPriority(OSVR_DisplayConfig, OSVR_ViewerCount, OSVR_EyeCount, OSVR_SurfaceCount, OSVR_DistortionPriority*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrClientGetViewerEyeSurfaceRadialDistortionPriority(com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.OSVR_DisplayConfig, int, byte, int, java.nio.IntBuffer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrClientGetViewerEyeSurfaceRadialDistortionPriority(Pointer disp, int viewer, byte eye, int surface, IntByReference priority);
-	/**
-	 * Returns the priority/availability of radial distortion parameters for<br>
-	 * a surface seen by an eye of a viewer in a display config.<br>
-	 * If osvrClientDoesViewerEyeSurfaceWantDistortion() reports false, then the<br>
-	 * display does not request distortion of any sort, and thus neither this nor<br>
-	 * any other distortion strategy priority function will report an "available"<br>
-	 * priority.<br>
-	 * @param disp Display config object<br>
-	 * @param viewer Viewer ID<br>
-	 * @param eye Eye ID<br>
-	 * @param surface Surface ID<br>
-	 * @param priority Output: the priority level. Negative values<br>
-	 * (canonically OSVR_DISTORTION_PRIORITY_UNAVAILABLE) indicate this technique<br>
-	 * not available, higher values indicate higher preference for the given<br>
-	 * technique based on the device's description. **Constant** throughout the<br>
-	 * active, valid lifetime of a display config object.<br>
-	 * @return OSVR_RETURN_FAILURE if invalid parameters were passed, in which case<br>
-	 * the output argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetViewerEyeSurfaceRadialDistortionPriority(OSVR_DisplayConfig, OSVR_ViewerCount, OSVR_EyeCount, OSVR_SurfaceCount, OSVR_DistortionPriority*)</code>
-	 */
-	public static native byte osvrClientGetViewerEyeSurfaceRadialDistortionPriority(OsvrDisplayLibrary.OSVR_DisplayConfig disp, int viewer, byte eye, int surface, IntBuffer priority);
-	/**
-	 * Returns the radial distortion parameters, if known/requested, for a<br>
-	 * surface seen by an eye of a viewer in a display config.<br>
-	 * Will only succeed if osvrClientGetViewerEyeSurfaceRadialDistortionPriority()<br>
-	 * reports a non-negative priority.<br>
-	 * @param disp Display config object<br>
-	 * @param viewer Viewer ID<br>
-	 * @param eye Eye ID<br>
-	 * @param surface Surface ID<br>
-	 * @param params Output: the parameters for radial distortion<br>
-	 * @return OSVR_RETURN_FAILURE if this surface does not have these parameters<br>
-	 * described, or if invalid parameters were passed, in which case the output<br>
-	 * argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetViewerEyeSurfaceRadialDistortion(OSVR_DisplayConfig, OSVR_ViewerCount, OSVR_EyeCount, OSVR_SurfaceCount, OSVR_RadialDistortionParameters*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrClientGetViewerEyeSurfaceRadialDistortion(com.jme3.system.osvr.osvrdisplay.OsvrDisplayLibrary.OSVR_DisplayConfig, int, byte, int, com.sun.jna.Pointer)} 
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrClientGetViewerEyeSurfaceRadialDistortion(Pointer disp, int viewer, byte eye, int surface, Pointer params);
-	/**
-	 * Returns the radial distortion parameters, if known/requested, for a<br>
-	 * surface seen by an eye of a viewer in a display config.<br>
-	 * Will only succeed if osvrClientGetViewerEyeSurfaceRadialDistortionPriority()<br>
-	 * reports a non-negative priority.<br>
-	 * @param disp Display config object<br>
-	 * @param viewer Viewer ID<br>
-	 * @param eye Eye ID<br>
-	 * @param surface Surface ID<br>
-	 * @param params Output: the parameters for radial distortion<br>
-	 * @return OSVR_RETURN_FAILURE if this surface does not have these parameters<br>
-	 * described, or if invalid parameters were passed, in which case the output<br>
-	 * argument is unmodified.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrClientGetViewerEyeSurfaceRadialDistortion(OSVR_DisplayConfig, OSVR_ViewerCount, OSVR_EyeCount, OSVR_SurfaceCount, OSVR_RadialDistortionParameters*)</code>
-	 */
-	public static native byte osvrClientGetViewerEyeSurfaceRadialDistortion(OsvrDisplayLibrary.OSVR_DisplayConfig disp, int viewer, byte eye, int surface, Pointer params);
-	public static class OSVR_ClientContext extends PointerType {
-		public OSVR_ClientContext(Pointer address) {
-			super(address);
-		}
-		public OSVR_ClientContext() {
-			super();
-		}
-	};
-	public static class OSVR_DisplayConfig extends PointerType {
-		public OSVR_DisplayConfig(Pointer address) {
-			super(address);
-		}
-		public OSVR_DisplayConfig() {
-			super();
-		}
-	};
-}

+ 0 - 24
jme3-vr/src/main/java/com/jme3/system/osvr/osvrinterface/OsvrInterfaceLibrary.java

@@ -1,24 +0,0 @@
-package com.jme3.system.osvr.osvrinterface;
-import com.jme3.system.osvr.osvrclientkit.OsvrClientKitLibrary.OSVR_ClientInterface;
-import com.jme3.system.osvr.osvrclientreporttypes.OSVR_Pose3;
-import com.jme3.system.osvr.osvrtimevalue.OSVR_TimeValue;
-import com.sun.jna.Library;
-import com.sun.jna.Native;
-import com.sun.jna.NativeLibrary;
-/**
- * JNA Wrapper for library <b>osvrInterface</b><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>
- * 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 OsvrInterfaceLibrary implements Library {
-	public static final String JNA_LIBRARY_NAME = "osvrClientKit";
-	public static final NativeLibrary JNA_NATIVE_LIB = NativeLibrary.getInstance(OsvrInterfaceLibrary.JNA_LIBRARY_NAME);
-	static {
-		Native.register(OsvrInterfaceLibrary.class, OsvrInterfaceLibrary.JNA_NATIVE_LIB);
-	}
-        
-        /** Manually added */
-        public static native byte osvrGetPoseState(OSVR_ClientInterface iface, OSVR_TimeValue timestamp, OSVR_Pose3 state);
-        
-}

+ 0 - 41
jme3-vr/src/main/java/com/jme3/system/osvr/osvrmatrixconventions/OSVR_Pose3.java

@@ -1,41 +0,0 @@
-package com.jme3.system.osvr.osvrmatrixconventions;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_Pose3 extends Structure {
-	/** C type : OSVR_Vec3 */
-	public OSVR_Vec3 translation;
-	/** C type : OSVR_Quaternion */
-	public OSVR_Quaternion rotation;
-	public OSVR_Pose3() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("translation", "rotation");
-	}
-	/**
-	 * @param translation C type : OSVR_Vec3<br>
-	 * @param rotation C type : OSVR_Quaternion
-	 */
-	public OSVR_Pose3(OSVR_Vec3 translation, OSVR_Quaternion rotation) {
-		super();
-		this.translation = translation;
-		this.rotation = rotation;
-	}
-	public OSVR_Pose3(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_Pose3 implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_Pose3 implements Structure.ByValue {
-		
-	};
-}

+ 0 - 37
jme3-vr/src/main/java/com/jme3/system/osvr/osvrmatrixconventions/OSVR_Quaternion.java

@@ -1,37 +0,0 @@
-package com.jme3.system.osvr.osvrmatrixconventions;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_Quaternion extends Structure {
-	/** C type : double[4] */
-	public double[] data = new double[4];
-	public OSVR_Quaternion() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("data");
-	}
-	/** @param data C type : double[4] */
-	public OSVR_Quaternion(double data[]) {
-		super();
-		if ((data.length != this.data.length)) 
-			throw new IllegalArgumentException("Wrong array size !");
-		this.data = data;
-	}
-	public OSVR_Quaternion(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_Quaternion implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_Quaternion implements Structure.ByValue {
-		
-	};
-}

+ 0 - 37
jme3-vr/src/main/java/com/jme3/system/osvr/osvrmatrixconventions/OSVR_Vec3.java

@@ -1,37 +0,0 @@
-package com.jme3.system.osvr.osvrmatrixconventions;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_Vec3 extends Structure {
-	/** C type : double[3] */
-	public double[] data = new double[3];
-	public OSVR_Vec3() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("data");
-	}
-	/** @param data C type : double[3] */
-	public OSVR_Vec3(double data[]) {
-		super();
-		if ((data.length != this.data.length)) 
-			throw new IllegalArgumentException("Wrong array size !");
-		this.data = data;
-	}
-	public OSVR_Vec3(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_Vec3 implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_Vec3 implements Structure.ByValue {
-		
-	};
-}

+ 0 - 192
jme3-vr/src/main/java/com/jme3/system/osvr/osvrmatrixconventions/OsvrMatrixConventionsLibrary.java

@@ -1,192 +0,0 @@
-package com.jme3.system.osvr.osvrmatrixconventions;
-import com.sun.jna.Library;
-import com.sun.jna.Native;
-import com.sun.jna.NativeLibrary;
-import com.sun.jna.Pointer;
-import com.sun.jna.PointerType;
-import com.sun.jna.ptr.DoubleByReference;
-import com.sun.jna.ptr.FloatByReference;
-import java.nio.DoubleBuffer;
-import java.nio.FloatBuffer;
-/**
- * JNA Wrapper for library <b>osvrMatrixConventions</b><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>
- * 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 OsvrMatrixConventionsLibrary implements Library {
-	public static final String JNA_LIBRARY_NAME = "osvrUtil";
-	public static final NativeLibrary JNA_NATIVE_LIB = NativeLibrary.getInstance(OsvrMatrixConventionsLibrary.JNA_LIBRARY_NAME);
-	static {
-		Native.register(OsvrMatrixConventionsLibrary.class, OsvrMatrixConventionsLibrary.JNA_NATIVE_LIB);
-	}
-	/** enum values */
-	public static interface OSVR_MatrixMasks {
-		public static final int OSVR_MATRIX_MASK_ROWMAJOR = 0x1;
-		public static final int OSVR_MATRIX_MASK_ROWVECTORS = 0x2;
-		public static final int OSVR_MATRIX_MASK_LHINPUT = 0x4;
-		public static final int OSVR_MATRIX_MASK_UNSIGNEDZ = 0x8;
-	};
-	/** enum values */
-	public static interface OSVR_MatrixOrderingFlags {
-		public static final int OSVR_MATRIX_COLMAJOR = 0x0;
-		public static final int OSVR_MATRIX_ROWMAJOR = OsvrMatrixConventionsLibrary.OSVR_MatrixMasks.OSVR_MATRIX_MASK_ROWMAJOR;
-	};
-	/** enum values */
-	public static interface OSVR_MatrixVectorFlags {
-		public static final int OSVR_MATRIX_COLVECTORS = 0x0;
-		public static final int OSVR_MATRIX_ROWVECTORS = OsvrMatrixConventionsLibrary.OSVR_MatrixMasks.OSVR_MATRIX_MASK_ROWVECTORS;
-	};
-	/** enum values */
-	public static interface OSVR_ProjectionMatrixInputFlags {
-		public static final int OSVR_MATRIX_RHINPUT = 0x0;
-		public static final int OSVR_MATRIX_LHINPUT = OsvrMatrixConventionsLibrary.OSVR_MatrixMasks.OSVR_MATRIX_MASK_LHINPUT;
-	};
-	/** enum values */
-	public static interface OSVR_ProjectionMatrixZFlags {
-		public static final int OSVR_MATRIX_SIGNEDZ = 0x0;
-		public static final int OSVR_MATRIX_UNSIGNEDZ = OsvrMatrixConventionsLibrary.OSVR_MatrixMasks.OSVR_MATRIX_MASK_UNSIGNEDZ;
-	};
-	public static final int OSVR_MATRIX_SIZE = 16;
-	public static final int OSVR_RETURN_SUCCESS = 0;
-	public static final int OSVR_RETURN_FAILURE = 1;
-	/** Original signature : <code>double osvrVec3GetX(const OSVR_Vec3*)</code> */
-	public static native double osvrVec3GetX(OSVR_Vec3 v);
-	/** Original signature : <code>void osvrVec3SetX(OSVR_Vec3*, double)</code> */
-	public static native void osvrVec3SetX(OSVR_Vec3 v, double val);
-	/** Original signature : <code>double osvrVec3GetY(const OSVR_Vec3*)</code> */
-	public static native double osvrVec3GetY(OSVR_Vec3 v);
-	/** Original signature : <code>void osvrVec3SetY(OSVR_Vec3*, double)</code> */
-	public static native void osvrVec3SetY(OSVR_Vec3 v, double val);
-	/** Original signature : <code>double osvrVec3GetZ(const OSVR_Vec3*)</code> */
-	public static native double osvrVec3GetZ(OSVR_Vec3 v);
-	/** Original signature : <code>void osvrVec3SetZ(OSVR_Vec3*, double)</code> */
-	public static native void osvrVec3SetZ(OSVR_Vec3 v, double val);
-	/**
-	 * Set a Vec3 to the zero vector<br>
-	 * Original signature : <code>void osvrVec3Zero(OSVR_Vec3*)</code>
-	 */
-	public static native void osvrVec3Zero(OSVR_Vec3 v);
-	/** Original signature : <code>double osvrQuatGetW(const OSVR_Quaternion*)</code> */
-	public static native double osvrQuatGetW(OSVR_Quaternion q);
-	/** Original signature : <code>void osvrQuatSetW(OSVR_Quaternion*, double)</code> */
-	public static native void osvrQuatSetW(OSVR_Quaternion q, double val);
-	/** Original signature : <code>double osvrQuatGetX(const OSVR_Quaternion*)</code> */
-	public static native double osvrQuatGetX(OSVR_Quaternion q);
-	/** Original signature : <code>void osvrQuatSetX(OSVR_Quaternion*, double)</code> */
-	public static native void osvrQuatSetX(OSVR_Quaternion q, double val);
-	/** Original signature : <code>double osvrQuatGetY(const OSVR_Quaternion*)</code> */
-	public static native double osvrQuatGetY(OSVR_Quaternion q);
-	/** Original signature : <code>void osvrQuatSetY(OSVR_Quaternion*, double)</code> */
-	public static native void osvrQuatSetY(OSVR_Quaternion q, double val);
-	/** Original signature : <code>double osvrQuatGetZ(const OSVR_Quaternion*)</code> */
-	public static native double osvrQuatGetZ(OSVR_Quaternion q);
-	/** Original signature : <code>void osvrQuatSetZ(OSVR_Quaternion*, double)</code> */
-	public static native void osvrQuatSetZ(OSVR_Quaternion q, double val);
-	/**
-	 * Set a quaternion to the identity rotation<br>
-	 * Original signature : <code>void osvrQuatSetIdentity(OSVR_Quaternion*)</code>
-	 */
-	public static native void osvrQuatSetIdentity(OSVR_Quaternion q);
-	/**
-	 * Set a pose to identity<br>
-	 * Original signature : <code>void osvrPose3SetIdentity(OSVR_Pose3*)</code>
-	 */
-	public static native void osvrPose3SetIdentity(OSVR_Pose3 pose);
-	/**
-	 * Set a matrix of doubles based on a Pose3.<br>
-	 * @param pose The Pose3 to convert<br>
-	 * @param flags Memory ordering flag - see @ref MatrixFlags<br>
-	 * @param mat an array of 16 doubles<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrPose3ToMatrixd(const OSVR_Pose3*, OSVR_MatrixConventions, double*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrPose3ToMatrixd(com.jme3.system.osvr.osvrmatrixconventions.OSVR_Pose3, short, java.nio.DoubleBuffer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrPose3ToMatrixd(OSVR_Pose3 pose, short flags, DoubleByReference mat);
-	/**
-	 * Set a matrix of doubles based on a Pose3.<br>
-	 * @param pose The Pose3 to convert<br>
-	 * @param flags Memory ordering flag - see @ref MatrixFlags<br>
-	 * @param mat an array of 16 doubles<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrPose3ToMatrixd(const OSVR_Pose3*, OSVR_MatrixConventions, double*)</code>
-	 */
-	public static native byte osvrPose3ToMatrixd(OSVR_Pose3 pose, short flags, DoubleBuffer mat);
-	/**
-	 * Set a matrix of floats based on a Pose3.<br>
-	 * @param pose The Pose3 to convert<br>
-	 * @param flags Memory ordering flag - see @ref MatrixFlags<br>
-	 * @param mat an array of 16 floats<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrPose3ToMatrixf(const OSVR_Pose3*, OSVR_MatrixConventions, float*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrPose3ToMatrixf(com.jme3.system.osvr.osvrmatrixconventions.OSVR_Pose3, short, java.nio.FloatBuffer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrPose3ToMatrixf(OSVR_Pose3 pose, short flags, FloatByReference mat);
-	/**
-	 * Set a matrix of floats based on a Pose3.<br>
-	 * @param pose The Pose3 to convert<br>
-	 * @param flags Memory ordering flag - see @ref MatrixFlags<br>
-	 * @param mat an array of 16 floats<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrPose3ToMatrixf(const OSVR_Pose3*, OSVR_MatrixConventions, float*)</code>
-	 */
-	public static native byte osvrPose3ToMatrixf(OSVR_Pose3 pose, short flags, FloatBuffer mat);
-	/**
-	 * Set a matrix based on a Pose3. (C++-only overload - detecting scalar<br>
-	 * type)<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrPose3ToMatrix(const OSVR_Pose3*, OSVR_MatrixConventions, double*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrPose3ToMatrix(com.jme3.system.osvr.osvrmatrixconventions.OSVR_Pose3, short, java.nio.DoubleBuffer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrPose3ToMatrix(OSVR_Pose3 pose, short flags, DoubleByReference mat);
-	/**
-	 * Set a matrix based on a Pose3. (C++-only overload - detecting scalar<br>
-	 * type)<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrPose3ToMatrix(const OSVR_Pose3*, OSVR_MatrixConventions, double*)</code>
-	 */
-	public static native byte osvrPose3ToMatrix(OSVR_Pose3 pose, short flags, DoubleBuffer mat);
-	/**
-	 * Set a matrix based on a Pose3. (C++-only overload - detecting scalar<br>
-	 * type)<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrPose3ToMatrix(const OSVR_Pose3*, OSVR_MatrixConventions, float*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrPose3ToMatrix(com.jme3.system.osvr.osvrmatrixconventions.OSVR_Pose3, short, java.nio.FloatBuffer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrPose3ToMatrix(OSVR_Pose3 pose, short flags, FloatByReference mat);
-	/**
-	 * Set a matrix based on a Pose3. (C++-only overload - detecting scalar<br>
-	 * type)<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrPose3ToMatrix(const OSVR_Pose3*, OSVR_MatrixConventions, float*)</code>
-	 */
-	public static native byte osvrPose3ToMatrix(OSVR_Pose3 pose, short flags, FloatBuffer mat);
-	/**
-	 * Set a matrix based on a Pose3. (C++-only overload - detects scalar<br>
-	 * and takes array rather than pointer)<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrPose3ToMatrix(const OSVR_Pose3*, OSVR_MatrixConventions, Scalar[OSVR_MATRIX_SIZE])</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrPose3ToMatrix(com.jme3.system.osvr.osvrmatrixconventions.OSVR_Pose3, short, java.nio.DoubleBuffer)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrPose3ToMatrix(OSVR_Pose3 pose, short flags, Pointer mat);
-	/**
-	 * Set a matrix based on a Pose3. (C++-only overload - detects scalar<br>
-	 * and takes array rather than pointer)<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrPose3ToMatrix(const OSVR_Pose3*, OSVR_MatrixConventions, Scalar[OSVR_MATRIX_SIZE])</code>
-	 */
-	public static native byte osvrPose3ToMatrix(OSVR_Pose3 pose, short flags, OsvrMatrixConventionsLibrary.Scalar mat[]);
-	public static class Scalar extends PointerType {
-		public Scalar(Pointer address) {
-			super(address);
-		}
-		public Scalar() {
-			super();
-		}
-	};
-}

+ 0 - 45
jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanager/OSVR_ProjectionMatrix.java

@@ -1,45 +0,0 @@
-package com.jme3.system.osvr.osvrrendermanager;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_ProjectionMatrix extends Structure {
-	public double left;
-	public double right;
-	public double top;
-	public double bottom;
-	/** Cannot name "near" because Visual Studio keyword */
-	public double nearClip;
-	public double farClip;
-	public OSVR_ProjectionMatrix() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("left", "right", "top", "bottom", "nearClip", "farClip");
-	}
-	/** @param nearClip Cannot name "near" because Visual Studio keyword */
-	public OSVR_ProjectionMatrix(double left, double right, double top, double bottom, double nearClip, double farClip) {
-		super();
-		this.left = left;
-		this.right = right;
-		this.top = top;
-		this.bottom = bottom;
-		this.nearClip = nearClip;
-		this.farClip = farClip;
-	}
-	public OSVR_ProjectionMatrix(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_ProjectionMatrix implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_ProjectionMatrix implements Structure.ByValue {
-		
-	};
-}

+ 0 - 37
jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanager/OSVR_RGB.java

@@ -1,37 +0,0 @@
-package com.jme3.system.osvr.osvrrendermanager;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_RGB extends Structure {
-	public float r;
-	public float g;
-	public float b;
-	public OSVR_RGB() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("r", "g", "b");
-	}
-	public OSVR_RGB(float r, float g, float b) {
-		super();
-		this.r = r;
-		this.g = g;
-		this.b = b;
-	}
-	public OSVR_RGB(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_RGB implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_RGB implements Structure.ByValue {
-		
-	};
-}

+ 0 - 53
jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanager/OSVR_RenderParams.java

@@ -1,53 +0,0 @@
-package com.jme3.system.osvr.osvrrendermanager;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_RenderParams extends Structure {
-	/**
-	 * Room space to insert<br>
-	 * C type : OSVR_PoseState*
-	 */
-	public Pointer worldFromRoomAppend;
-	/**
-	 * Overrides head space<br>
-	 * C type : OSVR_PoseState*
-	 */
-	public Pointer roomFromHeadReplace;
-	public double nearClipDistanceMeters;
-	public double farClipDistanceMeters;
-	public OSVR_RenderParams() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("worldFromRoomAppend", "roomFromHeadReplace", "nearClipDistanceMeters", "farClipDistanceMeters");
-	}
-	/**
-	 * @param worldFromRoomAppend Room space to insert<br>
-	 * C type : OSVR_PoseState*<br>
-	 * @param roomFromHeadReplace Overrides head space<br>
-	 * C type : OSVR_PoseState*
-	 */
-	public OSVR_RenderParams(Pointer worldFromRoomAppend, Pointer roomFromHeadReplace, double nearClipDistanceMeters, double farClipDistanceMeters) {
-		super();
-		this.worldFromRoomAppend = worldFromRoomAppend;
-		this.roomFromHeadReplace = roomFromHeadReplace;
-		this.nearClipDistanceMeters = nearClipDistanceMeters;
-		this.farClipDistanceMeters = farClipDistanceMeters;
-	}
-	public OSVR_RenderParams(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_RenderParams implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_RenderParams implements Structure.ByValue {
-		
-	};
-}

+ 0 - 49
jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanager/OSVR_ViewportDescription.java

@@ -1,49 +0,0 @@
-package com.jme3.system.osvr.osvrrendermanager;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_ViewportDescription extends Structure {
-	/** Left side of the viewport in pixels */
-	public double left;
-	/** First pixel in the viewport at the bottom. */
-	public double lower;
-	/** Last pixel in the viewport at the top */
-	public double width;
-	/** Last pixel on the right of the viewport in pixels */
-	public double height;
-	public OSVR_ViewportDescription() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("left", "lower", "width", "height");
-	}
-	/**
-	 * @param left Left side of the viewport in pixels<br>
-	 * @param lower First pixel in the viewport at the bottom.<br>
-	 * @param width Last pixel in the viewport at the top<br>
-	 * @param height Last pixel on the right of the viewport in pixels
-	 */
-	public OSVR_ViewportDescription(double left, double lower, double width, double height) {
-		super();
-		this.left = left;
-		this.lower = lower;
-		this.width = width;
-		this.height = height;
-	}
-	public OSVR_ViewportDescription(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_ViewportDescription implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_ViewportDescription implements Structure.ByValue {
-		
-	};
-}

+ 0 - 117
jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanager/OsvrRenderManagerLibrary.java

@@ -1,117 +0,0 @@
-package com.jme3.system.osvr.osvrrendermanager;
-import com.ochafik.lang.jnaerator.runtime.NativeSizeByReference;
-import com.sun.jna.Library;
-import com.sun.jna.Native;
-import com.sun.jna.NativeLibrary;
-import com.sun.jna.Pointer;
-import com.sun.jna.ptr.DoubleByReference;
-import com.sun.jna.ptr.FloatByReference;
-import com.sun.jna.ptr.PointerByReference;
-import java.nio.DoubleBuffer;
-import java.nio.FloatBuffer;
-/**
- * JNA Wrapper for library <b>osvrRenderManager</b><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>
- * 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 OsvrRenderManagerLibrary implements Library {
-	public static final String JNA_LIBRARY_NAME = "osvrRenderManager";
-	public static final NativeLibrary JNA_NATIVE_LIB = NativeLibrary.getInstance(OsvrRenderManagerLibrary.JNA_LIBRARY_NAME);
-	static {
-		Native.register(OsvrRenderManagerLibrary.class, OsvrRenderManagerLibrary.JNA_NATIVE_LIB);
-	}
-	/** enum values */
-	public static interface OSVR_OpenStatus {
-		public static final int OSVR_OPEN_STATUS_FAILURE = 0;
-		public static final int OSVR_OPEN_STATUS_PARTIAL = 1;
-		public static final int OSVR_OPEN_STATUS_COMPLETE = 2;
-	};
-	/**
-	 * todo OSVR_RenderTimingInfo.
-	 * Original signature : <code>OSVR_ReturnCode osvrDestroyRenderManager(OSVR_RenderManager)</code>
-	 */
-	public static native byte osvrDestroyRenderManager(Pointer renderManager);
-	/**
-	 * todo Make this actually cache, for now it does not.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrRenderManagerGetNumRenderInfo(OSVR_RenderManager, OSVR_RenderParams, OSVR_RenderInfoCount*)</code>
-	 */
-	public static native byte osvrRenderManagerGetNumRenderInfo(Pointer renderManager, OSVR_RenderParams.ByValue renderParams, NativeSizeByReference numRenderInfoOut);
-	/** Original signature : <code>OSVR_ReturnCode osvrRenderManagerGetDoingOkay(OSVR_RenderManager)</code> */
-	public static native byte osvrRenderManagerGetDoingOkay(Pointer renderManager);
-	/** Original signature : <code>OSVR_ReturnCode osvrRenderManagerGetDefaultRenderParams(OSVR_RenderParams*)</code> */
-	public static native byte osvrRenderManagerGetDefaultRenderParams(OSVR_RenderParams renderParamsOut);
-	/**
-	 * must be registered before they are presented.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrRenderManagerStartPresentRenderBuffers(OSVR_RenderManagerPresentState*)</code>
-	 */
-	public static native byte osvrRenderManagerStartPresentRenderBuffers(PointerByReference presentStateOut);
-	/**
-	 * buffers for a single frame.  This sequence starts with the Start function.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrRenderManagerFinishPresentRenderBuffers(OSVR_RenderManager, OSVR_RenderManagerPresentState, OSVR_RenderParams, OSVR_CBool)</code>
-	 */
-	public static native byte osvrRenderManagerFinishPresentRenderBuffers(Pointer renderManager, Pointer presentState, OSVR_RenderParams.ByValue renderParams, byte shouldFlipY);
-	/**
-	 * must be registered before they are presented.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrRenderManagerStartRegisterRenderBuffers(OSVR_RenderManagerRegisterBufferState*)</code>
-	 */
-	public static native byte osvrRenderManagerStartRegisterRenderBuffers(PointerByReference registerBufferStateOut);
-	/**
-	 * buffers for a single frame.  This sequence starts with the Start function.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrRenderManagerFinishRegisterRenderBuffers(OSVR_RenderManager, OSVR_RenderManagerRegisterBufferState, OSVR_CBool)</code>
-	 */
-	public static native byte osvrRenderManagerFinishRegisterRenderBuffers(Pointer renderManager, Pointer registerBufferState, byte appWillNotOverwriteBeforeNewPresent);
-	/** Original signature : <code>OSVR_ReturnCode osvrRenderManagerPresentSolidColorf(OSVR_RenderManager, OSVR_RGB_FLOAT)</code> */
-	public static native byte osvrRenderManagerPresentSolidColorf(Pointer renderManager, com.jme3.system.osvr.osvrrendermanager.OSVR_RGB.ByValue rgb);
-	/**
-	 * when you're done.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrRenderManagerGetRenderInfoCollection(OSVR_RenderManager, OSVR_RenderParams, OSVR_RenderInfoCollection*)</code>
-	 */
-	public static native byte osvrRenderManagerGetRenderInfoCollection(Pointer renderManager, OSVR_RenderParams.ByValue renderParams, PointerByReference renderInfoCollectionOut);
-	/**
-	 * Releases the OSVR_RenderInfoCollection.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrRenderManagerReleaseRenderInfoCollection(OSVR_RenderInfoCollection)</code>
-	 */
-	public static native byte osvrRenderManagerReleaseRenderInfoCollection(Pointer renderInfoCollection);
-	/**
-	 * Get the size of the OSVR_RenderInfoCollection.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrRenderManagerGetNumRenderInfoInCollection(OSVR_RenderInfoCollection, OSVR_RenderInfoCount*)</code>
-	 */
-	public static native byte osvrRenderManagerGetNumRenderInfoInCollection(Pointer renderInfoCollection, NativeSizeByReference countOut);
-	/**
-	 * @return True on success, false on failure (null pointer).<br>
-	 * Original signature : <code>OSVR_ReturnCode OSVR_Projection_to_OpenGL(double*, OSVR_ProjectionMatrix)</code><br>
-	 * @deprecated use the safer methods {@link #OSVR_Projection_to_OpenGL(java.nio.DoubleBuffer, com.jme3.system.osvr.osvrrendermanager.OSVR_ProjectionMatrix.ByValue)} and {@link #OSVR_Projection_to_OpenGL(com.sun.jna.ptr.DoubleByReference, com.jme3.system.osvr.osvrrendermanager.OSVR_ProjectionMatrix.ByValue)} instead
-	 */
-	@Deprecated 
-	public static native byte OSVR_Projection_to_OpenGL(DoubleByReference OpenGL_out, com.jme3.system.osvr.osvrrendermanager.OSVR_ProjectionMatrix.ByValue projection_in);
-	/**
-	 * @return True on success, false on failure (null pointer).<br>
-	 * Original signature : <code>OSVR_ReturnCode OSVR_Projection_to_OpenGL(double*, OSVR_ProjectionMatrix)</code>
-	 */
-	public static native byte OSVR_Projection_to_OpenGL(DoubleBuffer OpenGL_out, com.jme3.system.osvr.osvrrendermanager.OSVR_ProjectionMatrix.ByValue projection_in);
-	/**
-	 * @return True on success, false on failure (null pointer).<br>
-	 * Original signature : <code>OSVR_ReturnCode OSVR_Projection_to_D3D(float[16], OSVR_ProjectionMatrix)</code><br>
-	 * @deprecated use the safer methods {@link #OSVR_Projection_to_D3D(java.nio.FloatBuffer, com.jme3.system.osvr.osvrrendermanager.OSVR_ProjectionMatrix.ByValue)} and {@link #OSVR_Projection_to_D3D(com.sun.jna.ptr.FloatByReference, com.jme3.system.osvr.osvrrendermanager.OSVR_ProjectionMatrix.ByValue)} instead
-	 */
-	@Deprecated 
-	public static native byte OSVR_Projection_to_D3D(FloatByReference D3D_out, com.jme3.system.osvr.osvrrendermanager.OSVR_ProjectionMatrix.ByValue projection_in);
-	/**
-	 * @return True on success, false on failure (null pointer).<br>
-	 * Original signature : <code>OSVR_ReturnCode OSVR_Projection_to_D3D(float[16], OSVR_ProjectionMatrix)</code>
-	 */
-	public static native byte OSVR_Projection_to_D3D(FloatBuffer D3D_out, com.jme3.system.osvr.osvrrendermanager.OSVR_ProjectionMatrix.ByValue projection_in);
-	/**
-	 * @return True on success, false on failure (null pointer).<br>
-	 * Original signature : <code>OSVR_ReturnCode OSVR_Projection_to_Unreal(float[16], OSVR_ProjectionMatrix)</code><br>
-	 * @deprecated use the safer methods {@link #OSVR_Projection_to_Unreal(java.nio.FloatBuffer, com.jme3.system.osvr.osvrrendermanager.OSVR_ProjectionMatrix.ByValue)} and {@link #OSVR_Projection_to_Unreal(com.sun.jna.ptr.FloatByReference, com.jme3.system.osvr.osvrrendermanager.OSVR_ProjectionMatrix.ByValue)} instead
-	 */
-	@Deprecated 
-	public static native byte OSVR_Projection_to_Unreal(FloatByReference Unreal_out, com.jme3.system.osvr.osvrrendermanager.OSVR_ProjectionMatrix.ByValue projection_in);
-	/**
-	 * @return True on success, false on failure (null pointer).<br>
-	 * Original signature : <code>OSVR_ReturnCode OSVR_Projection_to_Unreal(float[16], OSVR_ProjectionMatrix)</code>
-	 */
-	public static native byte OSVR_Projection_to_Unreal(FloatBuffer Unreal_out, com.jme3.system.osvr.osvrrendermanager.OSVR_ProjectionMatrix.ByValue projection_in);
-}

+ 0 - 35
jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanageropengl/OSVR_GraphicsLibraryOpenGL.java

@@ -1,35 +0,0 @@
-package com.jme3.system.osvr.osvrrendermanageropengl;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_GraphicsLibraryOpenGL extends Structure {
-	/** C type : const OSVR_OpenGLToolkitFunctions* */
-	public com.jme3.system.osvr.osvrrendermanageropengl.OSVR_OpenGLToolkitFunctions.ByReference toolkit;
-	public OSVR_GraphicsLibraryOpenGL() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("toolkit");
-	}
-	/** @param toolkit C type : const OSVR_OpenGLToolkitFunctions* */
-	public OSVR_GraphicsLibraryOpenGL(com.jme3.system.osvr.osvrrendermanageropengl.OSVR_OpenGLToolkitFunctions.ByReference toolkit) {
-		super();
-		this.toolkit = toolkit;
-	}
-	public OSVR_GraphicsLibraryOpenGL(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_GraphicsLibraryOpenGL implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_GraphicsLibraryOpenGL implements Structure.ByValue {
-		
-	};
-}

+ 0 - 57
jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanageropengl/OSVR_OpenGLContextParams.java

@@ -1,57 +0,0 @@
-package com.jme3.system.osvr.osvrrendermanageropengl;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_OpenGLContextParams extends Structure {
-	/** C type : const char* */
-	public Pointer windowTitle;
-	/** C type : OSVR_CBool */
-	public byte fullScreen;
-	public int width;
-	public int height;
-	public int xPos;
-	public int yPos;
-	public int bitsPerPixel;
-	public int numBuffers;
-	/** C type : OSVR_CBool */
-	public byte visible;
-	public OSVR_OpenGLContextParams() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("windowTitle", "fullScreen", "width", "height", "xPos", "yPos", "bitsPerPixel", "numBuffers", "visible");
-	}
-	/**
-	 * @param windowTitle C type : const char*<br>
-	 * @param fullScreen C type : OSVR_CBool<br>
-	 * @param visible C type : OSVR_CBool
-	 */
-	public OSVR_OpenGLContextParams(Pointer windowTitle, byte fullScreen, int width, int height, int xPos, int yPos, int bitsPerPixel, int numBuffers, byte visible) {
-		super();
-		this.windowTitle = windowTitle;
-		this.fullScreen = fullScreen;
-		this.width = width;
-		this.height = height;
-		this.xPos = xPos;
-		this.yPos = yPos;
-		this.bitsPerPixel = bitsPerPixel;
-		this.numBuffers = numBuffers;
-		this.visible = visible;
-	}
-	public OSVR_OpenGLContextParams(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_OpenGLContextParams implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_OpenGLContextParams implements Structure.ByValue {
-		
-	};
-}

+ 0 - 92
jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanageropengl/OSVR_OpenGLToolkitFunctions.java

@@ -1,92 +0,0 @@
-package com.jme3.system.osvr.osvrrendermanageropengl;
-import com.ochafik.lang.jnaerator.runtime.NativeSize;
-import com.sun.jna.Callback;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import com.sun.jna.ptr.IntByReference;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_OpenGLToolkitFunctions extends Structure {
-	public NativeSize size;
-	/** C type : void* */
-	public Pointer data;
-	/** C type : create_callback* */
-	public OSVR_OpenGLToolkitFunctions.create_callback create;
-	/** C type : destroy_callback* */
-	public OSVR_OpenGLToolkitFunctions.destroy_callback destroy;
-	/** C type : handleEvents_callback* */
-	public OSVR_OpenGLToolkitFunctions.handleEvents_callback handleEvents;
-	/** C type : getDisplayFrameBuffer_callback* */
-	public OSVR_OpenGLToolkitFunctions.getDisplayFrameBuffer_callback getDisplayFrameBuffer;
-	/** C type : getDisplaySizeOverride_callback* */
-	public OSVR_OpenGLToolkitFunctions.getDisplaySizeOverride_callback getDisplaySizeOverride;
-	public interface create_callback extends Callback {
-		void apply(Pointer data);
-	};
-	public interface destroy_callback extends Callback {
-		void apply(Pointer data);
-	};
-	public interface OSVR_CBool_callback extends Callback {
-		int apply(Pointer data, OSVR_OpenGLContextParams p);
-	};
-	public interface OSVR_CBool_callback2 extends Callback {
-		int apply(Pointer data);
-	};
-	public interface OSVR_CBool_callback3 extends Callback {
-		int apply(Pointer data, NativeSize display);
-	};
-	public interface OSVR_CBool_callback4 extends Callback {
-		int apply(Pointer data, NativeSize display);
-	};
-	public interface OSVR_CBool_callback5 extends Callback {
-		int apply(Pointer data, byte verticalSync);
-	};
-	public interface handleEvents_callback extends Callback {
-		byte apply(Pointer data);
-	};
-	public interface getDisplayFrameBuffer_callback extends Callback {
-		byte apply(Pointer data, NativeSize display, IntByReference frameBufferOut);
-	};
-	public interface getDisplaySizeOverride_callback extends Callback {
-		byte apply(Pointer data, NativeSize display, IntByReference width, IntByReference height);
-	};
-	public OSVR_OpenGLToolkitFunctions() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("size", "data", "create", "destroy", "handleEvents", "getDisplayFrameBuffer", "getDisplaySizeOverride");
-	}
-	/**
-	 * @param data C type : void*<br>
-	 * @param create C type : create_callback*<br>
-	 * @param destroy C type : destroy_callback*<br>
-	 * @param handleEvents C type : handleEvents_callback*<br>
-	 * @param getDisplayFrameBuffer C type : getDisplayFrameBuffer_callback*<br>
-	 * @param getDisplaySizeOverride C type : getDisplaySizeOverride_callback*
-	 */
-	public OSVR_OpenGLToolkitFunctions(NativeSize size, Pointer data, OSVR_OpenGLToolkitFunctions.create_callback create, OSVR_OpenGLToolkitFunctions.destroy_callback destroy, OSVR_OpenGLToolkitFunctions.handleEvents_callback handleEvents, OSVR_OpenGLToolkitFunctions.getDisplayFrameBuffer_callback getDisplayFrameBuffer, OSVR_OpenGLToolkitFunctions.getDisplaySizeOverride_callback getDisplaySizeOverride) {
-		super();
-		this.size = size;
-		this.data = data;
-		this.create = create;
-		this.destroy = destroy;
-		this.handleEvents = handleEvents;
-		this.getDisplayFrameBuffer = getDisplayFrameBuffer;
-		this.getDisplaySizeOverride = getDisplaySizeOverride;
-	}
-	public OSVR_OpenGLToolkitFunctions(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_OpenGLToolkitFunctions implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_OpenGLToolkitFunctions implements Structure.ByValue {
-		
-	};
-}

+ 0 - 48
jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanageropengl/OSVR_OpenResultsOpenGL.java

@@ -1,48 +0,0 @@
-package com.jme3.system.osvr.osvrrendermanageropengl;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_OpenResultsOpenGL extends Structure {
-	/**
-	 * C type : OSVR_OpenStatus
-	 */
-	public int status;
-	/** C type : OSVR_GraphicsLibraryOpenGL */
-	public OSVR_GraphicsLibraryOpenGL library;
-	/** C type : OSVR_RenderBufferOpenGL */
-	public OSVR_RenderBufferOpenGL buffers;
-	public OSVR_OpenResultsOpenGL() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("status", "library", "buffers");
-	}
-	/**
-	 * @param status @see OsvrRenderManagerOpenGLLibrary.OSVR_OpenStatus <br>
-	 * C type : OSVR_OpenStatus<br>
-	 * @param library C type : OSVR_GraphicsLibraryOpenGL<br>
-	 * @param buffers C type : OSVR_RenderBufferOpenGL
-	 */
-	public OSVR_OpenResultsOpenGL(int status, OSVR_GraphicsLibraryOpenGL library, OSVR_RenderBufferOpenGL buffers) {
-		super();
-		this.status = status;
-		this.library = library;
-		this.buffers = buffers;
-	}
-	public OSVR_OpenResultsOpenGL(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_OpenResultsOpenGL implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_OpenResultsOpenGL implements Structure.ByValue {
-		
-	};
-}

+ 0 - 45
jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanageropengl/OSVR_ProjectionMatrix.java

@@ -1,45 +0,0 @@
-package com.jme3.system.osvr.osvrrendermanageropengl;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_ProjectionMatrix extends Structure {
-	public double left;
-	public double right;
-	public double top;
-	public double bottom;
-	/** Cannot name "near" because Visual Studio keyword */
-	public double nearClip;
-	public double farClip;
-	public OSVR_ProjectionMatrix() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("left", "right", "top", "bottom", "nearClip", "farClip");
-	}
-	/** @param nearClip Cannot name "near" because Visual Studio keyword */
-	public OSVR_ProjectionMatrix(double left, double right, double top, double bottom, double nearClip, double farClip) {
-		super();
-		this.left = left;
-		this.right = right;
-		this.top = top;
-		this.bottom = bottom;
-		this.nearClip = nearClip;
-		this.farClip = farClip;
-	}
-	public OSVR_ProjectionMatrix(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_ProjectionMatrix implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_ProjectionMatrix implements Structure.ByValue {
-		
-	};
-}

+ 0 - 37
jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanageropengl/OSVR_RGB.java

@@ -1,37 +0,0 @@
-package com.jme3.system.osvr.osvrrendermanageropengl;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_RGB extends Structure {
-	public float r;
-	public float g;
-	public float b;
-	public OSVR_RGB() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("r", "g", "b");
-	}
-	public OSVR_RGB(float r, float g, float b) {
-		super();
-		this.r = r;
-		this.g = g;
-		this.b = b;
-	}
-	public OSVR_RGB(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_RGB implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_RGB implements Structure.ByValue {
-		
-	};
-}

+ 0 - 35
jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanageropengl/OSVR_RenderBufferOpenGL.java

@@ -1,35 +0,0 @@
-package com.jme3.system.osvr.osvrrendermanageropengl;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_RenderBufferOpenGL extends Structure {
-	public int colorBufferName;
-	public int depthStencilBufferName;
-	public OSVR_RenderBufferOpenGL() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("colorBufferName", "depthStencilBufferName");
-	}
-	public OSVR_RenderBufferOpenGL(int colorBufferName, int depthStencilBufferName) {
-		super();
-		this.colorBufferName = colorBufferName;
-		this.depthStencilBufferName = depthStencilBufferName;
-	}
-	public OSVR_RenderBufferOpenGL(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_RenderBufferOpenGL implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_RenderBufferOpenGL implements Structure.ByValue {
-		
-	};
-}

+ 0 - 48
jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanageropengl/OSVR_RenderInfoOpenGL.java

@@ -1,48 +0,0 @@
-package com.jme3.system.osvr.osvrrendermanageropengl;
-import com.jme3.system.osvr.osvrmatrixconventions.OSVR_Pose3;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 /*abstract*/ class OSVR_RenderInfoOpenGL extends Structure {
-	/** C type : OSVR_GraphicsLibraryOpenGL */
-	public OSVR_GraphicsLibraryOpenGL library;
-	/** C type : OSVR_ViewportDescription */
-	public OSVR_ViewportDescription viewport;
-        public OSVR_Pose3 pose;
-	/** C type : OSVR_ProjectionMatrix */
-	public OSVR_ProjectionMatrix projection;
-	public OSVR_RenderInfoOpenGL() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("library", "viewport", "pose", "projection");
-	}
-	/**
-	 * @param library C type : OSVR_GraphicsLibraryOpenGL<br>
-	 * @param viewport C type : OSVR_ViewportDescription<br>
-	 * @param projection C type : OSVR_ProjectionMatrix
-	 */
-	public OSVR_RenderInfoOpenGL(OSVR_GraphicsLibraryOpenGL library, OSVR_ViewportDescription viewport, OSVR_Pose3 pose, OSVR_ProjectionMatrix projection) {
-		super();
-		this.library = library;
-		this.viewport = viewport;
-                this.pose = pose;
-		this.projection = projection;
-	}
-	public OSVR_RenderInfoOpenGL(Pointer peer) {
-		super(peer);
-	}
-	public static /*abstract*/ class ByReference extends OSVR_RenderInfoOpenGL implements Structure.ByReference {
-		
-	};
-	public static /*abstract*/ class ByValue extends OSVR_RenderInfoOpenGL implements Structure.ByValue {
-		
-	};
-}

+ 0 - 53
jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanageropengl/OSVR_RenderParams.java

@@ -1,53 +0,0 @@
-package com.jme3.system.osvr.osvrrendermanageropengl;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_RenderParams extends Structure {
-	/**
-	 * Room space to insert<br>
-	 * C type : OSVR_PoseState*
-	 */
-	public Pointer worldFromRoomAppend;
-	/**
-	 * Overrides head space<br>
-	 * C type : OSVR_PoseState*
-	 */
-	public Pointer roomFromHeadReplace;
-	public double nearClipDistanceMeters;
-	public double farClipDistanceMeters;
-	public OSVR_RenderParams() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("worldFromRoomAppend", "roomFromHeadReplace", "nearClipDistanceMeters", "farClipDistanceMeters");
-	}
-	/**
-	 * @param worldFromRoomAppend Room space to insert<br>
-	 * C type : OSVR_PoseState*<br>
-	 * @param roomFromHeadReplace Overrides head space<br>
-	 * C type : OSVR_PoseState*
-	 */
-	public OSVR_RenderParams(Pointer worldFromRoomAppend, Pointer roomFromHeadReplace, double nearClipDistanceMeters, double farClipDistanceMeters) {
-		super();
-		this.worldFromRoomAppend = worldFromRoomAppend;
-		this.roomFromHeadReplace = roomFromHeadReplace;
-		this.nearClipDistanceMeters = nearClipDistanceMeters;
-		this.farClipDistanceMeters = farClipDistanceMeters;
-	}
-	public OSVR_RenderParams(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_RenderParams implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_RenderParams implements Structure.ByValue {
-		
-	};
-}

+ 0 - 49
jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanageropengl/OSVR_ViewportDescription.java

@@ -1,49 +0,0 @@
-package com.jme3.system.osvr.osvrrendermanageropengl;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_ViewportDescription extends Structure {
-	/** Left side of the viewport in pixels */
-	public double left;
-	/** First pixel in the viewport at the bottom. */
-	public double lower;
-	/** Last pixel in the viewport at the top */
-	public double width;
-	/** Last pixel on the right of the viewport in pixels */
-	public double height;
-	public OSVR_ViewportDescription() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("left", "lower", "width", "height");
-	}
-	/**
-	 * @param left Left side of the viewport in pixels<br>
-	 * @param lower First pixel in the viewport at the bottom.<br>
-	 * @param width Last pixel in the viewport at the top<br>
-	 * @param height Last pixel on the right of the viewport in pixels
-	 */
-	public OSVR_ViewportDescription(double left, double lower, double width, double height) {
-		super();
-		this.left = left;
-		this.lower = lower;
-		this.width = width;
-		this.height = height;
-	}
-	public OSVR_ViewportDescription(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_ViewportDescription implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_ViewportDescription implements Structure.ByValue {
-		
-	};
-}

+ 0 - 169
jme3-vr/src/main/java/com/jme3/system/osvr/osvrrendermanageropengl/OsvrRenderManagerOpenGLLibrary.java

@@ -1,169 +0,0 @@
-package com.jme3.system.osvr.osvrrendermanageropengl;
-import com.jme3.system.osvr.osvrclientkit.OsvrClientKitLibrary;
-import com.ochafik.lang.jnaerator.runtime.NativeSize;
-import com.ochafik.lang.jnaerator.runtime.NativeSizeByReference;
-import com.sun.jna.Library;
-import com.sun.jna.Native;
-import com.sun.jna.NativeLibrary;
-import com.sun.jna.Pointer;
-import com.sun.jna.PointerType;
-import com.sun.jna.ptr.DoubleByReference;
-import com.sun.jna.ptr.FloatByReference;
-import com.sun.jna.ptr.IntByReference;
-import com.sun.jna.ptr.PointerByReference;
-import java.nio.DoubleBuffer;
-import java.nio.FloatBuffer;
-import java.nio.IntBuffer;
-/**
- * JNA Wrapper for library <b>osvrRenderManagerOpenGL</b><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>
- * 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 OsvrRenderManagerOpenGLLibrary implements Library {
-	public static final String JNA_LIBRARY_NAME = "osvrRenderManager";
-	public static final NativeLibrary JNA_NATIVE_LIB = NativeLibrary.getInstance(OsvrRenderManagerOpenGLLibrary.JNA_LIBRARY_NAME);
-	static {
-		Native.register(OsvrRenderManagerOpenGLLibrary.class, OsvrRenderManagerOpenGLLibrary.JNA_NATIVE_LIB);
-	}
-	/** enum values */
-	public static interface OSVR_OpenStatus {
-		public static final int OSVR_OPEN_STATUS_FAILURE = 0;
-		public static final int OSVR_OPEN_STATUS_PARTIAL = 1;
-		public static final int OSVR_OPEN_STATUS_COMPLETE = 2;
-	};
-	/**
-	 * todo OSVR_RenderTimingInfo<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrDestroyRenderManager(OSVR_RenderManager)</code>
-	 */
-	public static native byte osvrDestroyRenderManager(Pointer renderManager);
-	/**
-	 * todo Make this actually cache, for now it does not.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrRenderManagerGetNumRenderInfo(OSVR_RenderManager, OSVR_RenderParams, OSVR_RenderInfoCount*)</code>
-	 */
-	public static native byte osvrRenderManagerGetNumRenderInfo(Pointer renderManager, OSVR_RenderParams.ByValue renderParams, NativeSizeByReference numRenderInfoOut);
-	/** Original signature : <code>OSVR_ReturnCode osvrRenderManagerGetDoingOkay(OSVR_RenderManager)</code> */
-	public static native byte osvrRenderManagerGetDoingOkay(Pointer renderManager);
-	/** Original signature : <code>OSVR_ReturnCode osvrRenderManagerGetDefaultRenderParams(OSVR_RenderParams*)</code> */
-	public static native byte osvrRenderManagerGetDefaultRenderParams(OSVR_RenderParams renderParamsOut);
-	/**
-	 * must be registered before they are presented.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrRenderManagerStartPresentRenderBuffers(OSVR_RenderManagerPresentState*)</code>
-	 */
-	public static native byte osvrRenderManagerStartPresentRenderBuffers(PointerByReference presentStateOut);
-	/**
-	 * buffers for a single frame.  This sequence starts with the Start function.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrRenderManagerFinishPresentRenderBuffers(OSVR_RenderManager, OSVR_RenderManagerPresentState, OSVR_RenderParams, OSVR_CBool)</code>
-	 */
-	public static native byte osvrRenderManagerFinishPresentRenderBuffers(Pointer renderManager, Pointer presentState, OSVR_RenderParams.ByValue renderParams, byte shouldFlipY);
-	/**
-	 * must be registered before they are presented.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrRenderManagerStartRegisterRenderBuffers(OSVR_RenderManagerRegisterBufferState*)</code>
-	 */
-	public static native byte osvrRenderManagerStartRegisterRenderBuffers(PointerByReference registerBufferStateOut);
-	/**
-	 * buffers for a single frame.  This sequence starts with the Start function.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrRenderManagerFinishRegisterRenderBuffers(OSVR_RenderManager, OSVR_RenderManagerRegisterBufferState, OSVR_CBool)</code>
-	 */
-	public static native byte osvrRenderManagerFinishRegisterRenderBuffers(Pointer renderManager, Pointer registerBufferState, byte appWillNotOverwriteBeforeNewPresent);
-	/** Original signature : <code>OSVR_ReturnCode osvrRenderManagerPresentSolidColorf(OSVR_RenderManager, OSVR_RGB_FLOAT)</code> */
-	public static native byte osvrRenderManagerPresentSolidColorf(Pointer renderManager, com.jme3.system.osvr.osvrrendermanageropengl.OSVR_RGB.ByValue rgb);
-	/**
-	 * when you're done.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrRenderManagerGetRenderInfoCollection(OSVR_RenderManager, OSVR_RenderParams, OSVR_RenderInfoCollection*)</code>
-	 */
-	public static native byte osvrRenderManagerGetRenderInfoCollection(Pointer renderManager, OSVR_RenderParams.ByValue renderParams, PointerByReference renderInfoCollectionOut);
-	/**
-	 * Releases the OSVR_RenderInfoCollection.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrRenderManagerReleaseRenderInfoCollection(OSVR_RenderInfoCollection)</code>
-	 */
-	public static native byte osvrRenderManagerReleaseRenderInfoCollection(Pointer renderInfoCollection);
-	/**
-	 * Get the size of the OSVR_RenderInfoCollection.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrRenderManagerGetNumRenderInfoInCollection(OSVR_RenderInfoCollection, OSVR_RenderInfoCount*)</code>
-	 */
-	public static native byte osvrRenderManagerGetNumRenderInfoInCollection(Pointer renderInfoCollection, NativeSizeByReference countOut);
-	/**
-	 * @return True on success, false on failure (null pointer).<br>
-	 * Original signature : <code>OSVR_ReturnCode OSVR_Projection_to_OpenGL(double*, OSVR_ProjectionMatrix)</code><br>
-	 * @deprecated use the safer methods {@link #OSVR_Projection_to_OpenGL(java.nio.DoubleBuffer, com.jme3.system.osvr.osvrrendermanageropengl.OSVR_ProjectionMatrix.ByValue)} and {@link #OSVR_Projection_to_OpenGL(com.sun.jna.ptr.DoubleByReference, com.jme3.system.osvr.osvrrendermanageropengl.OSVR_ProjectionMatrix.ByValue)} instead
-	 */
-	@Deprecated 
-	public static native byte OSVR_Projection_to_OpenGL(DoubleByReference OpenGL_out, com.jme3.system.osvr.osvrrendermanageropengl.OSVR_ProjectionMatrix.ByValue projection_in);
-	/**
-	 * @return True on success, false on failure (null pointer).<br>
-	 * Original signature : <code>OSVR_ReturnCode OSVR_Projection_to_OpenGL(double*, OSVR_ProjectionMatrix)</code>
-	 */
-	public static native byte OSVR_Projection_to_OpenGL(DoubleBuffer OpenGL_out, com.jme3.system.osvr.osvrrendermanageropengl.OSVR_ProjectionMatrix.ByValue projection_in);
-	/**
-	 * @return True on success, false on failure (null pointer).<br>
-	 * Original signature : <code>OSVR_ReturnCode OSVR_Projection_to_D3D(float[16], OSVR_ProjectionMatrix)</code><br>
-	 * @deprecated use the safer methods {@link #OSVR_Projection_to_D3D(java.nio.FloatBuffer, com.jme3.system.osvr.osvrrendermanageropengl.OSVR_ProjectionMatrix.ByValue)} and {@link #OSVR_Projection_to_D3D(com.sun.jna.ptr.FloatByReference, com.jme3.system.osvr.osvrrendermanageropengl.OSVR_ProjectionMatrix.ByValue)} instead
-	 */
-	@Deprecated 
-	public static native byte OSVR_Projection_to_D3D(FloatByReference D3D_out, com.jme3.system.osvr.osvrrendermanageropengl.OSVR_ProjectionMatrix.ByValue projection_in);
-	/**
-	 * @return True on success, false on failure (null pointer).<br>
-	 * Original signature : <code>OSVR_ReturnCode OSVR_Projection_to_D3D(float[16], OSVR_ProjectionMatrix)</code>
-	 */
-	public static native byte OSVR_Projection_to_D3D(FloatBuffer D3D_out, com.jme3.system.osvr.osvrrendermanageropengl.OSVR_ProjectionMatrix.ByValue projection_in);
-	/**
-	 * @return True on success, false on failure (null pointer).<br>
-	 * Original signature : <code>OSVR_ReturnCode OSVR_Projection_to_Unreal(float[16], OSVR_ProjectionMatrix)</code><br>
-	 * @deprecated use the safer methods {@link #OSVR_Projection_to_Unreal(java.nio.FloatBuffer, com.jme3.system.osvr.osvrrendermanageropengl.OSVR_ProjectionMatrix.ByValue)} and {@link #OSVR_Projection_to_Unreal(com.sun.jna.ptr.FloatByReference, com.jme3.system.osvr.osvrrendermanageropengl.OSVR_ProjectionMatrix.ByValue)} instead
-	 */
-	@Deprecated 
-	public static native byte OSVR_Projection_to_Unreal(FloatByReference Unreal_out, com.jme3.system.osvr.osvrrendermanageropengl.OSVR_ProjectionMatrix.ByValue projection_in);
-	/**
-	 * @return True on success, false on failure (null pointer).<br>
-	 * Original signature : <code>OSVR_ReturnCode OSVR_Projection_to_Unreal(float[16], OSVR_ProjectionMatrix)</code>
-	 */
-	public static native byte OSVR_Projection_to_Unreal(FloatBuffer Unreal_out, com.jme3.system.osvr.osvrrendermanageropengl.OSVR_ProjectionMatrix.ByValue projection_in);
-	/**
-	 * Original signature : <code>OSVR_ReturnCode osvrCreateRenderManagerOpenGL(OSVR_ClientContext, const char[], OSVR_GraphicsLibraryOpenGL, OSVR_RenderManager*, OSVR_RenderManagerOpenGL*)</code><br>
-	 * @deprecated use the safer method
-         * {@link #osvrCreateRenderManagerOpenGL(com.jme3.system.osvr.osvrclientkit.OsvrClientKitLibrary.OSVR_ClientContext, byte[], com.jme3.system.osvr.osvrrendermanageropengl.OSVR_GraphicsLibraryOpenGL.ByValue, com.sun.jna.ptr.PointerByReference, com.sun.jna.ptr.PointerByReference)}
-         * instead
-	 */
-	@Deprecated 
-	public static native byte osvrCreateRenderManagerOpenGL(Pointer clientContext, Pointer graphicsLibraryName, com.jme3.system.osvr.osvrrendermanageropengl.OSVR_GraphicsLibraryOpenGL.ByValue graphicsLibrary, PointerByReference renderManagerOut, PointerByReference renderManagerOpenGLOut);
-	/** Original signature : <code>OSVR_ReturnCode osvrCreateRenderManagerOpenGL(OSVR_ClientContext, const char[], OSVR_GraphicsLibraryOpenGL, OSVR_RenderManager*, OSVR_RenderManagerOpenGL*)</code> */
-	public static native byte osvrCreateRenderManagerOpenGL(OsvrClientKitLibrary.OSVR_ClientContext clientContext, byte graphicsLibraryName[], com.jme3.system.osvr.osvrrendermanageropengl.OSVR_GraphicsLibraryOpenGL.ByValue graphicsLibrary, PointerByReference renderManagerOut, PointerByReference renderManagerOpenGLOut);
-	/** Original signature : <code>OSVR_ReturnCode osvrRenderManagerGetRenderInfoOpenGL(OSVR_RenderManagerOpenGL, OSVR_RenderInfoCount, OSVR_RenderParams, OSVR_RenderInfoOpenGL*)</code> */
-	public static native byte osvrRenderManagerGetRenderInfoOpenGL(Pointer renderManager, NativeSize renderInfoIndex, OSVR_RenderParams.ByValue renderParams, OSVR_RenderInfoOpenGL renderInfoOut);
-	/** Original signature : <code>OSVR_ReturnCode osvrRenderManagerOpenDisplayOpenGL(OSVR_RenderManagerOpenGL, OSVR_OpenResultsOpenGL*)</code> */
-	public static native byte osvrRenderManagerOpenDisplayOpenGL(Pointer renderManager, OSVR_OpenResultsOpenGL openResultsOut);
-	/** Original signature : <code>OSVR_ReturnCode osvrRenderManagerPresentRenderBufferOpenGL(OSVR_RenderManagerPresentState, OSVR_RenderBufferOpenGL, OSVR_RenderInfoOpenGL, OSVR_ViewportDescription)</code> */
-	public static native byte osvrRenderManagerPresentRenderBufferOpenGL(Pointer presentState, com.jme3.system.osvr.osvrrendermanageropengl.OSVR_RenderBufferOpenGL.ByValue buffer, OSVR_RenderInfoOpenGL.ByValue renderInfoUsed, com.jme3.system.osvr.osvrrendermanageropengl.OSVR_ViewportDescription.ByValue normalizedCroppingViewport);
-	/** Original signature : <code>OSVR_ReturnCode osvrRenderManagerRegisterRenderBufferOpenGL(OSVR_RenderManagerRegisterBufferState, OSVR_RenderBufferOpenGL)</code> */
-	public static native byte osvrRenderManagerRegisterRenderBufferOpenGL(Pointer registerBufferState, com.jme3.system.osvr.osvrrendermanageropengl.OSVR_RenderBufferOpenGL.ByValue renderBuffer);
-	/**
-	 * Gets a given OSVR_RenderInfoOpenGL from an OSVR_RenderInfoCollection.<br>
-	 * Original signature : <code>OSVR_ReturnCode osvrRenderManagerGetRenderInfoFromCollectionOpenGL(OSVR_RenderInfoCollection, OSVR_RenderInfoCount, OSVR_RenderInfoOpenGL*)</code>
-	 */
-	public static native byte osvrRenderManagerGetRenderInfoFromCollectionOpenGL(Pointer renderInfoCollection, NativeSize index, OSVR_RenderInfoOpenGL renderInfoOut);
-	/**
-	 * Original signature : <code>OSVR_ReturnCode osvrRenderManagerCreateColorBufferOpenGL(GLsizei, GLsizei, GLenum, GLuint*)</code><br>
-	 * @deprecated use the safer methods {@link #osvrRenderManagerCreateColorBufferOpenGL(int, int, int, java.nio.IntBuffer)} and {@link #osvrRenderManagerCreateColorBufferOpenGL(int, int, int, com.sun.jna.ptr.IntByReference)} instead
-	 */
-	@Deprecated 
-	public static native byte osvrRenderManagerCreateColorBufferOpenGL(int width, int height, int format, IntByReference colorBufferNameOut);
-	/** Original signature : <code>OSVR_ReturnCode osvrRenderManagerCreateColorBufferOpenGL(GLsizei, GLsizei, GLenum, GLuint*)</code> */
-	public static native byte osvrRenderManagerCreateColorBufferOpenGL(int width, int height, int format, IntBuffer colorBufferNameOut);
-	/**
-	 * Original signature : <code>OSVR_ReturnCode osvrRenderManagerCreateDepthBufferOpenGL(GLsizei, GLsizei, GLuint*)</code><br>
-	 * @deprecated use the safer methods {@link #osvrRenderManagerCreateDepthBufferOpenGL(int, int, java.nio.IntBuffer)} and {@link #osvrRenderManagerCreateDepthBufferOpenGL(int, int, com.sun.jna.ptr.IntByReference)} instead
-	 */
-	@Deprecated 
-	public static native byte osvrRenderManagerCreateDepthBufferOpenGL(int width, int height, IntByReference depthBufferNameOut);
-	/** Original signature : <code>OSVR_ReturnCode osvrRenderManagerCreateDepthBufferOpenGL(GLsizei, GLsizei, GLuint*)</code> */
-	public static native byte osvrRenderManagerCreateDepthBufferOpenGL(int width, int height, IntBuffer depthBufferNameOut);
-	public static class OSVR_ClientContext extends PointerType {
-		public OSVR_ClientContext(Pointer address) {
-			super(address);
-		}
-		public OSVR_ClientContext() {
-			super();
-		}
-	};
-}

+ 0 - 41
jme3-vr/src/main/java/com/jme3/system/osvr/osvrtimevalue/OSVR_TimeValue.java

@@ -1,41 +0,0 @@
-package com.jme3.system.osvr.osvrtimevalue;
-import com.sun.jna.Pointer;
-import com.sun.jna.Structure;
-import java.util.Arrays;
-import java.util.List;
-/**
- * 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>
- * 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 OSVR_TimeValue extends Structure {
-	/** C type : OSVR_TimeValue_Seconds */
-	public long seconds;
-	/** C type : OSVR_TimeValue_Microseconds */
-	public int microseconds;
-	public OSVR_TimeValue() {
-		super();
-	}
-        @Override
-	protected List<String> getFieldOrder() {
-		return Arrays.asList("seconds", "microseconds");
-	}
-	/**
-	 * @param seconds C type : OSVR_TimeValue_Seconds<br>
-	 * @param microseconds C type : OSVR_TimeValue_Microseconds
-	 */
-	public OSVR_TimeValue(long seconds, int microseconds) {
-		super();
-		this.seconds = seconds;
-		this.microseconds = microseconds;
-	}
-	public OSVR_TimeValue(Pointer peer) {
-		super(peer);
-	}
-	public static class ByReference extends OSVR_TimeValue implements Structure.ByReference {
-		
-	};
-	public static class ByValue extends OSVR_TimeValue implements Structure.ByValue {
-		
-	};
-}

+ 0 - 119
jme3-vr/src/main/java/com/jme3/system/osvr/osvrtimevalue/OsvrTimeValueLibrary.java

@@ -1,119 +0,0 @@
-package com.jme3.system.osvr.osvrtimevalue;
-import com.sun.jna.Library;
-import com.sun.jna.Native;
-import com.sun.jna.NativeLibrary;
-import com.sun.jna.Pointer;
-import com.sun.jna.PointerType;
-/**
- * JNA Wrapper for library <b>osvrTimeValue</b><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>
- * 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 OsvrTimeValueLibrary implements Library {
-	public static final String JNA_LIBRARY_NAME = "osvrClientKit";
-	public static final NativeLibrary JNA_NATIVE_LIB = NativeLibrary.getInstance(OsvrTimeValueLibrary.JNA_LIBRARY_NAME);
-	static {
-		Native.register(OsvrTimeValueLibrary.class, OsvrTimeValueLibrary.JNA_NATIVE_LIB);
-	}
-	public static final int OSVR_TRUE = 1;
-	public static final int OSVR_FALSE = 0;
-	/**
-	 * Gets the current time in the TimeValue. Parallel to gettimeofday.
-	 * Original signature : <code>void osvrTimeValueGetNow(OSVR_TimeValue*)</code>
-	 */
-	public static native void osvrTimeValueGetNow(OSVR_TimeValue dest);
-	/**
-	 * Converts from a TimeValue struct to your system's struct timeval.
-	 * @param dest Pointer to an empty struct timeval for your platform.<br>
-	 * @param src A pointer to an OSVR_TimeValue you'd like to convert from.<br>
-	 * If either parameter is NULL, the function will return without doing<br>
-	 * anything.<br>
-	 * Original signature : <code>void osvrTimeValueToStructTimeval(timeval*, const OSVR_TimeValue*)</code>
-	 */
-	public static native void osvrTimeValueToStructTimeval(OsvrTimeValueLibrary.timeval dest, OSVR_TimeValue src);
-	/**
-	 * Converts from a TimeValue struct to your system's struct timeval.
-	 * @param dest An OSVR_TimeValue destination pointer.<br>
-	 * @param src Pointer to a struct timeval you'd like to convert from.<br>
-	 * The result is normalized.<br>
-	 * If either parameter is NULL, the function will return without doing<br>
-	 * anything.<br>
-	 * Original signature : <code>void osvrStructTimevalToTimeValue(OSVR_TimeValue*, timeval*)</code>
-	 */
-	public static native void osvrStructTimevalToTimeValue(OSVR_TimeValue dest, OsvrTimeValueLibrary.timeval src);
-	/**
-	 * "Normalizes" a time value so that the absolute number of microseconds
-	 * is less than 1,000,000, and that the sign of both components is the same.<br>
-	 * @param tv Address of a struct TimeValue to normalize in place.<br>
-	 * If the given pointer is NULL, this function returns without doing anything.<br>
-	 * Original signature : <code>void osvrTimeValueNormalize(OSVR_TimeValue*)</code>
-	 */
-	public static native void osvrTimeValueNormalize(OSVR_TimeValue tv);
-	/**
-	 * Sums two time values, replacing the first with the result.
-	 * @param tvA Destination and first source.<br>
-	 * @param tvB second source<br>
-	 * If a given pointer is NULL, this function returns without doing anything.<br>
-	 * Both parameters are expected to be in normalized form.<br>
-	 * Original signature : <code>void osvrTimeValueSum(OSVR_TimeValue*, const OSVR_TimeValue*)</code>
-	 */
-	public static native void osvrTimeValueSum(OSVR_TimeValue tvA, OSVR_TimeValue tvB);
-	/**
-	 * Computes the difference between two time values, replacing the first
-	 * with the result.<br>
-	 * Effectively, `*tvA = *tvA - *tvB`<br>
-	 * @param tvA Destination and first source.<br>
-	 * @param tvB second source<br>
-	 * If a given pointer is NULL, this function returns without doing anything.<br>
-	 * Both parameters are expected to be in normalized form.<br>
-	 * Original signature : <code>void osvrTimeValueDifference(OSVR_TimeValue*, const OSVR_TimeValue*)</code>
-	 */
-	public static native void osvrTimeValueDifference(OSVR_TimeValue tvA, OSVR_TimeValue tvB);
-	/**
-	 * Compares two time values (assumed to be normalized), returning
-	 * the same values as strcmp<br>
-	 * @return &lt;0 if A is earlier than B, 0 if they are the same, and &gt;0 if A<br>
-	 * is later than B.<br>
-	 * Original signature : <code>int osvrTimeValueCmp(const OSVR_TimeValue*, const OSVR_TimeValue*)</code>
-	 */
-	public static native int osvrTimeValueCmp(OSVR_TimeValue tvA, OSVR_TimeValue tvB);
-	/**
-	 * Compute the difference between the two time values, returning the
-	 * duration as a double-precision floating-point number of seconds.<br>
-	 * Effectively, `ret = *tvA - *tvB`<br>
-	 * @param tvA first source.<br>
-	 * @param tvB second source<br>
-	 * @return Duration of timespan in seconds (floating-point)<br>
-	 * Original signature : <code>double osvrTimeValueDurationSeconds(const OSVR_TimeValue*, const OSVR_TimeValue*)</code>
-	 */
-	public static native double osvrTimeValueDurationSeconds(OSVR_TimeValue tvA, OSVR_TimeValue tvB);
-	/**
-	 * True if A is later than B.
-	 * Original signature : <code>OSVR_CBool osvrTimeValueGreater(const OSVR_TimeValue*, const OSVR_TimeValue*)</code>
-	 */
-	public static native byte osvrTimeValueGreater(OSVR_TimeValue tvA, OSVR_TimeValue tvB);
-	/**
-	 * Returns true if the time value is normalized. Typically used in assertions.<br>
-	 * Original signature : <code>bool osvrTimeValueIsNormalized(const OSVR_TimeValue&amp;)</code>
-	 */
-	public static native byte osvrTimeValueIsNormalized(OSVR_TimeValue tv);
-	/**
-	 * Operator &gt; overload for time values<br>
-	 * Original signature : <code>bool operator&gt;(const OSVR_TimeValue&amp;, const OSVR_TimeValue&amp;)</code>
-	 */
-	public static native byte operatorGreater(OSVR_TimeValue tvA, OSVR_TimeValue tvB);
-	/**
-	 * Operator == overload for time values<br>
-	 * Original signature : <code>bool operator==(const OSVR_TimeValue&amp;, const OSVR_TimeValue&amp;)</code>
-	 */
-	public static native byte operatorIsEqual(OSVR_TimeValue tvA, OSVR_TimeValue tvB);
-	public static class timeval extends PointerType {
-		public timeval(Pointer address) {
-			super(address);
-		}
-		public timeval() {
-			super();
-		}
-	};
-}