Generalized function pointer initialization

This commit is contained in:
Elias Naur 2004-03-09 09:25:10 +00:00
parent 78e579f6be
commit df3689651f
57 changed files with 223 additions and 213 deletions

View File

@ -548,7 +548,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBImaging_nglGetSeparableFilter
void extgl_InitARBImaging(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"nglColorTable", "(IIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglColorTable, "glColorTable", (void**)&glColorTable},
{"nglColorSubTable", "(IIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglColorSubTable, "glColorSubTable", (void**)&glColorSubTable},
{"nglColorTableParameteriv", "(IILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglColorTableParameteriv, "glColorTableParameteriv", (void**)&glColorTableParameteriv},
@ -585,7 +585,7 @@ void extgl_InitARBImaging(JNIEnv *env, jobject ext_set)
{"nglGetSeparableFilter", "(IIILjava/nio/Buffer;ILjava/nio/Buffer;ILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBImaging_nglGetSeparableFilter, "glGetSeparableFilter", (void**)&glGetSeparableFilter}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/ARBImaging");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/ARBImaging");
if (extgl_Extensions.GL_ARB_imaging)
extgl_InitializeClass(env, clazz, ext_set, "GL_ARB_imaging", num_functions, functions);
}

View File

@ -121,7 +121,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBMatrixPalette_nglMatrixIndexusvARB
void extgl_InitARBMatrixPalette(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"glCurrentPaletteMatrixARB", "(I)V", (void*)&Java_org_lwjgl_opengl_ARBMatrixPalette_glCurrentPaletteMatrixARB, "glCurrentPaletteMatrixARB", (void**)&glCurrentPaletteMatrixARB},
{"nglMatrixIndexPointerARB", "(IIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBMatrixPalette_nglMatrixIndexPointerARB, "glMatrixIndexPointerARB", (void**)&glMatrixIndexPointerARB},
{"nglMatrixIndexPointerARBVBO", "(IIII)V", (void*)&Java_org_lwjgl_opengl_ARBMatrixPalette_nglMatrixIndexPointerARBVBO, NULL, NULL},
@ -130,7 +130,7 @@ void extgl_InitARBMatrixPalette(JNIEnv *env, jobject ext_set)
{"nglMatrixIndexusvARB", "(ILjava/nio/ShortBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBMatrixPalette_nglMatrixIndexusvARB, "glMatrixIndexusvARB", (void**)&glMatrixIndexusvARB}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/ARBMatrixPalette");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/ARBMatrixPalette");
if (extgl_Extensions.GL_ARB_matrix_palette)
extgl_InitializeClass(env, clazz, ext_set, "GL_ARB_matrix_palette", num_functions, functions);
}

View File

@ -54,11 +54,11 @@ static void JNICALL Java_org_lwjgl_opengl_ARBMultisample_glSampleCoverageARB
void extgl_InitARBMultisample(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"glSampleCoverageARB", "(FZ)V", (void*)&Java_org_lwjgl_opengl_ARBMultisample_glSampleCoverageARB, "glSampleCoverageARB", (void**)&glSampleCoverageARB}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/ARBMultisample");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/ARBMultisample");
if (extgl_Extensions.GL_ARB_multisample)
extgl_InitializeClass(env, clazz, ext_set, "GL_ARB_multisample", num_functions, functions);
}

View File

@ -223,7 +223,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBMultitexture_glMultiTexCoord4sARB
void extgl_InitARBMultitexture(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"glClientActiveTextureARB", "(I)V", (void*)&Java_org_lwjgl_opengl_ARBMultitexture_glClientActiveTextureARB, "glClientActiveTextureARB", (void**)&glClientActiveTextureARB},
{"glActiveTextureARB", "(I)V", (void*)&Java_org_lwjgl_opengl_ARBMultitexture_glActiveTextureARB, "glActiveTextureARB", (void**)&glActiveTextureARB},
{"glMultiTexCoord1fARB", "(IF)V", (void*)&Java_org_lwjgl_opengl_ARBMultitexture_glMultiTexCoord1fARB, "glMultiTexCoord1fARB", (void**)&glMultiTexCoord1fARB},
@ -240,7 +240,7 @@ void extgl_InitARBMultitexture(JNIEnv *env, jobject ext_set)
{"glMultiTexCoord4sARB", "(ISSSS)V", (void*)&Java_org_lwjgl_opengl_ARBMultitexture_glMultiTexCoord4sARB, "glMultiTexCoord4sARB", (void**)&glMultiTexCoord4sARB}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/ARBMultitexture");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/ARBMultitexture");
if (extgl_Extensions.GL_ARB_multitexture)
extgl_InitializeClass(env, clazz, ext_set, "GL_ARB_multitexture", num_functions, functions);
}

View File

@ -151,7 +151,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBOcclusionQuery_nglGetQueryObjectuiv
void extgl_InitARBOcclusionQuery(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"nglGenQueriesARB", "(ILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBOcclusionQuery_nglGenQueriesARB, "glGenQueriesARB", (void**)&glGenQueriesARB},
{"nglDeleteQueriesARB", "(ILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBOcclusionQuery_nglDeleteQueriesARB, "glDeleteQueriesARB", (void**)&glDeleteQueriesARB},
{"glIsQueryARB", "(I)Z", (void*)&Java_org_lwjgl_opengl_ARBOcclusionQuery_glIsQueryARB, "glIsQueryARB", (void**)&glIsQueryARB},
@ -162,7 +162,7 @@ void extgl_InitARBOcclusionQuery(JNIEnv *env, jobject ext_set)
{"nglGetQueryObjectuivARB", "(IILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBOcclusionQuery_nglGetQueryObjectuivARB, "glGetQueryObjectuivARB", (void**)&glGetQueryObjectuivARB}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/ARBOcclusionQuery");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/ARBOcclusionQuery");
if (extgl_Extensions.GL_ARB_occlusion_query)
extgl_InitializeClass(env, clazz, ext_set, "GL_ARB_occlusion_query", num_functions, functions);
}

View File

@ -68,12 +68,12 @@ static void JNICALL Java_org_lwjgl_opengl_ARBPointParameters_nglPointParameterfv
void extgl_InitARBPointParameters(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"glPointParameterfARB", "(IF)V", (void*)&Java_org_lwjgl_opengl_ARBPointParameters_glPointParameterfARB, "glPointParameterfARB", (void**)&glPointParameterfARB},
{"nglPointParameterfvARB", "(ILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBPointParameters_nglPointParameterfvARB, "glPointParameterfvARB", (void**)&glPointParameterfvARB}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/ARBPointParameters");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/ARBPointParameters");
if (extgl_Extensions.GL_ARB_point_parameters)
extgl_InitializeClass(env, clazz, ext_set, "GL_ARB_point_parameters", num_functions, functions);
}

View File

@ -221,7 +221,7 @@ static jboolean JNICALL Java_org_lwjgl_opengl_ARBProgram_glIsProgramARB
void extgl_InitARBProgram(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"nglProgramStringARB", "(IIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBProgram_nglProgramStringARB, "glProgramStringARB", (void**)&glProgramStringARB},
{"glBindProgramARB", "(II)V", (void*)&Java_org_lwjgl_opengl_ARBProgram_glBindProgramARB, "glBindProgramARB", (void**)&glBindProgramARB},
{"nglDeleteProgramsARB", "(ILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBProgram_nglDeleteProgramsARB, "glDeleteProgramsARB", (void**)&glDeleteProgramsARB},
@ -237,7 +237,7 @@ void extgl_InitARBProgram(JNIEnv *env, jobject ext_set)
{"glIsProgramARB", "(I)Z", (void*)&Java_org_lwjgl_opengl_ARBProgram_glIsProgramARB, "glIsProgramARB", (void**)&glIsProgramARB}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/ARBProgram");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/ARBProgram");
extgl_InitializeClass(env, clazz, NULL, "<ARBProgram>", num_functions, functions);
}

View File

@ -647,7 +647,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBShaderObjects_nglGetShaderSourceARB
void extgl_InitARBShaderObjects(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"glDeleteObjectARB", "(I)V", (void*)&Java_org_lwjgl_opengl_ARBShaderObjects_glDeleteObjectARB, "glDeleteObjectARB", (void**)&glDeleteObjectARB},
{"glGetHandleARB", "(I)I", (void*)&Java_org_lwjgl_opengl_ARBShaderObjects_glGetHandleARB, "glGetHandleARB", (void**)&glGetHandleARB},
{"glDetachObjectARB", "(II)V", (void*)&Java_org_lwjgl_opengl_ARBShaderObjects_glDetachObjectARB, "glDetachObjectARB", (void**)&glDetachObjectARB},
@ -691,7 +691,7 @@ void extgl_InitARBShaderObjects(JNIEnv *env, jobject ext_set)
{"nglGetShaderSourceARB", "(IILjava/nio/IntBuffer;ILjava/nio/ByteBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBShaderObjects_nglGetShaderSourceARB, "glGetShaderSourceARB", (void**)&glGetShaderSourceARB}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/ARBShaderObjects");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/ARBShaderObjects");
if (extgl_Extensions.GL_ARB_shader_objects)
extgl_InitializeClass(env, clazz, ext_set, "GL_ARB_shader_objects", num_functions, functions);
}

