Hi everyone,
I've been playing around with LWJGL lately, and currently I'm building a very primitive engine using LWJGL to make things a little easier. But a problem I have when I was working on the engine on my laptop is that Mr. Laptop should support VBO's, but my program crashes when I do. The graphics card is an Intel 965/963, and it supports GL 1.5.0. Since VBO's are part of the GL 1.5 specification, I thought it was safe to call glGenBuffers(). Well, looks like I was wrong. The program crashes, with the following stack trace:
Exception in thread "main" java.lang.IllegalStateException: Function is not supported
at org.lwjgl.BufferChecks.checkFunctionAddress(BufferChecks.java:64)
at org.lwjgl.opengl.GL15.glGenBuffers(GL15.java:100)
at scene.VBO.createBuffers(VBO.java:51)
at.......
What I'm doing at VBO:51 is:
(...)
IntBuffer handles = BufferUtils.createIntBuffer(2);
GL15.glGenBuffers(handles);
(...)
One handle for the vertex buffer, and one for the index buffer. But the thrown exception really indicates that the graphic drivers don't support VBO's, not that I'm doing something wrong, right?
Anyone knows how this is possible? Thanks in advance.
Intel drivers are evil, aren't they?
Use the ARB extensions instead. I've been able to use them on Intel 945 graphic chipsets just fine:
ARBVertexBufferObject is the class they're under.
Thanks for your reply.
About the evil-part: totally true. But to leave a part of GL's core specs unimplemented is just... amateurish, even for Intel :P. I'll try the ARB extension tomorrow, it's getting late here. I'll let you know if it worked, but thanks already.
I've just changed the code to use the ARB extension, and everything works fine now. Thanks for your help.
Do you or do you plan to use shaders ?
ATM I don't use shaders, but I think I will later.