summaryrefslogtreecommitdiffstats
path: root/jogl/src/classes/jogamp/opengl
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2015-03-21 04:32:36 +0100
committerSven Gothel <[email protected]>2015-03-21 04:32:36 +0100
commit232cdbe43ca11477bc32ef7a7ce2f9fa31f9e05f (patch)
treebdd3e1f7ee323af110bbdda4b3be799c219fe344 /jogl/src/classes/jogamp/opengl
parent6affd0dec1bb50d2df258e114d20ec848efad6e0 (diff)
Bug 1116 - Add OculusVR DK2 Support - Part-1 (DK2 on DK1 SDK w/o Eye Tracker)
Adopt to JOGL commit 32fc8f3a64cfeee8936af98ae49f8e7c8dfe982f
Diffstat (limited to 'jogl/src/classes/jogamp/opengl')
-rw-r--r--jogl/src/classes/jogamp/opengl/oculusvr/stereo/lense/DistortionMeshProducer.java18
-rw-r--r--jogl/src/classes/jogamp/opengl/oculusvr/stereo/lense/DistortionSpec.java8
2 files changed, 12 insertions, 14 deletions
diff --git a/jogl/src/classes/jogamp/opengl/oculusvr/stereo/lense/DistortionMeshProducer.java b/jogl/src/classes/jogamp/opengl/oculusvr/stereo/lense/DistortionMeshProducer.java
index aa64f6c..05c1011 100644
--- a/jogl/src/classes/jogamp/opengl/oculusvr/stereo/lense/DistortionMeshProducer.java
+++ b/jogl/src/classes/jogamp/opengl/oculusvr/stereo/lense/DistortionMeshProducer.java
@@ -88,17 +88,17 @@
package jogamp.opengl.oculusvr.stereo.lense;
import jogamp.opengl.util.stereo.DistortionMesh;
-import jogamp.opengl.util.stereo.GenericStereoDevice;
import jogamp.opengl.util.stereo.ScaleAndOffset2D;
import jogamp.opengl.util.stereo.DistortionMesh.DistortionVertex;
import com.jogamp.opengl.math.FloatUtil;
import com.jogamp.opengl.math.VectorUtil;
import com.jogamp.opengl.util.stereo.EyeParameter;
+import com.jogamp.opengl.util.stereo.generic.GenericStereoDeviceConfig;
public class DistortionMeshProducer implements DistortionMesh.Producer {
private DistortionSpec[] distortionSpecs;
- private GenericStereoDevice.Config deviceConfig;
+ private GenericStereoDeviceConfig deviceConfig;
private final float[] eyeReliefInMeters;
public DistortionMeshProducer() {
@@ -108,14 +108,13 @@ public class DistortionMeshProducer implements DistortionMesh.Producer {
}
@Override
- public void init(final GenericStereoDevice.Config deviceConfig, final float[] eyeReliefInMeters) {
- if( this.deviceConfig != deviceConfig ||
- this.eyeReliefInMeters[0] != eyeReliefInMeters[0] ||
- this.eyeReliefInMeters[1] != eyeReliefInMeters[1] ) {
- System.arraycopy(eyeReliefInMeters, 0, this.eyeReliefInMeters, 0, 2);
- this.distortionSpecs = DistortionSpec.CalculateDistortionSpec(deviceConfig, eyeReliefInMeters);
- this.deviceConfig = deviceConfig;
+ public void init(final GenericStereoDeviceConfig deviceConfig, final float[] eyeReliefInMeters) throws IllegalStateException {
+ if( null != this.deviceConfig ) {
+ throw new IllegalStateException("Already initialized");
}
+ System.arraycopy(eyeReliefInMeters, 0, this.eyeReliefInMeters, 0, 2);
+ this.distortionSpecs = DistortionSpec.CalculateDistortionSpec(deviceConfig, eyeReliefInMeters);
+ this.deviceConfig = deviceConfig;
}
// Pow2 for the Morton order to work!
@@ -164,6 +163,7 @@ public class DistortionMeshProducer implements DistortionMesh.Producer {
VectorUtil.scaleVec2(resultB, tanEyeAngleDistorted, distortionScales[2]);
}
+ @Override
public final DistortionMesh create(final EyeParameter eyeParam, final int distortionBits) {
// Find the mapping from TanAngle space to target NDC space.
final ScaleAndOffset2D eyeToSourceNDC = new ScaleAndOffset2D(eyeParam.fovhv);
diff --git a/jogl/src/classes/jogamp/opengl/oculusvr/stereo/lense/DistortionSpec.java b/jogl/src/classes/jogamp/opengl/oculusvr/stereo/lense/DistortionSpec.java
index 63a9a90..da2432b 100644
--- a/jogl/src/classes/jogamp/opengl/oculusvr/stereo/lense/DistortionSpec.java
+++ b/jogl/src/classes/jogamp/opengl/oculusvr/stereo/lense/DistortionSpec.java
@@ -88,10 +88,8 @@
package jogamp.opengl.oculusvr.stereo.lense;
import com.jogamp.nativewindow.util.DimensionImmutable;
-
-import jogamp.opengl.util.stereo.GenericStereoDevice;
-
import com.jogamp.opengl.math.VectorUtil;
+import com.jogamp.opengl.util.stereo.generic.GenericStereoDeviceConfig;
public class DistortionSpec {
public DistortionSpec(final LensConfig lens) {
@@ -109,7 +107,7 @@ public class DistortionSpec {
final float[] tanEyeAngleScale;
final float[] lensCenter;
- public static DistortionSpec[] CalculateDistortionSpec (final GenericStereoDevice.Config deviceConfig, final float[] eyeReliefInMeters) {
+ public static DistortionSpec[] CalculateDistortionSpec (final GenericStereoDeviceConfig deviceConfig, final float[] eyeReliefInMeters) {
final DistortionSpec[] result = new DistortionSpec[2];
/// FIXME: Add 'pluggable' lense configuration
final LensConfig[] lensConfig = LensConfig.GenerateLensConfigFromEyeRelief(eyeReliefInMeters, LensConfig.DistortionEquation.CatmullRom10);
@@ -119,7 +117,7 @@ public class DistortionSpec {
}
- private static DistortionSpec CalculateDistortionSpec (final GenericStereoDevice.Config deviceConfig, final int eyeName,
+ private static DistortionSpec CalculateDistortionSpec (final GenericStereoDeviceConfig deviceConfig, final int eyeName,
final float eyeReliefInMeters, final LensConfig lensConfig) {
// From eye relief, IPD and device characteristics, we get the distortion mapping.
// This distortion does the following things: