Function is not supported

I’ve searched the forums but nothing in here relates to my video card…



I’m getting this:

[java]

java.lang.IllegalStateException: Function is not supported

at org.lwjgl.BufferChecks.checkFunctionAddress(BufferChecks.java:64)

at org.lwjgl.opengl.GL11.glAlphaFunc(GL11.java:562)

at com.jme3.renderer.lwjgl.LwjglRenderer.applyRenderState(LwjglRenderer.java:464)

at com.jme3.material.Material.render(Material.java:803)

at com.jme3.renderer.RenderManager.renderGeometry(RenderManager.java:434)

at com.jme3.renderer.queue.RenderQueue.renderGeometryList(RenderQueue.java:132)

at com.jme3.renderer.queue.RenderQueue.renderQueue(RenderQueue.java:183)

at com.jme3.renderer.RenderManager.renderViewPortQueues(RenderManager.java:575)

at com.jme3.renderer.RenderManager.flushQueue(RenderManager.java:555)

at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:718)

at com.jme3.renderer.RenderManager.render(RenderManager.java:739)

at com.madjack.games.sc.Base.update(Base.java:111)

at com.jme3.system.lwjgl.LwjglAbstractDisplay.runLoop(LwjglAbstractDisplay.java:146)

at com.jme3.system.lwjgl.LwjglDisplay.runLoop(LwjglDisplay.java:159)

at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:208)

at java.lang.Thread.run(Thread.java:662)

[/java]



The only problem here is that I have an nVidia GTX 480. Latest drivers (266.58). This thing support openGL 4.0.



This works well and generates no error:

[java]

@Override

public void start() {

if (settings == null) {

AppSettings gameSettings = new AppSettings(false);

gameSettings.setResolution(1280, 720);

// gameSettings.setResolution(1680, 1050);

// gameSettings.setFullscreen(true);

gameSettings.setTitle(“Stellar Conquest”);

gameSettings.setUseInput(true);

gameSettings.setFrameRate(120);

gameSettings.setRenderer(“LWJGL-OpenGL3”);

settings = gameSettings;

}

super.start();

setPauseOnLostFocus(false);

}

[/java]



I’m not sure exactly what is breaking, but if I use:

[java] gameSettings.setRenderer(“LWJGL-OpenGL2”);[/java]

it works flawlessly…



Suggestions?

You dont need to set a renderer type to use OpenGL3, only if you want to go downwards in compatibility (say use ogl2 explicitly on a ogl3 card). However this error should probably not occurr if you try to…

jME3 is not OpenGL3+ compatible yet. All shaders need to be ported to GLSL 3.30 and usage of alpha test needs to be removed (as you see above).

Well, if I comment out



[java] gameSettings.setRenderer(“LWJGL-OpenGL2”);[/java]



I get that:

[java]Exception in thread “main” java.lang.NullPointerException

at com.jme3.system.JmeSystem.newContext(JmeSystem.java:269)

at com.jme3.app.Application.start(Application.java:321)

at com.jme3.app.Application.start(Application.java:304)

at com.madjack.games.sc.Base.start(Base.java:94)

at com.madjack.games.sc.Base.main(Base.java:50)

Java Result: 1[/java]



Line 269 being:

[java] if (settings.getRenderer().equals(“NULL”)

|| contextType == JmeContext.Type.Headless){[/java]



Maybe it should be …toString().equals(“NULL”) ?

shrug



So, in short, if I don’t explicitly specify the renderer, it crashes. There’s nothing else in the start() method that is posted above.



For now I’ll use OpenGL2. At least I know why I had problems. :slight_smile: