How to detect if video card won't be able to run a JME based game?

Hello again,

I am trying to figure out a way to inform users that their video card won't be able to run our JME based application. I can't figure a way to do this, has anyone else done something similar?

A couple of computers I tested were not able to run any JME application because the video card drivers were out of date, as soon as the drivers were updated the JME applications were working fine.

How would I go about detecting this problem in my code?



Anybody has any idea for this?

I try creating a Pbuffer and displaying a message if the Pbuffer was unable to be created.

                                 * Force the creation of a Pbuffer. If it is created the video card is good to run
                                 *, if exception is thrown then video card driver better be updated.
                                Pbuffer buff = new Pbuffer(1, 1, new PixelFormat(), null, null);
                        catch(Exception e)
                                DisplaySystem display = DisplaySystem.getDisplaySystem();
                                JOptionPane.showMessageDialog(splash, "Start up Fail!" +
                                                "nUpdate you video card driver for better luck next time"+

Current Video Card Info----" +
                                                "nDriver Provider " + display.getDisplayVendor()+
                                                "nDriver Adapter: " + display.getAdapter()+
                                                "nDriver Version: "+ display.getDriverVersion()+
                                                "nDriver Provider " + display.getDisplayVendor());                                                            

but the message was popping even for systems were I know for a fact that JME works.

It depends on what features you use. jME is designed to work correctly even with OpenGL1.1 which is supported on all platforms. However, if you use features like shaders in your app, you can check if they are supported using GLSLShaderObjectsState.isSupported(), for example.