From f610ac01f50165b2ea6bc4a81d02abf2e222d876 Mon Sep 17 00:00:00 2001 From: Kenneth Russel Date: Sun, 11 Nov 2001 21:30:13 +0000 Subject: Support for NVidia AllocateMemoryNV extension and fixed problem with extensions not being loaded --- C2J/manual/gl-manualCodedImplJNI14.c | 136 +++++++++++++++++++++++++---------- 1 file changed, 99 insertions(+), 37 deletions(-) (limited to 'C2J/manual/gl-manualCodedImplJNI14.c') 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 + #include + #include "glxtool.h" + #include +#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); +} -- cgit v1.2.3