View File

@ -139,7 +139,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBTextureCompression_nglGetCompressed
void extgl_InitARBTextureCompression(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"nglCompressedTexImage1DARB", "(IIIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBTextureCompression_nglCompressedTexImage1DARB, "glCompressedTexImage1DARB", (void**)&glCompressedTexImage1DARB},
{"nglCompressedTexImage2DARB", "(IIIIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBTextureCompression_nglCompressedTexImage2DARB, "glCompressedTexImage2DARB", (void**)&glCompressedTexImage2DARB},
{"nglCompressedTexImage3DARB", "(IIIIIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBTextureCompression_nglCompressedTexImage3DARB, "glCompressedTexImage3DARB", (void**)&glCompressedTexImage3DARB},
@ -149,7 +149,7 @@ void extgl_InitARBTextureCompression(JNIEnv *env, jobject ext_set)
{"nglGetCompressedTexImageARB", "(IILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBTextureCompression_nglGetCompressedTexImageARB, "glGetCompressedTexImageARB", (void**)&glGetCompressedTexImageARB}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/ARBTextureCompression");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/ARBTextureCompression");
if (extgl_Extensions.GL_ARB_texture_compression)
extgl_InitializeClass(env, clazz, ext_set, "GL_ARB_texture_compression", num_functions, functions);
}

View File

@ -69,12 +69,12 @@ static void JNICALL Java_org_lwjgl_opengl_ARBTransposeMatrix_nglMultTransposeMat
void extgl_InitARBTransposeMatrix(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"nglLoadTransposeMatrixfARB", "(Ljava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBTransposeMatrix_nglLoadTransposeMatrixfARB, "glLoadTransposeMatrixfARB", (void**)&glLoadTransposeMatrixfARB},
{"nglMultTransposeMatrixfARB", "(Ljava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBTransposeMatrix_nglMultTransposeMatrixfARB, "glMultTransposeMatrixfARB", (void**)&glMultTransposeMatrixfARB}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/ARBTransposeMatrix");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/ARBTransposeMatrix");
if (extgl_Extensions.GL_ARB_transpose_matrix)
extgl_InitializeClass(env, clazz, ext_set, "GL_ARB_transpose_matrix", num_functions, functions);
}

View File

@ -177,7 +177,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBVertexBlend_glVertexBlendARB
void extgl_InitARBVertexBlend(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"nglWeightbvARB", "(ILjava/nio/ByteBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBVertexBlend_nglWeightbvARB, "glWeightbvARB", (void**)&glWeightbvARB},
{"nglWeightfvARB", "(ILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBVertexBlend_nglWeightfvARB, "glWeightfvARB", (void**)&glWeightfvARB},
{"nglWeightivARB", "(ILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBVertexBlend_nglWeightivARB, "glWeightivARB", (void**)&glWeightivARB},
@ -190,7 +190,7 @@ void extgl_InitARBVertexBlend(JNIEnv *env, jobject ext_set)
{"glVertexBlendARB", "(I)V", (void*)&Java_org_lwjgl_opengl_ARBVertexBlend_glVertexBlendARB, "glVertexBlendARB", (void**)&glVertexBlendARB}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/ARBVertexBlend");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/ARBVertexBlend");
if (extgl_Extensions.GL_ARB_vertex_blend)
extgl_InitializeClass(env, clazz, ext_set, "GL_ARB_vertex_blend", num_functions, functions);
}

View File

@ -202,7 +202,7 @@ static jobject JNICALL Java_org_lwjgl_opengl_ARBVertexBufferObject_glGetBufferPo
void extgl_InitARBVertexBufferObject(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"nglBindBufferARB", "(II)V", (void*)&Java_org_lwjgl_opengl_ARBVertexBufferObject_nglBindBufferARB, "glBindBufferARB", (void**)&glBindBufferARB},
{"nglDeleteBuffersARB", "(ILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBVertexBufferObject_nglDeleteBuffersARB, "glDeleteBuffersARB", (void**)&glDeleteBuffersARB},
{"nglGenBuffersARB", "(ILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBVertexBufferObject_nglGenBuffersARB, "glGenBuffersARB", (void**)&glGenBuffersARB},
@ -216,7 +216,7 @@ void extgl_InitARBVertexBufferObject(JNIEnv *env, jobject ext_set)
{"glGetBufferPointerARB", "(III)Ljava/nio/ByteBuffer;", (void*)&Java_org_lwjgl_opengl_ARBVertexBufferObject_glGetBufferPointerARB, "glGetBufferPointervARB", (void**)&glGetBufferPointervARB}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/ARBVertexBufferObject");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/ARBVertexBufferObject");
if (extgl_Extensions.GL_ARB_vertex_buffer_object)
extgl_InitializeClass(env, clazz, ext_set, "GL_ARB_vertex_buffer_object", num_functions, functions);
}

View File

@ -275,7 +275,7 @@ static jobject JNICALL Java_org_lwjgl_opengl_ARBVertexProgram_glGetVertexAttribP
void extgl_InitARBVertexProgram(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"glVertexAttrib1sARB", "(IS)V", (void*)&Java_org_lwjgl_opengl_ARBVertexProgram_glVertexAttrib1sARB, "glVertexAttrib1sARB", (void**)&glVertexAttrib1sARB},
{"glVertexAttrib1fARB", "(IF)V", (void*)&Java_org_lwjgl_opengl_ARBVertexProgram_glVertexAttrib1fARB, "glVertexAttrib1fARB", (void**)&glVertexAttrib1fARB},
{"glVertexAttrib2sARB", "(ISS)V", (void*)&Java_org_lwjgl_opengl_ARBVertexProgram_glVertexAttrib2sARB, "glVertexAttrib2sARB", (void**)&glVertexAttrib2sARB},
@ -294,7 +294,7 @@ void extgl_InitARBVertexProgram(JNIEnv *env, jobject ext_set)
{"glGetVertexAttribPointerARB", "(III)Ljava/nio/ByteBuffer;", (void*)&Java_org_lwjgl_opengl_ARBVertexProgram_glGetVertexAttribPointerARB, "glGetVertexAttribPointervARB", (void**)&glGetVertexAttribPointervARB}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/ARBVertexProgram");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/ARBVertexProgram");
if (extgl_Extensions.GL_ARB_vertex_program)
extgl_InitializeClass(env, clazz, ext_set, "GL_ARB_vertex_program", num_functions, functions);
}

View File

@ -97,13 +97,13 @@ static jint JNICALL Java_org_lwjgl_opengl_ARBVertexShader_nglGetAttribLocationAR
void extgl_InitARBVertexShader(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"nglBindAttribLocationARB", "(IILjava/nio/ByteBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBVertexShader_nglBindAttribLocationARB, "glBindAttribLocationARB", (void**)&glBindAttribLocationARB},
{"nglGetActiveAttribARB", "(IIILjava/nio/IntBuffer;ILjava/nio/IntBuffer;ILjava/nio/IntBuffer;ILjava/nio/ByteBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ARBVertexShader_nglGetActiveAttribARB, "glGetActiveAttribARB", (void**)&glGetActiveAttribARB},
{"nglGetAttribLocationARB", "(ILjava/nio/ByteBuffer;I)I", (void*)&Java_org_lwjgl_opengl_ARBVertexShader_nglGetAttribLocationARB, "glGetAttribLocationARB", (void**)&glGetAttribLocationARB}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/ARBVertexShader");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/ARBVertexShader");
if (extgl_Extensions.GL_ARB_vertex_shader)
extgl_InitializeClass(env, clazz, ext_set, "GL_ARB_vertex_shader", num_functions, functions);
}

View File

@ -119,7 +119,7 @@ static void JNICALL Java_org_lwjgl_opengl_ARBWindowPos_glWindowPos3sARB
void extgl_InitARBWindowPos(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"glWindowPos2fARB", "(FF)V", (void*)&Java_org_lwjgl_opengl_ARBWindowPos_glWindowPos2fARB, "glWindowPos2fARB", (void**)&glWindowPos2fARB},
{"glWindowPos2iARB", "(II)V", (void*)&Java_org_lwjgl_opengl_ARBWindowPos_glWindowPos2iARB, "glWindowPos2iARB", (void**)&glWindowPos2iARB},
{"glWindowPos2sARB", "(SS)V", (void*)&Java_org_lwjgl_opengl_ARBWindowPos_glWindowPos2sARB, "glWindowPos2sARB", (void**)&glWindowPos2sARB},
@ -128,7 +128,7 @@ void extgl_InitARBWindowPos(JNIEnv *env, jobject ext_set)
{"glWindowPos3sARB", "(SSS)V", (void*)&Java_org_lwjgl_opengl_ARBWindowPos_glWindowPos3sARB, "glWindowPos3sARB", (void**)&glWindowPos3sARB}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/ARBWindowPos");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/ARBWindowPos");
if (extgl_Extensions.GL_ARB_window_pos)
extgl_InitializeClass(env, clazz, ext_set, "GL_ARB_window_pos", num_functions, functions);
}

