aboutsummaryrefslogtreecommitdiffstats
path: root/C2J/manual/gl-manualCodedImplJNI14.c
diff options
context:
space:
mode:
authorKenneth Russel <[email protected]>2001-11-11 21:30:13 +0000
committerKenneth Russel <[email protected]>2001-11-11 21:30:13 +0000
commitf610ac01f50165b2ea6bc4a81d02abf2e222d876 (patch)
tree2b54144d82803e6665a371b6eeeae6812a16e3ac /C2J/manual/gl-manualCodedImplJNI14.c
parent3b0e7fd364c6d61b97f4f2daf405b30e662fddc7 (diff)
Support for NVidia AllocateMemoryNV extension and fixed problem with extensions not being loaded
Diffstat (limited to 'C2J/manual/gl-manualCodedImplJNI14.c')
-rw-r--r--C2J/manual/gl-manualCodedImplJNI14.c136
1 files changed, 99 insertions, 37 deletions
diff --git a/C2J/manual/gl-manualCodedImplJNI14.c b/C2J/manual/gl-manualCodedImplJNI14.c
index 9bbf519..73bad7e 100644
--- a/C2J/manual/gl-manualCodedImplJNI14.c
+++ b/C2J/manual/gl-manualCodedImplJNI14.c
@@ -1,37 +1,99 @@
-/** THIS IS A MANUAL CODED PART
- gl-manualCodedImplJNI.java
-*/
-
-static const char _gl_n_a_string[] = "GL-String not avaiable !";
-
-JNIEXPORT jstring JNICALL
-Java_gl4java_GLFunc14JauJNI_glGetString ( JNIEnv *env, jobject obj,
- jint name )
-{
- const char * tmpString=0;
-
- if ( disp__glGetString == NULL )
- return (*env)->NewStringUTF(env, _gl_n_a_string);
-
- tmpString = disp__glGetString ( /* jint */ name);
- if(tmpString==NULL)
- tmpString=_gl_n_a_string;
-
- return (*env)->NewStringUTF(env, tmpString);
-}
-
-static const char * _gl_lib_vendor_="Jausoft - Sven Goethel Software Development";
-static const char * _gl_lib_version_="2.8.0.8";
-
-JNIEXPORT jstring JNICALL
-Java_gl4java_GLFunc14JauJNI_getNativeVendor ( JNIEnv *env, jobject obj )
-{
- return (*env)->NewStringUTF(env, _gl_lib_vendor_);
-}
-
-JNIEXPORT jstring JNICALL
-Java_gl4java_GLFunc14JauJNI_getNativeVersion ( JNIEnv *env, jobject obj )
-{
- return (*env)->NewStringUTF(env, _gl_lib_version_);
-}
-
+/** THIS IS A MANUAL CODED PART
+ gl-manualCodedImplJNI.java
+*/
+
+static const char _gl_n_a_string[] = "GL-String not avaiable !";
+
+JNIEXPORT jstring JNICALL
+Java_gl4java_GLFunc14JauJNI_glGetString ( JNIEnv *env, jobject obj,
+ jint name )
+{
+ const char * tmpString=0;
+
+ if ( disp__glGetString == NULL )
+ return (*env)->NewStringUTF(env, _gl_n_a_string);
+
+ tmpString = disp__glGetString ( /* jint */ name);
+ if(tmpString==NULL)
+ tmpString=_gl_n_a_string;
+
+ return (*env)->NewStringUTF(env, tmpString);
+}
+
+static const char * _gl_lib_vendor_="Jausoft - Sven Goethel Software Development";
+static const char * _gl_lib_version_="2.8.0.8";
+
+JNIEXPORT jstring JNICALL
+Java_gl4java_GLFunc14JauJNI_getNativeVendor ( JNIEnv *env, jobject obj )
+{
+ return (*env)->NewStringUTF(env, _gl_lib_vendor_);
+}
+
+JNIEXPORT jstring JNICALL
+Java_gl4java_GLFunc14JauJNI_getNativeVersion ( JNIEnv *env, jobject obj )
+{
+ return (*env)->NewStringUTF(env, _gl_lib_version_);
+}
+
+//----------------------------------------------------------------------
+// Support for NVidia routines
+//
+
+#include "ptrtypes.h"
+
+#ifdef _X11_
+ #include <GL/glx.h>
+ #include <dlfcn.h>
+ #include "glxtool.h"
+ #include <unistd.h>
+#endif
+
+#ifdef _WIN32_
+ #include "wgltool.h"
+#endif
+
+#define GET_GL_PROCADDRESS(a) getGLProcAddressHelper (NULL, NULL, (a), NULL, 1, 0);
+
+JNIEXPORT jlong JNICALL
+Java_gl4java_GLFunc14JauJNI_glAllocateMemoryNV0(JNIEnv* env, jobject unused,
+ jint size,
+ jfloat readFreq,
+ jfloat writeFreq,
+ jfloat priority)
+{
+ void* (CALLBACK *disp__glAllocateMemoryNV)(int, float, float, float) =
+#ifdef _WIN32_
+ disp__wglAllocateMemoryNV;
+#elif defined(_X11_)
+ disp__glXAllocateMemoryNV;
+#else
+ NULL;
+#endif
+
+ if (disp__glAllocateMemoryNV == NULL) return 0;
+
+ return ((uintptr_t) disp__glAllocateMemoryNV(size, readFreq, writeFreq, priority));
+}
+
+JNIEXPORT void JNICALL
+Java_gl4java_GLFunc14JauJNI_glFreeMemoryNV0(JNIEnv* env, jobject unused, jlong address)
+{
+ void (CALLBACK *disp__glFreeMemoryNV)(void*) =
+#if (defined(_WIN32_))
+ disp__wglFreeMemoryNV;
+#elif defined(_X11_)
+ disp__glXFreeMemoryNV;
+#else
+ NULL;
+#endif
+
+ if (disp__glFreeMemoryNV == NULL) return;
+
+ disp__glFreeMemoryNV((void*) ((uintptr_t) address));
+}
+
+JNIEXPORT jobject JNICALL
+Java_gl4java_GLFunc14JauJNI_newDirectByteBuffer(JNIEnv* env, jobject unused, jlong addr, jint capacity)
+{
+ return (*env)->NewDirectByteBuffer(env, (void *) ((uintptr_t) addr), capacity);
+}