From e4aaf66d8cb16070315aa76a481dd6f230b90bfe Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Sun, 20 Jul 2003 19:27:36 +0000 Subject: [PATCH] Fixed some int address->Buffer bugs --- src/java/org/lwjgl/opengl/CoreGL.java | 10 +++---- src/java/org/lwjgl/opengl/GL.java | 2 +- src/native/common/org_lwjgl_opengl_CoreGL.cpp | 6 ++--- src/native/common/org_lwjgl_opengl_CoreGL.h | 20 +++++++------- src/native/common/org_lwjgl_opengl_GL.cpp | 26 +++---------------- src/native/common/org_lwjgl_opengl_GL.h | 4 +-- src/native/common/org_lwjgl_opengl_GLU.cpp | 18 +------------ .../linux/org_lwjgl_opengl_GLWindow.cpp | 13 +++++----- .../win32/org_lwjgl_opengl_GLWindow.cpp | 14 ++++++++++ 9 files changed, 46 insertions(+), 67 deletions(-) diff --git a/src/java/org/lwjgl/opengl/CoreGL.java b/src/java/org/lwjgl/opengl/CoreGL.java index a2c52cf8..d42d1659 100644 --- a/src/java/org/lwjgl/opengl/CoreGL.java +++ b/src/java/org/lwjgl/opengl/CoreGL.java @@ -162,10 +162,10 @@ public class CoreGL implements CoreGLConstants { public static native void glMultiTexCoord4f(int target, float s, float t, float r, float q); public static native void glMultiTexCoord4i(int target, int s, int t, int r, int q); public static native void glMultiTexCoord4s(int target, short s, short t, short r, short q); - public static native void glLoadTransposeMatrixd(int m); - public static native void glLoadTransposeMatrixf(int m); - public static native void glMultTransposeMatrixd(int m); - public static native void glMultTransposeMatrixf(int m); + public static native void glLoadTransposeMatrixd(DoubleBuffer m); + public static native void glLoadTransposeMatrixf(FloatBuffer m); + public static native void glMultTransposeMatrixd(DoubleBuffer m); + public static native void glMultTransposeMatrixf(FloatBuffer m); public static native void glSampleCoverage(float value, boolean invert); public static native void glCopyPixels(int x, int y, int width, int height, int type); public static native void glColorPointer(int size, int type, int stride, Buffer pointer); @@ -223,7 +223,7 @@ public class CoreGL implements CoreGLConstants { public static native void glGetLightfv(int light, int pname, FloatBuffer params); public static native void glGetLightiv(int light, int pname, IntBuffer params); public static native int glGetError(); - public static native void glGetClipPlane(int plane, int equation); + public static native void glGetClipPlane(int plane, DoubleBuffer equation); public static native void glGetBooleanv(int pname, ByteBuffer params); public static native void glGetDoublev(int pname, DoubleBuffer params); public static native void glGetFloatv(int pname, FloatBuffer params); diff --git a/src/java/org/lwjgl/opengl/GL.java b/src/java/org/lwjgl/opengl/GL.java index 0146f0fa..96e1ab14 100644 --- a/src/java/org/lwjgl/opengl/GL.java +++ b/src/java/org/lwjgl/opengl/GL.java @@ -760,7 +760,7 @@ public class GL extends CoreGL implements GLConstants { int target, int index, int num, - int pdParams); + DoubleBuffer pdParams); public static native void glProgramParameters4fvNV( int target, diff --git a/src/native/common/org_lwjgl_opengl_CoreGL.cpp b/src/native/common/org_lwjgl_opengl_CoreGL.cpp index 126c037a..19fc614f 100644 --- a/src/native/common/org_lwjgl_opengl_CoreGL.cpp +++ b/src/native/common/org_lwjgl_opengl_CoreGL.cpp @@ -130,9 +130,9 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_CoreGL_glBlendFunc(JNIEnv * env, jc /* * Class: org_lwjgl_opengl_CoreGL - * Method: glBlendColorEXT + * Method: glBlendColor */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_CoreGL_blendColor(JNIEnv * env, jclass clazz, jfloat p0, jfloat p1, jfloat p2, jfloat p3) +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_CoreGL_glBlendColor(JNIEnv * env, jclass clazz, jfloat p0, jfloat p1, jfloat p2, jfloat p3) { glBlendColor((GLfloat) p0, (GLfloat) p1, (GLfloat) p2, (GLfloat) p3); CHECK_GL_ERROR @@ -3316,7 +3316,7 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_CoreGL_glGetCompressedTexImage * Signature: (IIII)V */ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_CoreGL_glMultiDrawArrays - (JNIEnv * env, jobject, jint mode, jobject first, jobject count, jint primcount) { + (JNIEnv * env, jclass clazz, jint mode, jobject first, jobject count, jint primcount) { CHECK_EXISTS(glMultiDrawArrays) GLint *address = (GLint *)env->GetDirectBufferAddress(first); GLsizei *address2 = (GLsizei *)env->GetDirectBufferAddress(count); diff --git a/src/native/common/org_lwjgl_opengl_CoreGL.h b/src/native/common/org_lwjgl_opengl_CoreGL.h index 4353a854..897f9fe2 100644 --- a/src/native/common/org_lwjgl_opengl_CoreGL.h +++ b/src/native/common/org_lwjgl_opengl_CoreGL.h @@ -690,34 +690,34 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_CoreGL_glMultiTexCoord4s /* * Class: org_lwjgl_opengl_CoreGL * Method: glLoadTransposeMatrixd - * Signature: (I)V + * Signature: (Ljava/nio/DoubleBuffer;)V */ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_CoreGL_glLoadTransposeMatrixd - (JNIEnv *, jclass, jint); + (JNIEnv *, jclass, jobject); /* * Class: org_lwjgl_opengl_CoreGL * Method: glLoadTransposeMatrixf - * Signature: (I)V + * Signature: (Ljava/nio/FloatBuffer;)V */ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_CoreGL_glLoadTransposeMatrixf - (JNIEnv *, jclass, jint); + (JNIEnv *, jclass, jobject); /* * Class: org_lwjgl_opengl_CoreGL * Method: glMultTransposeMatrixd - * Signature: (I)V + * Signature: (Ljava/nio/DoubleBuffer;)V */ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_CoreGL_glMultTransposeMatrixd - (JNIEnv *, jclass, jint); + (JNIEnv *, jclass, jobject); /* * Class: org_lwjgl_opengl_CoreGL * Method: glMultTransposeMatrixf - * Signature: (I)V + * Signature: (Ljava/nio/FloatBuffer;)V */ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_CoreGL_glMultTransposeMatrixf - (JNIEnv *, jclass, jint); + (JNIEnv *, jclass, jobject); /* * Class: org_lwjgl_opengl_CoreGL @@ -1178,10 +1178,10 @@ JNIEXPORT jint JNICALL Java_org_lwjgl_opengl_CoreGL_glGetError /* * Class: org_lwjgl_opengl_CoreGL * Method: glGetClipPlane - * Signature: (II)V + * Signature: (ILjava/nio/DoubleBuffer;)V */ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_CoreGL_glGetClipPlane - (JNIEnv *, jclass, jint, jint); + (JNIEnv *, jclass, jint, jobject); /* * Class: org_lwjgl_opengl_CoreGL diff --git a/src/native/common/org_lwjgl_opengl_GL.cpp b/src/native/common/org_lwjgl_opengl_GL.cpp index 3609cd97..762f282f 100644 --- a/src/native/common/org_lwjgl_opengl_GL.cpp +++ b/src/native/common/org_lwjgl_opengl_GL.cpp @@ -3982,10 +3982,11 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL_glBindBufferARB(JNIEnv *env, jcl * Method: glDeleteBuffersARB * Signature: (II)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL_glDeleteBuffersARB(JNIEnv *env , jobject obj, jint n, jint buffers) +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL_glDeleteBuffersARB(JNIEnv *env, jclass clazz, jint n, jobject buffers) { CHECK_EXISTS(glDeleteBuffersARB) - glDeleteBuffersARB((GLsizei)n, (const GLuint *)buffers); + const GLuint *buffers_address = (GLuint *)env->GetDirectBufferAddress(buffers); + glDeleteBuffersARB((GLsizei)n, buffers_address); CHECK_GL_ERROR } @@ -4111,24 +4112,3 @@ JNIEXPORT jobject JNICALL Java_org_lwjgl_opengl_GL_glGetBufferPointervARB(JNIEnv CHECK_GL_ERROR return env->NewDirectByteBuffer(pointer, size); } - -/* - * Class: org_lwjgl_opengl_GL - * Method: checkWGLExtensionsString - */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL_checkWGLExtensionsString(JNIEnv * env, jclass clazz) -{ - jfieldID fid_WGL_ARB_extensions_string = env->GetStaticFieldID(clazz, "WGL_ARB_extensions_string", "Z"); - jfieldID fid_WGL_EXT_extensions_string = env->GetStaticFieldID(clazz, "WGL_EXT_extensions_string", "Z"); -#ifdef _WIN32 - - if (wglGetExtensionsStringARB) - env->SetStaticBooleanField(clazz, fid_WGL_ARB_extensions_string, JNI_TRUE); - if (wglGetExtensionsStringEXT) - env->SetStaticBooleanField(clazz, fid_WGL_EXT_extensions_string, JNI_TRUE); -#else - env->SetStaticBooleanField(clazz, fid_WGL_ARB_extensions_string, JNI_FALSE); - env->SetStaticBooleanField(clazz, fid_WGL_EXT_extensions_string, JNI_FALSE); -#endif -} - diff --git a/src/native/common/org_lwjgl_opengl_GL.h b/src/native/common/org_lwjgl_opengl_GL.h index 0d917dc0..b28bf446 100644 --- a/src/native/common/org_lwjgl_opengl_GL.h +++ b/src/native/common/org_lwjgl_opengl_GL.h @@ -1474,10 +1474,10 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL_glProgramParameter4fNV /* * Class: org_lwjgl_opengl_GL * Method: glProgramParameters4dvNV - * Signature: (IIII)V + * Signature: (IIILjava/nio/DoubleBuffer;)V */ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL_glProgramParameters4dvNV - (JNIEnv *, jclass, jint, jint, jint, jint); + (JNIEnv *, jclass, jint, jint, jint, jobject); /* * Class: org_lwjgl_opengl_GL diff --git a/src/native/common/org_lwjgl_opengl_GLU.cpp b/src/native/common/org_lwjgl_opengl_GLU.cpp index e4844b52..7585f3d9 100644 --- a/src/native/common/org_lwjgl_opengl_GLU.cpp +++ b/src/native/common/org_lwjgl_opengl_GLU.cpp @@ -295,27 +295,12 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GLU_gluSphere CHECK_GL_ERROR } -/* - * Class: org_lwjgl_opengl_GLU - * Method: quadricCallback - * Signature: (IILjava/lang/String;)V - */ -/*JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GLU_gluQuadricCallback__IILjava_lang_String_2 - (JNIEnv * env, jclass clazz, jobject quad, jint type, jstring method) -{ - GLUquadricObj *address = (GLUquadricObj *)env->GetDirectBufferAddress(quad); - GLUQuadricCallbacks::set(address, - new JavaMethod(env, obj, env->GetStringUTFChars(method, 0)), - type); - CHECK_GL_ERROR -} -*/ /* * Class: org_lwjgl_opengl_GLU * Method: quadricCallback * Signature: (IILjava/lang/Object;Ljava/lang/String;)V */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GLU_gluQuadricCallback__IILjava_lang_Object_2Ljava_lang_String_2 +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GLU_gluQuadricCallback (JNIEnv * env, jclass clazz, jobject quad, jint type, jobject target, jstring method) { GLUquadricObj *address = (GLUquadricObj *)env->GetDirectBufferAddress(quad); @@ -324,4 +309,3 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GLU_gluQuadricCallback__IILjava_lan type); CHECK_GL_ERROR } - diff --git a/src/native/linux/org_lwjgl_opengl_GLWindow.cpp b/src/native/linux/org_lwjgl_opengl_GLWindow.cpp index 495dd20a..ba3419ae 100644 --- a/src/native/linux/org_lwjgl_opengl_GLWindow.cpp +++ b/src/native/linux/org_lwjgl_opengl_GLWindow.cpp @@ -256,14 +256,15 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GLWindow_nCreate } /* - * Class: org_lwjgl_opengl_GLWindow - * Method: makeCurrent - * Signature: ()V + * Class: org_lwjgl_opengl_GL + * Method: checkWGLExtensionsString */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GLWindow_makeCurrent - (JNIEnv *env, jobject obj) +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GLWindow_checkWGLExtensionsString(JNIEnv * env, jclass clazz) { - makeCurrent(); + jfieldID fid_WGL_ARB_extensions_string = env->GetStaticFieldID(clazz, "WGL_ARB_extensions_string", "Z"); + jfieldID fid_WGL_EXT_extensions_string = env->GetStaticFieldID(clazz, "WGL_EXT_extensions_string", "Z"); + env->SetStaticBooleanField(clazz, fid_WGL_ARB_extensions_string, JNI_FALSE); + env->SetStaticBooleanField(clazz, fid_WGL_EXT_extensions_string, JNI_FALSE); } /* diff --git a/src/native/win32/org_lwjgl_opengl_GLWindow.cpp b/src/native/win32/org_lwjgl_opengl_GLWindow.cpp index 0a98d7e0..27d32dc7 100644 --- a/src/native/win32/org_lwjgl_opengl_GLWindow.cpp +++ b/src/native/win32/org_lwjgl_opengl_GLWindow.cpp @@ -206,6 +206,20 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GLWindow_nDestroyGL extgl_Close(); } +/* + * Class: org_lwjgl_opengl_GL + * Method: checkWGLExtensionsString + */ +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GLWindow_checkWGLExtensionsString(JNIEnv * env, jclass clazz) +{ + jfieldID fid_WGL_ARB_extensions_string = env->GetStaticFieldID(clazz, "WGL_ARB_extensions_string", "Z"); + jfieldID fid_WGL_EXT_extensions_string = env->GetStaticFieldID(clazz, "WGL_EXT_extensions_string", "Z"); + if (wglGetExtensionsStringARB) + env->SetStaticBooleanField(clazz, fid_WGL_ARB_extensions_string, JNI_TRUE); + if (wglGetExtensionsStringEXT) + env->SetStaticBooleanField(clazz, fid_WGL_EXT_extensions_string, JNI_TRUE); +} + /* * Class: org_lwjgl_opengl_GLWindow * Method: swapBuffers