JNIEXPORT void JNICALL Java_org_lwjgl_opengles_ANGLEFramebufferMultisample_initNativeStubs(JNIEnv *env, jclass clazz) {
	JavaMethodAndExtFunction functions[] = {
		{"nglRenderbufferStorageMultisampleANGLE", "(IIIII)V", (void *)&Java_org_lwjgl_opengles_ANGLEFramebufferMultisample_nglRenderbufferStorageMultisampleANGLE, "glRenderbufferStorageMultisampleANGLE", (void *)&glRenderbufferStorageMultisampleANGLE, false}
	};
	int num_functions = NUMFUNCTIONS(functions);
	extgl_InitializeClass(env, clazz, num_functions, functions);
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengles_OESBlendEquationSeparate_initNativeStubs(JNIEnv *env, jclass clazz) {
	JavaMethodAndExtFunction functions[] = {
		{"nglBlendEquationSeparateOES", "(II)V", (void *)&Java_org_lwjgl_opengles_OESBlendEquationSeparate_nglBlendEquationSeparateOES, "glBlendEquationSeparateOES", (void *)&glBlendEquationSeparateOES, false}
	};
	int num_functions = NUMFUNCTIONS(functions);
	extgl_InitializeClass(env, clazz, num_functions, functions);
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengles_EXTDiscardFramebuffer_initNativeStubs(JNIEnv *env, jclass clazz) {
	JavaMethodAndExtFunction functions[] = {
		{"nglDiscardFramebufferEXT", "(IIJ)V", (void *)&Java_org_lwjgl_opengles_EXTDiscardFramebuffer_nglDiscardFramebufferEXT, "glDiscardFramebufferEXT", (void *)&glDiscardFramebufferEXT, false}
	};
	int num_functions = NUMFUNCTIONS(functions);
	extgl_InitializeClass(env, clazz, num_functions, functions);
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengles_OESEGLImageExternal_initNativeStubs(JNIEnv *env, jclass clazz) {
	JavaMethodAndExtFunction functions[] = {
		{"nglEGLImageTargetTexture2DOES", "(IJ)V", (void *)&Java_org_lwjgl_opengles_OESEGLImageExternal_nglEGLImageTargetTexture2DOES, "glEGLImageTargetTexture2DOES", (void *)&glEGLImageTargetTexture2DOES, false}
	};
	int num_functions = NUMFUNCTIONS(functions);
	extgl_InitializeClass(env, clazz, num_functions, functions);
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengles_NVSystemTime_initNativeStubs(JNIEnv *env, jclass clazz) {
	JavaMethodAndExtFunction functions[] = {
		{"nglGetSystemTimeFrequencyNV", "()J", (void *)&Java_org_lwjgl_opengles_NVSystemTime_nglGetSystemTimeFrequencyNV, "glGetSystemTimeFrequencyNV", (void *)&glGetSystemTimeFrequencyNV, false},
		{"nglGetSystemTimeNV", "()J", (void *)&Java_org_lwjgl_opengles_NVSystemTime_nglGetSystemTimeNV, "glGetSystemTimeNV", (void *)&glGetSystemTimeNV, false}
	};
	int num_functions = NUMFUNCTIONS(functions);
	extgl_InitializeClass(env, clazz, num_functions, functions);
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengles_ARBDrawBuffers_initNativeStubs(JNIEnv *env, jclass clazz) {
	JavaMethodAndExtFunction functions[] = {
		{"nglDrawBuffersARB", "(IJ)V", (void *)&Java_org_lwjgl_opengles_ARBDrawBuffers_nglDrawBuffersARB, "glDrawBuffersARB", (void *)&glDrawBuffersARB, false},

	};
	int num_functions = NUMFUNCTIONS(functions);
	extgl_InitializeClass(env, clazz, num_functions, functions);
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengles_QCOMTiledRendering_initNativeStubs(JNIEnv *env, jclass clazz) {
	JavaMethodAndExtFunction functions[] = {
		{"nglStartTilingQCOM", "(IIIII)V", (void *)&Java_org_lwjgl_opengles_QCOMTiledRendering_nglStartTilingQCOM, "glStartTilingQCOM", (void *)&glStartTilingQCOM, false},
		{"nglEndTilingQCOM", "(I)V", (void *)&Java_org_lwjgl_opengles_QCOMTiledRendering_nglEndTilingQCOM, "glEndTilingQCOM", (void *)&glEndTilingQCOM, false}
	};
	int num_functions = NUMFUNCTIONS(functions);
	extgl_InitializeClass(env, clazz, num_functions, functions);
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengles_NVCoverageSample_initNativeStubs(JNIEnv *env, jclass clazz) {
	JavaMethodAndExtFunction functions[] = {
		{"nglCoverageMaskNV", "(Z)V", (void *)&Java_org_lwjgl_opengles_NVCoverageSample_nglCoverageMaskNV, "glCoverageMaskNV", (void *)&glCoverageMaskNV, false},
		{"nglCoverageOperationNV", "(I)V", (void *)&Java_org_lwjgl_opengles_NVCoverageSample_nglCoverageOperationNV, "glCoverageOperationNV", (void *)&glCoverageOperationNV, false}
	};
	int num_functions = NUMFUNCTIONS(functions);
	extgl_InitializeClass(env, clazz, num_functions, functions);
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengles_OESMapbuffer_initNativeStubs(JNIEnv *env, jclass clazz) {
	JavaMethodAndExtFunction functions[] = {
		{"nglGetBufferPointervOES", "(IIJLjava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;", (void *)&Java_org_lwjgl_opengles_OESMapbuffer_nglGetBufferPointervOES, "glGetBufferPointervOES", (void *)&glGetBufferPointervOES, false},
		{"nglMapBufferOES", "(IIJLjava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;", (void *)&Java_org_lwjgl_opengles_OESMapbuffer_nglMapBufferOES, "glMapBufferOES", (void *)&glMapBufferOES, false},
		{"nglUnmapBufferOES", "(I)Z", (void *)&Java_org_lwjgl_opengles_OESMapbuffer_nglUnmapBufferOES, "glUnmapBufferOES", (void *)&glUnmapBufferOES, false}
	};
	int num_functions = NUMFUNCTIONS(functions);
	extgl_InitializeClass(env, clazz, num_functions, functions);
}
JNIEXPORT void JNICALL Java_org_lwjgl_openal_AL10_initNativeStubs(JNIEnv *env, jclass clazz) {
	JavaMethodAndExtFunction functions[] = {
		{"nalEnable", "(I)V", (void *)&Java_org_lwjgl_openal_AL10_nalEnable, "alEnable", (void *)&alEnable},
		{"nalDisable", "(I)V", (void *)&Java_org_lwjgl_openal_AL10_nalDisable, "alDisable", (void *)&alDisable},
		{"nalIsEnabled", "(I)Z", (void *)&Java_org_lwjgl_openal_AL10_nalIsEnabled, "alIsEnabled", (void *)&alIsEnabled},
		{"nalGetBoolean", "(I)Z", (void *)&Java_org_lwjgl_openal_AL10_nalGetBoolean, "alGetBoolean", (void *)&alGetBoolean},
		{"nalGetInteger", "(I)I", (void *)&Java_org_lwjgl_openal_AL10_nalGetInteger, "alGetInteger", (void *)&alGetInteger},
		{"nalGetFloat", "(I)F", (void *)&Java_org_lwjgl_openal_AL10_nalGetFloat, "alGetFloat", (void *)&alGetFloat},
		{"nalGetDouble", "(I)D", (void *)&Java_org_lwjgl_openal_AL10_nalGetDouble, "alGetDouble", (void *)&alGetDouble},
		{"nalGetIntegerv", "(ILjava/nio/IntBuffer;I)V", (void *)&Java_org_lwjgl_openal_AL10_nalGetIntegerv, "alGetIntegerv", (void *)&alGetIntegerv},
		{"nalGetFloatv", "(ILjava/nio/FloatBuffer;I)V", (void *)&Java_org_lwjgl_openal_AL10_nalGetFloatv, "alGetFloatv", (void *)&alGetFloatv},
		{"nalGetDoublev", "(ILjava/nio/DoubleBuffer;I)V", (void *)&Java_org_lwjgl_openal_AL10_nalGetDoublev, "alGetDoublev", (void *)&alGetDoublev},
		{"alGetString", "(I)Ljava/lang/String;", (void *)&Java_org_lwjgl_openal_AL10_alGetString, "alGetString", (void *)&alGetString},
		{"alGetError", "()I", (void *)&Java_org_lwjgl_openal_AL10_alGetError, "alGetError", (void *)&alGetError},
		{"nalIsExtensionPresent", "(Ljava/lang/String;)Z", (void *)&Java_org_lwjgl_openal_AL10_nalIsExtensionPresent, "alIsExtensionPresent", (void *)&alIsExtensionPresent},
		{"nalGetEnumValue", "(Ljava/lang/String;)I", (void *)&Java_org_lwjgl_openal_AL10_nalGetEnumValue, "alGetEnumValue", (void *)&alGetEnumValue},
		{"nalListeneri", "(II)V", (void *)&Java_org_lwjgl_openal_AL10_nalListeneri, "alListeneri", (void *)&alListeneri},
		{"nalListenerf", "(IF)V", (void *)&Java_org_lwjgl_openal_AL10_nalListenerf, "alListenerf", (void *)&alListenerf},
		{"nalListenerfv", "(ILjava/nio/FloatBuffer;I)V", (void *)&Java_org_lwjgl_openal_AL10_nalListenerfv, "alListenerfv", (void *)&alListenerfv},
		{"nalListener3f", "(IFFF)V", (void *)&Java_org_lwjgl_openal_AL10_nalListener3f, "alListener3f", (void *)&alListener3f},
		{"nalGetListeneri", "(I)I", (void *)&Java_org_lwjgl_openal_AL10_nalGetListeneri, "alGetListeneri", (void *)&alGetListeneri},
		{"nalGetListenerf", "(I)F", (void *)&Java_org_lwjgl_openal_AL10_nalGetListenerf, "alGetListenerf", (void *)&alGetListenerf},
		{"nalGetListenerfv", "(ILjava/nio/FloatBuffer;I)V", (void *)&Java_org_lwjgl_openal_AL10_nalGetListenerfv, "alGetListenerfv", (void *)&alGetListenerfv},
		{"nalGenSources", "(ILjava/nio/IntBuffer;I)V", (void *)&Java_org_lwjgl_openal_AL10_nalGenSources, "alGenSources", (void *)&alGenSources},
		{"nalDeleteSources", "(ILjava/nio/IntBuffer;I)V", (void *)&Java_org_lwjgl_openal_AL10_nalDeleteSources, "alDeleteSources", (void *)&alDeleteSources},
		{"nalIsSource", "(I)Z", (void *)&Java_org_lwjgl_openal_AL10_nalIsSource, "alIsSource", (void *)&alIsSource},
		{"nalSourcei", "(III)V", (void *)&Java_org_lwjgl_openal_AL10_nalSourcei, "alSourcei", (void *)&alSourcei},
		{"nalSourcef", "(IIF)V", (void *)&Java_org_lwjgl_openal_AL10_nalSourcef, "alSourcef", (void *)&alSourcef},
		{"nalSourcefv", "(IILjava/nio/FloatBuffer;I)V", (void *)&Java_org_lwjgl_openal_AL10_nalSourcefv, "alSourcefv", (void *)&alSourcefv},
		{"nalSource3f", "(IIFFF)V", (void *)&Java_org_lwjgl_openal_AL10_nalSource3f, "alSource3f", (void *)&alSource3f},
		{"nalGetSourcei", "(II)I", (void *)&Java_org_lwjgl_openal_AL10_nalGetSourcei, "alGetSourcei", (void *)&alGetSourcei},
		{"nalGetSourcef", "(II)F", (void *)&Java_org_lwjgl_openal_AL10_nalGetSourcef, "alGetSourcef", (void *)&alGetSourcef},
		{"nalGetSourcefv", "(IILjava/nio/FloatBuffer;I)V", (void *)&Java_org_lwjgl_openal_AL10_nalGetSourcefv, "alGetSourcefv", (void *)&alGetSourcefv},
		{"nalSourcePlayv", "(ILjava/nio/IntBuffer;I)V", (void *)&Java_org_lwjgl_openal_AL10_nalSourcePlayv, "alSourcePlayv", (void *)&alSourcePlayv},
		{"nalSourcePausev", "(ILjava/nio/IntBuffer;I)V", (void *)&Java_org_lwjgl_openal_AL10_nalSourcePausev, "alSourcePausev", (void *)&alSourcePausev},
		{"nalSourceStopv", "(ILjava/nio/IntBuffer;I)V", (void *)&Java_org_lwjgl_openal_AL10_nalSourceStopv, "alSourceStopv", (void *)&alSourceStopv},
		{"nalSourceRewindv", "(ILjava/nio/IntBuffer;I)V", (void *)&Java_org_lwjgl_openal_AL10_nalSourceRewindv, "alSourceRewindv", (void *)&alSourceRewindv},
		{"nalSourcePlay", "(I)V", (void *)&Java_org_lwjgl_openal_AL10_nalSourcePlay, "alSourcePlay", (void *)&alSourcePlay},
		{"nalSourcePause", "(I)V", (void *)&Java_org_lwjgl_openal_AL10_nalSourcePause, "alSourcePause", (void *)&alSourcePause},
		{"nalSourceStop", "(I)V", (void *)&Java_org_lwjgl_openal_AL10_nalSourceStop, "alSourceStop", (void *)&alSourceStop},
		{"nalSourceRewind", "(I)V", (void *)&Java_org_lwjgl_openal_AL10_nalSourceRewind, "alSourceRewind", (void *)&alSourceRewind},
		{"nalGenBuffers", "(ILjava/nio/IntBuffer;I)V", (void *)&Java_org_lwjgl_openal_AL10_nalGenBuffers, "alGenBuffers", (void *)&alGenBuffers},
		{"nalDeleteBuffers", "(ILjava/nio/IntBuffer;I)V", (void *)&Java_org_lwjgl_openal_AL10_nalDeleteBuffers, "alDeleteBuffers", (void *)&alDeleteBuffers},
		{"nalIsBuffer", "(I)Z", (void *)&Java_org_lwjgl_openal_AL10_nalIsBuffer, "alIsBuffer", (void *)&alIsBuffer},
		{"nalBufferData", "(IILjava/nio/Buffer;III)V", (void *)&Java_org_lwjgl_openal_AL10_nalBufferData, "alBufferData", (void *)&alBufferData},
		{"nalGetBufferi", "(II)I", (void *)&Java_org_lwjgl_openal_AL10_nalGetBufferi, "alGetBufferi", (void *)&alGetBufferi},
		{"nalGetBufferf", "(II)F", (void *)&Java_org_lwjgl_openal_AL10_nalGetBufferf, "alGetBufferf", (void *)&alGetBufferf},
		{"nalSourceQueueBuffers", "(IILjava/nio/IntBuffer;I)V", (void *)&Java_org_lwjgl_openal_AL10_nalSourceQueueBuffers, "alSourceQueueBuffers", (void *)&alSourceQueueBuffers},
		{"nalSourceUnqueueBuffers", "(IILjava/nio/IntBuffer;I)V", (void *)&Java_org_lwjgl_openal_AL10_nalSourceUnqueueBuffers, "alSourceUnqueueBuffers", (void *)&alSourceUnqueueBuffers},
		{"nalDistanceModel", "(I)V", (void *)&Java_org_lwjgl_openal_AL10_nalDistanceModel, "alDistanceModel", (void *)&alDistanceModel},
		{"nalDopplerFactor", "(F)V", (void *)&Java_org_lwjgl_openal_AL10_nalDopplerFactor, "alDopplerFactor", (void *)&alDopplerFactor},
		{"nalDopplerVelocity", "(F)V", (void *)&Java_org_lwjgl_openal_AL10_nalDopplerVelocity, "alDopplerVelocity", (void *)&alDopplerVelocity}
	};
	int num_functions = NUMFUNCTIONS(functions);
	extal_InitializeClass(env, clazz, num_functions, functions);
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengles_OESVertexArrayObject_initNativeStubs(JNIEnv *env, jclass clazz) {
	JavaMethodAndExtFunction functions[] = {
		{"nglBindVertexArrayOES", "(I)V", (void *)&Java_org_lwjgl_opengles_OESVertexArrayObject_nglBindVertexArrayOES, "glBindVertexArrayOES", (void *)&glBindVertexArrayOES, false},
		{"nglDeleteVertexArraysOES", "(IJ)V", (void *)&Java_org_lwjgl_opengles_OESVertexArrayObject_nglDeleteVertexArraysOES, "glDeleteVertexArraysOES", (void *)&glDeleteVertexArraysOES, false},
		{"nglGenVertexArraysOES", "(IJ)V", (void *)&Java_org_lwjgl_opengles_OESVertexArrayObject_nglGenVertexArraysOES, "glGenVertexArraysOES", (void *)&glGenVertexArraysOES, false},
		{"nglIsVertexArrayOES", "(I)Z", (void *)&Java_org_lwjgl_opengles_OESVertexArrayObject_nglIsVertexArrayOES, "glIsVertexArrayOES", (void *)&glIsVertexArrayOES, false}
	};
	int num_functions = NUMFUNCTIONS(functions);
	extgl_InitializeClass(env, clazz, num_functions, functions);
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengles_QCOMExtendedGet2_initNativeStubs(JNIEnv *env, jclass clazz) {
	JavaMethodAndExtFunction functions[] = {
		{"nglExtGetShadersQCOM", "(JIJ)V", (void *)&Java_org_lwjgl_opengles_QCOMExtendedGet2_nglExtGetShadersQCOM, "glExtGetShadersQCOM", (void *)&glExtGetShadersQCOM, false},
		{"nglExtGetProgramsQCOM", "(JIJ)V", (void *)&Java_org_lwjgl_opengles_QCOMExtendedGet2_nglExtGetProgramsQCOM, "glExtGetProgramsQCOM", (void *)&glExtGetProgramsQCOM, false},
		{"nglExtIsProgramBinaryQCOM", "(I)Z", (void *)&Java_org_lwjgl_opengles_QCOMExtendedGet2_nglExtIsProgramBinaryQCOM, "glExtIsProgramBinaryQCOM", (void *)&glExtIsProgramBinaryQCOM, false},
		{"nglExtGetProgramBinarySourceQCOM", "(IIJJ)V", (void *)&Java_org_lwjgl_opengles_QCOMExtendedGet2_nglExtGetProgramBinarySourceQCOM, "glExtGetProgramBinarySourceQCOM", (void *)&glExtGetProgramBinarySourceQCOM, false}
	};
	int num_functions = NUMFUNCTIONS(functions);
	extgl_InitializeClass(env, clazz, num_functions, functions);
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengles_EGLKHRFenceSync_initNativeStubs(JNIEnv *env, jclass clazz) {
	JavaMethodAndExtFunction functions[] = {
		{"neglCreateSyncKHR", "(JIJ)J", (void *)&Java_org_lwjgl_opengles_EGLKHRFenceSync_neglCreateSyncKHR, "eglCreateSyncKHR", (void *)&eglCreateSyncKHR, false},
		{"neglDestroySyncKHR", "(JJ)Z", (void *)&Java_org_lwjgl_opengles_EGLKHRFenceSync_neglDestroySyncKHR, "eglDestroySyncKHR", (void *)&eglDestroySyncKHR, false},
		{"neglClientWaitSyncKHR", "(JJIJ)I", (void *)&Java_org_lwjgl_opengles_EGLKHRFenceSync_neglClientWaitSyncKHR, "eglClientWaitSyncKHR", (void *)&eglClientWaitSyncKHR, false},
		{"neglGetSyncAttribKHR", "(JJIJ)Z", (void *)&Java_org_lwjgl_opengles_EGLKHRFenceSync_neglGetSyncAttribKHR, "eglGetSyncAttribKHR", (void *)&eglGetSyncAttribKHR, false}
	};
	int num_functions = NUMFUNCTIONS(functions);
	extgl_InitializeClass(env, clazz, num_functions, functions);
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengles_EXTMultiviewDrawBuffers_initNativeStubs(JNIEnv *env, jclass clazz) {
	JavaMethodAndExtFunction functions[] = {
		{"nglReadBufferIndexedEXT", "(II)V", (void *)&Java_org_lwjgl_opengles_EXTMultiviewDrawBuffers_nglReadBufferIndexedEXT, "glReadBufferIndexedEXT", (void *)&glReadBufferIndexedEXT, false},
		{"nglDrawBuffersIndexedEXT", "(IJJ)V", (void *)&Java_org_lwjgl_opengles_EXTMultiviewDrawBuffers_nglDrawBuffersIndexedEXT, "glDrawBuffersIndexedEXT", (void *)&glDrawBuffersIndexedEXT, false},
		{"nglGetIntegeri_vEXT", "(IIJ)V", (void *)&Java_org_lwjgl_opengles_EXTMultiviewDrawBuffers_nglGetIntegeri_1vEXT, "glGetIntegeri_vEXT", (void *)&glGetIntegeri_vEXT, false},

	};
	int num_functions = NUMFUNCTIONS(functions);
	extgl_InitializeClass(env, clazz, num_functions, functions);
}
JNIEXPORT void JNICALL Java_org_lwjgl_openal_ALC11_initNativeStubs(JNIEnv *env, jclass clazz) {
	JavaMethodAndExtFunction functions[] = {
		{"nalcCaptureOpenDevice", "(JIII)J", (void*)&Java_org_lwjgl_openal_ALC11_nalcCaptureOpenDevice, "alcCaptureOpenDevice", (void*)&alcCaptureOpenDevice, false},
		{"nalcCaptureCloseDevice", "(J)Z", (void*)&Java_org_lwjgl_openal_ALC11_nalcCaptureCloseDevice, "alcCaptureCloseDevice", (void*)&alcCaptureCloseDevice, false},
		{"nalcCaptureStart", "(J)V", (void*)&Java_org_lwjgl_openal_ALC11_nalcCaptureStart, "alcCaptureStart", (void*)&alcCaptureStart, false},
		{"nalcCaptureStop", "(J)V", (void*)&Java_org_lwjgl_openal_ALC11_nalcCaptureStop, "alcCaptureStop", (void*)&alcCaptureStop, false},
		{"nalcCaptureSamples", "(JJI)V", (void*)&Java_org_lwjgl_openal_ALC11_nalcCaptureSamples, "alcCaptureSamples", (void*)&alcCaptureSamples, false}
	};
	int num_functions = NUMFUNCTIONS(functions);
	extal_InitializeClass(env, clazz, num_functions, functions);
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengles_NVGetTexImage_initNativeStubs(JNIEnv *env, jclass clazz) {
	JavaMethodAndExtFunction functions[] = {
		{"nglGetTexImageNV", "(IIIIJ)V", (void *)&Java_org_lwjgl_opengles_NVGetTexImage_nglGetTexImageNV, "glGetTexImageNV", (void *)&glGetTexImageNV, false},
		{"nglGetCompressedTexImageNV", "(IIJ)V", (void *)&Java_org_lwjgl_opengles_NVGetTexImage_nglGetCompressedTexImageNV, "glGetCompressedTexImageNV", (void *)&glGetCompressedTexImageNV, false},
		{"nglGetTexLevelParameterfvNV", "(IIIJ)V", (void *)&Java_org_lwjgl_opengles_NVGetTexImage_nglGetTexLevelParameterfvNV, "glGetTexLevelParameterfvNV", (void *)&glGetTexLevelParameterfvNV, false},
		{"nglGetTexLevelParameterivNV", "(IIIJ)V", (void *)&Java_org_lwjgl_opengles_NVGetTexImage_nglGetTexLevelParameterivNV, "glGetTexLevelParameterivNV", (void *)&glGetTexLevelParameterivNV, false},

	};
	int num_functions = NUMFUNCTIONS(functions);
	extgl_InitializeClass(env, clazz, num_functions, functions);
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengles_EXTTextureStorage_initNativeStubs(JNIEnv *env, jclass clazz) {
	JavaMethodAndExtFunction functions[] = {
		{"nglTexStorage1DEXT", "(IIII)V", (void *)&Java_org_lwjgl_opengles_EXTTextureStorage_nglTexStorage1DEXT, "glTexStorage1DEXT", (void *)&glTexStorage1DEXT, false},
		{"nglTexStorage2DEXT", "(IIIII)V", (void *)&Java_org_lwjgl_opengles_EXTTextureStorage_nglTexStorage2DEXT, "glTexStorage2DEXT", (void *)&glTexStorage2DEXT, false},
		{"nglTexStorage3DEXT", "(IIIIII)V", (void *)&Java_org_lwjgl_opengles_EXTTextureStorage_nglTexStorage3DEXT, "glTexStorage3DEXT", (void *)&glTexStorage3DEXT, false},
		{"nglTextureStorage1DEXT", "(IIIII)V", (void *)&Java_org_lwjgl_opengles_EXTTextureStorage_nglTextureStorage1DEXT, "glTextureStorage1DEXT", (void *)&glTextureStorage1DEXT, false},
		{"nglTextureStorage2DEXT", "(IIIIII)V", (void *)&Java_org_lwjgl_opengles_EXTTextureStorage_nglTextureStorage2DEXT, "glTextureStorage2DEXT", (void *)&glTextureStorage2DEXT, false},
		{"nglTextureStorage3DEXT", "(IIIIIII)V", (void *)&Java_org_lwjgl_opengles_EXTTextureStorage_nglTextureStorage3DEXT, "glTextureStorage3DEXT", (void *)&glTextureStorage3DEXT, false}
	};
	int num_functions = NUMFUNCTIONS(functions);
	extgl_InitializeClass(env, clazz, num_functions, functions);
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengles_OESTexture3D_initNativeStubs(JNIEnv *env, jclass clazz) {
    JavaMethodAndExtFunction functions[] = {
        {"nglTexImage3DOES", "(IIIIIIIIIJ)V", (void *)&Java_org_lwjgl_opengles_OESTexture3D_nglTexImage3DOES, "glTexImage3DOES", (void *)&glTexImage3DOES, false},
        {"nglTexSubImage3DOES", "(IIIIIIIIIIJ)V", (void *)&Java_org_lwjgl_opengles_OESTexture3D_nglTexSubImage3DOES, "glTexSubImage3DOES", (void *)&glTexSubImage3DOES, false},
        {"nglCopyTexSubImage3DOES", "(IIIIIIIII)V", (void *)&Java_org_lwjgl_opengles_OESTexture3D_nglCopyTexSubImage3DOES, "glCopyTexSubImage3DOES", (void *)&glCopyTexSubImage3DOES, false},
        {"nglCompressedTexImage3DOES", "(IIIIIIIIJ)V", (void *)&Java_org_lwjgl_opengles_OESTexture3D_nglCompressedTexImage3DOES, "glCompressedTexImage3DOES", (void *)&glCompressedTexImage3DOES, false},
        {"nglCompressedTexSubImage3DOES", "(IIIIIIIIIIJ)V", (void *)&Java_org_lwjgl_opengles_OESTexture3D_nglCompressedTexSubImage3DOES, "glCompressedTexSubImage3DOES", (void *)&glCompressedTexSubImage3DOES, false},
        {"nglFramebufferTexture3DOES", "(IIIIII)V", (void *)&Java_org_lwjgl_opengles_OESTexture3D_nglFramebufferTexture3DOES, "glFramebufferTexture3DOES", (void *)&glFramebufferTexture3DOES, false}
    };
    int num_functions = NUMFUNCTIONS(functions);
    extgl_InitializeClass(env, clazz, num_functions, functions);
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengles_EXTOcclusionQueryBoolean_initNativeStubs(JNIEnv *env, jclass clazz) {
	JavaMethodAndExtFunction functions[] = {
		{"nglGenQueriesEXT", "(IJ)V", (void *)&Java_org_lwjgl_opengles_EXTOcclusionQueryBoolean_nglGenQueriesEXT, "glGenQueriesEXT", (void *)&glGenQueriesEXT, false},
		{"nglDeleteQueriesEXT", "(IJ)V", (void *)&Java_org_lwjgl_opengles_EXTOcclusionQueryBoolean_nglDeleteQueriesEXT, "glDeleteQueriesEXT", (void *)&glDeleteQueriesEXT, false},
		{"nglIsQueryEXT", "(I)Z", (void *)&Java_org_lwjgl_opengles_EXTOcclusionQueryBoolean_nglIsQueryEXT, "glIsQueryEXT", (void *)&glIsQueryEXT, false},
		{"nglBeginQueryEXT", "(II)V", (void *)&Java_org_lwjgl_opengles_EXTOcclusionQueryBoolean_nglBeginQueryEXT, "glBeginQueryEXT", (void *)&glBeginQueryEXT, false},
		{"nglEndQueryEXT", "(I)V", (void *)&Java_org_lwjgl_opengles_EXTOcclusionQueryBoolean_nglEndQueryEXT, "glEndQueryEXT", (void *)&glEndQueryEXT, false},
		{"nglGetQueryivEXT", "(IIJ)V", (void *)&Java_org_lwjgl_opengles_EXTOcclusionQueryBoolean_nglGetQueryivEXT, "glGetQueryivEXT", (void *)&glGetQueryivEXT, false},
		{"nglGetQueryObjectuivEXT", "(IIJ)V", (void *)&Java_org_lwjgl_opengles_EXTOcclusionQueryBoolean_nglGetQueryObjectuivEXT, "glGetQueryObjectuivEXT", (void *)&glGetQueryObjectuivEXT, false},

	};
	int num_functions = NUMFUNCTIONS(functions);
	extgl_InitializeClass(env, clazz, num_functions, functions);
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengles_KHRDebug_initNativeStubs(JNIEnv *env, jclass clazz) {
	JavaMethodAndExtFunction functions[] = {
		{"nglDebugMessageControl", "(IIIIJZ)V", (void *)&Java_org_lwjgl_opengles_KHRDebug_nglDebugMessageControl, "glDebugMessageControl", (void *)&glDebugMessageControl, false},
		{"nglDebugMessageInsert", "(IIIIIJ)V", (void *)&Java_org_lwjgl_opengles_KHRDebug_nglDebugMessageInsert, "glDebugMessageInsert", (void *)&glDebugMessageInsert, false},
		{"nglDebugMessageCallback", "(JJ)V", (void *)&Java_org_lwjgl_opengles_KHRDebug_nglDebugMessageCallback, "glDebugMessageCallback", (void *)&glDebugMessageCallback, false},
		{"nglGetDebugMessageLog", "(IIJJJJJJ)I", (void *)&Java_org_lwjgl_opengles_KHRDebug_nglGetDebugMessageLog, "glGetDebugMessageLog", (void *)&glGetDebugMessageLog, false},
		{"nglPushDebugGroup", "(IIIJ)V", (void *)&Java_org_lwjgl_opengles_KHRDebug_nglPushDebugGroup, "glPushDebugGroup", (void *)&glPushDebugGroup, false},
		{"nglPopDebugGroup", "()V", (void *)&Java_org_lwjgl_opengles_KHRDebug_nglPopDebugGroup, "glPopDebugGroup", (void *)&glPopDebugGroup, false},
		{"nglObjectLabel", "(IIIJ)V", (void *)&Java_org_lwjgl_opengles_KHRDebug_nglObjectLabel, "glObjectLabel", (void *)&glObjectLabel, false},
		{"nglGetObjectLabel", "(IIIJJ)V", (void *)&Java_org_lwjgl_opengles_KHRDebug_nglGetObjectLabel, "glGetObjectLabel", (void *)&glGetObjectLabel, false},
		{"nglObjectPtrLabel", "(JIJ)V", (void *)&Java_org_lwjgl_opengles_KHRDebug_nglObjectPtrLabel, "glObjectPtrLabel", (void *)&glObjectPtrLabel, false},
		{"nglGetObjectPtrLabel", "(JIJJ)V", (void *)&Java_org_lwjgl_opengles_KHRDebug_nglGetObjectPtrLabel, "glGetObjectPtrLabel", (void *)&glGetObjectPtrLabel, false},

	};
	int num_functions = NUMFUNCTIONS(functions);
	extgl_InitializeClass(env, clazz, num_functions, functions);
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengles_AMDPerformanceMonitor_initNativeStubs(JNIEnv *env, jclass clazz) {
	JavaMethodAndExtFunction functions[] = {
		{"nglGetPerfMonitorGroupsAMD", "(JIJ)V", (void *)&Java_org_lwjgl_opengles_AMDPerformanceMonitor_nglGetPerfMonitorGroupsAMD, "glGetPerfMonitorGroupsAMD", (void *)&glGetPerfMonitorGroupsAMD, false},
		{"nglGetPerfMonitorCountersAMD", "(IJJIJ)V", (void *)&Java_org_lwjgl_opengles_AMDPerformanceMonitor_nglGetPerfMonitorCountersAMD, "glGetPerfMonitorCountersAMD", (void *)&glGetPerfMonitorCountersAMD, false},
		{"nglGetPerfMonitorGroupStringAMD", "(IIJJ)V", (void *)&Java_org_lwjgl_opengles_AMDPerformanceMonitor_nglGetPerfMonitorGroupStringAMD, "glGetPerfMonitorGroupStringAMD", (void *)&glGetPerfMonitorGroupStringAMD, false},
		{"nglGetPerfMonitorCounterStringAMD", "(IIIJJ)V", (void *)&Java_org_lwjgl_opengles_AMDPerformanceMonitor_nglGetPerfMonitorCounterStringAMD, "glGetPerfMonitorCounterStringAMD", (void *)&glGetPerfMonitorCounterStringAMD, false},
		{"nglGetPerfMonitorCounterInfoAMD", "(IIIJ)V", (void *)&Java_org_lwjgl_opengles_AMDPerformanceMonitor_nglGetPerfMonitorCounterInfoAMD, "glGetPerfMonitorCounterInfoAMD", (void *)&glGetPerfMonitorCounterInfoAMD, false},
		{"nglGenPerfMonitorsAMD", "(IJ)V", (void *)&Java_org_lwjgl_opengles_AMDPerformanceMonitor_nglGenPerfMonitorsAMD, "glGenPerfMonitorsAMD", (void *)&glGenPerfMonitorsAMD, false},
		{"nglDeletePerfMonitorsAMD", "(IJ)V", (void *)&Java_org_lwjgl_opengles_AMDPerformanceMonitor_nglDeletePerfMonitorsAMD, "glDeletePerfMonitorsAMD", (void *)&glDeletePerfMonitorsAMD, false},
		{"nglSelectPerfMonitorCountersAMD", "(IZIIJ)V", (void *)&Java_org_lwjgl_opengles_AMDPerformanceMonitor_nglSelectPerfMonitorCountersAMD, "glSelectPerfMonitorCountersAMD", (void *)&glSelectPerfMonitorCountersAMD, false},
		{"nglBeginPerfMonitorAMD", "(I)V", (void *)&Java_org_lwjgl_opengles_AMDPerformanceMonitor_nglBeginPerfMonitorAMD, "glBeginPerfMonitorAMD", (void *)&glBeginPerfMonitorAMD, false},
		{"nglEndPerfMonitorAMD", "(I)V", (void *)&Java_org_lwjgl_opengles_AMDPerformanceMonitor_nglEndPerfMonitorAMD, "glEndPerfMonitorAMD", (void *)&glEndPerfMonitorAMD, false},
		{"nglGetPerfMonitorCounterDataAMD", "(IIIJJ)V", (void *)&Java_org_lwjgl_opengles_AMDPerformanceMonitor_nglGetPerfMonitorCounterDataAMD, "glGetPerfMonitorCounterDataAMD", (void *)&glGetPerfMonitorCounterDataAMD, false},

	};
	int num_functions = NUMFUNCTIONS(functions);
	extgl_InitializeClass(env, clazz, num_functions, functions);
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengles_NVDrawPath_initNativeStubs(JNIEnv *env, jclass clazz) {
	JavaMethodAndExtFunction functions[] = {
		{"nglCreatePathNV", "(IIJ)I", (void *)&Java_org_lwjgl_opengles_NVDrawPath_nglCreatePathNV, "glCreatePathNV", (void *)&glCreatePathNV, false},
		{"nglDeletePathNV", "(I)V", (void *)&Java_org_lwjgl_opengles_NVDrawPath_nglDeletePathNV, "glDeletePathNV", (void *)&glDeletePathNV, false},
		{"nglPathVerticesNV", "(IJ)V", (void *)&Java_org_lwjgl_opengles_NVDrawPath_nglPathVerticesNV, "glPathVerticesNV", (void *)&glPathVerticesNV, false},
		{"nglPathParameterfNV", "(IIF)V", (void *)&Java_org_lwjgl_opengles_NVDrawPath_nglPathParameterfNV, "glPathParameterfNV", (void *)&glPathParameterfNV, false},
		{"nglPathParameteriNV", "(III)V", (void *)&Java_org_lwjgl_opengles_NVDrawPath_nglPathParameteriNV, "glPathParameteriNV", (void *)&glPathParameteriNV, false},
		{"nglCreatePathProgramNV", "()I", (void *)&Java_org_lwjgl_opengles_NVDrawPath_nglCreatePathProgramNV, "glCreatePathProgramNV", (void *)&glCreatePathProgramNV, false},
		{"nglPathMatrixNV", "(IJ)V", (void *)&Java_org_lwjgl_opengles_NVDrawPath_nglPathMatrixNV, "glPathMatrixNV", (void *)&glPathMatrixNV, false},
		{"nglDrawPathNV", "(II)V", (void *)&Java_org_lwjgl_opengles_NVDrawPath_nglDrawPathNV, "glDrawPathNV", (void *)&glDrawPathNV, false},
		{"nglCreatePathbufferNV", "(I)I", (void *)&Java_org_lwjgl_opengles_NVDrawPath_nglCreatePathbufferNV, "glCreatePathbufferNV", (void *)&glCreatePathbufferNV, false},
		{"nglDeletePathbufferNV", "(I)V", (void *)&Java_org_lwjgl_opengles_NVDrawPath_nglDeletePathbufferNV, "glDeletePathbufferNV", (void *)&glDeletePathbufferNV, false},
		{"nglPathbufferPathNV", "(III)V", (void *)&Java_org_lwjgl_opengles_NVDrawPath_nglPathbufferPathNV, "glPathbufferPathNV", (void *)&glPathbufferPathNV, false},
		{"nglPathbufferPositionNV", "(IIFF)V", (void *)&Java_org_lwjgl_opengles_NVDrawPath_nglPathbufferPositionNV, "glPathbufferPositionNV", (void *)&glPathbufferPositionNV, false},
		{"nglDrawPathbufferNV", "(II)V", (void *)&Java_org_lwjgl_opengles_NVDrawPath_nglDrawPathbufferNV, "glDrawPathbufferNV", (void *)&glDrawPathbufferNV, false}
	};
	int num_functions = NUMFUNCTIONS(functions);
	extgl_InitializeClass(env, clazz, num_functions, functions);
}
JNIEXPORT void JNICALL Java_org_lwjgl_openal_ALC10_initNativeStubs(JNIEnv *env, jclass clazz) {
	JavaMethodAndExtFunction functions[] = {
		{"nalcGetString", "(JI)Ljava/nio/ByteBuffer;", (void*)&Java_org_lwjgl_openal_ALC10_nalcGetString, "alcGetString", (void*)&alcGetString, false},
		{"nalcGetIntegerv", "(JIIJ)V", (void*)&Java_org_lwjgl_openal_ALC10_nalcGetIntegerv, "alcGetIntegerv", (void*)&alcGetIntegerv, false},
		{"nalcOpenDevice", "(J)J", (void*)&Java_org_lwjgl_openal_ALC10_nalcOpenDevice, "alcOpenDevice", (void*)&alcOpenDevice, false},
		{"nalcCloseDevice", "(J)Z", (void*)&Java_org_lwjgl_openal_ALC10_nalcCloseDevice, "alcCloseDevice", (void*)&alcCloseDevice, false},
		{"nalcCreateContext", "(JJ)J", (void*)&Java_org_lwjgl_openal_ALC10_nalcCreateContext, "alcCreateContext", (void*)&alcCreateContext, false},
		{"nalcMakeContextCurrent", "(J)I", (void*)&Java_org_lwjgl_openal_ALC10_nalcMakeContextCurrent, "alcMakeContextCurrent", (void*)&alcMakeContextCurrent, false},
		{"nalcProcessContext", "(J)V", (void*)&Java_org_lwjgl_openal_ALC10_nalcProcessContext, "alcProcessContext", (void*)&alcProcessContext, false},
		{"nalcGetCurrentContext", "()J", (void*)&Java_org_lwjgl_openal_ALC10_nalcGetCurrentContext, "alcGetCurrentContext", (void*)&alcGetCurrentContext, false},
		{"nalcGetContextsDevice", "(J)J", (void*)&Java_org_lwjgl_openal_ALC10_nalcGetContextsDevice, "alcGetContextsDevice", (void*)&alcGetContextsDevice, false},
		{"nalcSuspendContext", "(J)V", (void*)&Java_org_lwjgl_openal_ALC10_nalcSuspendContext, "alcSuspendContext", (void*)&alcSuspendContext, false},
		{"nalcDestroyContext", "(J)V", (void*)&Java_org_lwjgl_openal_ALC10_nalcDestroyContext, "alcDestroyContext", (void*)&alcDestroyContext, false},
		{"nalcGetError", "(J)I", (void*)&Java_org_lwjgl_openal_ALC10_nalcGetError, "alcGetError", (void*)&alcGetError, false},
		{"nalcIsExtensionPresent", "(JJ)Z", (void*)&Java_org_lwjgl_openal_ALC10_nalcIsExtensionPresent, "alcIsExtensionPresent", (void*)&alcIsExtensionPresent, false},
		{"nalcGetEnumValue", "(JJ)I", (void*)&Java_org_lwjgl_openal_ALC10_nalcGetEnumValue, "alcGetEnumValue", (void*)&alcGetEnumValue, false}
	};
	int num_functions = NUMFUNCTIONS(functions);
	extal_InitializeClass(env, clazz, num_functions, functions);
}
JNIEXPORT void JNICALL Java_org_lwjgl_openal_AL11_initNativeStubs(JNIEnv *env, jclass clazz) {
	JavaMethodAndExtFunction functions[] = {
		{"nalListener3i", "(IIII)V", (void *)&Java_org_lwjgl_openal_AL11_nalListener3i, "alListener3i", (void *)&alListener3i},
		{"nalGetListeneriv", "(ILjava/nio/FloatBuffer;I)V", (void *)&Java_org_lwjgl_openal_AL11_nalGetListeneriv, "alGetListeneriv", (void *)&alGetListeneriv},
		{"nalSource3i", "(IIIII)V", (void *)&Java_org_lwjgl_openal_AL11_nalSource3i, "alSource3i", (void *)&alSource3i},
		{"nalSourceiv", "(IILjava/nio/IntBuffer;I)V", (void *)&Java_org_lwjgl_openal_AL11_nalSourceiv, "alSourceiv", (void *)&alSourceiv},
		{"nalBufferf", "(IIF)V", (void *)&Java_org_lwjgl_openal_AL11_nalBufferf, "alBufferf", (void *)&alBufferf},
		{"nalBuffer3f", "(IIFFF)V", (void *)&Java_org_lwjgl_openal_AL11_nalBuffer3f, "alBuffer3f", (void *)&alBuffer3f},
		{"nalBufferfv", "(IILjava/nio/FloatBuffer;I)V", (void *)&Java_org_lwjgl_openal_AL11_nalBufferfv, "alBufferfv", (void *)&alBufferfv},
		{"nalBufferi", "(III)V", (void *)&Java_org_lwjgl_openal_AL11_nalBufferi, "alBufferi", (void *)&alBufferi},
		{"nalBuffer3i", "(IIIII)V", (void *)&Java_org_lwjgl_openal_AL11_nalBuffer3i, "alBuffer3i", (void *)&alBuffer3i},
		{"nalBufferiv", "(IILjava/nio/IntBuffer;I)V", (void *)&Java_org_lwjgl_openal_AL11_nalBufferiv, "alBufferiv", (void *)&alBufferiv},
		{"nalGetBufferi", "(II)I", (void *)&Java_org_lwjgl_openal_AL11_nalGetBufferi, "alGetBufferi", (void *)&alGetBufferi},
		{"nalGetBufferiv", "(IILjava/nio/IntBuffer;I)V", (void *)&Java_org_lwjgl_openal_AL11_nalGetBufferiv, "alGetBufferiv", (void *)&alGetBufferiv},
		{"nalGetBufferf", "(II)F", (void *)&Java_org_lwjgl_openal_AL11_nalGetBufferf, "alGetBufferf", (void *)&alGetBufferf},
		{"nalGetBufferfv", "(IILjava/nio/FloatBuffer;I)V", (void *)&Java_org_lwjgl_openal_AL11_nalGetBufferfv, "alGetBufferfv", (void *)&alGetBufferfv},
		{"nalSpeedOfSound", "(F)V", (void *)&Java_org_lwjgl_openal_AL11_nalSpeedOfSound, "alSpeedOfSound", (void *)&alSpeedOfSound}
	};
	int num_functions = NUMFUNCTIONS(functions);
	extal_InitializeClass(env, clazz, num_functions, functions);
}