View File

@ -55,11 +55,11 @@ static void JNICALL Java_org_lwjgl_opengl_ATIDrawBuffers_nglDrawBuffersATI
void extgl_InitATIDrawBuffers(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"nglDrawBuffersATI", "(ILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ATIDrawBuffers_nglDrawBuffersATI, "glDrawBuffersATI", (void**)&glDrawBuffersATI}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/ATIDrawBuffers");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/ATIDrawBuffers");
if (extgl_Extensions.GL_ATI_draw_buffers)
extgl_InitializeClass(env, clazz, ext_set, "GL_ATI_draw_buffers", num_functions, functions);
}

View File

@ -92,14 +92,14 @@ static void JNICALL Java_org_lwjgl_opengl_ATIElementArray_glDrawRangeElementArra
void extgl_InitATIElementArray(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"nglElementPointerATI", "(ILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_ATIElementArray_nglElementPointerATI, "glElementPointerATI", (void**)&glElementPointerATI},
{"nglElementPointerATIVBO", "(II)V", (void*)&Java_org_lwjgl_opengl_ATIElementArray_nglElementPointerATIVBO, NULL, NULL},
{"glDrawElementArrayATI", "(II)V", (void*)&Java_org_lwjgl_opengl_ATIElementArray_glDrawElementArrayATI, "glDrawElementArrayATI", (void**)&glDrawElementArrayATI},
{"glDrawRangeElementArrayATI", "(IIII)V", (void*)&Java_org_lwjgl_opengl_ATIElementArray_glDrawRangeElementArrayATI, "glDrawRangeElementArrayATI", (void**)&glDrawRangeElementArrayATI}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/ATIElementArray");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/ATIElementArray");
if (extgl_Extensions.GL_ATI_element_array)
extgl_InitializeClass(env, clazz, ext_set, "GL_ATI_element_array", num_functions, functions);
}

View File

@ -97,14 +97,14 @@ static void JNICALL Java_org_lwjgl_opengl_ATIEnvmapBumpmap_nglGetTexBumpParamete
void extgl_InitATIEnvmapBumpmap(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"nglTexBumpParameterfvATI", "(ILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ATIEnvmapBumpmap_nglTexBumpParameterfvATI, "glTexBumpParameterfvATI", (void**)&glTexBumpParameterfvATI},
{"nglTexBumpParameterivATI", "(ILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ATIEnvmapBumpmap_nglTexBumpParameterivATI, "glTexBumpParameterivATI", (void**)&glTexBumpParameterivATI},
{"nglGetTexBumpParameterfvATI", "(ILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ATIEnvmapBumpmap_nglGetTexBumpParameterfvATI, "glGetTexBumpParameterfvATI", (void**)&glGetTexBumpParameterfvATI},
{"nglGetTexBumpParameterivATI", "(ILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ATIEnvmapBumpmap_nglGetTexBumpParameterivATI, "glGetTexBumpParameterivATI", (void**)&glGetTexBumpParameterivATI}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/ATIEnvmapBumpmap");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/ATIEnvmapBumpmap");
if (extgl_Extensions.GL_ATI_envmap_bumpmap)
extgl_InitializeClass(env, clazz, ext_set, "GL_ATI_envmap_bumpmap", num_functions, functions);
}

View File

@ -225,7 +225,7 @@ static void JNICALL Java_org_lwjgl_opengl_ATIFragmentShader_nglSetFragmentShader
void extgl_InitATIFragmentShader(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"glGenFragmentShadersATI", "(I)I", (void*)&Java_org_lwjgl_opengl_ATIFragmentShader_glGenFragmentShadersATI, "glGenFragmentShadersATI", (void**)&glGenFragmentShadersATI},
{"glBindFragmentShaderATI", "(I)V", (void*)&Java_org_lwjgl_opengl_ATIFragmentShader_glBindFragmentShaderATI, "glBindFragmentShaderATI", (void**)&glBindFragmentShaderATI},
{"glDeleteFragmentShaderATI", "(I)V", (void*)&Java_org_lwjgl_opengl_ATIFragmentShader_glDeleteFragmentShaderATI, "glDeleteFragmentShaderATI", (void**)&glDeleteFragmentShaderATI},
@ -242,7 +242,7 @@ void extgl_InitATIFragmentShader(JNIEnv *env, jobject ext_set)
{"nglSetFragmentShaderConstantATI", "(ILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ATIFragmentShader_nglSetFragmentShaderConstantATI, "glSetFragmentShaderConstantATI", (void**)&glSetFragmentShaderConstantATI}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/ATIFragmentShader");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/ATIFragmentShader");
if (extgl_Extensions.GL_ATI_fragment_shader)
extgl_InitializeClass(env, clazz, ext_set, "GL_ATI_fragment_shader", num_functions, functions);
}

View File

@ -74,12 +74,12 @@ static void JNICALL Java_org_lwjgl_opengl_ATIMapObjectBuffer_glUnmapObjectBuffer
void extgl_InitATIMapObjectBuffer(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"glMapObjectBufferATI", "(IILjava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;", (void*)&Java_org_lwjgl_opengl_ATIMapObjectBuffer_glMapObjectBufferATI, "glMapObjectBufferATI", (void**)&glMapObjectBufferATI},
{"glUnmapObjectBufferATI", "(I)V", (void*)&Java_org_lwjgl_opengl_ATIMapObjectBuffer_glUnmapObjectBufferATI, "glUnmapObjectBufferATI", (void**)&glUnmapObjectBufferATI}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/ATIMapObjectBuffer");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/ATIMapObjectBuffer");
if (extgl_Extensions.GL_ATI_map_object_buffer)
extgl_InitializeClass(env, clazz, ext_set, "GL_ATI_map_object_buffer", num_functions, functions);
}

View File

@ -67,12 +67,12 @@ static void JNICALL Java_org_lwjgl_opengl_ATIPnTriangles_glPNTrianglesiATI
void extgl_InitATIPNTriangles(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"glPNTrianglesfATI", "(IF)V", (void*)&Java_org_lwjgl_opengl_ATIPnTriangles_glPNTrianglesfATI, "glPNTrianglesfATI", (void**)&glPNTrianglesfATI},
{"glPNTrianglesiATI", "(II)V", (void*)&Java_org_lwjgl_opengl_ATIPnTriangles_glPNTrianglesiATI, "glPNTrianglesiATI", (void**)&glPNTrianglesiATI}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/ATIPnTriangles");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/ATIPnTriangles");
if (extgl_Extensions.GL_ATI_pn_triangles)
extgl_InitializeClass(env, clazz, ext_set, "GL_ATI_pn_triangles", num_functions, functions);
}

View File

@ -67,12 +67,12 @@ static void JNICALL Java_org_lwjgl_opengl_ATISeparateStencil_glStencilFuncSepara
void extgl_InitATISeparateStencil(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"glStencilOpSeparateATI", "(IIII)V", (void*)&Java_org_lwjgl_opengl_ATISeparateStencil_glStencilOpSeparateATI, "glStencilOpSeparateATI", (void**)&glStencilOpSeparateATI},
{"glStencilFuncSeparateATI", "(IIII)V", (void*)&Java_org_lwjgl_opengl_ATISeparateStencil_glStencilFuncSeparateATI, "glStencilFuncSeparateATI", (void**)&glStencilFuncSeparateATI}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/ATISeparateStencil");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/ATISeparateStencil");
if (extgl_Extensions.GL_ATI_separate_stencil)
extgl_InitializeClass(env, clazz, ext_set, "GL_ATI_separate_stencil", num_functions, functions);
}

View File

@ -207,7 +207,7 @@ static void JNICALL Java_org_lwjgl_opengl_ATIVertexArrayObject_nglGetVariantArra
void extgl_InitATIVertexArrayObject(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"nglNewObjectBufferATI", "(ILjava/nio/Buffer;II)I", (void*)&Java_org_lwjgl_opengl_ATIVertexArrayObject_nglNewObjectBufferATI, "glNewObjectBufferATI", (void**)&glNewObjectBufferATI},
{"glIsObjectBufferATI", "(I)Z", (void*)&Java_org_lwjgl_opengl_ATIVertexArrayObject_glIsObjectBufferATI, "glIsObjectBufferATI", (void**)&glIsObjectBufferATI},
{"nglUpdateObjectBufferATI", "(IIILjava/nio/Buffer;II)V", (void*)&Java_org_lwjgl_opengl_ATIVertexArrayObject_nglUpdateObjectBufferATI, "glUpdateObjectBufferATI", (void**)&glUpdateObjectBufferATI},
@ -222,7 +222,7 @@ void extgl_InitATIVertexArrayObject(JNIEnv *env, jobject ext_set)
{"nglGetVariantArrayObjectivATI", "(IILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ATIVertexArrayObject_nglGetVariantArrayObjectivATI, "glGetVariantArrayObjectivATI", (void**)&glGetVariantArrayObjectivATI}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/ATIVertexArrayObject");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/ATIVertexArrayObject");
if (extgl_Extensions.GL_ATI_vertex_array_object)
extgl_InitializeClass(env, clazz, ext_set, "GL_ATI_vertex_array_object", num_functions, functions);
}

