# glGenArrays - This functionality is not available

Whenever I call glGenVertexArrays(), I get the following exception:

Exception in thread "main" java.lang.IllegalStateException: This functionality is not available. at org.lwjgl.system.Checks.checkFunctionality(Checks.java:36) at org.lwjgl.opengl.GL30.getInstance(GL30.java:651) at org.lwjgl.opengl.GL30.nglGenVertexArrays(GL30.java:3101) at org.lwjgl.opengl.GL30.glGenVertexArrays(GL30.java:3128) at me.package.name.ClassName.methodName(ClassName.java:ANY_LINE_NUMBER)

The operating system is OS X Yosemite 10.10.2, Java 7. I think that this problem is OS X specific.

Immediate mode drawing does work.

I am using LWJGL 3.

• OSX has his own Drivers and some serious problems, for example you can either use a modern OpenGL context, then you can't use legacy functionality, or you can use a legacy context, then you can't use modern functionality. Unfortunately i don't know if/how you can specify which version or mode (compat/core) you want in lwjgl. – tkausl Jul 26 '15 at 14:20

The glGenVertexArrays() interface was added to OpenGL core contexts in version 3.0, the same version in which immediate mode rendering was removed from OpenGL (although it had long since been deprecated, 3.0 is where it finally absolutely went away)
So you are correct. If immediate mode drawing works, then you are using an OpenGL context old enough that glGenVertexArrays() hasn't yet been added to the standard, and may therefore be unavailable.