Problem Loading Installable Client Driver (ICD) - Getting Microsoft's Generic

When I develop using JoGL in my IDE (Eclipse), I correctly load the Vendor-specific ICD. (Vendor = Intel, Version = GL Version 1.4). However, I am now packaging my code for release, and I am running outside of Eclipse. The same code now loads opengl32.dll, Microsoft’s “GDI Generic” 1.1 library. Is there some JoGL method I can invoke to correctly find / load the vendor-supplied ICD?

Thanks, in advance.

Can you post a small test case which shows the problem on your machine? There’s basically no way that you should get different results running inside or outside an IDE. My best guess is that you’re running with a different / older version of JOGL when outside Eclipse.

Ken is right that the IDE itself should not have any effect on the application, however, the differences between the environments might have. See my experiences here: http://www.java-gaming.org/forums/index.php?topic=15610.msg124300#msg124300 for an example where running the application from Eclipse resulted in much worse performance.

My code is pretty generic… I have a class:
public class Graph3dPlot extends GLJPanel implements GLEventListener {

The ctor does a:
public Graph3dPlot() {
super(getCapabilities());

The getCapabilities() does a:
private static GLCapabilities getCapabilities() {
GLCapabilities caps = new GLCapabilities();
caps.setDoubleBuffered(true);
caps.setHardwareAccelerated(true);
GLDrawableFactory factory = GLDrawableFactory.getFactory();
// Work around our GL Shared library versioning problem
@SuppressWarnings(“unused”)
boolean supportsPBuffer = factory.canCreateGLPbuffer();
return caps;
}

The GLDrawableFactor hack managed to work around the shared library issue on some machines. The Drawable would recognize that it supported PBuffer and pick the vendor specific (GL Version 1.4) library.

However, yesterday, I ran on a Desktop with an NVidia graphics card. The OpenGL libraries are there, but I still picked up the default Microsoft opengl32.dll (GL Version 1.1).

I tried to standardize my Eclipse environment and my vanilla-Java environment on Jre 1.5.0_11.

Thanks for the help.

I should also mention that I used listDLLs to verify that the identical versions of the DLLs were being loaded within in Eclipse and outside. The difference definitely seems to be in the capabilities / drawable / versioning / shared library resolution.

You didn’t mention before that you were using a GLJPanel. Could you please run your test case with -Djogl.debug.GLJPanel on the command line and post the output? If the output of -Djogl.debug isn’t too long, maybe you could post that instead.