View File

@ -82,13 +82,13 @@ static void JNICALL Java_org_lwjgl_opengl_ATIVertexAttribArrayObject_nglGetVerte
void extgl_InitATIVertexAttribArrayObject(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"glVertexAttribArrayObjectATI", "(IIIZIII)V", (void*)&Java_org_lwjgl_opengl_ATIVertexAttribArrayObject_glVertexAttribArrayObjectATI, "glVertexAttribArrayObjectATI", (void**)&glVertexAttribArrayObjectATI},
{"nglGetVertexAttribArrayObjectfvATI", "(IILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ATIVertexAttribArrayObject_nglGetVertexAttribArrayObjectfvATI, "glGetVertexAttribArrayObjectfvATI", (void**)&glGetVertexAttribArrayObjectfvATI},
{"nglGetVertexAttribArrayObjectivATI", "(IILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_ATIVertexAttribArrayObject_nglGetVertexAttribArrayObjectivATI, "glGetVertexAttribArrayObjectivATI", (void**)&glGetVertexAttribArrayObjectivATI}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/ATIVertexAttribArrayObject");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/ATIVertexAttribArrayObject");
if (extgl_Extensions.GL_ATI_vertex_attrib_array_object)
extgl_InitializeClass(env, clazz, ext_set, "GL_ATI_vertex_attrib_array_object", num_functions, functions);
}

View File

@ -288,7 +288,7 @@ static void JNICALL Java_org_lwjgl_opengl_ATIVertexStreams_glVertexBlendEnviATI
void extgl_InitATIVertexStreams(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"glVertexStream1fATI", "(IF)V", (void*)&Java_org_lwjgl_opengl_ATIVertexStreams_glVertexStream1fATI, "glVertexStream1fATI", (void**)&glVertexStream1fATI},
{"glVertexStream1iATI", "(II)V", (void*)&Java_org_lwjgl_opengl_ATIVertexStreams_glVertexStream1iATI, "glVertexStream1iATI", (void**)&glVertexStream1iATI},
{"glVertexStream1sATI", "(IS)V", (void*)&Java_org_lwjgl_opengl_ATIVertexStreams_glVertexStream1sATI, "glVertexStream1sATI", (void**)&glVertexStream1sATI},
@ -310,7 +310,7 @@ void extgl_InitATIVertexStreams(JNIEnv *env, jobject ext_set)
{"glVertexBlendEnviATI", "(II)V", (void*)&Java_org_lwjgl_opengl_ATIVertexStreams_glVertexBlendEnviATI, "glVertexBlendEnviATI", (void**)&glVertexBlendEnviATI}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/ATIVertexStreams");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/ATIVertexStreams");
if (extgl_Extensions.GL_ATI_vertex_streams)
extgl_InitializeClass(env, clazz, ext_set, "GL_ATI_vertex_streams", num_functions, functions);
}

View File

@ -37,6 +37,7 @@
* @version $Revision$
*/
#include <stdlib.h>
#include "common_tools.h"
bool debug = false;
@ -115,3 +116,56 @@ void throwOpenALException(JNIEnv * env, const char * err) {
void throwException(JNIEnv * env, const char * err) {
throwGeneralException(env, "java/lang/Exception", err);
}
void doExtension(JNIEnv *env, jobject ext_set, const char *method_name, const char *ext) {
jclass clazz = env->GetObjectClass(ext_set);
jmethodID id = env->GetMethodID(clazz, method_name, "(Ljava/lang/Object;)Z");
if (id == NULL)
return;
jstring ext_string = env->NewStringUTF(ext);
if (ext_string == NULL) {
printf("Could not allocate java string from %s\n", ext);
return;
}
env->CallBooleanMethod(ext_set, id, ext_string);
}
static void ext_removeExtension(JNIEnv *env, jobject ext_set, const char *ext) {
doExtension(env, ext_set, "remove", ext);
}
jclass ext_ResetClass(JNIEnv *env, const char *class_name) {
jclass clazz = env->FindClass(class_name);
jint result = env->UnregisterNatives(clazz);
if (result != 0)
printfDebug("Could not unregister natives for class %s\n", class_name);
return clazz;
}
void ext_InitializeClass(JNIEnv *env, jclass clazz, jobject ext_set, const char *ext_name, ExtGetProcAddressPROC gpa, int num_functions, JavaMethodAndExtFunction *functions) {
JNINativeMethod *methods = (JNINativeMethod *)malloc(num_functions*sizeof(JNINativeMethod));
for (int i = 0; i < num_functions; i++) {
JavaMethodAndExtFunction *function = functions + i;
if (function->ext_function_name != NULL) {
void *ext_func_pointer = gpa(function->ext_function_name);
if (ext_func_pointer == NULL) {
printf("NOTICE: %s disabled because of missing driver symbols\n", ext_name);
if (ext_set != NULL)
ext_removeExtension(env, ext_set, ext_name);
free(methods);
return;
}
void **ext_function_pointer_pointer = function->ext_function_pointer;
*ext_function_pointer_pointer = ext_func_pointer;
}
JNINativeMethod *method = methods + i;
method->name = function->method_name;
method->signature = function->signature;
method->fnPtr = function->method_pointer;
}
jint result = env->RegisterNatives(clazz, methods, num_functions);
free(methods);
if (result != 0)
printfDebug("Could not register natives for extension %s\n", ext_name);
}

View File

@ -85,4 +85,20 @@ static inline const void *offsetToPointer(jint offset) {
return (const char *)NULL + offset;
}
typedef void *(* ExtGetProcAddressPROC) (const char *func_name);
typedef struct {
char *method_name;
char *signature;
void *method_pointer;
char *ext_function_name;
void **ext_function_pointer;
} JavaMethodAndExtFunction;
#define NUMFUNCTIONS(x) (sizeof(x)/sizeof(JavaMethodAndExtFunction));
extern void doExtension(JNIEnv *env, jobject ext_set, const char *method_name, const char *ext);
extern jclass ext_ResetClass(JNIEnv *env, const char *class_name);
extern void ext_InitializeClass(JNIEnv *env, jclass clazz, jobject ext_set, const char *ext_name, ExtGetProcAddressPROC gpa, int num_functions, JavaMethodAndExtFunction *functions);
#endif

View File

@ -54,11 +54,11 @@ static void JNICALL Java_org_lwjgl_opengl_EXTBlendFuncSeparate_glBlendFuncSepara
void extgl_InitEXTBlendFuncSeparate(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"glBlendFuncSeparateEXT", "(IIII)V", (void*)&Java_org_lwjgl_opengl_EXTBlendFuncSeparate_glBlendFuncSeparateEXT, "glBlendFuncSeparateEXT", (void**)&glBlendFuncSeparateEXT}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/EXTBlendFuncSeparate");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/EXTBlendFuncSeparate");
if (extgl_Extensions.GL_EXT_blend_func_separate)
extgl_InitializeClass(env, clazz, ext_set, "GL_EXT_blend_func_separate", num_functions, functions);
}

View File

@ -67,12 +67,12 @@ static void JNICALL Java_org_lwjgl_opengl_EXTCompiledVertexArray_glUnlockArraysE
void extgl_InitEXTCompiledVertexArray(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"glLockArraysEXT", "(II)V", (void*)&Java_org_lwjgl_opengl_EXTCompiledVertexArray_glLockArraysEXT, "glLockArraysEXT", (void**)&glLockArraysEXT},
{"glUnlockArraysEXT", "()V", (void*)&Java_org_lwjgl_opengl_EXTCompiledVertexArray_glUnlockArraysEXT, "glUnlockArraysEXT", (void**)&glUnlockArraysEXT}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/EXTCompiledVertexArray");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/EXTCompiledVertexArray");
if (extgl_Extensions.GL_EXT_compiled_vertex_array)
extgl_InitializeClass(env, clazz, ext_set, "GL_EXT_compiled_vertex_array", num_functions, functions);
}

View File

@ -66,12 +66,12 @@ static void JNICALL Java_org_lwjgl_opengl_EXTDrawRangeElements_nglDrawRangeEleme
void extgl_InitEXTDrawRangeElements(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"nglDrawRangeElementsEXT", "(IIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_EXTDrawRangeElements_nglDrawRangeElementsEXT, "glDrawRangeElementsEXT", (void**)&glDrawRangeElementsEXT},
{"nglDrawRangeElementsEXTVBO", "(IIIIII)V", (void*)&Java_org_lwjgl_opengl_EXTDrawRangeElements_nglDrawRangeElementsEXTVBO, NULL, NULL}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/EXTDrawRangeElements");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/EXTDrawRangeElements");
if (extgl_Extensions.GL_EXT_draw_range_elements)
extgl_InitializeClass(env, clazz, ext_set, "GL_EXT_draw_range_elements", num_functions, functions);
}

View File

