JOGL VBO not available

Started by
4 comments, last by Shankem 13 years, 4 months ago
I was trying to use VBO to speed up my program, but I ran into a problem, when I tried to run the program I got a bunch of errors, probably most important was just this line:
Exception in thread "Thread-3" javax.media.opengl.GLException: javax.media.opengl.GLException: Method "glGenBuffers" not available
I was looking around and I saw some people saying to do:
System.out.println(gl.isExtensionAvailable("glGenBuffers"));
This printed out false. Then I tried:
System.out.println(gl.glGetString( GL.GL_VERSION ));
This printed out 1.1.0
Is this a problem with my graphics card driver, does it just not support VBO? I have up to date driver for my nvidia geforce 8600 gts.

Should I just switch to vertex arrays or is there a workaround for this?
Thanks.
Advertisement
Quote:Original post by Shankem
Is this a problem with my graphics card driver, does it just not support VBO? I have up to date driver for my nvidia geforce 8600 gts.
You are falling back to the ancient Microsoft software-based OpenGL implementation. Generally this indicates that your OpenGL drivers are not properly installed.

I would recommend uninstalling your graphics drivers, and manually installing the newest available drivers from NVidia's site.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

when using JOGL make sure u are requesting a OpenGL 2 context at a minimum

u need something like that

   GLProfile profile = GLProfile.get(GLProfile.GL2);   GLCapabilities capabilities = new GLCapabilities(profile);   GLCanvas c = new GLCanvas(capabilities);


also when u querry the context u have to get the version which implements the GL2 interface


   GL2 gl = GLContext.getCurrentGL().getGL2();
Wow, thanks you really saved me a lot of grief. It's working properly now. I'm just wondering though, presumably other people will have problems like this, should I be programming in alternate drawing methods or should I just check if GL.GL_VERSION is at least a certain version or something? If so what version, and should I just not allow users to run the game if they don't have that version at least.
Thanks.

EDIT: Maybe I'm missing libraries or something, but GL2 doesn't seem to be defined. I have jogl 1.1.1
what i do is that i request a minimum opengl version e.g. 2 because i want to use shaders.

Then the main difference between opengl 2 and 3 are that some extensions are granted in the 3rd version. In just querry every extension I want to use and do different according to the results different things.

e.g.
gl.isExtensionAvailable("GL_ARB_vertex_array_object");


when u want to support opengl 1 also u definitely have to do two different rendering paths. There is just so a big difference between this two versions.

A good solution would be to use the factory method pattern and so on to create renderobject who use different rendering approches for rendering them self or something like that.

EDIT:
Quote:
Maybe I'm missing libraries or something, but GL2 doesn't seem to be defined. I have jogl 1.1.1


ah yes u have to use JOGL 2 (still beta I think but works very well)

officell website

don't know if u already use NetBeans but they have a very nice JOGL plugin, which gives u projekt templates(ready to use buildscripts) GLSL editor ...
Oh, I saw jogl2 but I figured it would be safer not to use it since it's in beta. Also I use eclipse. Thanks for the info.

This topic is closed to new replies.

Advertisement