Index: src/main/java/com/ardor3d/framework/jogl/JoglCanvasRenderer.java
===================================================================
--- src/main/java/com/ardor3d/framework/jogl/JoglCanvasRenderer.java (revision 63)
+++ src/main/java/com/ardor3d/framework/jogl/JoglCanvasRenderer.java (working copy)
@@ -18,7 +18,6 @@
import javax.media.opengl.GLDrawableFactory;
import javax.media.opengl.GLException;
import javax.media.opengl.GLProfile;
-import javax.media.opengl.glu.GLU;
import com.ardor3d.annotation.MainThread;
import com.ardor3d.framework.CanvasRenderer;
@@ -140,47 +139,50 @@
}
_context.makeCurrent();
-
- // Look up a shared context, if a shared JoglCanvasRenderer is given.
- RenderContext sharedContext = null;
- if (settings.getShareContext() != null) {
- sharedContext = ContextManager.getContextForKey(settings.getShareContext().getRenderContext()
- .getContextKey());
+ try {
+ // Look up a shared context, if a shared JoglCanvasRenderer is given.
+ RenderContext sharedContext = null;
+ if (settings.getShareContext() != null) {
+ sharedContext = ContextManager.getContextForKey(settings.getShareContext().getRenderContext()
+ .getContextKey());
+ }
+
+ final ContextCapabilities caps = createContextCapabilities();
+ _currentContext = new RenderContext(_context, caps, sharedContext);
+
+ ContextManager.addContext(_context, _currentContext);
+ ContextManager.switchContext(_context);
+
+ _renderer = new JoglRenderer();
+
+ if (settings.getSamples() != 0 && caps.isMultisampleSupported()) {
+ final GL gl = _context.getGL();
+ gl.glEnable(GL.GL_MULTISAMPLE);
+ }
+
+ _renderer.setBackgroundColor(ColorRGBA.BLACK);
+
+ if (_camera == null) {
+ /** Set up how our camera sees. */
+ _camera = new Camera(settings.getWidth(), settings.getHeight());
+ _camera.setFrustumPerspective(45.0f, (float) settings.getWidth() / (float) settings.getHeight(), 1, 1000);
+ _camera.setProjectionMode(ProjectionMode.Perspective);
+
+ final Vector3 loc = new Vector3(0.0f, 0.0f, 10.0f);
+ final Vector3 left = new Vector3(-1.0f, 0.0f, 0.0f);
+ final Vector3 up = new Vector3(0.0f, 1.0f, 0.0f);
+ final Vector3 dir = new Vector3(0.0f, 0f, -1.0f);
+ /** Move our camera to a correct place and orientation. */
+ _camera.setFrame(loc, left, up, dir);
+ } else {
+ // use new width and height to set ratio.
+ _camera.setFrustumPerspective(_camera.getFovY(),
+ (float) settings.getWidth() / (float) settings.getHeight(), _camera.getFrustumNear(), _camera
+ .getFrustumFar());
+ }
+ } finally {
+ _context.release();
}
-
- final ContextCapabilities caps = createContextCapabilities();
- _currentContext = new RenderContext(_context, caps, sharedContext);
-
- ContextManager.addContext(_context, _currentContext);
- ContextManager.switchContext(_context);
-
- _renderer = new JoglRenderer();
-
- if (settings.getSamples() != 0 && caps.isMultisampleSupported()) {
- final GL gl = GLU.getCurrentGL();
- gl.glEnable(GL.GL_MULTISAMPLE);
- }
-
- _renderer.setBackgroundColor(ColorRGBA.BLACK);
-
- if (_camera == null) {
- /** Set up how our camera sees. */
- _camera = new Camera(settings.getWidth(), settings.getHeight());
- _camera.setFrustumPerspective(45.0f, (float) settings.getWidth() / (float) settings.getHeight(), 1, 1000);
- _camera.setProjectionMode(ProjectionMode.Perspective);
-
- final Vector3 loc = new Vector3(0.0f, 0.0f, 10.0f);
- final Vector3 left = new Vector3(-1.0f, 0.0f, 0.0f);
- final Vector3 up = new Vector3(0.0f, 1.0f, 0.0f);
- final Vector3 dir = new Vector3(0.0f, 0f, -1.0f);
- /** Move our camera to a correct place and orientation. */
- _camera.setFrame(loc, left, up, dir);
- } else {
- // use new width and height to set ratio.
- _camera.setFrustumPerspective(_camera.getFovY(),
- (float) settings.getWidth() / (float) settings.getHeight(), _camera.getFrustumNear(), _camera
- .getFrustumFar());
- }
}
public GLContext getContext() {
Index: src/main/java/com/ardor3d/framework/jogl/JoglAwtCanvas.java
===================================================================
--- src/main/java/com/ardor3d/framework/jogl/JoglAwtCanvas.java (revision 63)
+++ src/main/java/com/ardor3d/framework/jogl/JoglAwtCanvas.java (working copy)
@@ -10,6 +10,8 @@
package com.ardor3d.framework.jogl;
+import java.awt.EventQueue;
+import java.lang.reflect.InvocationTargetException;
import java.util.concurrent.CountDownLatch;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLRunnable;
@@ -54,7 +56,20 @@
}
// Make the window visible to realize the OpenGL surface.
- setVisible(true);
+ setVisible(true);
+ /**
+ try {
+ EventQueue.invokeAndWait(new Runnable() {
+ public void run() {
+ setVisible(true);
+ display(); // force creation via validateGLDrawable()
+ }
+ });
+ } catch (InvocationTargetException e) {
+ throw new RuntimeException(e.getTargetException());
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ } */
// Request the focus here as it cannot work when the window is not visible
requestFocus();
Index: src/main/java/com/ardor3d/scene/state/jogl/util/JoglTextureUtil.java
===================================================================
--- src/main/java/com/ardor3d/scene/state/jogl/util/JoglTextureUtil.java (revision 63)
+++ src/main/java/com/ardor3d/scene/state/jogl/util/JoglTextureUtil.java (working copy)
@@ -15,7 +15,7 @@
import javax.media.opengl.GL2GL3;
import com.ardor3d.image.ImageDataFormat;
-import com.ardor3d.image.ImageDataType;
+import com.ardor3d.image.PixelDataType;
import com.ardor3d.image.TextureStoreFormat;
import com.ardor3d.image.Texture.ApplyMode;
import com.ardor3d.image.Texture.CombinerFunctionAlpha;
@@ -159,7 +159,7 @@
throw new IllegalArgumentException("Incorrect format set: " + format);
}
- public static int getGLPixelDataType(final ImageDataType type) {
+ public static int getGLPixelDataType(final PixelDataType type) {
switch (type) {
case Byte:
return GL.GL_BYTE;
Index: .classpath
===================================================================
--- .classpath (revision 63)
+++ .classpath (working copy)
@@ -3,7 +3,7 @@
-
-
+
+