@ -79,13 +79,13 @@ static void JNICALL Java_org_lwjgl_opengl_EXTFogCoord_nglFogCoordPointerEXTVBO
void extgl_InitEXTFogCoord(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"glFogCoordfEXT", "(F)V", (void*)&Java_org_lwjgl_opengl_EXTFogCoord_glFogCoordfEXT, "glFogCoordfEXT", (void**)&glFogCoordfEXT},
{"nglFogCoordPointerEXT", "(IILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_EXTFogCoord_nglFogCoordPointerEXT, "glFogCoordPointerEXT", (void**)&glFogCoordPointerEXT},
{"nglFogCoordPointerEXTVBO", "(III)V", (void*)&Java_org_lwjgl_opengl_EXTFogCoord_nglFogCoordPointerEXTVBO, NULL, NULL}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/EXTFogCoord");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/EXTFogCoord");
if (extgl_Extensions.GL_EXT_fog_coord)
extgl_InitializeClass(env, clazz, ext_set, "GL_EXT_fog_coord", num_functions, functions);
}

View File

@ -56,11 +56,11 @@ static void JNICALL Java_org_lwjgl_opengl_EXTMultiDrawArrays_nglMultiDrawArraysE
void extgl_InitEXTMultiDrawArrays(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"nglMultiDrawArraysEXT", "(ILjava/nio/IntBuffer;ILjava/nio/IntBuffer;II)V", (void*)&Java_org_lwjgl_opengl_EXTMultiDrawArrays_nglMultiDrawArraysEXT, "glMultiDrawArraysEXT", (void**)&glMultiDrawArraysEXT}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/EXTMultiDrawArrays");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/EXTMultiDrawArrays");
if (extgl_Extensions.GL_EXT_multi_draw_arrays)
extgl_InitializeClass(env, clazz, ext_set, "GL_EXT_multi_draw_arrays", num_functions, functions);
}

View File

@ -68,12 +68,12 @@ static void JNICALL Java_org_lwjgl_opengl_EXTPointParameters_nglPointParameterfv
void extgl_InitEXTPointParameters(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"glPointParameterfEXT", "(IF)V", (void*)&Java_org_lwjgl_opengl_EXTPointParameters_glPointParameterfEXT, "glPointParameterfEXT", (void**)&glPointParameterfEXT},
{"nglPointParameterfvEXT", "(ILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_EXTPointParameters_nglPointParameterfvEXT, "glPointParameterfvEXT", (void**)&glPointParameterfvEXT}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/EXTPointParameters");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/EXTPointParameters");
if (extgl_Extensions.GL_EXT_point_parameters)
extgl_InitializeClass(env, clazz, ext_set, "GL_EXT_point_parameters", num_functions, functions);
}

View File

@ -105,7 +105,7 @@ static void JNICALL Java_org_lwjgl_opengl_EXTSecondaryColor_nglSecondaryColorPoi
void extgl_InitEXTSecondaryColor(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"glSecondaryColor3bEXT", "(BBB)V", (void*)&Java_org_lwjgl_opengl_EXTSecondaryColor_glSecondaryColor3bEXT, "glSecondaryColor3bEXT", (void**)&glSecondaryColor3bEXT},
{"glSecondaryColor3fEXT", "(FFF)V", (void*)&Java_org_lwjgl_opengl_EXTSecondaryColor_glSecondaryColor3fEXT, "glSecondaryColor3fEXT", (void**)&glSecondaryColor3fEXT},
{"glSecondaryColor3ubEXT", "(BBB)V", (void*)&Java_org_lwjgl_opengl_EXTSecondaryColor_glSecondaryColor3ubEXT, "glSecondaryColor3ubEXT", (void**)&glSecondaryColor3ubEXT},
@ -113,7 +113,7 @@ void extgl_InitEXTSecondaryColor(JNIEnv *env, jobject ext_set)
{"nglSecondaryColorPointerEXTVBO", "(IIII)V", (void*)&Java_org_lwjgl_opengl_EXTSecondaryColor_nglSecondaryColorPointerEXTVBO, NULL, NULL}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/EXTSecondaryColor");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/EXTSecondaryColor");
if (extgl_Extensions.GL_EXT_secondary_color)
extgl_InitializeClass(env, clazz, ext_set, "GL_EXT_secondary_color", num_functions, functions);
}

View File

@ -54,11 +54,11 @@ static void JNICALL Java_org_lwjgl_opengl_EXTStencilTwoSide_glActiveStencilFaceE
void extgl_InitEXTStencilTwoSide(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"glActiveStencilFaceEXT", "(I)V", (void*)&Java_org_lwjgl_opengl_EXTStencilTwoSide_glActiveStencilFaceEXT, "glActiveStencilFaceEXT", (void**)&glActiveStencilFaceEXT}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/EXTStencilTwoSide");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/EXTStencilTwoSide");
if (extgl_Extensions.GL_EXT_stencil_two_side)
extgl_InitializeClass(env, clazz, ext_set, "GL_EXT_stencil_two_side", num_functions, functions);
}

View File

@ -614,7 +614,7 @@ static void JNICALL Java_org_lwjgl_opengl_EXTVertexShader_nglGetLocalConstantFlo
void extgl_InitEXTVertexShader(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"glBeginVertexShaderEXT", "()V", (void*)&Java_org_lwjgl_opengl_EXTVertexShader_glBeginVertexShaderEXT, "glBeginVertexShaderEXT", (void**)&glBeginVertexShaderEXT},
{"glEndVertexShaderEXT", "()V", (void*)&Java_org_lwjgl_opengl_EXTVertexShader_glEndVertexShaderEXT, "glEndVertexShaderEXT", (void**)&glEndVertexShaderEXT},
{"glBindVertexShaderEXT", "(I)V", (void*)&Java_org_lwjgl_opengl_EXTVertexShader_glBindVertexShaderEXT, "glBindVertexShaderEXT", (void**)&glBindVertexShaderEXT},
@ -659,7 +659,7 @@ void extgl_InitEXTVertexShader(JNIEnv *env, jobject ext_set)
{"nglGetLocalConstantFloatvEXT", "(IILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_EXTVertexShader_nglGetLocalConstantFloatvEXT, "glGetLocalConstantFloatvEXT", (void**)&glGetLocalConstantFloatvEXT}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/EXTVertexShader");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/EXTVertexShader");
if (extgl_Extensions.GL_EXT_vertex_shader)
extgl_InitializeClass(env, clazz, ext_set, "GL_EXT_vertex_shader", num_functions, functions);
}

View File

@ -79,13 +79,13 @@ static void JNICALL Java_org_lwjgl_opengl_EXTVertexWeighting_nglVertexWeightPoin
void extgl_InitEXTVertexWeighting(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"glVertexWeightfEXT", "(F)V", (void*)&Java_org_lwjgl_opengl_EXTVertexWeighting_glVertexWeightfEXT, "glVertexWeightfEXT", (void**)&glVertexWeightfEXT},
{"nglVertexWeightPointerEXT", "(IIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_EXTVertexWeighting_nglVertexWeightPointerEXT, "glVertexWeightPointerEXT", (void**)&glVertexWeightPointerEXT},
{"nglVertexWeightPointerEXTVBO", "(IIII)V", (void*)&Java_org_lwjgl_opengl_EXTVertexWeighting_nglVertexWeightPointerEXTVBO, NULL, NULL}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/EXTVertexWeighting");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/EXTVertexWeighting");
if (extgl_Extensions.GL_EXT_vertex_weighting)
extgl_InitializeClass(env, clazz, ext_set, "GL_EXT_vertex_weighting", num_functions, functions);
}

View File

