diff options
-rw-r--r-- | make/build.xml | 4 | ||||
-rwxr-xr-x | src/demos/applets/GearsJOALApplet.java | 4 | ||||
-rwxr-xr-x | src/demos/context/DualContext.java | 11 | ||||
-rw-r--r-- | src/demos/hwShadowmapsSimple/HWShadowmapsSimple.java | 15 | ||||
-rw-r--r-- | src/demos/infiniteShadowVolumes/InfiniteShadowVolumes.java | 15 | ||||
-rwxr-xr-x | src/demos/j2d/CustomText.java | 3 | ||||
-rwxr-xr-x | src/demos/j2d/FlyingText.java | 3 | ||||
-rw-r--r-- | src/demos/proceduralTexturePhysics/ProceduralTexturePhysics.java | 11 | ||||
-rwxr-xr-x | src/demos/texture/TestSubImage.java | 3 | ||||
-rw-r--r-- | src/demos/vertexProgRefract/VertexProgRefract.java | 17 | ||||
-rw-r--r-- | src/demos/vertexProgWarp/VertexProgWarp.java | 15 | ||||
-rw-r--r-- | src/gleem/ExaminerViewer.java | 5 | ||||
-rw-r--r-- | src/gleem/ManipManager.java | 39 | ||||
-rw-r--r-- | src/gleem/TestExaminerViewer.java | 14 | ||||
-rw-r--r-- | src/gleem/TestHandleBox.java | 12 | ||||
-rw-r--r-- | src/gleem/TestMultiWin.java | 14 | ||||
-rw-r--r-- | src/gleem/TestTranslate1.java | 12 | ||||
-rw-r--r-- | src/gleem/TestTranslate2.java | 12 | ||||
-rw-r--r-- | src/gleem/WindowUpdateListener.java | 4 |
19 files changed, 118 insertions, 95 deletions
diff --git a/make/build.xml b/make/build.xml index 74cfa95..51efac2 100644 --- a/make/build.xml +++ b/make/build.xml @@ -115,7 +115,9 @@ <pathelement location="${joal-demos.jar}" /> <pathelement location="${simple-xml.jar}" /> </path> - <javac destdir="${classes}" excludes="${jogl.cg.excludes},demos/nurbs/**,jbullet/**" source="1.4" target="1.4" debug="true" debuglevel="source,lines"> + <!-- For the time being we exclude the VertexArrayRange and HDR demos, which rely on NVIDIA-specific extensions, + as well as the JRefract demo, which pulls in all of the others --> + <javac destdir="${classes}" excludes="${jogl.cg.excludes},demos/nurbs/**,jbullet/**,demos/hdr/**,demos/vertexArrayRange/**,demos/jrefract/**" source="1.4" target="1.4" debug="true" debuglevel="source,lines"> <src path="${src}" /> <classpath refid="jogl-demos.classpath" /> </javac> diff --git a/src/demos/applets/GearsJOALApplet.java b/src/demos/applets/GearsJOALApplet.java index 9a1db8a..759c49a 100755 --- a/src/demos/applets/GearsJOALApplet.java +++ b/src/demos/applets/GearsJOALApplet.java @@ -8,8 +8,8 @@ import javax.media.opengl.awt.GLCanvas; import javax.media.opengl.util.Animator; import javax.media.opengl.util.FPSAnimator; import javax.swing.JPanel; - - +import net.java.games.joal.util.ALut; +import demos.devmaster.lesson1.SingleStaticSource; /** Shows how to deploy an applet using both JOGL and JOAL. This demo must be referenced from a web page via an <applet> tag. */ diff --git a/src/demos/context/DualContext.java b/src/demos/context/DualContext.java index 397b10b..34b635b 100755 --- a/src/demos/context/DualContext.java +++ b/src/demos/context/DualContext.java @@ -46,12 +46,8 @@ import java.awt.Graphics; import java.awt.GraphicsConfiguration; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import javax.media.opengl.GL; -import javax.media.opengl.GLCapabilities; -import javax.media.opengl.GLContext; -import javax.media.opengl.GLDrawable; -import javax.media.opengl.GLDrawableFactory; -import javax.media.opengl.awt.AWTGraphicsConfiguration; +import javax.media.opengl.*; +import javax.media.opengl.awt.*; import javax.media.opengl.glu.GLU; import javax.swing.JButton; import javax.swing.JFrame; @@ -76,7 +72,8 @@ public class DualContext extends Canvas { public DualContext(GLCapabilities capabilities) { super(unwrap((AWTGraphicsConfiguration) GLDrawableFactory.getFactory().chooseGraphicsConfiguration(capabilities, null, null))); - drawable = GLDrawableFactory.getFactory().createGLDrawable(this, capabilities, null); + NativeWindow win = NativeWindowFactory.getNativeWindow(this); + drawable = GLDrawableFactory.getFactory().createGLDrawable(win, capabilities, null); context1 = drawable.createContext(null); context2 = drawable.createContext(null); glu = new GLU(); diff --git a/src/demos/hwShadowmapsSimple/HWShadowmapsSimple.java b/src/demos/hwShadowmapsSimple/HWShadowmapsSimple.java index 72bed96..0d647f3 100644 --- a/src/demos/hwShadowmapsSimple/HWShadowmapsSimple.java +++ b/src/demos/hwShadowmapsSimple/HWShadowmapsSimple.java @@ -64,6 +64,7 @@ import javax.media.opengl.GLDrawableFactory; import javax.media.opengl.GLEventListener; import javax.media.opengl.GLException; import javax.media.opengl.GLPbuffer; +import javax.media.opengl.awt.AWTGLAutoDrawable; import javax.media.opengl.awt.GLCanvas; import javax.media.opengl.glu.GLU; import javax.swing.JOptionPane; @@ -120,7 +121,7 @@ public class HWShadowmapsSimple extends Demo { // public void shutdownDemo() { - ManipManager.getManipManager().unregisterWindow(drawable); + ManipManager.getManipManager().unregisterWindow((AWTGLAutoDrawable) drawable); drawable.removeGLEventListener(this); super.shutdownDemo(); } @@ -285,22 +286,22 @@ public class HWShadowmapsSimple extends Demo { // Register the window with the ManipManager ManipManager manager = ManipManager.getManipManager(); - manager.registerWindow(drawable); + manager.registerWindow((AWTGLAutoDrawable) drawable); this.drawable = drawable; object = new HandleBoxManip(); object.setTranslation(new Vec3f(0, 0.7f, 1.8f)); object.setGeometryScale(new Vec3f(0.7f, 0.7f, 0.7f)); - manager.showManipInWindow(object, drawable); + manager.showManipInWindow(object, (AWTGLAutoDrawable) drawable); spotlight = new HandleBoxManip(); spotlight.setScale(new Vec3f(0.5f, 0.5f, 0.5f)); spotlight.setTranslation(new Vec3f(-0.25f, 2.35f, 5.0f)); spotlight.setRotation(new Rotf(Vec3f.X_AXIS, (float) Math.toRadians(-30.0f))); - manager.showManipInWindow(spotlight, drawable); + manager.showManipInWindow(spotlight, (AWTGLAutoDrawable) drawable); viewer = new ExaminerViewer(MouseButtonHelper.numMouseButtons()); - viewer.attach(drawable, new BSphereProvider() { + viewer.attach((AWTGLAutoDrawable) drawable, new BSphereProvider() { public BSphere getBoundingSphere() { return new BSphere(object.getTranslation(), 2.0f); } @@ -589,8 +590,8 @@ public class HWShadowmapsSimple extends Demo { applyTransform(gl, inverseView); if (params != null) { - ManipManager.getManipManager().updateCameraParameters(drawable, params); - ManipManager.getManipManager().render(drawable, gl); + ManipManager.getManipManager().updateCameraParameters((AWTGLAutoDrawable) drawable, params); + ManipManager.getManipManager().render((AWTGLAutoDrawable) drawable, gl); } gl.glPopMatrix(); diff --git a/src/demos/infiniteShadowVolumes/InfiniteShadowVolumes.java b/src/demos/infiniteShadowVolumes/InfiniteShadowVolumes.java index 4bcef94..699f9de 100644 --- a/src/demos/infiniteShadowVolumes/InfiniteShadowVolumes.java +++ b/src/demos/infiniteShadowVolumes/InfiniteShadowVolumes.java @@ -60,6 +60,7 @@ import javax.media.opengl.GL; import javax.media.opengl.GL2; import javax.media.opengl.GLAutoDrawable; import javax.media.opengl.GLCapabilities; +import javax.media.opengl.awt.AWTGLAutoDrawable; import javax.media.opengl.awt.GLCanvas; import javax.media.opengl.glu.GLU; @@ -119,7 +120,7 @@ public class InfiniteShadowVolumes extends Demo { // public void shutdownDemo() { - ManipManager.getManipManager().unregisterWindow(drawable); + ManipManager.getManipManager().unregisterWindow((AWTGLAutoDrawable) drawable); drawable.removeGLEventListener(this); super.shutdownDemo(); } @@ -245,21 +246,21 @@ public class InfiniteShadowVolumes extends Demo { // Register the window with the ManipManager ManipManager manager = ManipManager.getManipManager(); - manager.registerWindow(drawable); + manager.registerWindow((AWTGLAutoDrawable) drawable); this.drawable = drawable; objectManip = new HandleBoxManip(); - manager.showManipInWindow(objectManip, drawable); + manager.showManipInWindow(objectManip, (AWTGLAutoDrawable) drawable); objectManip.setTranslation(new Vec3f(0, 0, -2)); objectManip.setRotation(new Rotf(new Vec3f(1, 0, 0), (float) Math.toRadians(-90))); lightManip = new HandleBoxManip(); - manager.showManipInWindow(lightManip, drawable); + manager.showManipInWindow(lightManip, (AWTGLAutoDrawable) drawable); lightManip.setTranslation(new Vec3f(0.5f, 0.5f, -1)); lightManip.setGeometryScale(new Vec3f(0.1f, 0.1f, 0.1f)); viewer = new ExaminerViewer(MouseButtonHelper.numMouseButtons()); - viewer.attach(drawable, new BSphereProvider() { + viewer.attach((AWTGLAutoDrawable) drawable, new BSphereProvider() { public BSphere getBoundingSphere() { return new BSphere(objectManip.getTranslation(), 1.0f); } @@ -478,8 +479,8 @@ public class InfiniteShadowVolumes extends Demo { gl.glClear(GL2.GL_COLOR_BUFFER_BIT | GL2.GL_DEPTH_BUFFER_BIT | GL2.GL_STENCIL_BUFFER_BIT); - ManipManager.getManipManager().updateCameraParameters(drawable, viewer.getCameraParameters()); - ManipManager.getManipManager().render(drawable, gl); + ManipManager.getManipManager().updateCameraParameters((AWTGLAutoDrawable) drawable, viewer.getCameraParameters()); + ManipManager.getManipManager().render((AWTGLAutoDrawable) drawable, gl); if (!b['R']) { drawRoom(gl, false); diff --git a/src/demos/j2d/CustomText.java b/src/demos/j2d/CustomText.java index ccb940b..1b47d84 100755 --- a/src/demos/j2d/CustomText.java +++ b/src/demos/j2d/CustomText.java @@ -43,6 +43,7 @@ import com.sun.opengl.util.awt.gl2.GL2TextRenderer; import com.sun.opengl.util.texture.Texture; import com.sun.opengl.util.texture.TextureCoords; import com.sun.opengl.util.texture.TextureIO; +import com.sun.opengl.util.texture.awt.AWTTextureIO; import demos.common.Demo; import demos.util.FPSCounter; import demos.util.SystemTime; @@ -197,7 +198,7 @@ public class CustomText extends Demo { g.fillRect(0, 0, 1, 1); g.fillRect(1, 1, 1, 1); g.dispose(); - backgroundTexture = TextureIO.newTexture(bgImage, false); + backgroundTexture = AWTTextureIO.newTexture(bgImage, false); backgroundTexture.bind(); backgroundTexture.setTexParameteri(GL.GL_TEXTURE_MIN_FILTER, GL.GL_NEAREST); backgroundTexture.setTexParameteri(GL.GL_TEXTURE_MAG_FILTER, GL.GL_NEAREST); diff --git a/src/demos/j2d/FlyingText.java b/src/demos/j2d/FlyingText.java index a8682a1..24ca1da 100755 --- a/src/demos/j2d/FlyingText.java +++ b/src/demos/j2d/FlyingText.java @@ -43,6 +43,7 @@ import com.sun.opengl.util.awt.gl2.GL2TextRenderer; import com.sun.opengl.util.texture.Texture; import com.sun.opengl.util.texture.TextureCoords; import com.sun.opengl.util.texture.TextureIO; +import com.sun.opengl.util.texture.awt.AWTTextureIO; import demos.common.Demo; import demos.util.FPSCounter; import demos.util.SystemTime; @@ -238,7 +239,7 @@ public class FlyingText extends Demo { g.fillRect(0, 0, 1, 1); g.fillRect(1, 1, 1, 1); g.dispose(); - backgroundTexture = TextureIO.newTexture(bgImage, false); + backgroundTexture = AWTTextureIO.newTexture(bgImage, false); backgroundTexture.bind(); backgroundTexture.setTexParameteri(GL2.GL_TEXTURE_MIN_FILTER, GL2.GL_NEAREST); backgroundTexture.setTexParameteri(GL2.GL_TEXTURE_MAG_FILTER, GL2.GL_NEAREST); diff --git a/src/demos/proceduralTexturePhysics/ProceduralTexturePhysics.java b/src/demos/proceduralTexturePhysics/ProceduralTexturePhysics.java index c5059b5..b0bdfb7 100644 --- a/src/demos/proceduralTexturePhysics/ProceduralTexturePhysics.java +++ b/src/demos/proceduralTexturePhysics/ProceduralTexturePhysics.java @@ -55,6 +55,7 @@ import javax.media.opengl.GL; import javax.media.opengl.GL2; import javax.media.opengl.GLAutoDrawable; import javax.media.opengl.GLException; +import javax.media.opengl.awt.AWTGLAutoDrawable; import javax.media.opengl.awt.GLCanvas; import javax.media.opengl.util.Animator; import javax.swing.JOptionPane; @@ -142,7 +143,7 @@ public class ProceduralTexturePhysics extends Demo { public void shutdownDemo() { viewer.detach(); - ManipManager.getManipManager().unregisterWindow(drawable); + ManipManager.getManipManager().unregisterWindow((AWTGLAutoDrawable) drawable); drawable.removeGLEventListener(this); super.shutdownDemo(); } @@ -198,12 +199,12 @@ public class ProceduralTexturePhysics extends Demo { // Register the window with the ManipManager ManipManager manager = ManipManager.getManipManager(); - manager.registerWindow(drawable); + manager.registerWindow((AWTGLAutoDrawable) drawable); this.drawable = drawable; viewer = new ExaminerViewer(MouseButtonHelper.numMouseButtons()); viewer.setAutoRedrawMode(false); - viewer.attach(drawable, new BSphereProvider() { + viewer.attach((AWTGLAutoDrawable) drawable, new BSphereProvider() { public BSphere getBoundingSphere() { return new BSphere(new Vec3f(0, 0, 0), 1.2f); @@ -236,8 +237,8 @@ public class ProceduralTexturePhysics extends Demo { } viewer.update(gl); - ManipManager.getManipManager().updateCameraParameters(drawable, viewer.getCameraParameters()); - ManipManager.getManipManager().render(drawable, gl); + ManipManager.getManipManager().updateCameraParameters((AWTGLAutoDrawable) drawable, viewer.getCameraParameters()); + ManipManager.getManipManager().render((AWTGLAutoDrawable) drawable, gl); if (drawing) { int w = drawable.getWidth(); diff --git a/src/demos/texture/TestSubImage.java b/src/demos/texture/TestSubImage.java index f7ddde4..98fafae 100755 --- a/src/demos/texture/TestSubImage.java +++ b/src/demos/texture/TestSubImage.java @@ -43,6 +43,7 @@ import com.sun.opengl.util.texture.Texture; import com.sun.opengl.util.texture.TextureCoords; import com.sun.opengl.util.texture.TextureData; import com.sun.opengl.util.texture.TextureIO; +import com.sun.opengl.util.texture.awt.AWTTextureIO; import java.awt.AlphaComposite; import java.awt.Color; import java.awt.GradientPaint; @@ -134,7 +135,7 @@ public class TestSubImage { g.dispose(); // Create a TextureData and Texture from it - textureData = TextureIO.newTextureData(convertedImage, false); + textureData = AWTTextureIO.newTextureData(convertedImage, false); texture = TextureIO.newTexture(textureData); } diff --git a/src/demos/vertexProgRefract/VertexProgRefract.java b/src/demos/vertexProgRefract/VertexProgRefract.java index 943bd7a..5274aba 100644 --- a/src/demos/vertexProgRefract/VertexProgRefract.java +++ b/src/demos/vertexProgRefract/VertexProgRefract.java @@ -58,9 +58,11 @@ import java.io.IOException; import javax.media.opengl.GL; import javax.media.opengl.GL2; import javax.media.opengl.GLAutoDrawable; +import javax.media.opengl.awt.AWTGLAutoDrawable; import javax.media.opengl.awt.GLCanvas; import javax.media.opengl.glu.GLU; import javax.media.opengl.util.Animator; +import javax.media.opengl.util.BufferUtil; import javax.swing.JOptionPane; @@ -283,7 +285,8 @@ public class VertexProgRefract extends Demo { gl.glGenPrograms(1, vtxProgTmp, 0); vtxProg = vtxProgTmp[0]; gl.glBindProgram(GL2.GL_VERTEX_PROGRAM, vtxProg); - gl.glProgramString(GL2.GL_VERTEX_PROGRAM, GL2.GL_PROGRAM_FORMAT_ASCII, transformRefract.length(), transformRefract); + gl.glProgramString(GL2.GL_VERTEX_PROGRAM, GL2.GL_PROGRAM_FORMAT_ASCII, transformRefract.length(), + BufferUtil.newByteBuffer(transformRefract.getBytes())); gl.glProgramEnvParameter4f(GL2.GL_VERTEX_PROGRAM, 0, 0.0f, 0.0f, 0.0f, 1.0f); // eye position @@ -327,13 +330,13 @@ public class VertexProgRefract extends Demo { // Register the window with the ManipManager ManipManager manager = ManipManager.getManipManager(); - manager.registerWindow(drawable); + manager.registerWindow((AWTGLAutoDrawable) drawable); this.drawable = drawable; viewer = new ExaminerViewer(MouseButtonHelper.numMouseButtons()); viewer.setNoAltKeyMode(true); viewer.setAutoRedrawMode(false); - viewer.attach(drawable, new BSphereProvider() { + viewer.attach((AWTGLAutoDrawable) drawable, new BSphereProvider() { public BSphere getBoundingSphere() { return new BSphere(new Vec3f(0, 0, 0), 1.0f); } @@ -383,8 +386,8 @@ public class VertexProgRefract extends Demo { gl.glPushMatrix(); viewer.update(gl); - ManipManager.getManipManager().updateCameraParameters(drawable, viewer.getCameraParameters()); - ManipManager.getManipManager().render(drawable, gl); + ManipManager.getManipManager().updateCameraParameters((AWTGLAutoDrawable) drawable, viewer.getCameraParameters()); + ManipManager.getManipManager().render((AWTGLAutoDrawable) drawable, gl); gl.glBindProgram(GL2.GL_VERTEX_PROGRAM, vtxProg); @@ -465,7 +468,7 @@ public class VertexProgRefract extends Demo { public void shutdownDemo() { if (drawable != null) { viewer.detach(); - ManipManager.getManipManager().unregisterWindow(drawable); + ManipManager.getManipManager().unregisterWindow((AWTGLAutoDrawable) drawable); drawable.removeGLEventListener(this); } super.shutdownDemo(); @@ -578,7 +581,7 @@ public class VertexProgRefract extends Demo { gl.glBindProgram(GL2.GL_FRAGMENT_PROGRAM, fragProg); gl.glProgramString(GL2.GL_FRAGMENT_PROGRAM, GL2.GL_PROGRAM_FORMAT_ASCII, - combineFragProg.length(), combineFragProg); + combineFragProg.length(), BufferUtil.newByteBuffer(combineFragProg.getBytes())); int[] errPos = new int[1]; gl.glGetIntegerv(GL2.GL_PROGRAM_ERROR_POSITION, errPos, 0); if (errPos[0] >= 0) { diff --git a/src/demos/vertexProgWarp/VertexProgWarp.java b/src/demos/vertexProgWarp/VertexProgWarp.java index 76c43d5..fca8bcf 100644 --- a/src/demos/vertexProgWarp/VertexProgWarp.java +++ b/src/demos/vertexProgWarp/VertexProgWarp.java @@ -55,10 +55,12 @@ import java.io.IOException; import javax.media.opengl.GL; import javax.media.opengl.GL2; import javax.media.opengl.GLAutoDrawable; +import javax.media.opengl.awt.AWTGLAutoDrawable; import javax.media.opengl.awt.GLCanvas; import javax.media.opengl.glu.GLU; import javax.media.opengl.glu.GLUquadric; import javax.media.opengl.util.Animator; +import javax.media.opengl.util.BufferUtil; import javax.swing.JOptionPane; @@ -193,7 +195,8 @@ public class VertexProgWarp extends Demo { gl.glGenPrograms(1, vtxProgTmp, 0); programs[i] = vtxProgTmp[0]; gl.glBindProgram(GL2.GL_VERTEX_PROGRAM, programs[i]); - gl.glProgramString(GL2.GL_VERTEX_PROGRAM, GL2.GL_PROGRAM_FORMAT_ASCII, programTexts[i].length(), programTexts[i]); + gl.glProgramString(GL2.GL_VERTEX_PROGRAM, GL2.GL_PROGRAM_FORMAT_ASCII, programTexts[i].length(), + BufferUtil.newByteBuffer(programTexts[i].getBytes())); } gl.glProgramEnvParameter4f(GL2.GL_VERTEX_PROGRAM, 0, 0.0f, 0.0f, 1.0f, 0.0f); // light position/direction @@ -224,13 +227,13 @@ public class VertexProgWarp extends Demo { // Register the window with the ManipManager ManipManager manager = ManipManager.getManipManager(); - manager.registerWindow(drawable); + manager.registerWindow((AWTGLAutoDrawable) drawable); this.drawable = drawable; viewer = new ExaminerViewer(MouseButtonHelper.numMouseButtons()); viewer.setNoAltKeyMode(true); viewer.setAutoRedrawMode(false); - viewer.attach(drawable, new BSphereProvider() { + viewer.attach((AWTGLAutoDrawable) drawable, new BSphereProvider() { public BSphere getBoundingSphere() { return new BSphere(new Vec3f(0, 0, 0), 1.0f); } @@ -286,8 +289,8 @@ public class VertexProgWarp extends Demo { } viewer.update(gl); - ManipManager.getManipManager().updateCameraParameters(drawable, viewer.getCameraParameters()); - ManipManager.getManipManager().render(drawable, gl); + ManipManager.getManipManager().updateCameraParameters((AWTGLAutoDrawable) drawable, viewer.getCameraParameters()); + ManipManager.getManipManager().render((AWTGLAutoDrawable) drawable, gl); gl.glBindProgram(GL2.GL_VERTEX_PROGRAM, programs[program]); gl.glProgramEnvParameter4f(GL2.GL_VERTEX_PROGRAM, 7, anim, 0.0f, 0.0f, 0.0f); @@ -316,7 +319,7 @@ public class VertexProgWarp extends Demo { // Internals only below this point // public void shutdownDemo() { - ManipManager.getManipManager().unregisterWindow(drawable); + ManipManager.getManipManager().unregisterWindow((AWTGLAutoDrawable) drawable); drawable.removeGLEventListener(this); super.shutdownDemo(); } diff --git a/src/gleem/ExaminerViewer.java b/src/gleem/ExaminerViewer.java index a7f3d64..2b66b73 100644 --- a/src/gleem/ExaminerViewer.java +++ b/src/gleem/ExaminerViewer.java @@ -45,6 +45,7 @@ import java.util.*; import gleem.linalg.*; import javax.media.opengl.*; +import javax.media.opengl.awt.*; /** <P> This is an application-level class, not part of the manipulator hierarchy. It is an example of how you might integrate @@ -71,7 +72,7 @@ import javax.media.opengl.*; button. </P> */ public class ExaminerViewer { - private GLAutoDrawable window; + private AWTGLAutoDrawable window; /** Simple state machine for figuring out whether we are grabbing events */ private boolean interactionUnderway; @@ -151,7 +152,7 @@ public class ExaminerViewer { <P> In order for the viewer to do anything useful, you need to provide a BSphereProvider to it to allow "view all" functionality. </P> */ - public void attach(GLAutoDrawable window, BSphereProvider provider) { + public void attach(AWTGLAutoDrawable window, BSphereProvider provider) { this.window = window; this.provider = provider; init(); diff --git a/src/gleem/ManipManager.java b/src/gleem/ManipManager.java index e793348..2fabd1e 100644 --- a/src/gleem/ManipManager.java +++ b/src/gleem/ManipManager.java @@ -45,6 +45,7 @@ import java.util.*; import gleem.linalg.*; import javax.media.opengl.*; +import javax.media.opengl.awt.*; /** The ManipManager handles making manipulators visible in a window. */ @@ -55,7 +56,7 @@ public class ManipManager { private static ManipManager soleInstance; // Maps GLDrawables to WindowInfos private Map windowToInfoMap = new HashMap(); - // Maps Manips to Set<GLAutoDrawable> + // Maps Manips to Set<AWTGLAutoDrawable> private Map manipToWindowMap = new HashMap(); // MouseAdapter for this @@ -78,7 +79,7 @@ public class ManipManager { } }; private WindowUpdateListener defaultWindowListener = new WindowUpdateListener() { - public void update(GLAutoDrawable window) { + public void update(AWTGLAutoDrawable window) { window.repaint(); } }; @@ -108,14 +109,14 @@ public class ManipManager { /** Make the ManipManager aware of the existence of a given window. This causes mouse and mouse motion listeners to be installed on this window; see setupMouseListeners, below. */ - public synchronized void registerWindow(GLAutoDrawable window) { + public synchronized void registerWindow(AWTGLAutoDrawable window) { windowToInfoMap.put(window, new WindowInfo()); setupMouseListeners(window); } /** Remove all references to a given window, including removing all manipulators from it. */ - public synchronized void unregisterWindow(GLAutoDrawable window) { + public synchronized void unregisterWindow(AWTGLAutoDrawable window) { if (window == null) { return; } @@ -132,7 +133,7 @@ public class ManipManager { /** Make a given manipulator visible and active in a given window. The window must be registered. */ - public synchronized void showManipInWindow(Manip manip, GLAutoDrawable window) { + public synchronized void showManipInWindow(Manip manip, AWTGLAutoDrawable window) { WindowInfo info = (WindowInfo) windowToInfoMap.get(window); if (info == null) { throw new RuntimeException("Window not registered"); @@ -148,7 +149,7 @@ public class ManipManager { /** Remove a given manipulator from a given window. The window must be registered. */ - public synchronized void removeManipFromWindow(Manip manip, GLAutoDrawable window) { + public synchronized void removeManipFromWindow(Manip manip, AWTGLAutoDrawable window) { WindowInfo info = (WindowInfo) windowToInfoMap.get(window); if (info == null) { throw new RuntimeException("Window not registered"); @@ -163,7 +164,7 @@ public class ManipManager { /** This must be called for a registered window every time the camera parameters of the window change. */ - public synchronized void updateCameraParameters(GLAutoDrawable window, CameraParameters params) { + public synchronized void updateCameraParameters(AWTGLAutoDrawable window, CameraParameters params) { WindowInfo info = (WindowInfo) windowToInfoMap.get(window); if (info == null) { throw new RuntimeException("Window not registered"); @@ -186,7 +187,7 @@ public class ManipManager { repainting of windows in which manipulators have moved. The default implementation, which can be restored by passing a null listener argument to this method, calls repaint() on the - GLAutoDrawable if it is not a GLRunnable instance (i.e., a + AWTGLAutoDrawable if it is not a GLRunnable instance (i.e., a GLAnimCanvas or GLAnimJPanel, which redraw themselves automatically). */ public synchronized void setWindowUpdateListener(WindowUpdateListener listener) { @@ -201,7 +202,7 @@ public class ManipManager { drawing occurs immediately; this routine must be called when an OpenGL context is valid, i.e., from within the display() method of a GLEventListener. */ - public synchronized void render(GLAutoDrawable window, GL2 gl) { + public synchronized void render(AWTGLAutoDrawable window, GL2 gl) { WindowInfo info = (WindowInfo) windowToInfoMap.get(window); if (info == null) { throw new RuntimeException("Window not registered"); @@ -218,7 +219,7 @@ public class ManipManager { listeners for the canvas (see the ExaminerViewer class), the setupMouseListeners and removeMouseListeners routines, as well as the appropriate delegate routines, are made public here. */ - public synchronized void setupMouseListeners(GLAutoDrawable window) { + public synchronized void setupMouseListeners(AWTGLAutoDrawable window) { window.addMouseMotionListener(mouseMotionListener); window.addMouseListener(mouseListener); } @@ -226,7 +227,7 @@ public class ManipManager { /** Removes the automatically-installed mouse listeners for the given window. This allows application code to determine the policy for intercepting mouse events. */ - public synchronized void removeMouseListeners(GLAutoDrawable window) { + public synchronized void removeMouseListeners(AWTGLAutoDrawable window) { window.removeMouseMotionListener(mouseMotionListener); window.removeMouseListener(mouseListener); } @@ -236,7 +237,7 @@ public class ManipManager { are exposed so application-level code can intercept events when certain modifier keys are depressed. */ public synchronized void mouseMoved(MouseEvent e) { - passiveMotionMethod((GLAutoDrawable) e.getComponent(), e.getX(), e.getY()); + passiveMotionMethod((AWTGLAutoDrawable) e.getComponent(), e.getX(), e.getY()); } /** The ManipManager watches for the following events: mouseMoved, @@ -244,7 +245,7 @@ public class ManipManager { are exposed so application-level code can intercept events when certain modifier keys are depressed. */ public synchronized void mouseDragged(MouseEvent e) { - motionMethod((GLAutoDrawable) e.getComponent(), e.getX(), e.getY()); + motionMethod((AWTGLAutoDrawable) e.getComponent(), e.getX(), e.getY()); } /** The ManipManager watches for the following events: mouseMoved, @@ -252,7 +253,7 @@ public class ManipManager { are exposed so application-level code can intercept events when certain modifier keys are depressed. */ public synchronized void mousePressed(MouseEvent e) { - mouseMethod((GLAutoDrawable) e.getComponent(), e.getModifiers(), + mouseMethod((AWTGLAutoDrawable) e.getComponent(), e.getModifiers(), true, e.getX(), e.getY()); } @@ -261,7 +262,7 @@ public class ManipManager { are exposed so application-level code can intercept events when certain modifier keys are depressed. */ public synchronized void mouseReleased(MouseEvent e) { - mouseMethod((GLAutoDrawable) e.getComponent(), e.getModifiers(), + mouseMethod((AWTGLAutoDrawable) e.getComponent(), e.getModifiers(), false, e.getX(), e.getY()); } @@ -274,7 +275,7 @@ public class ManipManager { setWindowUpdateListener(null); } - private void motionMethod(GLAutoDrawable window, int x, int y) { + private void motionMethod(AWTGLAutoDrawable window, int x, int y) { WindowInfo info = (WindowInfo) windowToInfoMap.get(window); if (info.dragging) { // Compute ray in 3D @@ -286,7 +287,7 @@ public class ManipManager { } } - private void passiveMotionMethod(GLAutoDrawable window, int x, int y) { + private void passiveMotionMethod(AWTGLAutoDrawable window, int x, int y) { WindowInfo info = (WindowInfo) windowToInfoMap.get(window); // Compute ray in 3D Vec3f rayStart = new Vec3f(); @@ -326,7 +327,7 @@ public class ManipManager { } } - private void mouseMethod(GLAutoDrawable window, int modifiers, + private void mouseMethod(AWTGLAutoDrawable window, int modifiers, boolean isPress, int x, int y) { if ((modifiers & InputEvent.BUTTON1_MASK) != 0) { WindowInfo info = (WindowInfo) windowToInfoMap.get(window); @@ -402,7 +403,7 @@ public class ManipManager { Set windows = (Set) manipToWindowMap.get(manip); assert windows != null; for (Iterator iter = windows.iterator(); iter.hasNext(); ) { - windowListener.update((GLAutoDrawable) iter.next()); + windowListener.update((AWTGLAutoDrawable) iter.next()); } } } diff --git a/src/gleem/TestExaminerViewer.java b/src/gleem/TestExaminerViewer.java index ee73c9b..c13da4e 100644 --- a/src/gleem/TestExaminerViewer.java +++ b/src/gleem/TestExaminerViewer.java @@ -45,8 +45,10 @@ import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.media.opengl.GL; +import javax.media.opengl.GL2; import javax.media.opengl.GLAutoDrawable; import javax.media.opengl.GLEventListener; +import javax.media.opengl.awt.AWTGLAutoDrawable; import javax.media.opengl.awt.GLCanvas; import javax.media.opengl.glu.GLU; @@ -116,25 +118,25 @@ public class TestExaminerViewer { // Register the window with the ManipManager ManipManager manager = ManipManager.getManipManager(); - manager.registerWindow(drawable); + manager.registerWindow((AWTGLAutoDrawable) drawable); // Instantiate a HandleBoxManip HandleBoxManip manip = new HandleBoxManip(); manip.setTranslation(new Vec3f(0, 0, -10)); - manager.showManipInWindow(manip, drawable); + manager.showManipInWindow(manip, (AWTGLAutoDrawable) drawable); // Instantiate ExaminerViewer viewer = new ExaminerViewer(MouseButtonHelper.numMouseButtons()); - viewer.attach(drawable, new HandleBoxManipBSphereProvider(manip)); + viewer.attach((AWTGLAutoDrawable) drawable, new HandleBoxManipBSphereProvider(manip)); viewer.viewAll(gl); } public void display(GLAutoDrawable drawable) { - GL gl = drawable.getGL(); + GL2 gl = drawable.getGL().getGL2(); gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); viewer.update(gl); - ManipManager.getManipManager().updateCameraParameters(drawable, viewer.getCameraParameters()); - ManipManager.getManipManager().render(drawable, gl); + ManipManager.getManipManager().updateCameraParameters((AWTGLAutoDrawable) drawable, viewer.getCameraParameters()); + ManipManager.getManipManager().render((AWTGLAutoDrawable) drawable, gl); } // Unused routines diff --git a/src/gleem/TestHandleBox.java b/src/gleem/TestHandleBox.java index f911d46..9b1438d 100644 --- a/src/gleem/TestHandleBox.java +++ b/src/gleem/TestHandleBox.java @@ -45,8 +45,10 @@ import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.media.opengl.GL; +import javax.media.opengl.GL2; import javax.media.opengl.GLAutoDrawable; import javax.media.opengl.GLEventListener; +import javax.media.opengl.awt.AWTGLAutoDrawable; import javax.media.opengl.awt.GLCanvas; import javax.media.opengl.glu.GLU; @@ -93,19 +95,19 @@ public class TestHandleBox { // Register the window with the ManipManager ManipManager manager = ManipManager.getManipManager(); - manager.registerWindow(drawable); + manager.registerWindow((AWTGLAutoDrawable) drawable); // Instantiate a HandleBoxManip HandleBoxManip manip = new HandleBoxManip(); manip.setTranslation(new Vec3f(0, 0, -10)); - manager.showManipInWindow(manip, drawable); + manager.showManipInWindow(manip, (AWTGLAutoDrawable) drawable); } public void display(GLAutoDrawable drawable) { - GL gl = drawable.getGL(); + GL2 gl = drawable.getGL().getGL2(); gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); - ManipManager.getManipManager().updateCameraParameters(drawable, params); - ManipManager.getManipManager().render(drawable, gl); + ManipManager.getManipManager().updateCameraParameters((AWTGLAutoDrawable) drawable, params); + ManipManager.getManipManager().render((AWTGLAutoDrawable) drawable, gl); } public void reshape(GLAutoDrawable drawable, int x, int y, int w, int h) { diff --git a/src/gleem/TestMultiWin.java b/src/gleem/TestMultiWin.java index dbf624c..d143721 100644 --- a/src/gleem/TestMultiWin.java +++ b/src/gleem/TestMultiWin.java @@ -46,8 +46,10 @@ import java.awt.Point; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.media.opengl.GL; +import javax.media.opengl.GL2; import javax.media.opengl.GLAutoDrawable; import javax.media.opengl.GLEventListener; +import javax.media.opengl.awt.AWTGLAutoDrawable; import javax.media.opengl.awt.GLCanvas; import javax.media.opengl.glu.GLU; @@ -118,22 +120,22 @@ public class TestMultiWin { // Register the window with the ManipManager ManipManager manager = ManipManager.getManipManager(); - manager.registerWindow(drawable); + manager.registerWindow((AWTGLAutoDrawable) drawable); - manager.showManipInWindow(manip, drawable); + manager.showManipInWindow(manip, (AWTGLAutoDrawable) drawable); // Instantiate ExaminerViewer viewer = new ExaminerViewer(MouseButtonHelper.numMouseButtons()); - viewer.attach(drawable, new HandleBoxManipBSphereProvider(manip)); + viewer.attach((AWTGLAutoDrawable) drawable, new HandleBoxManipBSphereProvider(manip)); viewer.viewAll(gl); } public void display(GLAutoDrawable drawable) { - GL gl = drawable.getGL(); + GL2 gl = drawable.getGL().getGL2(); gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); viewer.update(gl); - ManipManager.getManipManager().updateCameraParameters(drawable, viewer.getCameraParameters()); - ManipManager.getManipManager().render(drawable, gl); + ManipManager.getManipManager().updateCameraParameters((AWTGLAutoDrawable) drawable, viewer.getCameraParameters()); + ManipManager.getManipManager().render((AWTGLAutoDrawable) drawable, gl); } // Unused routines diff --git a/src/gleem/TestTranslate1.java b/src/gleem/TestTranslate1.java index 83a2a00..fccc5f9 100644 --- a/src/gleem/TestTranslate1.java +++ b/src/gleem/TestTranslate1.java @@ -45,8 +45,10 @@ import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.media.opengl.GL; +import javax.media.opengl.GL2; import javax.media.opengl.GLAutoDrawable; import javax.media.opengl.GLEventListener; +import javax.media.opengl.awt.AWTGLAutoDrawable; import javax.media.opengl.awt.GLCanvas; import javax.media.opengl.glu.GLU; @@ -93,20 +95,20 @@ public class TestTranslate1 { // Register the window with the ManipManager ManipManager manager = ManipManager.getManipManager(); - manager.registerWindow(drawable); + manager.registerWindow((AWTGLAutoDrawable) drawable); // Instantiate a Translate1Manip Translate1Manip manip = new Translate1Manip(); manip.setTranslation(new Vec3f(0, 0, -5)); manip.setAxis(new Vec3f(-1, 0.5f, 1)); - manager.showManipInWindow(manip, drawable); + manager.showManipInWindow(manip, (AWTGLAutoDrawable) drawable); } public void display(GLAutoDrawable drawable) { - GL gl = drawable.getGL(); + GL2 gl = drawable.getGL().getGL2(); gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); - ManipManager.getManipManager().updateCameraParameters(drawable, params); - ManipManager.getManipManager().render(drawable, gl); + ManipManager.getManipManager().updateCameraParameters((AWTGLAutoDrawable) drawable, params); + ManipManager.getManipManager().render((AWTGLAutoDrawable) drawable, gl); } public void reshape(GLAutoDrawable drawable, int x, int y, int w, int h) { diff --git a/src/gleem/TestTranslate2.java b/src/gleem/TestTranslate2.java index cebe32e..af64bbc 100644 --- a/src/gleem/TestTranslate2.java +++ b/src/gleem/TestTranslate2.java @@ -45,8 +45,10 @@ import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.media.opengl.GL; +import javax.media.opengl.GL2; import javax.media.opengl.GLAutoDrawable; import javax.media.opengl.GLEventListener; +import javax.media.opengl.awt.AWTGLAutoDrawable; import javax.media.opengl.awt.GLCanvas; import javax.media.opengl.glu.GLU; @@ -93,20 +95,20 @@ public class TestTranslate2 { // Register the window with the ManipManager ManipManager manager = ManipManager.getManipManager(); - manager.registerWindow(drawable); + manager.registerWindow((AWTGLAutoDrawable) drawable); // Instantiate a Translate2Manip Translate2Manip manip = new Translate2Manip(); manip.setTranslation(new Vec3f(0, 0, -5)); manip.setNormal(new Vec3f(-1, 1, 1)); - manager.showManipInWindow(manip, drawable); + manager.showManipInWindow(manip, (AWTGLAutoDrawable) drawable); } public void display(GLAutoDrawable drawable) { - GL gl = drawable.getGL(); + GL2 gl = drawable.getGL().getGL2(); gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); - ManipManager.getManipManager().updateCameraParameters(drawable, params); - ManipManager.getManipManager().render(drawable, gl); + ManipManager.getManipManager().updateCameraParameters((AWTGLAutoDrawable) drawable, params); + ManipManager.getManipManager().render((AWTGLAutoDrawable) drawable, gl); } public void reshape(GLAutoDrawable drawable, int x, int y, int w, int h) { diff --git a/src/gleem/WindowUpdateListener.java b/src/gleem/WindowUpdateListener.java index 193d801..8eff015 100644 --- a/src/gleem/WindowUpdateListener.java +++ b/src/gleem/WindowUpdateListener.java @@ -39,7 +39,7 @@ package gleem; -import javax.media.opengl.GLAutoDrawable; +import javax.media.opengl.awt.AWTGLAutoDrawable; /** A WindowUpdateListener is used by the ManipManager to transmit @@ -48,5 +48,5 @@ import javax.media.opengl.GLAutoDrawable; GLAutoDrawables in which that Manip is shown. */ public interface WindowUpdateListener { - public void update(GLAutoDrawable window); + public void update(AWTGLAutoDrawable window); } |