JOGL v2.6.0-rc-20250712
JOGL, High-Performance Graphics Binding for Java™ (public API).
StereoGLEventListener.java
Go to the documentation of this file.
1/**
2 * Copyright 2014 JogAmp Community. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without modification, are
5 * permitted provided that the following conditions are met:
6 *
7 * 1. Redistributions of source code must retain the above copyright notice, this list of
8 * conditions and the following disclaimer.
9 *
10 * 2. Redistributions in binary form must reproduce the above copyright notice, this list
11 * of conditions and the following disclaimer in the documentation and/or other materials
12 * provided with the distribution.
13 *
14 * THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED
15 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
16 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
19 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
21 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
22 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 *
24 * The views and conclusions contained in the software and documentation are those of the
25 * authors and should not be interpreted as representing official policies, either expressed
26 * or implied, of JogAmp Community.
27 */
28package com.jogamp.opengl.util.stereo;
29
30import com.jogamp.math.FloatUtil;
31import com.jogamp.opengl.GLAutoDrawable;
32import com.jogamp.opengl.GLEventListener;
33import com.jogamp.opengl.util.CustomGLEventListener;
34
35/**
36 * Extended {@link GLEventListener} and {@link CustomGLEventListener} interface
37 * supporting stereoscopic client rendering.
38 */
40 /**
41 * Stereo capable specialization of {@link #reshape(GLAutoDrawable, int, int, int, int)}
42 * for one {@link StereoDeviceRenderer.Eye}.
43 * <p>
44 * Called by the stereo renderer before each {@link #display(GLAutoDrawable)}
45 * or {@link #display(GLAutoDrawable, int)} call.
46 * </p>
47 * <p>
48 * The client can update it's viewport associated data
49 * and view volume of the window appropriately.
50 * </p>
51 * <p>
52 * The client shall also update it's projection- and modelview matrices according
53 * to the given {@link EyeParameter} and {@link ViewerPose}.
54 * </p>
55 * <p>
56 * For efficiency the GL viewport has already been updated
57 * via <code>glViewport(x, y, width, height)</code> when this method is called.
58 * </p>
59 *
60 * @param drawable the triggering {@link GLAutoDrawable}
61 * @param x viewport x-coord in pixel units
62 * @param y viewport y-coord in pixel units
63 * @param width viewport width in pixel units
64 * @param height viewport height in pixel units
65 * @param eyeParam constant eye parameter, i.e. FOV and IPD
66 * @param viewerPose current viewer position and orientation
67 * @see FloatUtil#makePerspective(float[], int, boolean, com.jogamp.math.FloatUtil.FovHVHalves, float, float)
68 */
69 public void reshapeForEye(final GLAutoDrawable drawable, final int x, final int y, final int width, final int height,
70 final EyeParameter eyeParam, final ViewerPose viewerPose);
71
72
73}
Constant single eye parameter of the viewer, relative to its ViewerPose.
position and orientation of viewer.
Definition: ViewerPose.java:36
A higher-level abstraction than GLDrawable which supplies an event based mechanism (GLEventListener) ...
Extended GLEventListener interface supporting more fine grained control over the implementation.
Extended GLEventListener and CustomGLEventListener interface supporting stereoscopic client rendering...
void reshapeForEye(final GLAutoDrawable drawable, final int x, final int y, final int width, final int height, final EyeParameter eyeParam, final ViewerPose viewerPose)
Stereo capable specialization of reshape(GLAutoDrawable, int, int, int, int) for one StereoDeviceRend...