Update of /cvsroot/java-game-lib/LWJGL/src/native/common In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31365/src/native/common Modified Files: checkGLerror.h extgl.cpp extgl.h org_lwjgl_opengl_GL11.cpp org_lwjgl_opengl_GL12.cpp org_lwjgl_opengl_GL13.cpp org_lwjgl_opengl_GL14.cpp org_lwjgl_opengl_GL15.cpp Removed Files: org_lwjgl_opengl_GL11.h org_lwjgl_opengl_GL12.h org_lwjgl_opengl_GL13.h org_lwjgl_opengl_GL14.h org_lwjgl_opengl_GL15.h Log Message: Replaced CHECK_EXISTS with one time check at symbol load time Index: checkGLerror.h =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/common/checkGLerror.h,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- checkGLerror.h 5 Feb 2004 17:14:50 -0000 1.11 +++ checkGLerror.h 7 Mar 2004 15:18:45 -0000 1.12 @@ -28,13 +28,4 @@ } \ } -#define CHECK_EXISTS(f) \ - { \ - if (!f) { \ - jclass cls = env->FindClass("org/lwjgl/opengl/OpenGLException"); \ - env->ThrowNew(cls, "This function is not available in this driver."); \ - env->DeleteLocalRef(cls); \ - } \ - } \ - #endif /* _CHECKGLERROR_H_INCLUDED_ */ Index: extgl.cpp =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/common/extgl.cpp,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- extgl.cpp 5 Mar 2004 22:57:51 -0000 1.25 +++ extgl.cpp 7 Mar 2004 15:18:45 -0000 1.26 @@ -594,6 +594,39 @@ 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; +} + +void extgl_InitializeClass(JNIEnv *env, jclass clazz, jobject ext_set, const char *ext_name, int num_functions, JavaMethodAndGLFunction *functions) { + JNINativeMethod methods[num_functions]; + 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); + return; + } + void **gl_function_pointer_pointer = function->gl_function_pointer; + *gl_function_pointer_pointer = gl_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); + if (result != 0) + printfDebug("Could not register natives for extension %s\n", ext_name); +} + 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"); @@ -802,7 +835,7 @@ wglSaveBufferRegionARB = (wglSaveBufferRegionARBPROC) extgl_GetProcAddress("wglSaveBufferRegionARB"); wglRestoreBufferRegionARB = (wglRestoreBufferRegionARBPROC) extgl_GetProcAddress("wglRestoreBufferRegionARB"); - EXTGL_SANITY_CHECK(env, NULL, WGL_ARB_buffer_region); + EXTGL_SANITY_CHECK(env, WGL_ARB_buffer_region); } static void extgl_InitWGLARBPbuffer(JNIEnv *env) @@ -814,7 +847,7 @@ wglReleasePbufferDCARB = (wglReleasePbufferDCARBPROC) extgl_GetProcAddress("wglReleasePbufferDCARB"); wglDestroyPbufferARB = (wglDestroyPbufferARBPROC) extgl_GetProcAddress("wglDestroyPbufferARB"); wglQueryPbufferARB = (wglQueryPbufferARBPROC) extgl_GetProcAddress("wglQueryPbufferARB"); - EXTGL_SANITY_CHECK(env, NULL, WGL_ARB_pbuffer); + EXTGL_SANITY_CHECK(env, WGL_ARB_pbuffer); } @@ -825,7 +858,7 @@ wglGetPixelFormatAttribivARB = (wglGetPixelFormatAttribivARBPROC) extgl_GetProcAddress("wglGetPixelFormatAttribivARB"); wglGetPixelFormatAttribfvARB = (wglGetPixelFormatAttribfvARBPROC) extgl_GetProcAddress("wglGetPixelFormatAttribfvARB"); wglChoosePixelFormatARB = (wglChoosePixelFormatARBPROC) extgl_GetProcAddress("wglChoosePixelFormatARB"); - EXTGL_SANITY_CHECK(env, NULL, WGL_ARB_pixel_format); + EXTGL_SANITY_CHECK(env, WGL_ARB_pixel_format); } @@ -836,7 +869,7 @@ wglBindTexImageARB = (wglBindTexImageARBPROC) extgl_GetProcAddress("wglBindTexImageARB"); wglReleaseTexImageARB = (wglReleaseTexImageARBPROC) extgl_GetProcAddress("wglReleaseTexImageARB"); wglSetPbufferAttribARB = (wglSetPbufferAttribARBPROC) extgl_GetProcAddress("wglSetPbufferAttribARB"); - EXTGL_SANITY_CHECK(env, NULL, WGL_ARB_render_texture); + EXTGL_SANITY_CHECK(env, WGL_ARB_render_texture); } @@ -846,7 +879,7 @@ return; wglSwapIntervalEXT = (wglSwapIntervalEXTPROC) extgl_GetProcAddress("wglSwapIntervalEXT"); wglGetSwapIntervalEXT = (wglGetSwapIntervalEXTPROC) extgl_GetProcAddress("wglGetSwapIntervalEXT"); - EXTGL_SANITY_CHECK(env, NULL, WGL_EXT_swap_control); + EXTGL_SANITY_CHECK(env, WGL_EXT_swap_control); } @@ -856,7 +889,7 @@ return; wglMakeContextCurrentARB = (wglMakeContextCurrentARBPROC) extgl_GetProcAddress("wglMakeContextCurrentARB"); wglGetCurrentReadDCARB = (wglGetCurrentReadDCARBPROC) extgl_GetProcAddress("wglGetCurrentReadDCARB"); - EXTGL_SANITY_CHECK(env, NULL, WGL_ARB_make_current_read); + EXTGL_SANITY_CHECK(env, WGL_ARB_make_current_read); } @@ -960,37 +993,6 @@ return QueryExtension(env, ext_set, glGetString(GL_EXTENSIONS), name); } -/*static void extgl_InitNVPrimitiveRestart(JNIEnv *env, jobject ext_set) -{ - if (!extgl_Extensions.GL_NV_primitive_restart) - return; - glPrimitiveRestartNV = (glPrimitiveRestartNVPROC) extgl_GetProcAddress("glPrimitiveRestartNV"); - glPrimitiveRestartIndexNV = (glPrimitiveRestartIndexNVPROC) extgl_GetProcAddress("glPrimitiveRestartIndexNV"); - EXTGL_SANITY_CHECK(env, ext_set, GL_NV_primitive_restart) -} - -static void extgl_InitNVElementArray(JNIEnv *env, jobject ext_set) -{ - if (!extgl_Extensions.GL_NV_element_array) - return; - glElementPointerNV = (glElementPointerNVPROC) extgl_GetProcAddress("glElementPointerNV"); - glDrawElementArrayNV = (glDrawElementArrayNVPROC) extgl_GetProcAddress("glDrawElementArrayNV"); - glDrawRangeElementArrayNV = (glDrawRangeElementArrayNVPROC) extgl_GetProcAddress("glDrawRangeElementArrayNV"); - glMultiDrawElementArrayNV = (glMultiDrawElementArrayNVPROC) extgl_GetProcAddress("glMultiDrawElementArrayNV"); - glMultiDrawRangeElementArrayNV = (glMultiDrawRangeElementArrayNVPROC) extgl_GetProcAddress("glMultiDrawRangeElementArrayNV"); - EXTGL_SANITY_CHECK(env, ext_set, GL_NV_element_array) -} - - -static void extgl_InitEXTCullVertex(JNIEnv *env, jobject ext_set) -{ - if (!extgl_Extensions.GL_EXT_cull_vertex) - return; - glCullParameterfvEXT = (glCullParameterfvEXTPROC) extgl_GetProcAddress("glCullParameterfvEXT"); - glCullParameterdvEXT = (glCullParameterdvEXTPROC) extgl_GetProcAddress("glCullParameterdvEXT"); - EXTGL_SANITY_CHECK(env, ext_set, GL_EXT_cull_vertex) -} -*/ #ifdef _X11 static void extgl_InitGLX13(JNIEnv *env) @@ -1015,7 +1017,7 @@ glXQueryContext = (glXQueryContextPROC) extgl_GetProcAddress("glXQueryContext"); glXSelectEvent = (glXSelectEventPROC) extgl_GetProcAddress("glXSelectEvent"); glXGetSelectedEvent = (glXGetSelectedEventPROC) extgl_GetProcAddress("glXGetSelectedEvent"); - EXTGL_SANITY_CHECK(env, (jobject)NULL, GLX13); + EXTGL_SANITY_CHECK(env, GLX13); } static bool extgl_InitGLX12(void) @@ -1056,7 +1058,7 @@ if (extgl_Extensions.GLX_SGI_swap_control != 1) return; glXSwapIntervalSGI = (glXSwapIntervalSGIPROC)extgl_GetProcAddress("glXSwapIntervalSGI"); - EXTGL_SANITY_CHECK(env, (jobject)NULL, GLX_SGI_swap_control); + EXTGL_SANITY_CHECK(env, GLX_SGI_swap_control); } bool extgl_InitGLX(JNIEnv *env, Display *disp, int screen) @@ -1208,7 +1210,7 @@ extgl_Extensions.GL_SGIX_shadow = GLQueryExtension(env, ext_set, "GL_SGIX_shadow"); } -extern void extgl_InitOpenGL1_1(); +extern void extgl_InitOpenGL1_1(JNIEnv *env); //extern void extgl_InitARBFragmentProgram(JNIEnv *env, jobject ext_set); extern void extgl_InitARBImaging(JNIEnv *env, jobject ext_set); extern void extgl_InitARBMatrixPalette(JNIEnv *env, jobject ext_set); @@ -1271,7 +1273,7 @@ bool extgl_Initialize(JNIEnv *env, jobject ext_set) { extgl_error = false; - extgl_InitOpenGL1_1(); + extgl_InitOpenGL1_1(env); if (extgl_error) return false; @@ -1323,7 +1325,6 @@ extgl_InitNVRegisterCombiners2(env, ext_set); extgl_InitNVVertexArrayRange(env, ext_set); extgl_InitNVVertexProgram(env, ext_set); - extgl_InitATIDrawBuffers(env, ext_set); extgl_InitATIElementArray(env, ext_set); extgl_InitATIEnvmapBumpmap(env, ext_set); Index: extgl.h =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/common/extgl.h,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- extgl.h 25 Feb 2004 18:09:01 -0000 1.28 +++ extgl.h 7 Mar 2004 15:18:45 -0000 1.29 @@ -3213,19 +3213,19 @@ bool GL_EXT_texture_lod_bias; bool GL_EXT_vertex_shader; bool GL_EXT_vertex_weighting; - bool GL_EXT_draw_range_elements; - bool GL_ATI_draw_buffers; + bool GL_EXT_draw_range_elements; + bool GL_ATI_draw_buffers; bool GL_ATI_element_array; bool GL_ATI_envmap_bumpmap; bool GL_ATI_fragment_shader; - bool GL_ATI_map_object_buffer; + bool GL_ATI_map_object_buffer; bool GL_ATI_pn_triangles; bool GL_ATI_point_cull_mode; bool GL_ATI_separate_stencil; bool GL_ATI_text_fragment_shader; bool GL_ATI_texture_mirror_once; bool GL_ATI_vertex_array_object; - bool GL_ATI_vertex_attrib_array_object; + bool GL_ATI_vertex_attrib_array_object; bool GL_ATI_vertex_streams; bool GL_ATIX_point_sprites; bool GL_ATIX_texture_env_route; @@ -3239,11 +3239,11 @@ bool GL_NV_float_buffer; bool GL_NV_fog_distance; bool GL_NV_fragment_program; - bool GL_NV_half_float; + bool GL_NV_half_float; bool GL_NV_light_max_exponent; bool GL_NV_occlusion_query; bool GL_NV_packed_depth_stencil; - bool GL_NV_pixel_data_range; + bool GL_NV_pixel_data_range; bool GL_NV_point_sprite; bool GL_NV_primitive_restart; bool GL_NV_register_combiners; @@ -3290,14 +3290,25 @@ void extgl_Close(void); void extgl_removeExtension(JNIEnv *env, jobject ext_set, const char *ext); -#define EXTGL_SANITY_CHECK(e,h,x) if (extgl_error) { \ +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); \ extgl_error = false; \ - if (h != NULL) { \ - extgl_removeExtension(e, h, #x); \ - } \ } + #ifdef __cplusplus } #endif Index: org_lwjgl_opengl_GL11.cpp =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/common/org_lwjgl_opengl_GL11.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- org_lwjgl_opengl_GL11.cpp 29 Jan 2004 22:07:03 -0000 1.3 +++ org_lwjgl_opengl_GL11.cpp 7 Mar 2004 15:18:45 -0000 1.4 @@ -39,13 +39,12 @@ * @version $Revision$ */ -#include "org_lwjgl_opengl_GL11.h" #include "checkGLerror.h" #include "extgl.h" typedef void (APIENTRY * glAccumPROC) (GLenum op, GLfloat value); typedef void (APIENTRY * glAlphaFuncPROC) (GLenum func, GLclampf ref); -typedef GLboolean (APIENTRY * glAreTexturesResidentPROC) (GLsizei n, const GLuint *textures, GLboolean *residences); +//typedef GLboolean (APIENTRY * glAreTexturesResidentPROC) (GLsizei n, const GLuint *textures, GLboolean *residences); [...2927 lines suppressed...] + {"glTexEnvf", "(IIF)V", (void*)&Java_org_lwjgl_opengl_GL11_glTexEnvf, "glTexEnvf", (void**)&glTexEnvf}, + {"glTexEnvi", "(III)V", (void*)&Java_org_lwjgl_opengl_GL11_glTexEnvi, "glTexEnvi", (void**)&glTexEnvi}, + {"nglTexEnvfv", "(IILjava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglTexEnvfv, "glTexEnvfv", (void**)&glTexEnvfv}, + {"nglTexEnviv", "(IILjava/nio/IntBuffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglTexEnviv, "glTexEnviv", (void**)&glTexEnviv}, + {"nglTexCoordPointer", "(IIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL11_nglTexCoordPointer, "glTexCoordPointer", (void**)&glTexCoordPointer}, + {"nglTexCoordPointerVBO", "(IIII)V", (void*)&Java_org_lwjgl_opengl_GL11_nglTexCoordPointerVBO, NULL, NULL}, + {"glTexCoord1f", "(F)V", (void*)&Java_org_lwjgl_opengl_GL11_glTexCoord1f, "glTexCoord1f", (void**)&glTexCoord1f}, + {"glTexCoord2f", "(FF)V", (void*)&Java_org_lwjgl_opengl_GL11_glTexCoord2f, "glTexCoord2f", (void**)&glTexCoord2f}, + {"glTexCoord3f", "(FFF)V", (void*)&Java_org_lwjgl_opengl_GL11_glTexCoord3f, "glTexCoord3f", (void**)&glTexCoord3f}, + {"glTexCoord4f", "(FFFF)V", (void*)&Java_org_lwjgl_opengl_GL11_glTexCoord4f, "glTexCoord4f", (void**)&glTexCoord4f}, + {"glStencilOp", "(III)V", (void*)&Java_org_lwjgl_opengl_GL11_glStencilOp, "glStencilOp", (void**)&glStencilOp}, + {"glStencilMask", "(I)V", (void*)&Java_org_lwjgl_opengl_GL11_glStencilMask, "glStencilMask", (void**)&glStencilMask}, + {"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"); + if (true) + extgl_InitializeClass(env, clazz, NULL, "GL11", num_functions, functions); +} + Index: org_lwjgl_opengl_GL12.cpp =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/common/org_lwjgl_opengl_GL12.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- org_lwjgl_opengl_GL12.cpp 17 Feb 2004 21:59:08 -0000 1.3 +++ org_lwjgl_opengl_GL12.cpp 7 Mar 2004 15:18:46 -0000 1.4 @@ -39,7 +39,6 @@ * @version $Revision$ */ -#include "org_lwjgl_opengl_GL12.h" #include "checkGLerror.h" #include "extgl.h" @@ -53,26 +52,14 @@ static glTexSubImage3DPROC glTexSubImage3D; static glCopyTexSubImage3DPROC glCopyTexSubImage3D; -void extgl_InitOpenGL1_2(JNIEnv *env, jobject ext_set) -{ - if (!extgl_Extensions.OpenGL12) - return; - glTexImage3D = (glTexImage3DPROC) extgl_GetProcAddress("glTexImage3D"); - glTexSubImage3D = (glTexSubImage3DPROC) extgl_GetProcAddress("glTexSubImage3D"); - glCopyTexSubImage3D = (glCopyTexSubImage3DPROC) extgl_GetProcAddress("glCopyTexSubImage3D"); - glDrawRangeElements = (glDrawRangeElementsPROC) extgl_GetProcAddress("glDrawRangeElements"); - EXTGL_SANITY_CHECK(env, ext_set, OpenGL12) -} - /* * Class: org_lwjgl_opengl_GL12 * Method: nglDrawRangeElements * Signature: (IIIIII)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL12_nglDrawRangeElements +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL12_nglDrawRangeElements (JNIEnv *env, jclass clazz, jint mode, jint start, jint end, jint count, jint type, jobject buffer, jint offset) { - CHECK_EXISTS(glDrawRangeElements) const void *address = (const void *)(offset + (const GLbyte *)env->GetDirectBufferAddress(buffer)); glDrawRangeElements(mode, start, end, count, type, address); CHECK_GL_ERROR @@ -83,10 +70,9 @@ * Method: nglDrawRangeElementsVBO * Signature: (IIIIII)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL12_nglDrawRangeElementsVBO +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL12_nglDrawRangeElementsVBO (JNIEnv *env, jclass clazz, jint mode, jint start, jint end, jint count, jint type, jint buffer_offset) { - CHECK_EXISTS(glDrawRangeElements) glDrawRangeElements(mode, start, end, count, type, offsetToPointer(buffer_offset)); CHECK_GL_ERROR } @@ -96,10 +82,9 @@ * Method: glTexImage3D * Signature: (IIIIIIIIII)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL12_nglTexImage3D +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL12_nglTexImage3D (JNIEnv *env, jclass clazz, jint target, jint level, jint internalformat, jint width, jint height, jint depth, jint border, jint format, jint type, jobject buffer, jint offset) { - CHECK_EXISTS(glTexImage3D) const void *address = (const void *)(offset + (const GLbyte *)env->GetDirectBufferAddress(buffer)); glTexImage3D(target, level, internalformat, width, height, depth, border, format, type, address); CHECK_GL_ERROR @@ -110,10 +95,9 @@ * Method: glTexSubImage3D * Signature: (IIIIIIIIIII)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL12_nglTexSubImage3D +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL12_nglTexSubImage3D (JNIEnv *env, jclass clazz, jint target, jint level, jint xoffset, jint yoffset, jint zoffset, jint width, jint height, jint depth, jint format, jint type, jobject buffer, jint offset) { - CHECK_EXISTS(glTexSubImage3D) const void *address = (const void *)(offset + (const GLbyte *)env->GetDirectBufferAddress(buffer)); glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, address); CHECK_GL_ERROR @@ -124,11 +108,25 @@ * Method: glCopyTexSubImage3D * Signature: (IIIIIIIII)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL12_glCopyTexSubImage3D +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL12_glCopyTexSubImage3D (JNIEnv *env, jclass clazz, jint target, jint level, jint xoffset, jint yoffset, jint zoffset, jint x, jint y, jint width, jint height) { - CHECK_EXISTS(glCopyTexSubImage3D) glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height); CHECK_GL_ERROR } +void extgl_InitOpenGL1_2(JNIEnv *env, jobject ext_set) +{ + JavaMethodAndGLFunction 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}, + {"nglTexSubImage3D", "(IIIIIIIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL12_nglTexSubImage3D, "glTexSubImage3D", (void**)&glTexSubImage3D}, + {"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"); + if (extgl_Extensions.OpenGL12) + extgl_InitializeClass(env, clazz, ext_set, "OpenGL12", num_functions, functions); +} + Index: org_lwjgl_opengl_GL13.cpp =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/common/org_lwjgl_opengl_GL13.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- org_lwjgl_opengl_GL13.cpp 29 Jan 2004 22:07:03 -0000 1.2 +++ org_lwjgl_opengl_GL13.cpp 7 Mar 2004 15:18:46 -0000 1.3 @@ -39,7 +39,6 @@ * @version $Revision$ */ -#include "org_lwjgl_opengl_GL13.h" #include "checkGLerror.h" #include "extgl.h" @@ -52,82 +51,22 @@ typedef void (APIENTRY * glCompressedTexSubImage2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data ); typedef void (APIENTRY * glCompressedTexSubImage3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data ); typedef void (APIENTRY * glGetCompressedTexImagePROC) (GLenum target, GLint lod, GLvoid *img ); -typedef void (APIENTRY * glMultiTexCoord1dPROC) (GLenum target, GLdouble s ); -typedef void (APIENTRY * glMultiTexCoord1dvPROC) (GLenum target, const GLdouble *v ); typedef void (APIENTRY * glMultiTexCoord1fPROC) (GLenum target, GLfloat s ); -typedef void (APIENTRY * glMultiTexCoord1fvPROC) (GLenum target, const GLfloat *v ); -typedef void (APIENTRY * glMultiTexCoord1iPROC) (GLenum target, GLint s ); -typedef void (APIENTRY * glMultiTexCoord1ivPROC) (GLenum target, const GLint *v ); -typedef void (APIENTRY * glMultiTexCoord1sPROC) (GLenum target, GLshort s ); -typedef void (APIENTRY * glMultiTexCoord1svPROC) (GLenum target, const GLshort *v ); -typedef void (APIENTRY * glMultiTexCoord2dPROC) (GLenum target, GLdouble s, GLdouble t ); -typedef void (APIENTRY * glMultiTexCoord2dvPROC) (GLenum target, const GLdouble *v ); typedef void (APIENTRY * glMultiTexCoord2fPROC) (GLenum target, GLfloat s, GLfloat t ); -typedef void (APIENTRY * glMultiTexCoord2fvPROC) (GLenum target, const GLfloat *v ); -typedef void (APIENTRY * glMultiTexCoord2iPROC) (GLenum target, GLint s, GLint t ); -typedef void (APIENTRY * glMultiTexCoord2ivPROC) (GLenum target, const GLint *v ); -typedef void (APIENTRY * glMultiTexCoord2sPROC) (GLenum target, GLshort s, GLshort t ); -typedef void (APIENTRY * glMultiTexCoord2svPROC) (GLenum target, const GLshort *v ); -typedef void (APIENTRY * glMultiTexCoord3dPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r ); -typedef void (APIENTRY * glMultiTexCoord3dvPROC) (GLenum target, const GLdouble *v ); typedef void (APIENTRY * glMultiTexCoord3fPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r ); -typedef void (APIENTRY * glMultiTexCoord3fvPROC) (GLenum target, const GLfloat *v ); -typedef void (APIENTRY * glMultiTexCoord3iPROC) (GLenum target, GLint s, GLint t, GLint r ); -typedef void (APIENTRY * glMultiTexCoord3ivPROC) (GLenum target, const GLint *v ); -typedef void (APIENTRY * glMultiTexCoord3sPROC) (GLenum target, GLshort s, GLshort t, GLshort r ); -typedef void (APIENTRY * glMultiTexCoord3svPROC) (GLenum target, const GLshort *v ); -typedef void (APIENTRY * glMultiTexCoord4dPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q ); -typedef void (APIENTRY * glMultiTexCoord4dvPROC) (GLenum target, const GLdouble *v ); typedef void (APIENTRY * glMultiTexCoord4fPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q ); -typedef void (APIENTRY * glMultiTexCoord4fvPROC) (GLenum target, const GLfloat *v ); -typedef void (APIENTRY * glMultiTexCoord4iPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q ); -typedef void (APIENTRY * glMultiTexCoord4ivPROC) (GLenum target, const GLint *v ); -typedef void (APIENTRY * glMultiTexCoord4sPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q ); -typedef void (APIENTRY * glMultiTexCoord4svPROC) (GLenum target, const GLshort *v ); -typedef void (APIENTRY * glLoadTransposeMatrixdPROC) (const GLdouble m[16] ); typedef void (APIENTRY * glLoadTransposeMatrixfPROC) (const GLfloat m[16] ); -typedef void (APIENTRY * glMultTransposeMatrixdPROC) (const GLdouble m[16] ); typedef void (APIENTRY * glMultTransposeMatrixfPROC) (const GLfloat m[16] ); typedef void (APIENTRY * glSampleCoveragePROC) (GLclampf value, GLboolean invert ); static glActiveTexturePROC glActiveTexture; static glClientActiveTexturePROC glClientActiveTexture; -static glMultiTexCoord1dPROC glMultiTexCoord1d; -static glMultiTexCoord1dvPROC glMultiTexCoord1dv; static glMultiTexCoord1fPROC glMultiTexCoord1f; -static glMultiTexCoord1fvPROC glMultiTexCoord1fv; -static glMultiTexCoord1iPROC glMultiTexCoord1i; -static glMultiTexCoord1ivPROC glMultiTexCoord1iv; -static glMultiTexCoord1sPROC glMultiTexCoord1s; -static glMultiTexCoord1svPROC glMultiTexCoord1sv; -static glMultiTexCoord2dPROC glMultiTexCoord2d; -static glMultiTexCoord2dvPROC glMultiTexCoord2dv; static glMultiTexCoord2fPROC glMultiTexCoord2f; -static glMultiTexCoord2fvPROC glMultiTexCoord2fv; -static glMultiTexCoord2iPROC glMultiTexCoord2i; -static glMultiTexCoord2ivPROC glMultiTexCoord2iv; -static glMultiTexCoord2sPROC glMultiTexCoord2s; -static glMultiTexCoord2svPROC glMultiTexCoord2sv; -static glMultiTexCoord3dPROC glMultiTexCoord3d; -static glMultiTexCoord3dvPROC glMultiTexCoord3dv; static glMultiTexCoord3fPROC glMultiTexCoord3f; -static glMultiTexCoord3fvPROC glMultiTexCoord3fv; -static glMultiTexCoord3iPROC glMultiTexCoord3i; -static glMultiTexCoord3ivPROC glMultiTexCoord3iv; -static glMultiTexCoord3sPROC glMultiTexCoord3s; -static glMultiTexCoord3svPROC glMultiTexCoord3sv; -static glMultiTexCoord4dPROC glMultiTexCoord4d; -static glMultiTexCoord4dvPROC glMultiTexCoord4dv; static glMultiTexCoord4fPROC glMultiTexCoord4f; -static glMultiTexCoord4fvPROC glMultiTexCoord4fv; -static glMultiTexCoord4iPROC glMultiTexCoord4i; -static glMultiTexCoord4ivPROC glMultiTexCoord4iv; -static glMultiTexCoord4sPROC glMultiTexCoord4s; -static glMultiTexCoord4svPROC glMultiTexCoord4sv; static glLoadTransposeMatrixfPROC glLoadTransposeMatrixf; -static glLoadTransposeMatrixdPROC glLoadTransposeMatrixd; static glMultTransposeMatrixfPROC glMultTransposeMatrixf; -static glMultTransposeMatrixdPROC glMultTransposeMatrixd; static glCompressedTexImage3DPROC glCompressedTexImage3D; static glCompressedTexImage2DPROC glCompressedTexImage2D; static glCompressedTexImage1DPROC glCompressedTexImage1D; @@ -137,74 +76,14 @@ static glGetCompressedTexImagePROC glGetCompressedTexImage; static glSampleCoveragePROC glSampleCoverage; -void extgl_InitOpenGL1_3(JNIEnv *env, jobject ext_set) -{ - if (!extgl_Extensions.OpenGL13) - return; - glActiveTexture = (glActiveTexturePROC) extgl_GetProcAddress("glActiveTexture"); - glClientActiveTexture = (glClientActiveTexturePROC) extgl_GetProcAddress("glClientActiveTexture"); - - glMultiTexCoord1d = (glMultiTexCoord1dPROC) extgl_GetProcAddress("glMultiTexCoord1d"); - glMultiTexCoord1dv = (glMultiTexCoord1dvPROC) extgl_GetProcAddress("glMultiTexCoord1dv"); - glMultiTexCoord1f = (glMultiTexCoord1fPROC) extgl_GetProcAddress("glMultiTexCoord1f"); - glMultiTexCoord1fv = (glMultiTexCoord1fvPROC) extgl_GetProcAddress("glMultiTexCoord1fv"); - glMultiTexCoord1i = (glMultiTexCoord1iPROC) extgl_GetProcAddress("glMultiTexCoord1i"); - glMultiTexCoord1iv = (glMultiTexCoord1ivPROC) extgl_GetProcAddress("glMultiTexCoord1iv"); - glMultiTexCoord1s = (glMultiTexCoord1sPROC) extgl_GetProcAddress("glMultiTexCoord1s"); - glMultiTexCoord1sv = (glMultiTexCoord1svPROC) extgl_GetProcAddress("glMultiTexCoord1sv"); - - glMultiTexCoord2d = (glMultiTexCoord2dPROC) extgl_GetProcAddress("glMultiTexCoord2d"); - glMultiTexCoord2dv = (glMultiTexCoord2dvPROC) extgl_GetProcAddress("glMultiTexCoord2dv"); - glMultiTexCoord2f = (glMultiTexCoord2fPROC) extgl_GetProcAddress("glMultiTexCoord2f"); - glMultiTexCoord2fv = (glMultiTexCoord2fvPROC) extgl_GetProcAddress("glMultiTexCoord2fv"); - glMultiTexCoord2i = (glMultiTexCoord2iPROC) extgl_GetProcAddress("glMultiTexCoord2i"); - glMultiTexCoord2iv = (glMultiTexCoord2ivPROC) extgl_GetProcAddress("glMultiTexCoord2iv"); - glMultiTexCoord2s = (glMultiTexCoord2sPROC) extgl_GetProcAddress("glMultiTexCoord2s"); - glMultiTexCoord2sv = (glMultiTexCoord2svPROC) extgl_GetProcAddress("glMultiTexCoord2sv"); - - glMultiTexCoord3d = (glMultiTexCoord3dPROC) extgl_GetProcAddress("glMultiTexCoord3d"); - glMultiTexCoord3dv = (glMultiTexCoord3dvPROC) extgl_GetProcAddress("glMultiTexCoord3dv"); - glMultiTexCoord3f = (glMultiTexCoord3fPROC) extgl_GetProcAddress("glMultiTexCoord3f"); - glMultiTexCoord3fv = (glMultiTexCoord3fvPROC) extgl_GetProcAddress("glMultiTexCoord3fv"); - glMultiTexCoord3i = (glMultiTexCoord3iPROC) extgl_GetProcAddress("glMultiTexCoord3i"); - glMultiTexCoord3iv = (glMultiTexCoord3ivPROC) extgl_GetProcAddress("glMultiTexCoord3iv"); - glMultiTexCoord3s = (glMultiTexCoord3sPROC) extgl_GetProcAddress("glMultiTexCoord3s"); - glMultiTexCoord3sv = (glMultiTexCoord3svPROC) extgl_GetProcAddress("glMultiTexCoord3sv"); - - glMultiTexCoord4d = (glMultiTexCoord4dPROC) extgl_GetProcAddress("glMultiTexCoord4d"); - glMultiTexCoord4dv = (glMultiTexCoord4dvPROC) extgl_GetProcAddress("glMultiTexCoord4dv"); - glMultiTexCoord4f = (glMultiTexCoord4fPROC) extgl_GetProcAddress("glMultiTexCoord4f"); - glMultiTexCoord4fv = (glMultiTexCoord4fvPROC) extgl_GetProcAddress("glMultiTexCoord4fv"); - glMultiTexCoord4i = (glMultiTexCoord4iPROC) extgl_GetProcAddress("glMultiTexCoord4i"); - glMultiTexCoord4iv = (glMultiTexCoord4ivPROC) extgl_GetProcAddress("glMultiTexCoord4iv"); - glMultiTexCoord4s = (glMultiTexCoord4sPROC) extgl_GetProcAddress("glMultiTexCoord4s"); - glMultiTexCoord4sv = (glMultiTexCoord4svPROC) extgl_GetProcAddress("glMultiTexCoord4sv"); - - glLoadTransposeMatrixf = (glLoadTransposeMatrixfPROC) extgl_GetProcAddress("glLoadTransposeMatrixf"); - glLoadTransposeMatrixd = (glLoadTransposeMatrixdPROC) extgl_GetProcAddress("glLoadTransposeMatrixd"); - glMultTransposeMatrixf = (glMultTransposeMatrixfPROC) extgl_GetProcAddress("glMultTransposeMatrixf"); - glMultTransposeMatrixd = (glMultTransposeMatrixdPROC) extgl_GetProcAddress("glMultTransposeMatrixd"); - glCompressedTexImage3D = (glCompressedTexImage3DPROC) extgl_GetProcAddress("glCompressedTexImage3D"); - glCompressedTexImage2D = (glCompressedTexImage2DPROC) extgl_GetProcAddress("glCompressedTexImage2D"); - glCompressedTexImage1D = (glCompressedTexImage1DPROC) extgl_GetProcAddress("glCompressedTexImage1D"); - glCompressedTexSubImage3D = (glCompressedTexSubImage3DPROC) extgl_GetProcAddress("glCompressedTexSubImage3D"); - glCompressedTexSubImage2D = (glCompressedTexSubImage2DPROC) extgl_GetProcAddress("glCompressedTexSubImage2D"); - glCompressedTexSubImage1D = (glCompressedTexSubImage1DPROC) extgl_GetProcAddress("glCompressedTexSubImage1D"); - glGetCompressedTexImage = (glGetCompressedTexImagePROC) extgl_GetProcAddress("glGetCompressedTexImage"); - - glSampleCoverage = (glSampleCoveragePROC) extgl_GetProcAddress("glSampleCoverage"); - EXTGL_SANITY_CHECK(env, ext_set, OpenGL13) -} - /* * Class: org_lwjgl_opengl_GL13 * Method: glActiveTexture * Signature: (I)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_glActiveTexture +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_glActiveTexture (JNIEnv *env, jclass clazz, jint texture) { - CHECK_EXISTS(glActiveTexture) glActiveTexture(texture); CHECK_GL_ERROR } @@ -214,10 +93,9 @@ * Method: glClientActiveTexture * Signature: (I)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_glClientActiveTexture +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_glClientActiveTexture (JNIEnv *env, jclass clazz, jint texture) { - CHECK_EXISTS(glClientActiveTexture) glClientActiveTexture(texture); CHECK_GL_ERROR } @@ -227,10 +105,9 @@ * Method: glCompressedTexImage1D * Signature: (IIIIIII)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_nglCompressedTexImage1D +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_nglCompressedTexImage1D (JNIEnv *env, jclass clazz, jint target, jint level, jint internalformat, jint width, jint border, jint imagesize, jobject buffer, jint offset) { - CHECK_EXISTS(glCompressedTexImage1D) const void *address = (const void *)(offset + (const GLbyte *)env->GetDirectBufferAddress(buffer)); glCompressedTexImage1D(target, level, internalformat, width, border, imagesize, address); CHECK_GL_ERROR @@ -241,10 +118,9 @@ * Method: glCompressedTexImage2D * Signature: (IIIIIIII)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_nglCompressedTexImage2D +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_nglCompressedTexImage2D (JNIEnv *env, jclass clazz, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint imagesize, jobject buffer, jint offset) { - CHECK_EXISTS(glCompressedTexImage2D) const void *address = (const void *)(offset + (const GLbyte *)env->GetDirectBufferAddress(buffer)); glCompressedTexImage2D(target, level, internalformat, width, height, border, imagesize, address); CHECK_GL_ERROR @@ -255,10 +131,9 @@ * Method: glCompressedTexImage3D * Signature: (IIIIIIIII)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_nglCompressedTexImage3D +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_nglCompressedTexImage3D (JNIEnv *env, jclass clazz, jint target, jint level, jint internalformat, jint width, jint height, jint depth, jint border, jint imagesize, jobject buffer, jint offset) { - CHECK_EXISTS(glCompressedTexImage3D) const void *address = (const void *)(offset + (const GLbyte *)env->GetDirectBufferAddress(buffer)); glCompressedTexImage3D(target, level, internalformat, width, height, depth, border, imagesize, address); CHECK_GL_ERROR @@ -269,10 +144,9 @@ * Method: glCompressedTexSubImage1D * Signature: (IIIIIII)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_nglCompressedTexSubImage1D +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_nglCompressedTexSubImage1D (JNIEnv *env, jclass clazz, jint target, jint level, jint xoffset, jint width, jint format, jint imagesize, jobject buffer, jint offset) { - CHECK_EXISTS(glCompressedTexSubImage1D) const void *address = (const void *)(offset + (const GLbyte *)env->GetDirectBufferAddress(buffer)); glCompressedTexSubImage1D(target, level, xoffset, width, format, imagesize, address); CHECK_GL_ERROR @@ -283,10 +157,9 @@ * Method: glCompressedTexSubImage2D * Signature: (IIIIIIIII)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_nglCompressedTexSubImage2D +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_nglCompressedTexSubImage2D (JNIEnv *env, jclass clazz, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint imagesize, jobject buffer, jint offset) { - CHECK_EXISTS(glCompressedTexSubImage2D) const void *address = (const void *)(offset + (const GLbyte *)env->GetDirectBufferAddress(buffer)); glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imagesize, address); CHECK_GL_ERROR @@ -297,10 +170,9 @@ * Method: glCompressedTexSubImage3D * Signature: (IIIIIIIIIII)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_nglCompressedTexSubImage3D +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_nglCompressedTexSubImage3D (JNIEnv *env, jclass clazz, jint target, jint level, jint xoffset, jint yoffset, jint zoffset, jint width, jint height, jint depth, jint format, jint imagesize, jobject buffer, jint offset) { - CHECK_EXISTS(glCompressedTexSubImage3D) const void *address = (const void *)(offset + (const GLbyte *)env->GetDirectBufferAddress(buffer)); glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imagesize, address); CHECK_GL_ERROR @@ -311,10 +183,9 @@ * Method: glGetCompressedTexImage * Signature: (III)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_nglGetCompressedTexImage +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_nglGetCompressedTexImage (JNIEnv *env, jclass clazz, jint target, jint lod, jobject buffer, jint offset) { - CHECK_EXISTS(glGetCompressedTexImage) void *address = (void *)(offset + (GLbyte *)env->GetDirectBufferAddress(buffer)); glGetCompressedTexImage(target, lod, address); CHECK_GL_ERROR @@ -327,10 +198,9 @@ * Method: glMultiTexCoord1f * Signature: (IF)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_glMultiTexCoord1f +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_glMultiTexCoord1f (JNIEnv *env, jclass clazz, jint target, jfloat s) { - CHECK_EXISTS(glMultiTexCoord1f) glMultiTexCoord1f(target, s); } @@ -341,10 +211,9 @@ * Method: glMultiTexCoord2f * Signature: (IFF)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_glMultiTexCoord2f +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_glMultiTexCoord2f (JNIEnv *env, jclass clazz, jint target, jfloat s, jfloat t) { - CHECK_EXISTS(glMultiTexCoord2f) glMultiTexCoord2f(target, s, t); } @@ -356,10 +225,9 @@ * Method: glMultiTexCoord3f * Signature: (IFFF)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_glMultiTexCoord3f +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_glMultiTexCoord3f (JNIEnv *env, jclass clazz, jint target, jfloat s, jfloat t, jfloat r) { - CHECK_EXISTS(glMultiTexCoord3f) glMultiTexCoord3f(target, s, t, r); } @@ -370,10 +238,9 @@ * Method: glMultiTexCoord4f * Signature: (IFFFF)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_glMultiTexCoord4f +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_glMultiTexCoord4f (JNIEnv *env, jclass clazz, jint target, jfloat s, jfloat t, jfloat r, jfloat q) { - CHECK_EXISTS(glMultiTexCoord4f) glMultiTexCoord4f(target, s, t, r, q); } @@ -384,10 +251,9 @@ * Method: glLoadTransposeMatrixf * Signature: (I)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_nglLoadTransposeMatrixf +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_nglLoadTransposeMatrixf (JNIEnv *env, jclass clazz, jobject buffer, jint offset) { - CHECK_EXISTS(glLoadTransposeMatrixf) const GLfloat *address = (const GLfloat *)env->GetDirectBufferAddress(buffer); glLoadTransposeMatrixf(address); CHECK_GL_ERROR @@ -400,10 +266,9 @@ * Method: glMultTransposeMatrixf * Signature: (I)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_nglMultTransposeMatrixf +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_nglMultTransposeMatrixf (JNIEnv *env, jclass clazz, jobject buffer, jint offset) { - CHECK_EXISTS(glMultTransposeMatrixf) const GLfloat *address = (const GLfloat *)env->GetDirectBufferAddress(buffer); glMultTransposeMatrixf(address); CHECK_GL_ERROR @@ -414,10 +279,36 @@ * Method: glSampleCoverage * Signature: (FZ)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_glSampleCoverage +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_glSampleCoverage (JNIEnv *env, jclass clazz, jfloat value, jboolean invert) { - CHECK_EXISTS(glSampleCoverage) glSampleCoverage(value, invert); CHECK_GL_ERROR } + +void extgl_InitOpenGL1_3(JNIEnv *env, jobject ext_set) +{ + JavaMethodAndGLFunction 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}, + {"nglCompressedTexImage2D", "(IIIIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL13_nglCompressedTexImage2D, "glCompressedTexImage2D", (void**)&glCompressedTexImage2D}, + {"nglCompressedTexImage3D", "(IIIIIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL13_nglCompressedTexImage3D, "glCompressedTexImage3D", (void**)&glCompressedTexImage3D}, + {"nglCompressedTexSubImage1D", "(IIIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL13_nglCompressedTexSubImage1D, "glCompressedTexSubImage1D", (void**)&glCompressedTexSubImage1D}, + {"nglCompressedTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL13_nglCompressedTexSubImage2D, "glCompressedTexSubImage2D", (void**)&glCompressedTexSubImage2D}, + {"nglCompressedTexSubImage3D", "(IIIIIIIIIILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL13_nglCompressedTexSubImage3D, "glCompressedTexSubImage3D", (void**)&glCompressedTexSubImage3D}, + {"nglGetCompressedTexImage", "(IILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL13_nglGetCompressedTexImage, "glGetCompressedTexImage", (void**)&glGetCompressedTexImage}, + {"glMultiTexCoord1f", "(IF)V", (void*)&Java_org_lwjgl_opengl_GL13_glMultiTexCoord1f, "glMultiTexCoord1f", (void**)&glMultiTexCoord1f}, + {"glMultiTexCoord2f", "(IFF)V", (void*)&Java_org_lwjgl_opengl_GL13_glMultiTexCoord2f, "glMultiTexCoord2f", (void**)&glMultiTexCoord2f}, + {"glMultiTexCoord3f", "(IFFF)V", (void*)&Java_org_lwjgl_opengl_GL13_glMultiTexCoord3f, "glMultiTexCoord3f", (void**)&glMultiTexCoord3f}, + {"glMultiTexCoord4f", "(IFFFF)V", (void*)&Java_org_lwjgl_opengl_GL13_glMultiTexCoord4f, "glMultiTexCoord4f", (void**)&glMultiTexCoord4f}, + {"nglLoadTransposeMatrixf", "(Ljava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_GL13_nglLoadTransposeMatrixf, "glLoadTransposeMatrixf", (void**)&glLoadTransposeMatrixf}, + {"nglMultTransposeMatrixf", "(Ljava/nio/FloatBuffer;I)V", (void*)&Java_org_lwjgl_opengl_GL13_nglMultTransposeMatrixf, "glMultTransposeMatrixf", (void**)&glMultTransposeMatrixf}, + {"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"); + if (extgl_Extensions.OpenGL13) + extgl_InitializeClass(env, clazz, ext_set, "OpenGL13", num_functions, functions); +} + Index: org_lwjgl_opengl_GL14.cpp =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/common/org_lwjgl_opengl_GL14.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- org_lwjgl_opengl_GL14.cpp 17 Feb 2004 21:36:17 -0000 1.3 +++ org_lwjgl_opengl_GL14.cpp 7 Mar 2004 15:18:46 -0000 1.4 @@ -39,166 +39,53 @@ * @version $Revision$ */ -#include "org_lwjgl_opengl_GL14.h" #include "checkGLerror.h" #include "extgl.h" typedef void (APIENTRY * glBlendColorPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); typedef void (APIENTRY * glBlendEquationPROC) (GLenum mode); typedef void (APIENTRY * glFogCoordfPROC) (GLfloat coord); -typedef void (APIENTRY * glFogCoordfvPROC) (const GLfloat *coord); -typedef void (APIENTRY * glFogCoorddPROC) (GLdouble coord); -typedef void (APIENTRY * glFogCoorddvPROC) (const GLdouble *coord); typedef void (APIENTRY * glFogCoordPointerPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); typedef void (APIENTRY * glMultiDrawArraysPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); -typedef void (APIENTRY * glMultiDrawElementsPROC) (GLenum mode, GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount); typedef void (APIENTRY * glPointParameterfPROC) (GLenum pname, GLfloat param); typedef void (APIENTRY * glPointParameterfvPROC) (GLenum pname, GLfloat *params); typedef void (APIENTRY * glSecondaryColor3bPROC) (GLbyte red, GLbyte green, GLbyte blue); -typedef void (APIENTRY * glSecondaryColor3bvPROC) (const GLbyte *v); -typedef void (APIENTRY * glSecondaryColor3dPROC) (GLdouble red, GLdouble green, GLdouble blue); -typedef void (APIENTRY * glSecondaryColor3dvPROC) (const GLdouble *v); typedef void (APIENTRY * glSecondaryColor3fPROC) (GLfloat red, GLfloat green, GLfloat blue); -typedef void (APIENTRY * glSecondaryColor3fvPROC) (const GLfloat *v); -typedef void (APIENTRY * glSecondaryColor3iPROC) (GLint red, GLint green, GLint blue); -typedef void (APIENTRY * glSecondaryColor3ivPROC) (const GLint *v); -typedef void (APIENTRY * glSecondaryColor3sPROC) (GLshort red, GLshort green, GLshort blue); -typedef void (APIENTRY * glSecondaryColor3svPROC) (const GLshort *v); typedef void (APIENTRY * glSecondaryColor3ubPROC) (GLubyte red, GLubyte green, GLubyte blue); -typedef void (APIENTRY * glSecondaryColor3ubvPROC) (const GLubyte *v); -typedef void (APIENTRY * glSecondaryColor3uiPROC) (GLuint red, GLuint green, GLuint blue); -typedef void (APIENTRY * glSecondaryColor3uivPROC) (const GLuint *v); -typedef void (APIENTRY * glSecondaryColor3usPROC) (GLushort red, GLushort green, GLushort blue); -typedef void (APIENTRY * glSecondaryColor3usvPROC) (const GLushort *v); typedef void (APIENTRY * glSecondaryColorPointerPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); typedef void (APIENTRY * glBlendFuncSeparatePROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void (APIENTRY * glWindowPos2dPROC) (GLdouble x, GLdouble y); typedef void (APIENTRY * glWindowPos2fPROC) (GLfloat x, GLfloat y); typedef void (APIENTRY * glWindowPos2iPROC) (GLint x, GLint y); -typedef void (APIENTRY * glWindowPos2sPROC) (GLshort x, GLshort y); -typedef void (APIENTRY * glWindowPos2dvPROC) (const GLdouble *p); -typedef void (APIENTRY * glWindowPos2fvPROC) (const GLfloat *p); -typedef void (APIENTRY * glWindowPos2ivPROC) (const GLint *p); -typedef void (APIENTRY * glWindowPos2svPROC) (const GLshort *p); -typedef void (APIENTRY * glWindowPos3dPROC) (GLdouble x, GLdouble y, GLdouble z); typedef void (APIENTRY * glWindowPos3fPROC) (GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRY * glWindowPos3iPROC) (GLint x, GLint y, GLint z); -typedef void (APIENTRY * glWindowPos3sPROC) (GLshort x, GLshort y, GLshort z); -typedef void (APIENTRY * glWindowPos3dvPROC) (const GLdouble *p); -typedef void (APIENTRY * glWindowPos3fvPROC) (const GLfloat *p); -typedef void (APIENTRY * glWindowPos3ivPROC) (const GLint *p); -typedef void (APIENTRY * glWindowPos3svPROC) (const GLshort *p); static glFogCoordfPROC glFogCoordf; -static glFogCoordfvPROC glFogCoordfv; -static glFogCoorddPROC glFogCoordd; -static glFogCoorddvPROC glFogCoorddv; static glFogCoordPointerPROC glFogCoordPointer; static glMultiDrawArraysPROC glMultiDrawArrays; -static glMultiDrawElementsPROC glMultiDrawElements; static glPointParameterfPROC glPointParameterf; static glPointParameterfvPROC glPointParameterfv; static glSecondaryColor3bPROC glSecondaryColor3b; -static glSecondaryColor3bvPROC glSecondaryColor3bv; -static glSecondaryColor3dPROC glSecondaryColor3d; -static glSecondaryColor3dvPROC glSecondaryColor3dv; static glSecondaryColor3fPROC glSecondaryColor3f; -static glSecondaryColor3fvPROC glSecondaryColor3fv; -static glSecondaryColor3iPROC glSecondaryColor3i; -static glSecondaryColor3ivPROC glSecondaryColor3iv; -static glSecondaryColor3sPROC glSecondaryColor3s; -static glSecondaryColor3svPROC glSecondaryColor3sv; static glSecondaryColor3ubPROC glSecondaryColor3ub; -static glSecondaryColor3ubvPROC glSecondaryColor3ubv; -static glSecondaryColor3uiPROC glSecondaryColor3ui; -static glSecondaryColor3uivPROC glSecondaryColor3uiv; -static glSecondaryColor3usPROC glSecondaryColor3us; -static glSecondaryColor3usvPROC glSecondaryColor3usv; static glSecondaryColorPointerPROC glSecondaryColorPointer; static glBlendFuncSeparatePROC glBlendFuncSeparate; -static glWindowPos2dPROC glWindowPos2d; static glWindowPos2fPROC glWindowPos2f; static glWindowPos2iPROC glWindowPos2i; -static glWindowPos2sPROC glWindowPos2s; -static glWindowPos2dvPROC glWindowPos2dv; -static glWindowPos2fvPROC glWindowPos2fv; -static glWindowPos2ivPROC glWindowPos2iv; -static glWindowPos2svPROC glWindowPos2sv; -static glWindowPos3dPROC glWindowPos3d; static glWindowPos3fPROC glWindowPos3f; static glWindowPos3iPROC glWindowPos3i; -static glWindowPos3sPROC glWindowPos3s; -static glWindowPos3dvPROC glWindowPos3dv; -static glWindowPos3fvPROC glWindowPos3fv; -static glWindowPos3ivPROC glWindowPos3iv; -static glWindowPos3svPROC glWindowPos3sv; static glBlendColorPROC glBlendColor; static glBlendEquationPROC glBlendEquation; -void extgl_InitOpenGL1_4(JNIEnv *env, jobject ext_set) -{ - if (!extgl_Extensions.OpenGL14) - return; - glBlendColor = (glBlendColorPROC) extgl_GetProcAddress("glBlendColor"); - glBlendEquation = (glBlendEquationPROC) extgl_GetProcAddress("glBlendEquation"); - glFogCoordf = (glFogCoordfPROC) extgl_GetProcAddress("glFogCoordf"); - glFogCoordfv = (glFogCoordfvPROC) extgl_GetProcAddress("glFogCoordfv"); - glFogCoordd = (glFogCoorddPROC) extgl_GetProcAddress("glFogCoordd"); - glFogCoorddv = (glFogCoorddvPROC) extgl_GetProcAddress("glFogCoorddv"); - glFogCoordPointer = (glFogCoordPointerPROC) extgl_GetProcAddress("glFogCoordPointer"); - glMultiDrawArrays = (glMultiDrawArraysPROC) extgl_GetProcAddress("glMultiDrawArrays"); - glMultiDrawElements = (glMultiDrawElementsPROC) extgl_GetProcAddress("glMultiDrawElements"); - glPointParameterf = (glPointParameterfPROC) extgl_GetProcAddress("glPointParameterf"); - glPointParameterfv = (glPointParameterfvPROC) extgl_GetProcAddress("glPointParameterfv"); - glSecondaryColor3b = (glSecondaryColor3bPROC) extgl_GetProcAddress("glSecondaryColor3b"); - glSecondaryColor3bv = (glSecondaryColor3bvPROC) extgl_GetProcAddress("glSecondaryColor3bv"); - glSecondaryColor3d = (glSecondaryColor3dPROC) extgl_GetProcAddress("glSecondaryColor3d"); - glSecondaryColor3dv = (glSecondaryColor3dvPROC) extgl_GetProcAddress("glSecondaryColor3dv"); - glSecondaryColor3f = (glSecondaryColor3fPROC) extgl_GetProcAddress("glSecondaryColor3f"); - glSecondaryColor3fv = (glSecondaryColor3fvPROC) extgl_GetProcAddress("glSecondaryColor3fv"); - glSecondaryColor3i = (glSecondaryColor3iPROC) extgl_GetProcAddress("glSecondaryColor3i"); - glSecondaryColor3iv = (glSecondaryColor3ivPROC) extgl_GetProcAddress("glSecondaryColor3iv"); - glSecondaryColor3s = (glSecondaryColor3sPROC) extgl_GetProcAddress("glSecondaryColor3s"); - glSecondaryColor3sv = (glSecondaryColor3svPROC) extgl_GetProcAddress("glSecondaryColor3sv"); - glSecondaryColor3ub = (glSecondaryColor3ubPROC) extgl_GetProcAddress("glSecondaryColor3ub"); - glSecondaryColor3ubv = (glSecondaryColor3ubvPROC) extgl_GetProcAddress("glSecondaryColor3ubv"); - glSecondaryColor3ui = (glSecondaryColor3uiPROC) extgl_GetProcAddress("glSecondaryColor3ui"); - glSecondaryColor3uiv = (glSecondaryColor3uivPROC) extgl_GetProcAddress("glSecondaryColor3uiv"); - glSecondaryColor3us = (glSecondaryColor3usPROC) extgl_GetProcAddress("glSecondaryColor3us"); - glSecondaryColor3usv = (glSecondaryColor3usvPROC) extgl_GetProcAddress("glSecondaryColor3usv"); - glSecondaryColorPointer = (glSecondaryColorPointerPROC) extgl_GetProcAddress("glSecondaryColorPointer"); - glBlendFuncSeparate = (glBlendFuncSeparatePROC) extgl_GetProcAddress("glBlendFuncSeparate"); - glWindowPos2d = (glWindowPos2dPROC) extgl_GetProcAddress("glWindowPos2d"); - glWindowPos2f = (glWindowPos2fPROC) extgl_GetProcAddress("glWindowPos2f"); - glWindowPos2i = (glWindowPos2iPROC) extgl_GetProcAddress("glWindowPos2i"); - glWindowPos2s = (glWindowPos2sPROC) extgl_GetProcAddress("glWindowPos2s"); - glWindowPos2dv = (glWindowPos2dvPROC) extgl_GetProcAddress("glWindowPos2dv"); - glWindowPos2fv = (glWindowPos2fvPROC) extgl_GetProcAddress("glWindowPos2fv"); - glWindowPos2iv = (glWindowPos2ivPROC) extgl_GetProcAddress("glWindowPos2iv"); - glWindowPos2sv = (glWindowPos2svPROC) extgl_GetProcAddress("glWindowPos2sv"); - glWindowPos3d = (glWindowPos3dPROC) extgl_GetProcAddress("glWindowPos3d"); - glWindowPos3f = (glWindowPos3fPROC) extgl_GetProcAddress("glWindowPos3f"); - glWindowPos3i = (glWindowPos3iPROC) extgl_GetProcAddress("glWindowPos3i"); - glWindowPos3s = (glWindowPos3sPROC) extgl_GetProcAddress("glWindowPos3s"); - glWindowPos3dv = (glWindowPos3dvPROC) extgl_GetProcAddress("glWindowPos3dv"); - glWindowPos3fv = (glWindowPos3fvPROC) extgl_GetProcAddress("glWindowPos3fv"); - glWindowPos3iv = (glWindowPos3ivPROC) extgl_GetProcAddress("glWindowPos3iv"); - glWindowPos3sv = (glWindowPos3svPROC) extgl_GetProcAddress("glWindowPos3sv"); - EXTGL_SANITY_CHECK(env, ext_set, OpenGL14) -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_glBlendEquation +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_glBlendEquation (JNIEnv *env, jclass clazz, jint mode) { - CHECK_EXISTS(glBlendEquation) glBlendEquation(mode); CHECK_GL_ERROR } -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_glBlendColor(JNIEnv * env, jclass clazz, jfloat p0, jfloat p1, jfloat p2, jfloat p3) +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_glBlendColor(JNIEnv * env, jclass clazz, jfloat p0, jfloat p1, jfloat p2, jfloat p3) { - CHECK_EXISTS(glBlendColor) glBlendColor((GLfloat) p0, (GLfloat) p1, (GLfloat) p2, (GLfloat) p3); CHECK_GL_ERROR } @@ -208,9 +95,8 @@ * Method: glFogCoordf * Signature: (F)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_glFogCoordf +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_glFogCoordf (JNIEnv *env, jclass clazz, jfloat f) { - CHECK_EXISTS(glFogCoordf) glFogCoordf(f); } @@ -220,9 +106,8 @@ * Method: nglFogCoordPointer * Signature: (IILjava/nio/Buffer;)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_nglFogCoordPointer +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_nglFogCoordPointer (JNIEnv *env, jclass clazz, jint p1, jint p2, jobject buffer, jint offset) { - CHECK_EXISTS(glFogCoordPointer) GLvoid *address = (GLvoid *)(offset + (GLbyte *)env->GetDirectBufferAddress(buffer)); glFogCoordPointer(p1, p2, address); CHECK_GL_ERROR @@ -233,9 +118,8 @@ * Method: nglFogCoordPointerVBO * Signature: (IILjava/nio/Buffer;)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_nglFogCoordPointerVBO +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_nglFogCoordPointerVBO (JNIEnv *env, jclass clazz, jint p1, jint p2, jint buffer_offset) { - CHECK_EXISTS(glFogCoordPointer) glFogCoordPointer(p1, p2, offsetToPointer(buffer_offset)); CHECK_GL_ERROR } @@ -245,9 +129,8 @@ * Method: glMultiDrawArrays * Signature: (IIII)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_nglMultiDrawArrays +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_nglMultiDrawArrays (JNIEnv *env, jclass clazz, jint mode, jobject first, jint first_offset, jobject count, jint count_offset, jint primcount) { - CHECK_EXISTS(glMultiDrawArrays) GLint *address = first_offset + (GLint *)env->GetDirectBufferAddress(first); GLsizei *address2 = count_offset + (GLsizei *)env->GetDirectBufferAddress(count); glMultiDrawArrays(mode, address, address2, (GLsizei)primcount); @@ -256,27 +139,11 @@ /* * Class: org_lwjgl_opengl_GL14 - * Method: glMultiDrawElements - * Signature: (IIIII)V - */ -/*JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_glMultiDrawElements - (JNIEnv *env, jclass clazz, jint mode, jobject count, jint type, jobject indices, jint primcount) { - CHECK_EXISTS(glMultiDrawElements) - const GLsizei *address = (const GLsizei *)env->GetDirectBufferAddress(count); - const void *address2 = (const void *)env->GetDirectBufferAddress(indices); - glMultiDrawElements(mode, address, type, address2, primcount); - CHECK_GL_ERROR -} -*/ - -/* - * Class: org_lwjgl_opengl_GL14 * Method: glPointParameterf * Signature: (IF)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_glPointParameterf +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_glPointParameterf (JNIEnv *env, jclass clazz, jint p1, jfloat p2) { - CHECK_EXISTS(glPointParameterf) glPointParameterf(p1, p2); CHECK_GL_ERROR } @@ -286,9 +153,8 @@ * Method: glPointParameterfv * Signature: (ILjava/nio/FloatBuffer;)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_nglPointParameterfv +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_nglPointParameterfv (JNIEnv *env, jclass clazz, jint p1, jobject buffer, jint offset) { - CHECK_EXISTS(glPointParameterfv) GLfloat *address = offset + (GLfloat *)env->GetDirectBufferAddress(buffer); glPointParameterfv(p1, address); CHECK_GL_ERROR @@ -299,9 +165,8 @@ * Method: glSecondaryColor3b * Signature: (BBB)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_glSecondaryColor3b +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_glSecondaryColor3b (JNIEnv *env, jclass clazz, jbyte p1, jbyte p2, jbyte p3) { - CHECK_EXISTS(glSecondaryColor3b) glSecondaryColor3b(p1, p2, p3); } @@ -311,9 +176,8 @@ * Method: glSecondaryColor3f * Signature: (FFF)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_glSecondaryColor3f +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_glSecondaryColor3f (JNIEnv *env, jclass clazz, jfloat p1, jfloat p2, jfloat p3) { - CHECK_EXISTS(glSecondaryColor3f) glSecondaryColor3f(p1, p2, p3); } @@ -323,9 +187,8 @@ * Method: glSecondaryColor3ub * Signature: (BBB)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_glSecondaryColor3ub +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_glSecondaryColor3ub (JNIEnv *env, jclass clazz, jbyte p1, jbyte p2, jbyte p3) { - CHECK_EXISTS(glSecondaryColor3ub) glSecondaryColor3ub(p1, p2, p3); } @@ -334,9 +197,8 @@ * Method: nglSecondaryColorPointer * Signature: (IIILjava/nio/Buffer;)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_nglSecondaryColorPointer +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_nglSecondaryColorPointer (JNIEnv *env, jclass clazz, jint p1, jint p2, jint p3, jobject buffer, jint offset) { - CHECK_EXISTS(glSecondaryColorPointer) const GLvoid *address = (const GLvoid *)(offset + (GLbyte *)env->GetDirectBufferAddress(buffer)); glSecondaryColorPointer(p1, p2, p3, address); CHECK_GL_ERROR @@ -347,9 +209,8 @@ * Method: nglSecondaryColorPointerVBO * Signature: (IIILjava/nio/Buffer;)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_nglSecondaryColorPointerVBO +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_nglSecondaryColorPointerVBO (JNIEnv *env, jclass clazz, jint p1, jint p2, jint p3, jint buffer_offset) { - CHECK_EXISTS(glSecondaryColorPointer) glSecondaryColorPointer(p1, p2, p3, offsetToPointer(buffer_offset)); CHECK_GL_ERROR } @@ -359,9 +220,8 @@ * Method: glBlendFuncSeparate * Signature: (IIII)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_glBlendFuncSeparate +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_glBlendFuncSeparate (JNIEnv *env, jclass clazz, jint p1, jint p2, jint p3, jint p4) { - CHECK_EXISTS(glBlendFuncSeparate) glBlendFuncSeparate(p1, p2, p3, p4); CHECK_GL_ERROR } @@ -372,9 +232,8 @@ * Method: glWindowPos2f * Signature: (FF)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_glWindowPos2f +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_glWindowPos2f (JNIEnv *env, jclass clazz, jfloat p1, jfloat p2) { - CHECK_EXISTS(glWindowPos2f); glWindowPos2f(p1, p2); } @@ -383,9 +242,8 @@ * Method: glWindowPos2i * Signature: (II)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_glWindowPos2i +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_glWindowPos2i (JNIEnv *env, jclass clazz, jint p1, jint p2) { - CHECK_EXISTS(glWindowPos2i) glWindowPos2i(p1, p2); } @@ -395,9 +253,8 @@ * Method: glWindowPos3f * Signature: (FFF)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_glWindowPos3f +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_glWindowPos3f (JNIEnv *env, jclass clazz, jfloat p1, jfloat p2, jfloat p3) { - CHECK_EXISTS(glWindowPos3f) glWindowPos3f(p1, p2, p3); } @@ -407,8 +264,36 @@ * Method: glWindowPos3i * Signature: (III)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_glWindowPos3i +static JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL14_glWindowPos3i (JNIEnv *env, jclass clazz, jint p1, jint p2, jint p3) { - CHECK_EXISTS(glWindowPos3i) glWindowPos3i(p1, p2, p3); } + +void extgl_InitOpenGL1_4(JNIEnv *env, jobject ext_set) +{ + JavaMethodAndGLFunction 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}, + {"nglFogCoordPointer", "(IILjava/nio/Buffer;I)V", (void*)&Java_org_lwjgl_opengl_GL14_nglFogCoordPointer, "glFogCoordPointer", (void**)&glFogCoordPointer}, + {"nglFogCoordPointerVBO", "(III)V", (void*)&Java_org_lwjgl_opengl_GL14_nglFogCoordPointerVBO, NULL, NULL}, + {"nglMultiDrawArrays", "(ILjava/nio/IntBuffer;ILjava/nio/IntBuffer;II)V", (void*)&Java_org_lwjgl_opengl_GL14_nglMultiDrawArrays, "glMultiDrawArrays", (void*... [truncated message content] |