@ -34,7 +34,6 @@ THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "extgl.h"
#include "common_tools.h"
@ -595,57 +594,57 @@ CFBundleRef opengl_bundle_ref = NULL;
CFBundleRef agl_bundle_ref = NULL;
#endif
jclass extgl_ResetClass(JNIEnv *env, const char *class_name) {
jclass clazz = env->FindClass(class_name);
jint result = env->UnregisterNatives(clazz);
if (result != 0)
printfDebug("Could not unregister natives for class %s\n", class_name);
return clazz;
}
/* getProcAddress */
void extgl_InitializeClass(JNIEnv *env, jclass clazz, jobject ext_set, const char *ext_name, int num_functions, JavaMethodAndGLFunction *functions) {
JNINativeMethod *methods = (JNINativeMethod *)malloc(num_functions*sizeof(JNINativeMethod));
for (int i = 0; i < num_functions; i++) {
JavaMethodAndGLFunction *function = functions + i;
if (function->gl_function_name != NULL) {
void *gl_func_pointer = extgl_GetProcAddress(function->gl_function_name);
if (gl_func_pointer == NULL) {
printf("NOTICE: %s disabled because of missing driver symbols\n", ext_name);
if (ext_set != NULL)
extgl_removeExtension(env, ext_set, ext_name);
free(methods);
return;
}
void **gl_function_pointer_pointer = function->gl_function_pointer;
*gl_function_pointer_pointer = gl_func_pointer;
static void *extgl_GetProcAddress(const char *name)
{
#ifdef _WIN32
void *t = wglGetProcAddress(name);
if (t == NULL)
{
t = GetProcAddress(lib_gl_handle, name);
if (t == NULL)
{
printfDebug("Could not locate symbol %s\n", name);
extgl_error = true;
}
JNINativeMethod *method = methods + i;
method->name = function->method_name;
method->signature = function->signature;
method->fnPtr = function->method_pointer;
}
jint result = env->RegisterNatives(clazz, methods, num_functions);
free(methods);
if (result != 0)
printfDebug("Could not register natives for extension %s\n", ext_name);
return t;
#endif
#ifdef _X11
void *t = (void*)glXGetProcAddressARB((const GLubyte*)name);
if (t == NULL)
{
t = dlsym(lib_gl_handle, name);
if (t == NULL)
{
printfDebug("Could not locate symbol %s\n", name);
extgl_error = true;
}
}
return t;
#endif
#ifdef _AGL
CFStringRef str = CFStringCreateWithCStringNoCopy(NULL, name, kCFStringEncodingUTF8, kCFAllocatorNull);
void *func_pointer = CFBundleGetFunctionPointerForName(opengl_bundle_ref, str);
if (func_pointer == NULL) {
func_pointer = CFBundleGetFunctionPointerForName(agl_bundle_ref, str);
if (func_pointer == NULL) {
printfDebug("Could not locate symbol %s\n", name);
extgl_error = true;
}
}
CFRelease(str);
return func_pointer;
#endif
}
static void doExtension(JNIEnv *env, jobject ext_set, const char *method_name, const char *ext) {
jclass clazz = env->GetObjectClass(ext_set);
jmethodID id = env->GetMethodID(clazz, method_name, "(Ljava/lang/Object;)Z");
if (id == NULL)
return;
jstring ext_string = env->NewStringUTF(ext);
if (ext_string == NULL) {
printf("Could not allocate java string from %s\n", ext);
return;
}
env->CallBooleanMethod(ext_set, id, ext_string);
void extgl_InitializeClass(JNIEnv *env, jclass clazz, jobject ext_set, const char *ext_name, int num_functions, JavaMethodAndExtFunction *functions) {
ext_InitializeClass(env, clazz, ext_set, ext_name, &extgl_GetProcAddress, num_functions, functions);
}
void extgl_removeExtension(JNIEnv *env, jobject ext_set, const char *ext) {
doExtension(env, ext_set, "remove", ext);
}
static void insertExtension(JNIEnv *env, jobject ext_set, const char *ext) {
doExtension(env, ext_set, "add", ext);
@ -722,53 +721,6 @@ static void aglUnloadFramework(CFBundleRef f)
#endif
/* getProcAddress */
void *extgl_GetProcAddress(const char *name)
{
#ifdef _WIN32
void *t = wglGetProcAddress(name);
if (t == NULL)
{
t = GetProcAddress(lib_gl_handle, name);
if (t == NULL)
{
printfDebug("Could not locate symbol %s\n", name);
extgl_error = true;
}
}
return t;
#endif
#ifdef _X11
void *t = (void*)glXGetProcAddressARB((const GLubyte*)name);
if (t == NULL)
{
t = dlsym(lib_gl_handle, name);
if (t == NULL)
{
printfDebug("Could not locate symbol %s\n", name);
extgl_error = true;
}
}
return t;
#endif
#ifdef _AGL
CFStringRef str = CFStringCreateWithCStringNoCopy(NULL, name, kCFStringEncodingUTF8, kCFAllocatorNull);
void *func_pointer = CFBundleGetFunctionPointerForName(opengl_bundle_ref, str);
if (func_pointer == NULL) {
func_pointer = CFBundleGetFunctionPointerForName(agl_bundle_ref, str);
if (func_pointer == NULL) {
printfDebug("Could not locate symbol %s\n", name);
extgl_error = true;
}
}
CFRelease(str);
return func_pointer;
#endif
}
static bool QueryExtension(JNIEnv *env, jobject ext_set, const GLubyte*extensions, const char *name)
{
const GLubyte *start;

View File

@ -194,6 +194,8 @@ typedef void (*_GLfuncptr)();
#define GLAPI extern
#define GLAPIENTRY
#include "common_tools.h"
#ifdef __cplusplus
extern "C" {
#endif
@ -3286,23 +3288,9 @@ bool extgl_InitGLX(JNIEnv *env, Display *disp, int screen);
#ifdef _AGL
bool extgl_InitAGL(JNIEnv *env);
#endif
void *extgl_GetProcAddress(const char *name);
void extgl_Close(void);
void extgl_removeExtension(JNIEnv *env, jobject ext_set, const char *ext);
void extgl_InitializeClass(JNIEnv *env, jclass clazz, jobject ext_set, const char *ext_name, int num_functions, JavaMethodAndExtFunction *functions);
typedef struct {
char *method_name;
char *signature;
void *method_pointer;
char *gl_function_name;
void **gl_function_pointer;
} JavaMethodAndGLFunction;
#define NUMFUNCTIONS(x) (sizeof(x)/sizeof(JavaMethodAndGLFunction));
jclass extgl_ResetClass(JNIEnv *env, const char *class_name);
void extgl_InitializeClass(JNIEnv *env, jclass clazz, jobject ext_set, const char *ext_name, int num_functions, JavaMethodAndGLFunction *functions);
#define EXTGL_SANITY_CHECK(e,x) if (extgl_error) { \
extgl_Extensions.x = false; \
printf("NOTICE: %s disabled because of missing driver symbols\n", #x); \

View File

@ -166,7 +166,7 @@ static void JNICALL Java_org_lwjgl_opengl_NVEvaluators_glEvalMapsNV
void extgl_InitNVEvaluators(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"nglGetMapControlPointsNV", "(IIIIIZLjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_NVEvaluators_nglGetMapControlPointsNV, "glGetMapControlPointsNV", (void**)&glGetMapControlPointsNV},
{"nglMapControlPointsNV", "(IIIIIIIZLjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_NVEvaluators_nglMapControlPointsNV, "glMapControlPointsNV", (void**)&glMapControlPointsNV},
{"nglMapParameterfvNV", "(IILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_NVEvaluators_nglMapParameterfvNV, "glMapParameterfvNV", (void**)&glMapParameterfvNV},
@ -178,7 +178,7 @@ void extgl_InitNVEvaluators(JNIEnv *env, jobject ext_set)
{"glEvalMapsNV", "(II)V", (void*)&Java_org_lwjgl_opengl_NVEvaluators_glEvalMapsNV, "glEvalMapsNV", (void**)&glEvalMapsNV}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/NVEvaluators");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/NVEvaluators");
if (extgl_Extensions.GL_NV_evaluators)
extgl_InitializeClass(env, clazz, ext_set, "GL_NV_evaluators", num_functions, functions);
}

View File

@ -137,7 +137,7 @@ static void JNICALL Java_org_lwjgl_opengl_NVFence_nglGetFenceivNV
void extgl_InitNVFence(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"nglGenFencesNV", "(ILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_NVFence_nglGenFencesNV, "glGenFencesNV", (void**)&glGenFencesNV},
{"nglDeleteFencesNV", "(ILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_NVFence_nglDeleteFencesNV, "glDeleteFencesNV", (void**)&glDeleteFencesNV},
{"glSetFenceNV", "(II)V", (void*)&Java_org_lwjgl_opengl_NVFence_glSetFenceNV, "glSetFenceNV", (void**)&glSetFenceNV},
@ -147,7 +147,7 @@ void extgl_InitNVFence(JNIEnv *env, jobject ext_set)
{"nglGetFenceivNV", "(IILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_NVFence_nglGetFenceivNV, "glGetFenceivNV", (void**)&glGetFenceivNV}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/NVFence");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/NVFence");
if (extgl_Extensions.GL_NV_fence)
extgl_InitializeClass(env, clazz, ext_set, "GL_NV_fence", num_functions, functions);
}

View File

@ -97,14 +97,14 @@ static void JNICALL Java_org_lwjgl_opengl_NVFragmentProgram_nglGetProgramLocalPa
void extgl_InitNVFragmentProgram(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"nglProgramNamedParameter4fNV", "(IILjava/nio/ByteBuffer;IFFFF)V", (void*)&Java_org_lwjgl_opengl_NVFragmentProgram_nglProgramNamedParameter4fNV, "glProgramNamedParameter4fNV", (void**)&glProgramNamedParameter4fNV},
{"nglGetProgramNamedParameterfvNV", "(IILjava/nio/ByteBuffer;ILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_NVFragmentProgram_nglGetProgramNamedParameterfvNV, "glGetProgramNamedParameterfvNV", (void**)&glGetProgramNamedParameterfvNV},
{"glProgramLocalParameter4fARB", "(IIFFFF)V", (void*)&Java_org_lwjgl_opengl_NVFragmentProgram_glProgramLocalParameter4fARB, "glProgramLocalParameter4fARB", (void**)&glProgramLocalParameter4fARB},
{"nglGetProgramLocalParameterfvARB", "(IILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_NVFragmentProgram_nglGetProgramLocalParameterfvARB, "glGetProgramLocalParameterfvARB", (void**)&glGetProgramLocalParameterfvARB}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/NVFragmentProgram");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/NVFragmentProgram");
if (extgl_Extensions.GL_NV_fragment_program)
extgl_InitializeClass(env, clazz, ext_set, "GL_NV_fragment_program", num_functions, functions);
}

View File

@ -359,7 +359,7 @@ static void JNICALL Java_org_lwjgl_opengl_NVHalfFloat_nglVertexAttribs4hvNV
void extgl_InitNVHalfFloat(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"glVertex2hNV", "(SS)V", (void*)&Java_org_lwjgl_opengl_NVHalfFloat_glVertex2hNV, "glVertex2hNV", (void**)&glVertex2hNV},
{"glVertex3hNV", "(SSS)V", (void*)&Java_org_lwjgl_opengl_NVHalfFloat_glVertex3hNV, "glVertex3hNV", (void**)&glVertex3hNV},
{"glVertex4hNV", "(SSSS)V", (void*)&Java_org_lwjgl_opengl_NVHalfFloat_glVertex4hNV, "glVertex4hNV", (void**)&glVertex4hNV},
@ -386,7 +386,7 @@ void extgl_InitNVHalfFloat(JNIEnv *env, jobject ext_set)
{"nglVertexAttribs4hvNV", "(IILjava/nio/ShortBuffer;I)V", (void*)&Java_org_lwjgl_opengl_NVHalfFloat_nglVertexAttribs4hvNV, "glVertexAttribs4hvNV", (void**)&glVertexAttribs4hvNV}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/NVHalfFloat");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/NVHalfFloat");
if (extgl_Extensions.GL_NV_half_float)
extgl_InitializeClass(env, clazz, ext_set, "GL_NV_half_float", num_functions, functions);
}

View File

@ -137,7 +137,7 @@ static void JNICALL Java_org_lwjgl_opengl_NVOcclusionQuery_nglGetOcclusionQueryu
void extgl_InitNVOcclusionQuery(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"nglGenOcclusionQueriesNV", "(ILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_NVOcclusionQuery_nglGenOcclusionQueriesNV, "glGenOcclusionQueriesNV", (void**)&glGenOcclusionQueriesNV},
{"nglDeleteOcclusionQueriesNV", "(ILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_NVOcclusionQuery_nglDeleteOcclusionQueriesNV, "glDeleteOcclusionQueriesNV", (void**)&glDeleteOcclusionQueriesNV},
{"glIsOcclusionQueryNV", "(I)Z", (void*)&Java_org_lwjgl_opengl_NVOcclusionQuery_glIsOcclusionQueryNV, "glIsOcclusionQueryNV", (void**)&glIsOcclusionQueryNV},
@ -147,7 +147,7 @@ void extgl_InitNVOcclusionQuery(JNIEnv *env, jobject ext_set)
{"nglGetOcclusionQueryuivNV", "(IILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_NVOcclusionQuery_nglGetOcclusionQueryuivNV, "glGetOcclusionQueryuivNV", (void**)&glGetOcclusionQueryuivNV}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/NVOcclusionQuery");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/NVOcclusionQuery");
if (extgl_Extensions.GL_NV_occlusion_query)
extgl_InitializeClass(env, clazz, ext_set, "GL_NV_occlusion_query", num_functions, functions);
}

View File

@ -68,12 +68,12 @@ static void JNICALL Java_org_lwjgl_opengl_NVPixelDataRange_glFlushPixelDataRange
void extgl_InitNVPixelDataRange(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"nglPixelDataRangeNV", "(IILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_NVPixelDataRange_nglPixelDataRangeNV, "glPixelDataRangeNV", (void**)&glPixelDataRangeNV},
{"glFlushPixelDataRangeNV", "(I)V", (void*)&Java_org_lwjgl_opengl_NVPixelDataRange_glFlushPixelDataRangeNV, "glFlushPixelDataRangeNV", (void**)&glFlushPixelDataRangeNV}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/NVPixelDataRange");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/NVPixelDataRange");
if (extgl_Extensions.GL_NV_pixel_data_range)
extgl_InitializeClass(env, clazz, ext_set, "GL_NV_pixel_data_range", num_functions, functions);
}

View File

@ -68,12 +68,12 @@ static void JNICALL Java_org_lwjgl_opengl_NVPointSprite_nglPointParameterivNV
void extgl_InitNVPointSprite(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"glPointParameteriNV", "(II)V", (void*)&Java_org_lwjgl_opengl_NVPointSprite_glPointParameteriNV, "glPointParameteriNV", (void**)&glPointParameteriNV},
{"nglPointParameterivNV", "(ILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_NVPointSprite_nglPointParameterivNV, "glPointParameterivNV", (void**)&glPointParameterivNV}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/NVPointSprite");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/NVPointSprite");
if (extgl_Extensions.GL_NV_point_sprite)
extgl_InitializeClass(env, clazz, ext_set, "GL_NV_point_sprite", num_functions, functions);
}

View File

@ -67,12 +67,12 @@ static void JNICALL Java_org_lwjgl_opengl_NVPrimitiveRestart_glPrimitiveRestartI
void extgl_InitNVPrimitiveRestart(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"glPrimitiveRestartNV", "()V", (void*)&Java_org_lwjgl_opengl_NVPrimitiveRestart_glPrimitiveRestartNV, "glPrimitiveRestartNV", (void**)&glPrimitiveRestartNV},
{"glPrimitiveRestartIndexNV", "(I)V", (void*)&Java_org_lwjgl_opengl_NVPrimitiveRestart_glPrimitiveRestartIndexNV, "glPrimitiveRestartIndexNV", (void**)&glPrimitiveRestartIndexNV}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/NVPrimitiveRestart");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/NVPrimitiveRestart");
if (extgl_Extensions.GL_NV_primitive_restart)
extgl_InitializeClass(env, clazz, ext_set, "GL_NV_primitive_restart", num_functions, functions);
}

View File

@ -168,7 +168,7 @@ static void JNICALL Java_org_lwjgl_opengl_NVProgram_nglRequestResidentProgramsNV
void extgl_InitNVProgram(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"nglLoadProgramNV", "(IIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_NVProgram_nglLoadProgramNV, "glLoadProgramNV", (void**)&glLoadProgramNV},
{"glBindProgramNV", "(II)V", (void*)&Java_org_lwjgl_opengl_NVProgram_glBindProgramNV, "glBindProgramNV", (void**)&glBindProgramNV},
{"nglDeleteProgramsNV", "(ILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_NVProgram_nglDeleteProgramsNV, "glDeleteProgramsNV", (void**)&glDeleteProgramsNV},
@ -180,6 +180,6 @@ void extgl_InitNVProgram(JNIEnv *env, jobject ext_set)
{"nglRequestResidentProgramsNV", "(ILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_NVProgram_nglRequestResidentProgramsNV, "glRequestResidentProgramsNV", (void**)&glRequestResidentProgramsNV}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/NVProgram");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/NVProgram");
extgl_InitializeClass(env, clazz, NULL, "<NVProgram>", num_functions, functions);
}

View File

@ -218,7 +218,7 @@ static void JNICALL Java_org_lwjgl_opengl_NVRegisterCombiners_nglGetFinalCombine
void extgl_InitNVRegisterCombiners(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"glCombinerParameterfNV", "(IF)V", (void*)&Java_org_lwjgl_opengl_NVRegisterCombiners_glCombinerParameterfNV, "glCombinerParameterfNV", (void**)&glCombinerParameterfNV},
{"nglCombinerParameterfvNV", "(ILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_NVRegisterCombiners_nglCombinerParameterfvNV, "glCombinerParameterfvNV", (void**)&glCombinerParameterfvNV},
{"glCombinerParameteriNV", "(II)V", (void*)&Java_org_lwjgl_opengl_NVRegisterCombiners_glCombinerParameteriNV, "glCombinerParameteriNV", (void**)&glCombinerParameteriNV},
@ -234,7 +234,7 @@ void extgl_InitNVRegisterCombiners(JNIEnv *env, jobject ext_set)
{"nglGetFinalCombinerInputParameterivNV", "(IILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_NVRegisterCombiners_nglGetFinalCombinerInputParameterivNV, "glGetFinalCombinerInputParameterivNV", (void**)&glGetFinalCombinerInputParameterivNV}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/NVRegisterCombiners");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/NVRegisterCombiners");
if (extgl_Extensions.GL_NV_register_combiners)
extgl_InitializeClass(env, clazz, ext_set, "GL_NV_register_combiners", num_functions, functions);
}

View File

@ -69,12 +69,12 @@ static void JNICALL Java_org_lwjgl_opengl_NVRegisterCombiners2_nglGetCombinerSta
void extgl_InitNVRegisterCombiners2(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"nglCombinerStageParameterfvNV", "(IILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_NVRegisterCombiners2_nglCombinerStageParameterfvNV, "glCombinerStageParameterfvNV", (void**)&glCombinerStageParameterfvNV},
{"nglGetCombinerStageParameterfvNV", "(IILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_NVRegisterCombiners2_nglGetCombinerStageParameterfvNV, "glGetCombinerStageParameterfvNV", (void**)&glGetCombinerStageParameterfvNV}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/NVRegisterCombiners2");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/NVRegisterCombiners2");
if (extgl_Extensions.GL_NV_register_combiners2)
extgl_InitializeClass(env, clazz, ext_set, "GL_NV_register_combiners2", num_functions, functions);
}

View File

@ -120,7 +120,7 @@ static void JNICALL Java_org_lwjgl_opengl_NVVertexArrayRange_wglFreeMemoryNV
void extgl_InitNVVertexArrayRange(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"nglVertexArrayRangeNV", "(ILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_NVVertexArrayRange_nglVertexArrayRangeNV, "glVertexArrayRangeNV", (void**)&glVertexArrayRangeNV},
{"glFlushVertexArrayRangeNV", "()V", (void*)&Java_org_lwjgl_opengl_NVVertexArrayRange_glFlushVertexArrayRangeNV, "glFlushVertexArrayRangeNV", (void**)&glFlushVertexArrayRangeNV},
#ifdef _X11
@ -133,7 +133,7 @@ void extgl_InitNVVertexArrayRange(JNIEnv *env, jobject ext_set)
#endif
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/NVVertexArrayRange");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/NVVertexArrayRange");
if (extgl_Extensions.GL_NV_vertex_array_range)
extgl_InitializeClass(env, clazz, ext_set, "GL_NV_vertex_array_range", num_functions, functions);
}

View File

@ -398,7 +398,7 @@ static void JNICALL Java_org_lwjgl_opengl_NVVertexProgram_nglVertexAttribs4ubvNV
void extgl_InitNVVertexProgram(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"nglExecuteProgramNV", "(IILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_NVVertexProgram_nglExecuteProgramNV, "glExecuteProgramNV", (void**)&glExecuteProgramNV},
{"nglGetProgramParameterfvNV", "(IIILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_NVVertexProgram_nglGetProgramParameterfvNV, "glGetProgramParameterfvNV", (void**)&glGetProgramParameterfvNV},
{"nglGetTrackMatrixivNV", "(IIILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_NVVertexProgram_nglGetTrackMatrixivNV, "glGetTrackMatrixivNV", (void**)&glGetTrackMatrixivNV},
@ -430,7 +430,7 @@ void extgl_InitNVVertexProgram(JNIEnv *env, jobject ext_set)
{"nglVertexAttribs4ubvNV", "(IILjava/nio/ByteBuffer;I)V", (void*)&Java_org_lwjgl_opengl_NVVertexProgram_nglVertexAttribs4ubvNV, "glVertexAttribs4ubvNV", (void**)&glVertexAttribs4ubvNV}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/NVVertexProgram");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/NVVertexProgram");
if (extgl_Extensions.GL_NV_vertex_program)
extgl_InitializeClass(env, clazz, ext_set, "GL_NV_vertex_program", num_functions, functions);
}

View File

@ -2574,7 +2574,7 @@ static void JNICALL Java_org_lwjgl_opengl_GL11_glViewport(JNIEnv * env, jclass c
void extgl_InitOpenGL1_1(JNIEnv *env)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"glAccum", "(IF)V", (void*)&Java_org_lwjgl_opengl_GL11_glAccum, "glAccum", (void**)&glAccum},
{"glAlphaFunc", "(IF)V", (void*)&Java_org_lwjgl_opengl_GL11_glAlphaFunc, "glAlphaFunc", (void**)&glAlphaFunc},
{"glClearColor", "(FFFF)V", (void*)&Java_org_lwjgl_opengl_GL11_glClearColor, "glClearColor", (void**)&glClearColor},
@ -2783,7 +2783,7 @@ void extgl_InitOpenGL1_1(JNIEnv *env)
{"glViewport", "(IIII)V", (void*)&Java_org_lwjgl_opengl_GL11_glViewport, "glViewport", (void**)&glViewport}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/GL11");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/GL11");
if (true)
extgl_InitializeClass(env, clazz, NULL, "GL11", num_functions, functions);
}

View File

@ -117,7 +117,7 @@ static void JNICALL Java_org_lwjgl_opengl_GL12_glCopyTexSubImage3D
void extgl_InitOpenGL1_2(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"nglDrawRangeElements", "(IIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL12_nglDrawRangeElements, "glDrawRangeElements", (void**)&glDrawRangeElements},
{"nglDrawRangeElementsVBO", "(IIIIII)V", (void*)&Java_org_lwjgl_opengl_GL12_nglDrawRangeElementsVBO, NULL, NULL},
{"nglTexImage3D", "(IIIIIIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL12_nglTexImage3D, "glTexImage3D", (void**)&glTexImage3D},
@ -125,7 +125,7 @@ void extgl_InitOpenGL1_2(JNIEnv *env, jobject ext_set)
{"glCopyTexSubImage3D", "(IIIIIIIII)V", (void*)&Java_org_lwjgl_opengl_GL12_glCopyTexSubImage3D, "glCopyTexSubImage3D", (void**)&glCopyTexSubImage3D}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/GL12");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/GL12");
if (extgl_Extensions.OpenGL12)
extgl_InitializeClass(env, clazz, ext_set, "OpenGL12", num_functions, functions);
}

View File

@ -287,7 +287,7 @@ static void JNICALL Java_org_lwjgl_opengl_GL13_glSampleCoverage
void extgl_InitOpenGL1_3(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"glActiveTexture", "(I)V", (void*)&Java_org_lwjgl_opengl_GL13_glActiveTexture, "glActiveTexture", (void**)&glActiveTexture},
{"glClientActiveTexture", "(I)V", (void*)&Java_org_lwjgl_opengl_GL13_glClientActiveTexture, "glClientActiveTexture", (void**)&glClientActiveTexture},
{"nglCompressedTexImage1D", "(IIIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL13_nglCompressedTexImage1D, "glCompressedTexImage1D", (void**)&glCompressedTexImage1D},
@ -306,7 +306,7 @@ void extgl_InitOpenGL1_3(JNIEnv *env, jobject ext_set)
{"glSampleCoverage", "(FZ)V", (void*)&Java_org_lwjgl_opengl_GL13_glSampleCoverage, "glSampleCoverage", (void**)&glSampleCoverage}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/GL13");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/GL13");
if (extgl_Extensions.OpenGL13)
extgl_InitializeClass(env, clazz, ext_set, "OpenGL13", num_functions, functions);
}

View File

@ -271,7 +271,7 @@ static void JNICALL Java_org_lwjgl_opengl_GL14_glWindowPos3i
void extgl_InitOpenGL1_4(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"glBlendEquation", "(I)V", (void*)&Java_org_lwjgl_opengl_GL14_glBlendEquation, "glBlendEquation", (void**)&glBlendEquation},
{"glBlendColor", "(FFFF)V", (void*)&Java_org_lwjgl_opengl_GL14_glBlendColor, "glBlendColor", (void**)&glBlendColor},
{"glFogCoordf", "(F)V", (void*)&Java_org_lwjgl_opengl_GL14_glFogCoordf, "glFogCoordf", (void**)&glFogCoordf},
@ -292,7 +292,7 @@ void extgl_InitOpenGL1_4(JNIEnv *env, jobject ext_set)
{"glWindowPos3i", "(III)V", (void*)&Java_org_lwjgl_opengl_GL14_glWindowPos3i, "glWindowPos3i", (void**)&glWindowPos3i}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/GL14");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/GL14");
if (extgl_Extensions.OpenGL14)
extgl_InitializeClass(env, clazz, ext_set, "OpenGL14", num_functions, functions);
}

View File

@ -315,7 +315,7 @@ static void JNICALL Java_org_lwjgl_opengl_GL15_nglGetQueryObjectuiv
void extgl_InitOpenGL1_5(JNIEnv *env, jobject ext_set)
{
JavaMethodAndGLFunction functions[] = {
JavaMethodAndExtFunction functions[] = {
{"nglBindBuffer", "(II)V", (void*)&Java_org_lwjgl_opengl_GL15_nglBindBuffer, "glBindBuffer", (void**)&glBindBuffer},
{"nglDeleteBuffers", "(ILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_GL15_nglDeleteBuffers, "glDeleteBuffers", (void**)&glDeleteBuffers},
{"nglGenBuffers", "(ILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_GL15_nglGenBuffers, "glGenBuffers", (void**)&glGenBuffers},
@ -337,7 +337,7 @@ void extgl_InitOpenGL1_5(JNIEnv *env, jobject ext_set)
{"nglGetQueryObjectuiv", "(IILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_GL15_nglGetQueryObjectuiv, "glGetQueryObjectuiv", (void**)&glGetQueryObjectuiv}
};
int num_functions = NUMFUNCTIONS(functions);
jclass clazz = extgl_ResetClass(env, "org/lwjgl/opengl/GL15");
jclass clazz = ext_ResetClass(env, "org/lwjgl/opengl/GL15");
if (extgl_Extensions.OpenGL15)
extgl_InitializeClass(env, clazz, ext_set, "OpenGL15", num_functions, functions);
}