diff options
author | Sven Gothel <[email protected]> | 2002-04-25 03:21:58 +0000 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2002-04-25 03:21:58 +0000 |
commit | 53a0faa0cce4546b441cb6af033adaabd2f1da94 (patch) | |
tree | e92bb216d2b13269c179d4e049ec5384bca1d25e /CNativeCode | |
parent | 6114297dac0848d470a3211915bea64f49d584e7 (diff) |
added pepijn's bugfix (jdk <= 1.3 GC, tesselation)
SGI Irix capable code ..
correct NIO usage for tesselation ..
minor stuff ..
Diffstat (limited to 'CNativeCode')
-rw-r--r-- | CNativeCode/GLCallbackHelperJNI.c | 96 | ||||
-rw-r--r-- | CNativeCode/GLCallbackHelperJNI.h | 7 | ||||
-rw-r--r-- | CNativeCode/GLUCallbackJNI.c | 24 | ||||
-rw-r--r-- | CNativeCode/OpenGLU_JauJNI12_funcs.c | 41 | ||||
-rwxr-xr-x | CNativeCode/OpenGLU_JauJNI12nf_funcs.c | 41 | ||||
-rw-r--r-- | CNativeCode/OpenGLU_JauJNI12tst_funcs.c | 41 | ||||
-rw-r--r-- | CNativeCode/OpenGLU_JauJNI14_funcs.c | 1729 | ||||
-rw-r--r-- | CNativeCode/OpenGLU_JauJNI_funcs.c | 41 | ||||
-rwxr-xr-x | CNativeCode/gltool.c | 7 | ||||
-rwxr-xr-x | CNativeCode/invokejvm.c | 3 | ||||
-rw-r--r-- | CNativeCode/jawt_misc.c | 13 |
11 files changed, 1155 insertions, 888 deletions
diff --git a/CNativeCode/GLCallbackHelperJNI.c b/CNativeCode/GLCallbackHelperJNI.c index 6900b5e..d992622 100644 --- a/CNativeCode/GLCallbackHelperJNI.c +++ b/CNativeCode/GLCallbackHelperJNI.c @@ -130,6 +130,36 @@ CallbackNode * LIBAPIENTRY FindCallbackNode(GLenum which, jlong glx) cbe->methodName, cbe->signature, cbe->which, (long)(cbe->glx)); + if( cbe->which == which && cbe->glx == glx ) + ) + break; + cbn=cbn->next; + } + #else + while(cbn!=NULL && + (cbn->this->which!=which || cbn->this->glx!=glx ) + ) + cbn=cbn->next; + #endif + + return cbn; +} + +CallbackNode * LIBAPIENTRY FindCallbackNodeOfCurrentCbObj(GLenum which, jlong glx) +{ + CallbackNode * cbn = pCallbackNodeRoot; + + #ifdef DEBUG + CallbackEntry * cbe = NULL; + printf("FindCallbackNode> which:=%d, glx:=%ld\n", + which, (long)glx); + while(cbn!=NULL) + { + cbe=cbn->this; + printf(" test cbe(%s %s): which:=%d, glx:=%ld\n", + cbe->methodName, cbe->signature, + cbe->which, (long)(cbe->glx)); + if( cbe->which == which && cbe->glx == glx && ((curCbObj == NULL) || (cbe->cb_obj == curCbObj)) ) @@ -147,6 +177,7 @@ CallbackNode * LIBAPIENTRY FindCallbackNode(GLenum which, jlong glx) return cbn; } + CallbackEntry * LIBAPIENTRY FindCallbackEntry(GLenum which, jlong glx) { CallbackNode * cbn = FindCallbackNode(which, glx); @@ -154,6 +185,13 @@ CallbackEntry * LIBAPIENTRY FindCallbackEntry(GLenum which, jlong glx) return cbn->this; } +CallbackEntry * LIBAPIENTRY FindCallbackEntryOfCurrentCbObj(GLenum which, jlong glx) +{ + CallbackNode * cbn = FindCallbackNodeOfCurrentCbObj(which, glx); + if(cbn==NULL) return NULL; + return cbn->this; +} + void LIBAPIENTRY AddCallbackNode(JNIEnv * env, jobject jobj, const char *methodName, const char *signature, int arrayLen1, int arrayLen2, int arrayLen3, @@ -164,6 +202,7 @@ void LIBAPIENTRY AddCallbackNode(JNIEnv * env, jobject jobj, CallbackNode * last_cbn = NULL; CallbackEntry * cbe = NULL; + SetCurrentCallbackObject(cb_obj); cbn = FindCallbackNode (which, glx); if(cbn != NULL) { @@ -210,6 +249,63 @@ void LIBAPIENTRY AddCallbackNode(JNIEnv * env, jobject jobj, DBG_PRINT_CBN("AddCallbackNode", cbn); } +void LIBAPIENTRY AddCallbackNodeForCbObj(JNIEnv * env, jobject jobj, + const char *methodName, const char *signature, + int arrayLen1, int arrayLen2, int arrayLen3, + int arrayLen4, int arrayLen5, + void *cb_obj, GLenum which, jlong glx) +{ + CallbackNode * cbn = NULL; + CallbackNode * last_cbn = NULL; + CallbackEntry * cbe = NULL; + + SetCurrentCallbackObject(cb_obj); + cbn = FindCallbackNodeOfCurrentCbObj (which, glx); + if(cbn != NULL) + { + cbe = cbn->this; + CleanCallbackEntry(cbe); + } else { + cbe = calloc(1, sizeof(CallbackEntry)); + } + + cbe->env=env; + cbe->jobj= (*env)->NewGlobalRef(env, jobj); + if(methodName!=NULL) + { + cbe->methodName=calloc(strlen(methodName)+1, 1); + strcpy(cbe->methodName, methodName); + } + if(signature!=NULL) + { + cbe->signature=calloc(strlen(signature)+1, 1); + strcpy(cbe->signature, signature); + } + cbe->argListNumber= jnitoolsGetArgNumber(env, signature, cbe->methodName); + cbe->arrayLen1=arrayLen1; + cbe->arrayLen2=arrayLen2; + cbe->arrayLen3=arrayLen3; + cbe->arrayLen4=arrayLen4; + cbe->arrayLen5=arrayLen5; + cbe->cb_obj=cb_obj; + cbe->which=which; + cbe->glx=glx; + + if(cbn == NULL) + { + cbn = calloc(1, sizeof(CallbackNode)); + cbn->this = cbe; + last_cbn = LastCallbackNode(); + if(last_cbn==NULL) + pCallbackNodeRoot=cbn; + else { + last_cbn->next=cbn; + cbn->prev=last_cbn; + } + } + DBG_PRINT_CBN("AddCallbackNode", cbn); +} + void LIBAPIENTRY RemoveCallbackNodes(void *cb_obj) { CallbackNode * cbn = NULL; diff --git a/CNativeCode/GLCallbackHelperJNI.h b/CNativeCode/GLCallbackHelperJNI.h index 0a1dd63..a432af1 100644 --- a/CNativeCode/GLCallbackHelperJNI.h +++ b/CNativeCode/GLCallbackHelperJNI.h @@ -54,14 +54,21 @@ LIBAPI CallbackNode * LIBAPIENTRY FindNextCallbackNodeOfCbObj(void *cb_obj); LIBAPI CallbackNode * LIBAPIENTRY FindCallbackNode(GLenum which, jlong glx); + LIBAPI CallbackNode * LIBAPIENTRY FindCallbackNodeOfCurrentCbObj(GLenum which, jlong glx); LIBAPI CallbackEntry * LIBAPIENTRY FindCallbackEntry(GLenum which, jlong glx); + LIBAPI CallbackEntry * LIBAPIENTRY FindCallbackEntryOfCurrentCbObj(GLenum which, jlong glx); LIBAPI void LIBAPIENTRY AddCallbackNode(JNIEnv * env, jobject jobj, const char *methodName, const char *signature, int arrayLen1, int arrayLen2, int arrayLen3, int arrayLen4, int arrayLen5, void *cb_obj, GLenum which, jlong glx); + LIBAPI void LIBAPIENTRY AddCallbackNodeForCbObj(JNIEnv * env, jobject jobj, + const char *methodName, const char *signature, + int arrayLen1, int arrayLen2, int arrayLen3, + int arrayLen4, int arrayLen5, + void *cb_obj, GLenum which, jlong glx); LIBAPI void LIBAPIENTRY RemoveCallbackNodes(void *cb_obj); diff --git a/CNativeCode/GLUCallbackJNI.c b/CNativeCode/GLUCallbackJNI.c index ef2da51..4d98f9c 100644 --- a/CNativeCode/GLUCallbackJNI.c +++ b/CNativeCode/GLUCallbackJNI.c @@ -11,7 +11,7 @@ void LIBAPIENTRY cbf_GLU_TESS_BEGIN (GLenum type) jmethodID id=0; CallbackEntry * cbe = NULL; - cbe = FindCallbackEntry(GLU_TESS_BEGIN, GetCurrentGLContext()); + cbe = FindCallbackEntryOfCurrentCbObj(GLU_TESS_BEGIN, GetCurrentGLContext()); if(cbe==NULL) { @@ -47,7 +47,7 @@ void LIBAPIENTRY cbf_GLU_TESS_BEGIN_DATA (GLenum type, void *udata) JavaBasicType jbt=0; jarray arr=0; - CallbackEntry * cbe = FindCallbackEntry(GLU_TESS_BEGIN_DATA, GetCurrentGLContext()); + CallbackEntry * cbe = FindCallbackEntryOfCurrentCbObj(GLU_TESS_BEGIN_DATA, GetCurrentGLContext()); if(cbe==NULL) { @@ -92,7 +92,7 @@ void LIBAPIENTRY cbf_GLU_TESS_EDGE_FLAG (GLboolean flag) jclass oclass=0; jmethodID id=0; - CallbackEntry * cbe = FindCallbackEntry(GLU_TESS_EDGE_FLAG, GetCurrentGLContext()); + CallbackEntry * cbe = FindCallbackEntryOfCurrentCbObj(GLU_TESS_EDGE_FLAG, GetCurrentGLContext()); if(cbe==NULL) { @@ -125,7 +125,7 @@ void LIBAPIENTRY cbf_GLU_TESS_EDGE_FLAG_DATA (GLboolean flag, void *udata) JavaBasicType jbt=0; jarray arr=0; - CallbackEntry * cbe = FindCallbackEntry(GLU_TESS_EDGE_FLAG_DATA, GetCurrentGLContext()); + CallbackEntry * cbe = FindCallbackEntryOfCurrentCbObj(GLU_TESS_EDGE_FLAG_DATA, GetCurrentGLContext()); if(cbe==NULL) { @@ -172,7 +172,7 @@ void LIBAPIENTRY cbf_GLU_TESS_VERTEX (void * vdata) JavaBasicType jbt=0; jarray arr=0; - CallbackEntry * cbe = FindCallbackEntry(GLU_TESS_VERTEX, GetCurrentGLContext()); + CallbackEntry * cbe = FindCallbackEntryOfCurrentCbObj(GLU_TESS_VERTEX, GetCurrentGLContext()); if(cbe==NULL) { @@ -221,7 +221,7 @@ void LIBAPIENTRY cbf_GLU_TESS_VERTEX_DATA (void * vdata, void * udata) JavaBasicType jbt1=0; jarray arr1=0; - CallbackEntry * cbe = FindCallbackEntry(GLU_TESS_VERTEX_DATA, GetCurrentGLContext()); + CallbackEntry * cbe = FindCallbackEntryOfCurrentCbObj(GLU_TESS_VERTEX_DATA, GetCurrentGLContext()); if(cbe==NULL) { @@ -271,7 +271,7 @@ void LIBAPIENTRY cbf_GLU_TESS_END (void) jclass oclass=0; jmethodID id=0; - CallbackEntry * cbe = FindCallbackEntry(GLU_TESS_END, GetCurrentGLContext()); + CallbackEntry * cbe = FindCallbackEntryOfCurrentCbObj(GLU_TESS_END, GetCurrentGLContext()); if(cbe==NULL) { @@ -304,7 +304,7 @@ void LIBAPIENTRY cbf_GLU_TESS_END_DATA (void * udata) JavaBasicType jbt=0; jarray arr=0; - CallbackEntry * cbe = FindCallbackEntry(GLU_TESS_END_DATA, GetCurrentGLContext()); + CallbackEntry * cbe = FindCallbackEntryOfCurrentCbObj(GLU_TESS_END_DATA, GetCurrentGLContext()); if(cbe==NULL) { @@ -349,7 +349,7 @@ void LIBAPIENTRY cbf_GLU_TESS_ERROR (GLenum errno) jclass oclass=0; jmethodID id=0; - CallbackEntry * cbe = FindCallbackEntry(GLU_TESS_ERROR, GetCurrentGLContext()); + CallbackEntry * cbe = FindCallbackEntryOfCurrentCbObj(GLU_TESS_ERROR, GetCurrentGLContext()); if(cbe==NULL) { @@ -382,7 +382,7 @@ void LIBAPIENTRY cbf_GLU_TESS_ERROR_DATA (GLenum errno, void * udata) JavaBasicType jbt=0; jarray arr=0; - CallbackEntry * cbe = FindCallbackEntry(GLU_TESS_ERROR_DATA, GetCurrentGLContext()); + CallbackEntry * cbe = FindCallbackEntryOfCurrentCbObj(GLU_TESS_ERROR_DATA, GetCurrentGLContext()); if(cbe==NULL) { @@ -438,7 +438,7 @@ void LIBAPIENTRY cbf_GLU_TESS_COMBINE (GLdouble coords[3], void *vdata[4], void * combdata = NULL; CallbackEntry * cbe = NULL; - cbe = FindCallbackEntry(GLU_TESS_COMBINE, GetCurrentGLContext()); + cbe = FindCallbackEntryOfCurrentCbObj(GLU_TESS_COMBINE, GetCurrentGLContext()); if(cbe==NULL) { @@ -530,7 +530,7 @@ void LIBAPIENTRY cbf_GLU_TESS_COMBINE_DATA (GLdouble coords[3], void *vdata[4], jarray arr4=0; void * combdata = NULL; - CallbackEntry * cbe = FindCallbackEntry(GLU_TESS_COMBINE_DATA, GetCurrentGLContext()); + CallbackEntry * cbe = FindCallbackEntryOfCurrentCbObj(GLU_TESS_COMBINE_DATA, GetCurrentGLContext()); if(cbe==NULL) { diff --git a/CNativeCode/OpenGLU_JauJNI12_funcs.c b/CNativeCode/OpenGLU_JauJNI12_funcs.c index c0792f4..c4c3090 100644 --- a/CNativeCode/OpenGLU_JauJNI12_funcs.c +++ b/CNativeCode/OpenGLU_JauJNI12_funcs.c @@ -33,8 +33,17 @@ * herein lies the native JAVA methods for the OpenGL functions.
*/
+/** THIS IS A MANUAL CODED PART + glu-manualCodedImplJNI14.java +*/ + static const char _glu_n_a_string[] = "GLU-String not available !"; +static const char * _glu_lib_vendor_="Jausoft - Sven Goethel Software Development"; +static const char * _glu_lib_version_="2.8.3.0"; + +/* ---------------------------------------------------------------------- */ + JNIEXPORT jstring JNICALL Java_gl4java_GLUFuncJauJNI_gluErrorString ( JNIEnv *env, jobject obj, jint errorCode ) @@ -67,9 +76,6 @@ Java_gl4java_GLUFuncJauJNI_gluGetString ( JNIEnv *env, jobject obj, return (*env)->NewStringUTF(env, tmpString); } -static const char * _glu_lib_vendor_="Jausoft - Sven Goethel Software Development"; -static const char * _glu_lib_version_="2.8.3.0"; - JNIEXPORT jstring JNICALL Java_gl4java_GLUFuncJauJNI_getNativeVendor ( JNIEnv *env, jobject obj ) { @@ -106,6 +112,31 @@ static void _AddCallbackNode(JNIEnv *env, free(strMethodName); free(strSignature); } + +static void _AddCallbackNodeForCbObj(JNIEnv *env, + jlong qnt_obj, jint which, + jobject methodClassInstance, + jstring methodName, + jstring signature, + jint arrayLen1, + jint arrayLen2, + jint arrayLen3, + jint arrayLen4, + jint arrayLen5) +{ + char * strMethodName = jnitoolsGetJavaString(env, methodName); + char * strSignature = jnitoolsGetJavaString(env, signature); + jlong glx=0; + + glx = GetCurrentGLContext(); + + AddCallbackNodeForCbObj(env, methodClassInstance, strMethodName, strSignature, + arrayLen1, arrayLen2, arrayLen3, + arrayLen4, arrayLen5, + (void *)((PointerHolder)qnt_obj), which, glx); + free(strMethodName); + free(strSignature); +} JNIEXPORT void JNICALL @@ -172,7 +203,7 @@ Java_gl4java_GLUFuncJauJNI_gluTessCallback( JNIEnv *env, jobject obj, jint arrayLen5) { if ( disp__gluTessCallback == NULL ) return; - + switch(which) { case GLU_TESS_BEGIN: @@ -239,7 +270,7 @@ Java_gl4java_GLUFuncJauJNI_gluTessCallback( JNIEnv *env, jobject obj, jnitoolsThrowByName(env, "java/lang/IllegalArgumentException", "Wrong Callback-Function type (\"which\") !"); return; } - _AddCallbackNode(env, + _AddCallbackNodeForCbObj(env, tobj, which, methodClassInstance, methodName, signature, arrayLen1, arrayLen2, arrayLen3, diff --git a/CNativeCode/OpenGLU_JauJNI12nf_funcs.c b/CNativeCode/OpenGLU_JauJNI12nf_funcs.c index b7c6237..705106f 100755 --- a/CNativeCode/OpenGLU_JauJNI12nf_funcs.c +++ b/CNativeCode/OpenGLU_JauJNI12nf_funcs.c @@ -33,8 +33,17 @@ * herein lies the native JAVA methods for the OpenGL functions.
*/
+/** THIS IS A MANUAL CODED PART + glu-manualCodedImplJNI14.java +*/ + static const char _glu_n_a_string[] = "GLU-String not available !"; +static const char * _glu_lib_vendor_="Jausoft - Sven Goethel Software Development"; +static const char * _glu_lib_version_="2.8.3.0"; + +/* ---------------------------------------------------------------------- */ + JNIEXPORT jstring JNICALL Java_gl4java_GLUFuncJauJNInf_gluErrorString ( JNIEnv *env, jobject obj, jint errorCode ) @@ -67,9 +76,6 @@ Java_gl4java_GLUFuncJauJNInf_gluGetString ( JNIEnv *env, jobject obj, return (*env)->NewStringUTF(env, tmpString); } -static const char * _glu_lib_vendor_="Jausoft - Sven Goethel Software Development"; -static const char * _glu_lib_version_="2.8.3.0"; - JNIEXPORT jstring JNICALL Java_gl4java_GLUFuncJauJNInf_getNativeVendor ( JNIEnv *env, jobject obj ) { @@ -106,6 +112,31 @@ static void _AddCallbackNode(JNIEnv *env, free(strMethodName); free(strSignature); } + +static void _AddCallbackNodeForCbObj(JNIEnv *env, + jlong qnt_obj, jint which, + jobject methodClassInstance, + jstring methodName, + jstring signature, + jint arrayLen1, + jint arrayLen2, + jint arrayLen3, + jint arrayLen4, + jint arrayLen5) +{ + char * strMethodName = jnitoolsGetJavaString(env, methodName); + char * strSignature = jnitoolsGetJavaString(env, signature); + jlong glx=0; + + glx = GetCurrentGLContext(); + + AddCallbackNodeForCbObj(env, methodClassInstance, strMethodName, strSignature, + arrayLen1, arrayLen2, arrayLen3, + arrayLen4, arrayLen5, + (void *)((PointerHolder)qnt_obj), which, glx); + free(strMethodName); + free(strSignature); +} JNIEXPORT void JNICALL @@ -172,7 +203,7 @@ Java_gl4java_GLUFuncJauJNInf_gluTessCallback( JNIEnv *env, jobject obj, jint arrayLen5) { if ( disp__gluTessCallback == NULL ) return; - + switch(which) { case GLU_TESS_BEGIN: @@ -239,7 +270,7 @@ Java_gl4java_GLUFuncJauJNInf_gluTessCallback( JNIEnv *env, jobject obj, jnitoolsThrowByName(env, "java/lang/IllegalArgumentException", "Wrong Callback-Function type (\"which\") !"); return; } - _AddCallbackNode(env, + _AddCallbackNodeForCbObj(env, tobj, which, methodClassInstance, methodName, signature, arrayLen1, arrayLen2, arrayLen3, diff --git a/CNativeCode/OpenGLU_JauJNI12tst_funcs.c b/CNativeCode/OpenGLU_JauJNI12tst_funcs.c index 5ff2d5a..9899539 100644 --- a/CNativeCode/OpenGLU_JauJNI12tst_funcs.c +++ b/CNativeCode/OpenGLU_JauJNI12tst_funcs.c @@ -33,8 +33,17 @@ * herein lies the native JAVA methods for the OpenGL functions.
*/
+/** THIS IS A MANUAL CODED PART + glu-manualCodedImplJNI14.java +*/ + static const char _glu_n_a_string[] = "GLU-String not available !"; +static const char * _glu_lib_vendor_="Jausoft - Sven Goethel Software Development"; +static const char * _glu_lib_version_="2.8.3.0"; + +/* ---------------------------------------------------------------------- */ + JNIEXPORT jstring JNICALL Java_gl4java_GLUFuncJauJNI_gluErrorString ( JNIEnv *env, jobject obj, jint errorCode ) @@ -67,9 +76,6 @@ Java_gl4java_GLUFuncJauJNI_gluGetString ( JNIEnv *env, jobject obj, return (*env)->NewStringUTF(env, tmpString); } -static const char * _glu_lib_vendor_="Jausoft - Sven Goethel Software Development"; -static const char * _glu_lib_version_="2.8.3.0"; - JNIEXPORT jstring JNICALL Java_gl4java_GLUFuncJauJNI_getNativeVendor ( JNIEnv *env, jobject obj ) { @@ -106,6 +112,31 @@ static void _AddCallbackNode(JNIEnv *env, free(strMethodName); free(strSignature); } + +static void _AddCallbackNodeForCbObj(JNIEnv *env, + jlong qnt_obj, jint which, + jobject methodClassInstance, + jstring methodName, + jstring signature, + jint arrayLen1, + jint arrayLen2, + jint arrayLen3, + jint arrayLen4, + jint arrayLen5) +{ + char * strMethodName = jnitoolsGetJavaString(env, methodName); + char * strSignature = jnitoolsGetJavaString(env, signature); + jlong glx=0; + + glx = GetCurrentGLContext(); + + AddCallbackNodeForCbObj(env, methodClassInstance, strMethodName, strSignature, + arrayLen1, arrayLen2, arrayLen3, + arrayLen4, arrayLen5, + (void *)((PointerHolder)qnt_obj), which, glx); + free(strMethodName); + free(strSignature); +} JNIEXPORT void JNICALL @@ -172,7 +203,7 @@ Java_gl4java_GLUFuncJauJNI_gluTessCallback( JNIEnv *env, jobject obj, jint arrayLen5) { if ( disp__gluTessCallback == NULL ) return; - + switch(which) { case GLU_TESS_BEGIN: @@ -239,7 +270,7 @@ Java_gl4java_GLUFuncJauJNI_gluTessCallback( JNIEnv *env, jobject obj, jnitoolsThrowByName(env, "java/lang/IllegalArgumentException", "Wrong Callback-Function type (\"which\") !"); return; } - _AddCallbackNode(env, + _AddCallbackNodeForCbObj(env, tobj, which, methodClassInstance, methodName, signature, arrayLen1, arrayLen2, arrayLen3, diff --git a/CNativeCode/OpenGLU_JauJNI14_funcs.c b/CNativeCode/OpenGLU_JauJNI14_funcs.c index ce0faa1..d07a365 100644 --- a/CNativeCode/OpenGLU_JauJNI14_funcs.c +++ b/CNativeCode/OpenGLU_JauJNI14_funcs.c @@ -33,858 +33,883 @@ * herein lies the native JAVA methods for the OpenGL functions.
*/
-/** THIS IS A MANUAL CODED PART
- glu-manualCodedImplJNI14.java
-*/
-
-static const char _glu_n_a_string[] = "GLU-String not avaiable !";
-
-static const char * _glu_lib_vendor_="Jausoft - Sven Goethel Software Development";
-static const char * _glu_lib_version_="2.8.3.0";
-
-/* ---------------------------------------------------------------------- */
-
-JNIEXPORT jstring JNICALL
-Java_gl4java_GLUFunc14JauJNI_gluErrorString ( JNIEnv *env, jobject obj,
- jint errorCode )
-{
- const char *tmpString=0;
-
- if ( disp__gluErrorString == NULL )
- return (*env)->NewStringUTF(env, _glu_n_a_string);
-
- tmpString = disp__gluErrorString ( /* jint */ errorCode );
- if(tmpString==NULL)
- tmpString=_glu_n_a_string;
-
- return (*env)->NewStringUTF(env, tmpString);
-}
-
-JNIEXPORT jstring JNICALL
-Java_gl4java_GLUFunc14JauJNI_gluGetString ( JNIEnv *env, jobject obj,
- jint name )
-{
- const char *tmpString=0;
-
- if ( disp__gluGetString == NULL )
- return (*env)->NewStringUTF(env, _glu_n_a_string);
-
- tmpString = disp__gluGetString ( /* jint */ name);
- if(tmpString==NULL)
- tmpString=_glu_n_a_string;
-
- return (*env)->NewStringUTF(env, tmpString);
-}
-
-JNIEXPORT jstring JNICALL
-Java_gl4java_GLUFunc14JauJNI_getNativeVendor ( JNIEnv *env, jobject obj )
-{
- return (*env)->NewStringUTF(env, _glu_lib_vendor_);
-}
-
-JNIEXPORT jstring JNICALL
-Java_gl4java_GLUFunc14JauJNI_getNativeVersion ( JNIEnv *env, jobject obj )
-{
- return (*env)->NewStringUTF(env, _glu_lib_version_);
-}
-
-
-/* ---------------------------------------------------------------------- */
-
-static void _AddCallbackNode(JNIEnv *env,
- jlong qnt_obj, jint which,
- jobject methodClassInstance,
- jstring methodName,
- jstring signature,
- jint arrayLen1,
- jint arrayLen2,
- jint arrayLen3,
- jint arrayLen4,
- jint arrayLen5)
-{
- char * strMethodName = jnitoolsGetJavaString(env, methodName);
- char * strSignature = jnitoolsGetJavaString(env, signature);
- jlong glx=0;
-
- glx = GetCurrentGLContext();
-
- AddCallbackNode(env, methodClassInstance, strMethodName, strSignature,
- arrayLen1, arrayLen2, arrayLen3,
- arrayLen4, arrayLen5,
- (void *)((PointerHolder)qnt_obj), which, glx);
- free(strMethodName);
- free(strSignature);
-}
-
-
-JNIEXPORT void JNICALL
-Java_gl4java_GLUFunc14JauJNI_gluQuadricCallback( JNIEnv *env, jobject obj,
- jlong qobj, jint which,
- jobject methodClassInstance,
- jstring methodName,
- jstring signature)
-{
- if ( disp__gluQuadricCallback == NULL ) return;
-
- switch(which)
- {
- case GLU_ERROR:
- disp__gluQuadricCallback((void *)((PointerHolder)qobj),
- which, cbf_GLU_ERROR );
- break;
- default:
- jnitoolsThrowByName(env, "java/lang/IllegalArgumentException", "Wrong Callback-Function type (\"which\") !");
- return;
- }
- _AddCallbackNode(env,
- qobj, which, methodClassInstance, methodName,
- signature,
- 0, 0, 0, 0, 0);
-}
-
-
-JNIEXPORT void JNICALL
-Java_gl4java_GLUFunc14JauJNI_gluNurbsCallback( JNIEnv *env, jobject obj,
- jlong nobj, jint which,
- jobject methodClassInstance,
- jstring methodName,
- jstring signature)
-{
- if ( disp__gluNurbsCallback == NULL ) return;
-
- switch(which)
- {
- case GLU_ERROR:
- disp__gluNurbsCallback((void *)((PointerHolder)nobj), which,
- cbf_GLU_ERROR );
- break;
- default:
- jnitoolsThrowByName(env, "java/lang/IllegalArgumentException", "Wrong Callback-Function type (\"which\") !");
- return;
- }
- _AddCallbackNode(env,
- nobj, which, methodClassInstance, methodName,
- signature,
- 0, 0, 0, 0, 0);
-}
-
-JNIEXPORT void JNICALL
-Java_gl4java_GLUFunc14JauJNI_gluTessCallback( JNIEnv *env, jobject obj,
- jlong tobj, jint which,
- jobject methodClassInstance,
- jstring methodName,
- jstring signature,
- jint arrayLen1,
- jint arrayLen2,
- jint arrayLen3,
- jint arrayLen4,
- jint arrayLen5)
-{
- if ( disp__gluTessCallback == NULL ) return;
-
- switch(which)
- {
- case GLU_TESS_BEGIN:
- disp__gluTessCallback((GLUtesselator *)((PointerHolder)tobj),
- which,
- cbf_GLU_TESS_BEGIN );
- break;
- case GLU_TESS_BEGIN_DATA:
- disp__gluTessCallback((GLUtesselator *)((PointerHolder)tobj),
- which,
- cbf_GLU_TESS_BEGIN_DATA );
- break;
- case GLU_TESS_EDGE_FLAG:
- disp__gluTessCallback((GLUtesselator *)((PointerHolder)tobj),
- which,
- cbf_GLU_TESS_EDGE_FLAG );
- break;
- case GLU_TESS_EDGE_FLAG_DATA:
- disp__gluTessCallback((GLUtesselator *)((PointerHolder)tobj),
- which,
- cbf_GLU_TESS_EDGE_FLAG_DATA );
- break;
- case GLU_TESS_VERTEX:
- disp__gluTessCallback((GLUtesselator *)((PointerHolder)tobj),
- which,
- cbf_GLU_TESS_VERTEX );
- break;
- case GLU_TESS_VERTEX_DATA:
- disp__gluTessCallback((GLUtesselator *)((PointerHolder)tobj),
- which,
- cbf_GLU_TESS_VERTEX_DATA );
- break;
- case GLU_TESS_END:
- disp__gluTessCallback((GLUtesselator *)((PointerHolder)tobj),
- which,
- cbf_GLU_TESS_END );
- break;
- case GLU_TESS_END_DATA:
- disp__gluTessCallback((GLUtesselator *)((PointerHolder)tobj),
- which,
- cbf_GLU_TESS_END_DATA );
- break;
- case GLU_TESS_ERROR:
- disp__gluTessCallback((GLUtesselator *)((PointerHolder)tobj),
- which,
- cbf_GLU_TESS_ERROR );
- break;
- case GLU_TESS_ERROR_DATA:
- disp__gluTessCallback((GLUtesselator *)((PointerHolder)tobj),
- which,
- cbf_GLU_TESS_ERROR_DATA );
- break;
- case GLU_TESS_COMBINE:
- disp__gluTessCallback((GLUtesselator *)((PointerHolder)tobj),
- which,
- cbf_GLU_TESS_COMBINE );
- break;
- case GLU_TESS_COMBINE_DATA:
- disp__gluTessCallback((GLUtesselator *)((PointerHolder)tobj),
- which,
- cbf_GLU_TESS_COMBINE_DATA );
- break;
- default:
- jnitoolsThrowByName(env, "java/lang/IllegalArgumentException", "Wrong Callback-Function type (\"which\") !");
- return;
- }
- _AddCallbackNode(env,
- tobj, which, methodClassInstance, methodName,
- signature,
- arrayLen1, arrayLen2, arrayLen3,
- arrayLen4, arrayLen5);
-}
-
-JNIEXPORT void JNICALL
-Java_gl4java_GLUFunc14JauJNI_gluDeleteQuadric( JNIEnv *env, jobject obj,
- jlong qobj )
-{
- if ( disp__gluDeleteQuadric == NULL ) return;
-
- disp__gluDeleteQuadric((void *)((PointerHolder)qobj));
- RemoveCallbackNodes((void *)((PointerHolder)qobj));
-}
-
-JNIEXPORT void JNICALL
-Java_gl4java_GLUFunc14JauJNI_gluDeleteNurbsRenderer( JNIEnv *env, jobject obj,
- jlong nobj )
-{
- if ( disp__gluDeleteNurbsRenderer == NULL ) return;
-
- disp__gluDeleteNurbsRenderer((void *)((PointerHolder)nobj));
- RemoveCallbackNodes((void *)((PointerHolder)nobj));
-}
-
-JNIEXPORT void JNICALL
-Java_gl4java_GLUFunc14JauJNI_gluDeleteTess( JNIEnv *env, jobject obj,
- jlong tobj )
-{
- if ( disp__gluDeleteTess == NULL ) return;
-
- disp__gluDeleteTess((GLUtesselator *)((PointerHolder)tobj));
- RemoveCallbackNodes((void *)((PointerHolder)tobj));
-}
-
-JNIEXPORT jlong JNICALL
-Java_gl4java_GLUFunc14JauJNI_gluNewQuadric( JNIEnv *env, jobject obj)
-{
- if ( disp__gluNewQuadric == NULL ) return 0;
-
- return (jlong)((PointerHolder)disp__gluNewQuadric());
-}
-
-JNIEXPORT jlong JNICALL
-Java_gl4java_GLUFunc14JauJNI_gluNewNurbsRenderer( JNIEnv *env, jobject obj)
-{
- if ( disp__gluNewNurbsRenderer == NULL ) return 0;
-
- return (jlong)((PointerHolder)disp__gluNewNurbsRenderer());
-}
-
-JNIEXPORT jlong JNICALL
-Java_gl4java_GLUFunc14JauJNI_gluNewTess( JNIEnv *env, jobject obj)
-{
- if ( disp__gluNewTess == NULL ) return 0;
-
- return (jlong)((PointerHolder)disp__gluNewTess());
-}
-
-#include "MemoryManager.h"
-
-/**
- * Original Function-Prototype :
- * <pre>
- extern void gluTessBeginContour ( GLUtesselator * tess ) ;
- * </pre>
- */
- JNIEXPORT void JNICALL
- Java_gl4java_GLUFunc14JauJNI_gluTessBeginContour (
- JNIEnv *env, jobject obj,
- jlong tess)
- {
-
- if ( disp__gluTessBeginContour == NULL ) return;
- SetCurrentCallbackObject((void *) (PointerHolder) tess);
- disp__gluTessBeginContour (
- (GLUtesselator *) (PointerHolder) tess
- );
-
- }
-
-/**
- * Original Function-Prototype :
- * <pre>
- extern void gluTessBeginPolygon ( GLUtesselator * tess , GLvoid * data ) ;
- * </pre>
- */
- JNIEXPORT void JNICALL
- Java_gl4java_GLUFunc14JauJNI_gluTessBeginPolygon__J_3B (
- JNIEnv *env, jobject obj,
- jlong tess,
- jbyteArray data)
- {
- jboolean isCopiedArray1 = JNI_FALSE;
- jbyte *ptr1 = NULL;
-
- if ( disp__gluTessBeginPolygon == NULL ) return;
-
- if(data!=NULL)
- {
- ptr1 = (jbyte *) (*env)->GetPrimitiveArrayCritical(env, data, &isCopiedArray1);
- }
- SetCurrentCallbackObject((void *) (PointerHolder) tess);
- disp__gluTessBeginPolygon (
- (GLUtesselator *) (PointerHolder) tess,
- (GLvoid *) ptr1
- );
-
- if(data!=NULL)
- {
- (*env)->ReleasePrimitiveArrayCritical(env, data, ptr1, (isCopiedArray1 == JNI_TRUE)?0:JNI_ABORT);
- }
- }
- JNIEXPORT void JNICALL
- Java_gl4java_GLUFunc14JauJNI_gluTessBeginPolygon__J_3S (
- JNIEnv *env, jobject obj,
- jlong tess,
- jshortArray data)
- {
- jboolean isCopiedArray1 = JNI_FALSE;
- jshort *ptr1 = NULL;
-
- if ( disp__gluTessBeginPolygon == NULL ) return;
-
- if(data!=NULL)
- {
- ptr1 = (jshort *) (*env)->GetPrimitiveArrayCritical(env, data, &isCopiedArray1);
- }
- SetCurrentCallbackObject((void *) (PointerHolder) tess);
- disp__gluTessBeginPolygon (
- (GLUtesselator *) (PointerHolder) tess,
- (GLvoid *) ptr1
- );
-
- if(data!=NULL)
- {
- (*env)->ReleasePrimitiveArrayCritical(env, data, ptr1, (isCopiedArray1 == JNI_TRUE)?0:JNI_ABORT);
- }
- }
- JNIEXPORT void JNICALL
- Java_gl4java_GLUFunc14JauJNI_gluTessBeginPolygon__J_3I (
- JNIEnv *env, jobject obj,
- jlong tess,
- jintArray data)
- {
- jboolean isCopiedArray1 = JNI_FALSE;
- jint *ptr1 = NULL;
-
- if ( disp__gluTessBeginPolygon == NULL ) return;
-
- if(data!=NULL)
- {
- ptr1 = (jint *) (*env)->GetPrimitiveArrayCritical(env, data, &isCopiedArray1);
- }
- SetCurrentCallbackObject((void *) (PointerHolder) tess);
- disp__gluTessBeginPolygon (
- (GLUtesselator *) (PointerHolder) tess,
- (GLvoid *) ptr1
- );
-
- if(data!=NULL)
- {
- (*env)->ReleasePrimitiveArrayCritical(env, data, ptr1, (isCopiedArray1 == JNI_TRUE)?0:JNI_ABORT);
- }
- }
- JNIEXPORT void JNICALL
- Java_gl4java_GLUFunc14JauJNI_gluTessBeginPolygon__J_3F (
- JNIEnv *env, jobject obj,
- jlong tess,
- jfloatArray data)
- {
- jboolean isCopiedArray1 = JNI_FALSE;
- jfloat *ptr1 = NULL;
-
- if ( disp__gluTessBeginPolygon == NULL ) return;
-
- if(data!=NULL)
- {
- ptr1 = (jfloat *) (*env)->GetPrimitiveArrayCritical(env, data, &isCopiedArray1);
- }
- SetCurrentCallbackObject((void *) (PointerHolder) tess);
- disp__gluTessBeginPolygon (
- (GLUtesselator *) (PointerHolder) tess,
- (GLvoid *) ptr1
- );
-
- if(data!=NULL)
- {
- (*env)->ReleasePrimitiveArrayCritical(env, data, ptr1, (isCopiedArray1 == JNI_TRUE)?0:JNI_ABORT);
- }
- }
- JNIEXPORT void JNICALL
- Java_gl4java_GLUFunc14JauJNI_gluTessBeginPolygon__J_3D (
- JNIEnv *env, jobject obj,
- jlong tess,
- jdoubleArray data)
- {
- jboolean isCopiedArray1 = JNI_FALSE;
- jdouble *ptr1 = NULL;
-
- if ( disp__gluTessBeginPolygon == NULL ) return;
-
- if(data!=NULL)
- {
- ptr1 = (jdouble *) (*env)->GetPrimitiveArrayCritical(env, data, &isCopiedArray1);
- }
- SetCurrentCallbackObject((void *) (PointerHolder) tess);
- disp__gluTessBeginPolygon (
- (GLUtesselator *) (PointerHolder) tess,
- (GLvoid *) ptr1
- );
-
- if(data!=NULL)
- {
- (*env)->ReleasePrimitiveArrayCritical(env, data, ptr1, (isCopiedArray1 == JNI_TRUE)?0:JNI_ABORT);
- }
- }
- JNIEXPORT void JNICALL
- Java_gl4java_GLUFunc14JauJNI_gluTessBeginPolygon__J_3Z (
- JNIEnv *env, jobject obj,
- jlong tess,
- jbooleanArray data)
- {
- jboolean isCopiedArray1 = JNI_FALSE;
- jboolean *ptr1 = NULL;
-
- if ( disp__gluTessBeginPolygon == NULL ) return;
-
- if(data!=NULL)
- {
- ptr1 = (jboolean *) (*env)->GetPrimitiveArrayCritical(env, data, &isCopiedArray1);
- }
- SetCurrentCallbackObject((void *) (PointerHolder) tess);
- disp__gluTessBeginPolygon (
- (GLUtesselator *) (PointerHolder) tess,
- (GLvoid *) ptr1
- );
-
- if(data!=NULL)
- {
- (*env)->ReleasePrimitiveArrayCritical(env, data, ptr1, (isCopiedArray1 == JNI_TRUE)?0:JNI_ABORT);
- }
- }
- JNIEXPORT void JNICALL
- Java_gl4java_GLUFunc14JauJNI_gluTessBeginPolygon__J_3J (
- JNIEnv *env, jobject obj,
- jlong tess,
- jlongArray data)
- {
- jboolean isCopiedArray1 = JNI_FALSE;
- jlong *ptr1 = NULL;
-
- if ( disp__gluTessBeginPolygon == NULL ) return;
-
- if(data!=NULL)
- {
- ptr1 = (jlong *) (*env)->GetPrimitiveArrayCritical(env, data, &isCopiedArray1);
- }
- SetCurrentCallbackObject((void *) (PointerHolder) tess);
- disp__gluTessBeginPolygon (
- (GLUtesselator *) (PointerHolder) tess,
- (GLvoid *) ptr1
- );
-
- if(data!=NULL)
- {
- (*env)->ReleasePrimitiveArrayCritical(env, data, ptr1, (isCopiedArray1 == JNI_TRUE)?0:JNI_ABORT);
- }
- }
- JNIEXPORT void JNICALL
- Java_gl4java_GLUFunc14JauJNI_gluTessBeginPolygon__JLjava_nio_Buffer_2 (
- JNIEnv *env, jobject obj,
- jlong tess,
- jobject data)
- {
- void *ptr1 = NULL;
-
- if ( disp__gluTessBeginPolygon == NULL ) return;
-
- if(data!=NULL)
- {
- ptr1 = (*env)->GetDirectBufferAddress(env, data);
- if (ptr1 == NULL) {
- (*env)->ThrowNew(env, (*env)->FindClass(env, "java/lang/IllegalArgumentException"),
- "Argument 1 was not a direct buffer");
- return ;
- }
- }
- SetCurrentCallbackObject((void *) (PointerHolder) tess);
- disp__gluTessBeginPolygon (
- (GLUtesselator *) (PointerHolder) tess,
- (GLvoid *) ptr1
- );
-
- }
-
-/**
- * Original Function-Prototype :
- * <pre>
- extern void gluTessEndContour ( GLUtesselator * tess ) ;
- * </pre>
- */
- JNIEXPORT void JNICALL
- Java_gl4java_GLUFunc14JauJNI_gluTessEndContour (
- JNIEnv *env, jobject obj,
- jlong tess)
- {
-
- if ( disp__gluTessEndContour == NULL ) return;
- SetCurrentCallbackObject((void *) (PointerHolder) tess);
- disp__gluTessEndContour (
- (GLUtesselator *) (PointerHolder) tess
- );
-
- }
-
-/**
- * Original Function-Prototype :
- * <pre>
- extern void gluTessEndPolygon ( GLUtesselator * tess ) ;
- * </pre>
- */
- JNIEXPORT void JNICALL
- Java_gl4java_GLUFunc14JauJNI_gluTessEndPolygon (
- JNIEnv *env, jobject obj,
- jlong tess)
- {
-
- if ( disp__gluTessEndPolygon == NULL ) return;
- SetCurrentCallbackObject((void *) (PointerHolder) tess);
- disp__gluTessEndPolygon (
- (GLUtesselator *) (PointerHolder) tess
- );
- FreeArrays(env, MEMM_TESSELATOR);
-
- }
-
-/**
- * Original Function-Prototype :
- * <pre>
- extern void gluTessNormal ( GLUtesselator * tess , GLdouble valueX , GLdouble valueY , GLdouble valueZ ) ;
- * </pre>
- */
- JNIEXPORT void JNICALL
- Java_gl4java_GLUFunc14JauJNI_gluTessNormal (
- JNIEnv *env, jobject obj,
- jlong tess,
- jdouble valueX,
- jdouble valueY,
- jdouble valueZ)
- {
-
- if ( disp__gluTessNormal == NULL ) return;
- SetCurrentCallbackObject((void *) (PointerHolder) tess);
- disp__gluTessNormal (
- (GLUtesselator *) (PointerHolder) tess,
- (GLdouble) valueX,
- (GLdouble) valueY,
- (GLdouble) valueZ
- );
-
- }
-
-/**
- * Original Function-Prototype :
- * <pre>
- extern void gluTessProperty ( GLUtesselator * tess , GLenum which , GLdouble data ) ;
- * </pre>
- */
- JNIEXPORT void JNICALL
- Java_gl4java_GLUFunc14JauJNI_gluTessProperty (
- JNIEnv *env, jobject obj,
- jlong tess,
- jint which,
- jdouble data)
- {
-
- if ( disp__gluTessProperty == NULL ) return;
- SetCurrentCallbackObject((void *) (PointerHolder) tess);
- disp__gluTessProperty (
- (GLUtesselator *) (PointerHolder) tess,
- (GLenum) which,
- (GLdouble) data
- );
-
- }
-
-/**
- * Original Function-Prototype :
- * <pre>
- extern void gluTessVertex ( GLUtesselator * tess , GLdouble * location , GLvoid * data ) ;
- * </pre>
- */
- JNIEXPORT void JNICALL
- Java_gl4java_GLUFunc14JauJNI_gluTessVertex__J_3D_3B (
- JNIEnv *env, jobject obj,
- jlong tess,
- jdoubleArray location,
- jbyteArray data)
- {
- jdouble *ptr1 = NULL;
- jbyte *ptr2 = NULL;
-
- if ( disp__gluTessVertex == NULL ) return;
-
- if(location!=NULL)
- {
- ptr1 = (jdouble *) (*env)->GetDoubleArrayElements(env, location, 0);
- RegisterArray(env, location, ptr1, MEMM_DOUBLE, MEMM_TESSELATOR);
- }
- if(data!=NULL)
- {
- ptr2 = (jbyte *) (*env)->GetByteArrayElements(env, data, 0);
- RegisterArray(env, data, ptr2, MEMM_BYTE, MEMM_TESSELATOR);
- }
- SetCurrentCallbackObject((void *) (PointerHolder) tess);
- disp__gluTessVertex (
- (GLUtesselator *) (PointerHolder) tess,
- (GLdouble *) ptr1,
- (GLvoid *) ptr2
- );
- }
- JNIEXPORT void JNICALL
- Java_gl4java_GLUFunc14JauJNI_gluTessVertex__J_3D_3S (
- JNIEnv *env, jobject obj,
- jlong tess,
- jdoubleArray location,
- jshortArray data)
- {
- jdouble *ptr1 = NULL;
- jshort *ptr2 = NULL;
-
- if ( disp__gluTessVertex == NULL ) return;
-
- if(location!=NULL)
- {
- ptr1 = (jdouble *) (*env)->GetDoubleArrayElements(env, location, 0);
- RegisterArray(env, location, ptr1, MEMM_DOUBLE, MEMM_TESSELATOR);
- }
- if(data!=NULL)
- {
- ptr2 = (jshort *) (*env)->GetShortArrayElements(env, data, 0);
- RegisterArray(env, data, ptr2, MEMM_SHORT, MEMM_TESSELATOR);
- }
- SetCurrentCallbackObject((void *) (PointerHolder) tess);
- disp__gluTessVertex (
- (GLUtesselator *) (PointerHolder) tess,
- (GLdouble *) ptr1,
- (GLvoid *) ptr2
- );
- }
- JNIEXPORT void JNICALL
- Java_gl4java_GLUFunc14JauJNI_gluTessVertex__J_3D_3I (
- JNIEnv *env, jobject obj,
- jlong tess,
- jdoubleArray location,
- jintArray data)
- {
- jdouble *ptr1 = NULL;
- jint *ptr2 = NULL;
-
- if ( disp__gluTessVertex == NULL ) return;
-
- if(location!=NULL)
- {
- ptr1 = (jdouble *) (*env)->GetDoubleArrayElements(env, location, 0);
- RegisterArray(env, location, ptr1, MEMM_DOUBLE, MEMM_TESSELATOR);
- }
- if(data!=NULL)
- {
- ptr2 = (jint *) (*env)->GetIntArrayElements(env, data, 0);
- RegisterArray(env, data, ptr2, MEMM_INT, MEMM_TESSELATOR);
- }
- SetCurrentCallbackObject((void *) (PointerHolder) tess);
- disp__gluTessVertex (
- (GLUtesselator *) (PointerHolder) tess,
- (GLdouble *) ptr1,
- (GLvoid *) ptr2
- );
- }
- JNIEXPORT void JNICALL
- Java_gl4java_GLUFunc14JauJNI_gluTessVertex__J_3D_3F (
- JNIEnv *env, jobject obj,
- jlong tess,
- jdoubleArray location,
- jfloatArray data)
- {
- jdouble *ptr1 = NULL;
- jfloat *ptr2 = NULL;
-
- if ( disp__gluTessVertex == NULL ) return;
-
- if(location!=NULL)
- {
- ptr1 = (jdouble *) (*env)->GetDoubleArrayElements(env, location, 0);
- RegisterArray(env, location, ptr1, MEMM_DOUBLE, MEMM_TESSELATOR);
- }
- if(data!=NULL)
- {
- ptr2 = (jfloat *) (*env)->GetFloatArrayElements(env, data, 0);
- RegisterArray(env, data, ptr2, MEMM_FLOAT, MEMM_TESSELATOR);
- }
- SetCurrentCallbackObject((void *) (PointerHolder) tess);
- disp__gluTessVertex (
- (GLUtesselator *) (PointerHolder) tess,
- (GLdouble *) ptr1,
- (GLvoid *) ptr2
- );
- }
- JNIEXPORT void JNICALL
- Java_gl4java_GLUFunc14JauJNI_gluTessVertex__J_3D_3D (
- JNIEnv *env, jobject obj,
- jlong tess,
- jdoubleArray location,
- jdoubleArray data)
- {
- jdouble *ptr1 = NULL;
- jdouble *ptr2 = NULL;
-
- if ( disp__gluTessVertex == NULL ) return;
-
- if(location!=NULL)
- {
- ptr1 = (jdouble *) (*env)->GetDoubleArrayElements(env, location, 0);
- RegisterArray(env, location, ptr1, MEMM_DOUBLE, MEMM_TESSELATOR);
- }
- if(data!=NULL)
- {
- ptr2 = (jdouble *) (*env)->GetDoubleArrayElements(env, data, 0);
- RegisterArray(env, data, ptr2, MEMM_DOUBLE, MEMM_TESSELATOR);
- }
- SetCurrentCallbackObject((void *) (PointerHolder) tess);
- disp__gluTessVertex (
- (GLUtesselator *) (PointerHolder) tess,
- (GLdouble *) ptr1,
- (GLvoid *) ptr2
- );
- }
- JNIEXPORT void JNICALL
- Java_gl4java_GLUFunc14JauJNI_gluTessVertex__J_3D_3Z (
- JNIEnv *env, jobject obj,
- jlong tess,
- jdoubleArray location,
- jbooleanArray data)
- {
- jdouble *ptr1 = NULL;
- jboolean *ptr2 = NULL;
-
- if ( disp__gluTessVertex == NULL ) return;
-
- if(location!=NULL)
- {
- ptr1 = (jdouble *) (*env)->GetDoubleArrayElements(env, location, 0);
- RegisterArray(env, location, ptr1, MEMM_DOUBLE, MEMM_TESSELATOR);
- }
- if(data!=NULL)
- {
- ptr2 = (jboolean *) (*env)->GetBooleanArrayElements(env, data, 0);
- RegisterArray(env, data, ptr2, MEMM_BOOLEAN, MEMM_TESSELATOR);
- }
- SetCurrentCallbackObject((void *) (PointerHolder) tess);
- disp__gluTessVertex (
- (GLUtesselator *) (PointerHolder) tess,
- (GLdouble *) ptr1,
- (GLvoid *) ptr2
- );
- }
- JNIEXPORT void JNICALL
- Java_gl4java_GLUFunc14JauJNI_gluTessVertex__J_3D_3J (
- JNIEnv *env, jobject obj,
- jlong tess,
- jdoubleArray location,
- jlongArray data)
- {
- jdouble *ptr1 = NULL;
- jlong *ptr2 = NULL;
-
- if ( disp__gluTessVertex == NULL ) return;
-
- if(location!=NULL)
- {
- ptr1 = (jdouble *) (*env)->GetDoubleArrayElements(env, location, 0);
- RegisterArray(env, location, ptr1, MEMM_DOUBLE, MEMM_TESSELATOR);
- }
- if(data!=NULL)
- {
- ptr2 = (jlong *) (*env)->GetLongArrayElements(env, data, 0);
- RegisterArray(env, data, ptr2, MEMM_LONG, MEMM_TESSELATOR);
- }
- SetCurrentCallbackObject((void *) (PointerHolder) tess);
- disp__gluTessVertex (
- (GLUtesselator *) (PointerHolder) tess,
- (GLdouble *) ptr1,
- (GLvoid *) ptr2
- );
- }
- JNIEXPORT void JNICALL
- Java_gl4java_GLUFunc14JauJNI_gluTessVertex__J_3DLjava_nio_Buffer_2 (
- JNIEnv *env, jobject obj,
- jlong tess,
- jdoubleArray location,
- jobject data)
- {
- jboolean isCopiedArray1 = JNI_FALSE;
- jdouble *ptr1 = NULL;
- void *ptr2 = NULL;
-
- if ( disp__gluTessVertex == NULL ) return;
-
- if(data!=NULL)
- {
- ptr2 = (*env)->GetDirectBufferAddress(env, data);
- if (ptr2 == NULL) {
- (*env)->ThrowNew(env, (*env)->FindClass(env, "java/lang/IllegalArgumentException"),
- "Argument 2 was not a direct buffer");
- return ;
- }
- }
- if(location!=NULL)
- {
- ptr1 = (jdouble *) (*env)->GetPrimitiveArrayCritical(env, location, &isCopiedArray1);
- }
- SetCurrentCallbackObject((void *) (PointerHolder) tess);
- disp__gluTessVertex (
- (GLUtesselator *) (PointerHolder) tess,
- (GLdouble *) ptr1,
- (GLvoid *) ptr2
- );
-
- if(location!=NULL)
- {
- (*env)->ReleasePrimitiveArrayCritical(env, location, ptr1, (isCopiedArray1 == JNI_TRUE)?0:JNI_ABORT);
- }
- }
-
+/** THIS IS A MANUAL CODED PART + glu-manualCodedImplJNI14.java +*/ + +static const char _glu_n_a_string[] = "GLU-String not available !"; + +static const char * _glu_lib_vendor_="Jausoft - Sven Goethel Software Development"; +static const char * _glu_lib_version_="2.8.3.0"; + +/* ---------------------------------------------------------------------- */ + +JNIEXPORT jstring JNICALL +Java_gl4java_GLUFunc14JauJNI_gluErrorString ( JNIEnv *env, jobject obj, + jint errorCode ) +{ + const char *tmpString=0; + + if ( disp__gluErrorString == NULL ) + return (*env)->NewStringUTF(env, _glu_n_a_string); + + tmpString = disp__gluErrorString ( /* jint */ errorCode ); + if(tmpString==NULL) + tmpString=_glu_n_a_string; + + return (*env)->NewStringUTF(env, tmpString); +} + +JNIEXPORT jstring JNICALL +Java_gl4java_GLUFunc14JauJNI_gluGetString ( JNIEnv *env, jobject obj, + jint name ) +{ + const char *tmpString=0; + + if ( disp__gluGetString == NULL ) + return (*env)->NewStringUTF(env, _glu_n_a_string); + + tmpString = disp__gluGetString ( /* jint */ name); + if(tmpString==NULL) + tmpString=_glu_n_a_string; + + return (*env)->NewStringUTF(env, tmpString); +} + +JNIEXPORT jstring JNICALL +Java_gl4java_GLUFunc14JauJNI_getNativeVendor ( JNIEnv *env, jobject obj ) +{ + return (*env)->NewStringUTF(env, _glu_lib_vendor_); +} + +JNIEXPORT jstring JNICALL +Java_gl4java_GLUFunc14JauJNI_getNativeVersion ( JNIEnv *env, jobject obj ) +{ + return (*env)->NewStringUTF(env, _glu_lib_version_); +} + + +/* ---------------------------------------------------------------------- */ + +static void _AddCallbackNode(JNIEnv *env, + jlong qnt_obj, jint which, + jobject methodClassInstance, + jstring methodName, + jstring signature, + jint arrayLen1, + jint arrayLen2, + jint arrayLen3, + jint arrayLen4, + jint arrayLen5) +{ + char * strMethodName = jnitoolsGetJavaString(env, methodName); + char * strSignature = jnitoolsGetJavaString(env, signature); + jlong glx=0; + + glx = GetCurrentGLContext(); + + AddCallbackNode(env, methodClassInstance, strMethodName, strSignature, + arrayLen1, arrayLen2, arrayLen3, + arrayLen4, arrayLen5, + (void *)((PointerHolder)qnt_obj), which, glx); + free(strMethodName); + free(strSignature); +} + +static void _AddCallbackNodeForCbObj(JNIEnv *env, + jlong qnt_obj, jint which, + jobject methodClassInstance, + jstring methodName, + jstring signature, + jint arrayLen1, + jint arrayLen2, + jint arrayLen3, + jint arrayLen4, + jint arrayLen5) +{ + char * strMethodName = jnitoolsGetJavaString(env, methodName); + char * strSignature = jnitoolsGetJavaString(env, signature); + jlong glx=0; + + glx = GetCurrentGLContext(); + + AddCallbackNodeForCbObj(env, methodClassInstance, strMethodName, strSignature, + arrayLen1, arrayLen2, arrayLen3, + arrayLen4, arrayLen5, + (void *)((PointerHolder)qnt_obj), which, glx); + free(strMethodName); + free(strSignature); +} + + +JNIEXPORT void JNICALL +Java_gl4java_GLUFunc14JauJNI_gluQuadricCallback( JNIEnv *env, jobject obj, + jlong qobj, jint which, + jobject methodClassInstance, + jstring methodName, + jstring signature) +{ + if ( disp__gluQuadricCallback == NULL ) return; + + switch(which) + { + case GLU_ERROR: + disp__gluQuadricCallback((void *)((PointerHolder)qobj), + which, cbf_GLU_ERROR ); + break; + default: + jnitoolsThrowByName(env, "java/lang/IllegalArgumentException", "Wrong Callback-Function type (\"which\") !"); + return; + } + _AddCallbackNode(env, + qobj, which, methodClassInstance, methodName, + signature, + 0, 0, 0, 0, 0); +} + + +JNIEXPORT void JNICALL +Java_gl4java_GLUFunc14JauJNI_gluNurbsCallback( JNIEnv *env, jobject obj, + jlong nobj, jint which, + jobject methodClassInstance, + jstring methodName, + jstring signature) +{ + if ( disp__gluNurbsCallback == NULL ) return; + + switch(which) + { + case GLU_ERROR: + disp__gluNurbsCallback((void *)((PointerHolder)nobj), which, + cbf_GLU_ERROR ); + break; + default: + jnitoolsThrowByName(env, "java/lang/IllegalArgumentException", "Wrong Callback-Function type (\"which\") !"); + return; + } + _AddCallbackNode(env, + nobj, which, methodClassInstance, methodName, + signature, + 0, 0, 0, 0, 0); +} + +JNIEXPORT void JNICALL +Java_gl4java_GLUFunc14JauJNI_gluTessCallback( JNIEnv *env, jobject obj, + jlong tobj, jint which, + jobject methodClassInstance, + jstring methodName, + jstring signature, + jint arrayLen1, + jint arrayLen2, + jint arrayLen3, + jint arrayLen4, + jint arrayLen5) +{ + if ( disp__gluTessCallback == NULL ) return; + + switch(which) + { + case GLU_TESS_BEGIN: + disp__gluTessCallback((GLUtesselator *)((PointerHolder)tobj), + which, + cbf_GLU_TESS_BEGIN ); + break; + case GLU_TESS_BEGIN_DATA: + disp__gluTessCallback((GLUtesselator *)((PointerHolder)tobj), + which, + cbf_GLU_TESS_BEGIN_DATA ); + break; + case GLU_TESS_EDGE_FLAG: + disp__gluTessCallback((GLUtesselator *)((PointerHolder)tobj), + which, + cbf_GLU_TESS_EDGE_FLAG ); + break; + case GLU_TESS_EDGE_FLAG_DATA: + disp__gluTessCallback((GLUtesselator *)((PointerHolder)tobj), + which, + cbf_GLU_TESS_EDGE_FLAG_DATA ); + break; + case GLU_TESS_VERTEX: + disp__gluTessCallback((GLUtesselator *)((PointerHolder)tobj), + which, + cbf_GLU_TESS_VERTEX ); + break; + case GLU_TESS_VERTEX_DATA: + disp__gluTessCallback((GLUtesselator *)((PointerHolder)tobj), + which, + cbf_GLU_TESS_VERTEX_DATA ); + break; + case GLU_TESS_END: + disp__gluTessCallback((GLUtesselator *)((PointerHolder)tobj), + which, + cbf_GLU_TESS_END ); + break; + case GLU_TESS_END_DATA: + disp__gluTessCallback((GLUtesselator *)((PointerHolder)tobj), + which, + cbf_GLU_TESS_END_DATA ); + break; + case GLU_TESS_ERROR: + disp__gluTessCallback((GLUtesselator *)((PointerHolder)tobj), + which, + cbf_GLU_TESS_ERROR ); + break; + case GLU_TESS_ERROR_DATA: + disp__gluTessCallback((GLUtesselator *)((PointerHolder)tobj), + which, + cbf_GLU_TESS_ERROR_DATA ); + break; + case GLU_TESS_COMBINE: + disp__gluTessCallback((GLUtesselator *)((PointerHolder)tobj), + which, + cbf_GLU_TESS_COMBINE ); + break; + case GLU_TESS_COMBINE_DATA: + disp__gluTessCallback((GLUtesselator *)((PointerHolder)tobj), + which, + cbf_GLU_TESS_COMBINE_DATA ); + break; + default: + jnitoolsThrowByName(env, "java/lang/IllegalArgumentException", "Wrong Callback-Function type (\"which\") !"); + return; + } + _AddCallbackNodeForCbObj(env, + tobj, which, methodClassInstance, methodName, + signature, + arrayLen1, arrayLen2, arrayLen3, + arrayLen4, arrayLen5); +} + +JNIEXPORT void JNICALL +Java_gl4java_GLUFunc14JauJNI_gluDeleteQuadric( JNIEnv *env, jobject obj, + jlong qobj ) +{ + if ( disp__gluDeleteQuadric == NULL ) return; + + disp__gluDeleteQuadric((void *)((PointerHolder)qobj)); + RemoveCallbackNodes((void *)((PointerHolder)qobj)); +} + +JNIEXPORT void JNICALL +Java_gl4java_GLUFunc14JauJNI_gluDeleteNurbsRenderer( JNIEnv *env, jobject obj, + jlong nobj ) +{ + if ( disp__gluDeleteNurbsRenderer == NULL ) return; + + disp__gluDeleteNurbsRenderer((void *)((PointerHolder)nobj)); + RemoveCallbackNodes((void *)((PointerHolder)nobj)); +} + +JNIEXPORT void JNICALL +Java_gl4java_GLUFunc14JauJNI_gluDeleteTess( JNIEnv *env, jobject obj, + jlong tobj ) +{ + if ( disp__gluDeleteTess == NULL ) return; + + disp__gluDeleteTess((GLUtesselator *)((PointerHolder)tobj)); + RemoveCallbackNodes((void *)((PointerHolder)tobj)); +} + +JNIEXPORT jlong JNICALL +Java_gl4java_GLUFunc14JauJNI_gluNewQuadric( JNIEnv *env, jobject obj) +{ + if ( disp__gluNewQuadric == NULL ) return 0; + + return (jlong)((PointerHolder)disp__gluNewQuadric()); +} + +JNIEXPORT jlong JNICALL +Java_gl4java_GLUFunc14JauJNI_gluNewNurbsRenderer( JNIEnv *env, jobject obj) +{ + if ( disp__gluNewNurbsRenderer == NULL ) return 0; + + return (jlong)((PointerHolder)disp__gluNewNurbsRenderer()); +} + +JNIEXPORT jlong JNICALL +Java_gl4java_GLUFunc14JauJNI_gluNewTess( JNIEnv *env, jobject obj) +{ + if ( disp__gluNewTess == NULL ) return 0; + + return (jlong)((PointerHolder)disp__gluNewTess()); +} + +#include "MemoryManager.h" + +/** + * Original Function-Prototype : + * <pre> + extern void gluTessBeginContour ( GLUtesselator * tess ) ; + * </pre> + */ + JNIEXPORT void JNICALL + Java_gl4java_GLUFunc14JauJNI_gluTessBeginContour ( + JNIEnv *env, jobject obj, + jlong tess) + { + + if ( disp__gluTessBeginContour == NULL ) return; + SetCurrentCallbackObject((void *) (PointerHolder) tess); + disp__gluTessBeginContour ( + (GLUtesselator *) (PointerHolder) tess + ); + + } + +/** + * Original Function-Prototype : + * <pre> + extern void gluTessBeginPolygon ( GLUtesselator * tess , GLvoid * data ) ; + * </pre> + */ + JNIEXPORT void JNICALL + Java_gl4java_GLUFunc14JauJNI_gluTessBeginPolygon__J_3B ( + JNIEnv *env, jobject obj, + jlong tess, + jbyteArray data) + { + jboolean isCopiedArray1 = JNI_FALSE; + jbyte *ptr1 = NULL; + + if ( disp__gluTessBeginPolygon == NULL ) return; + + if(data!=NULL) + { + ptr1 = (jbyte *) (*env)->GetPrimitiveArrayCritical(env, data, &isCopiedArray1); + } + SetCurrentCallbackObject((void *) (PointerHolder) tess); + disp__gluTessBeginPolygon ( + (GLUtesselator *) (PointerHolder) tess, + (GLvoid *) ptr1 + ); + + if(data!=NULL) + { + (*env)->ReleasePrimitiveArrayCritical(env, data, ptr1, (isCopiedArray1 == JNI_TRUE)?0:JNI_ABORT); + } + } + JNIEXPORT void JNICALL + Java_gl4java_GLUFunc14JauJNI_gluTessBeginPolygon__J_3S ( + JNIEnv *env, jobject obj, + jlong tess, + jshortArray data) + { + jboolean isCopiedArray1 = JNI_FALSE; + jshort *ptr1 = NULL; + + if ( disp__gluTessBeginPolygon == NULL ) return; + + if(data!=NULL) + { + ptr1 = (jshort *) (*env)->GetPrimitiveArrayCritical(env, data, &isCopiedArray1); + } + SetCurrentCallbackObject((void *) (PointerHolder) tess); + disp__gluTessBeginPolygon ( + (GLUtesselator *) (PointerHolder) tess, + (GLvoid *) ptr1 + ); + + if(data!=NULL) + { + (*env)->ReleasePrimitiveArrayCritical(env, data, ptr1, (isCopiedArray1 == JNI_TRUE)?0:JNI_ABORT); + } + } + JNIEXPORT void JNICALL + Java_gl4java_GLUFunc14JauJNI_gluTessBeginPolygon__J_3I ( + JNIEnv *env, jobject obj, + jlong tess, + jintArray data) + { + jboolean isCopiedArray1 = JNI_FALSE; + jint *ptr1 = NULL; + + if ( disp__gluTessBeginPolygon == NULL ) return; + + if(data!=NULL) + { + ptr1 = (jint *) (*env)->GetPrimitiveArrayCritical(env, data, &isCopiedArray1); + } + SetCurrentCallbackObject((void *) (PointerHolder) tess); + disp__gluTessBeginPolygon ( + (GLUtesselator *) (PointerHolder) tess, + (GLvoid *) ptr1 + ); + + if(data!=NULL) + { + (*env)->ReleasePrimitiveArrayCritical(env, data, ptr1, (isCopiedArray1 == JNI_TRUE)?0:JNI_ABORT); + } + } + JNIEXPORT void JNICALL + Java_gl4java_GLUFunc14JauJNI_gluTessBeginPolygon__J_3F ( + JNIEnv *env, jobject obj, + jlong tess, + jfloatArray data) + { + jboolean isCopiedArray1 = JNI_FALSE; + jfloat *ptr1 = NULL; + + if ( disp__gluTessBeginPolygon == NULL ) return; + + if(data!=NULL) + { + ptr1 = (jfloat *) (*env)->GetPrimitiveArrayCritical(env, data, &isCopiedArray1); + } + SetCurrentCallbackObject((void *) (PointerHolder) tess); + disp__gluTessBeginPolygon ( + (GLUtesselator *) (PointerHolder) tess, + (GLvoid *) ptr1 + ); + + if(data!=NULL) + { + (*env)->ReleasePrimitiveArrayCritical(env, data, ptr1, (isCopiedArray1 == JNI_TRUE)?0:JNI_ABORT); + } + } + JNIEXPORT void JNICALL + Java_gl4java_GLUFunc14JauJNI_gluTessBeginPolygon__J_3D ( + JNIEnv *env, jobject obj, + jlong tess, + jdoubleArray data) + { + jboolean isCopiedArray1 = JNI_FALSE; + jdouble *ptr1 = NULL; + + if ( disp__gluTessBeginPolygon == NULL ) return; + + if(data!=NULL) + { + ptr1 = (jdouble *) (*env)->GetPrimitiveArrayCritical(env, data, &isCopiedArray1); + } + SetCurrentCallbackObject((void *) (PointerHolder) tess); + disp__gluTessBeginPolygon ( + (GLUtesselator *) (PointerHolder) tess, + (GLvoid *) ptr1 + ); + + if(data!=NULL) + { + (*env)->ReleasePrimitiveArrayCritical(env, data, ptr1, (isCopiedArray1 == JNI_TRUE)?0:JNI_ABORT); + } + } + JNIEXPORT void JNICALL + Java_gl4java_GLUFunc14JauJNI_gluTessBeginPolygon__J_3Z ( + JNIEnv *env, jobject obj, + jlong tess, + jbooleanArray data) + { + jboolean isCopiedArray1 = JNI_FALSE; + jboolean *ptr1 = NULL; + + if ( disp__gluTessBeginPolygon == NULL ) return; + + if(data!=NULL) + { + ptr1 = (jboolean *) (*env)->GetPrimitiveArrayCritical(env, data, &isCopiedArray1); + } + SetCurrentCallbackObject((void *) (PointerHolder) tess); + disp__gluTessBeginPolygon ( + (GLUtesselator *) (PointerHolder) tess, + (GLvoid *) ptr1 + ); + + if(data!=NULL) + { + (*env)->ReleasePrimitiveArrayCritical(env, data, ptr1, (isCopiedArray1 == JNI_TRUE)?0:JNI_ABORT); + } + } + JNIEXPORT void JNICALL + Java_gl4java_GLUFunc14JauJNI_gluTessBeginPolygon__J_3J ( + JNIEnv *env, jobject obj, + jlong tess, + jlongArray data) + { + jboolean isCopiedArray1 = JNI_FALSE; + jlong *ptr1 = NULL; + + if ( disp__gluTessBeginPolygon == NULL ) return; + + if(data!=NULL) + { + ptr1 = (jlong *) (*env)->GetPrimitiveArrayCritical(env, data, &isCopiedArray1); + } + SetCurrentCallbackObject((void *) (PointerHolder) tess); + disp__gluTessBeginPolygon ( + (GLUtesselator *) (PointerHolder) tess, + (GLvoid *) ptr1 + ); + + if(data!=NULL) + { + (*env)->ReleasePrimitiveArrayCritical(env, data, ptr1, (isCopiedArray1 == JNI_TRUE)?0:JNI_ABORT); + } + } + JNIEXPORT void JNICALL + Java_gl4java_GLUFunc14JauJNI_gluTessBeginPolygon__JLjava_nio_Buffer_2 ( + JNIEnv *env, jobject obj, + jlong tess, + jobject data) + { + void *ptr1 = NULL; + + if ( disp__gluTessBeginPolygon == NULL ) return; + + if(data!=NULL) + { + ptr1 = (*env)->GetDirectBufferAddress(env, data); + if (ptr1 == NULL) { + (*env)->ThrowNew(env, (*env)->FindClass(env, "java/lang/IllegalArgumentException"), + "Argument 1 was not a direct buffer"); + return ; + } + } + SetCurrentCallbackObject((void *) (PointerHolder) tess); + disp__gluTessBeginPolygon ( + (GLUtesselator *) (PointerHolder) tess, + (GLvoid *) ptr1 + ); + + } + +/** + * Original Function-Prototype : + * <pre> + extern void gluTessEndContour ( GLUtesselator * tess ) ; + * </pre> + */ + JNIEXPORT void JNICALL + Java_gl4java_GLUFunc14JauJNI_gluTessEndContour ( + JNIEnv *env, jobject obj, + jlong tess) + { + + if ( disp__gluTessEndContour == NULL ) return; + SetCurrentCallbackObject((void *) (PointerHolder) tess); + disp__gluTessEndContour ( + (GLUtesselator *) (PointerHolder) tess + ); + + } + +/** + * Original Function-Prototype : + * <pre> + extern void gluTessEndPolygon ( GLUtesselator * tess ) ; + * </pre> + */ + JNIEXPORT void JNICALL + Java_gl4java_GLUFunc14JauJNI_gluTessEndPolygon ( + JNIEnv *env, jobject obj, + jlong tess) + { + + if ( disp__gluTessEndPolygon == NULL ) return; + SetCurrentCallbackObject((void *) (PointerHolder) tess); + disp__gluTessEndPolygon ( + (GLUtesselator *) (PointerHolder) tess + ); + FreeArrays(env, MEMM_TESSELATOR); + + } + +/** + * Original Function-Prototype : + * <pre> + extern void gluTessNormal ( GLUtesselator * tess , GLdouble valueX , GLdouble valueY , GLdouble valueZ ) ; + * </pre> + */ + JNIEXPORT void JNICALL + Java_gl4java_GLUFunc14JauJNI_gluTessNormal ( + JNIEnv *env, jobject obj, + jlong tess, + jdouble valueX, + jdouble valueY, + jdouble valueZ) + { + + if ( disp__gluTessNormal == NULL ) return; + SetCurrentCallbackObject((void *) (PointerHolder) tess); + disp__gluTessNormal ( + (GLUtesselator *) (PointerHolder) tess, + (GLdouble) valueX, + (GLdouble) valueY, + (GLdouble) valueZ + ); + + } + +/** + * Original Function-Prototype : + * <pre> + extern void gluTessProperty ( GLUtesselator * tess , GLenum which , GLdouble data ) ; + * </pre> + */ + JNIEXPORT void JNICALL + Java_gl4java_GLUFunc14JauJNI_gluTessProperty ( + JNIEnv *env, jobject obj, + jlong tess, + jint which, + jdouble data) + { + + if ( disp__gluTessProperty == NULL ) return; + SetCurrentCallbackObject((void *) (PointerHolder) tess); + disp__gluTessProperty ( + (GLUtesselator *) (PointerHolder) tess, + (GLenum) which, + (GLdouble) data + ); + + } + +/** + * Original Function-Prototype : + * <pre> + extern void gluTessVertex ( GLUtesselator * tess , GLdouble * location , GLvoid * data ) ; + * </pre> + */ + JNIEXPORT void JNICALL + Java_gl4java_GLUFunc14JauJNI_gluTessVertex__J_3D_3B ( + JNIEnv *env, jobject obj, + jlong tess, + jdoubleArray location, + jbyteArray data) + { + jdouble *ptr1 = NULL; + jbyte *ptr2 = NULL; + + if ( disp__gluTessVertex == NULL ) return; + + if(location!=NULL) + { + ptr1 = (jdouble *) (*env)->GetDoubleArrayElements(env, location, 0); + RegisterArray(env, location, ptr1, T_DOUBLE_ARRAY, MEMM_TESSELATOR); + } + if(data!=NULL) + { + ptr2 = (jbyte *) (*env)->GetByteArrayElements(env, data, 0); + RegisterArray(env, data, ptr2, T_BYTE_ARRAY, MEMM_TESSELATOR); + } + SetCurrentCallbackObject((void *) (PointerHolder) tess); + disp__gluTessVertex ( + (GLUtesselator *) (PointerHolder) tess, + (GLdouble *) ptr1, + (GLvoid *) ptr2 + ); + } + JNIEXPORT void JNICALL + Java_gl4java_GLUFunc14JauJNI_gluTessVertex__J_3D_3S ( + JNIEnv *env, jobject obj, + jlong tess, + jdoubleArray location, + jshortArray data) + { + jdouble *ptr1 = NULL; + jshort *ptr2 = NULL; + + if ( disp__gluTessVertex == NULL ) return; + + if(location!=NULL) + { + ptr1 = (jdouble *) (*env)->GetDoubleArrayElements(env, location, 0); + RegisterArray(env, location, ptr1, T_DOUBLE_ARRAY, MEMM_TESSELATOR); + } + if(data!=NULL) + { + ptr2 = (jshort *) (*env)->GetShortArrayElements(env, data, 0); + RegisterArray(env, data, ptr2, T_SHORT_ARRAY, MEMM_TESSELATOR); + } + SetCurrentCallbackObject((void *) (PointerHolder) tess); + disp__gluTessVertex ( + (GLUtesselator *) (PointerHolder) tess, + (GLdouble *) ptr1, + (GLvoid *) ptr2 + ); + } + JNIEXPORT void JNICALL + Java_gl4java_GLUFunc14JauJNI_gluTessVertex__J_3D_3I ( + JNIEnv *env, jobject obj, + jlong tess, + jdoubleArray location, + jintArray data) + { + jdouble *ptr1 = NULL; + jint *ptr2 = NULL; + + if ( disp__gluTessVertex == NULL ) return; + + if(location!=NULL) + { + ptr1 = (jdouble *) (*env)->GetDoubleArrayElements(env, location, 0); + RegisterArray(env, location, ptr1, T_DOUBLE_ARRAY, MEMM_TESSELATOR); + } + if(data!=NULL) + { + ptr2 = (jint *) (*env)->GetIntArrayElements(env, data, 0); + RegisterArray(env, data, ptr2, T_INT_ARRAY, MEMM_TESSELATOR); + } + SetCurrentCallbackObject((void *) (PointerHolder) tess); + disp__gluTessVertex ( + (GLUtesselator *) (PointerHolder) tess, + (GLdouble *) ptr1, + (GLvoid *) ptr2 + ); + } + JNIEXPORT void JNICALL + Java_gl4java_GLUFunc14JauJNI_gluTessVertex__J_3D_3F ( + JNIEnv *env, jobject obj, + jlong tess, + jdoubleArray location, + jfloatArray data) + { + jdouble *ptr1 = NULL; + jfloat *ptr2 = NULL; + + if ( disp__gluTessVertex == NULL ) return; + + if(location!=NULL) + { + ptr1 = (jdouble *) (*env)->GetDoubleArrayElements(env, location, 0); + RegisterArray(env, location, ptr1, T_DOUBLE_ARRAY, MEMM_TESSELATOR); + } + if(data!=NULL) + { + ptr2 = (jfloat *) (*env)->GetFloatArrayElements(env, data, 0); + RegisterArray(env, data, ptr2, T_FLOAT_ARRAY, MEMM_TESSELATOR); + } + SetCurrentCallbackObject((void *) (PointerHolder) tess); + disp__gluTessVertex ( + (GLUtesselator *) (PointerHolder) tess, + (GLdouble *) ptr1, + (GLvoid *) ptr2 + ); + } + JNIEXPORT void JNICALL + Java_gl4java_GLUFunc14JauJNI_gluTessVertex__J_3D_3D ( + JNIEnv *env, jobject obj, + jlong tess, + jdoubleArray location, + jdoubleArray data) + { + jdouble *ptr1 = NULL; + jdouble *ptr2 = NULL; + + if ( disp__gluTessVertex == NULL ) return; + + if(location!=NULL) + { + ptr1 = (jdouble *) (*env)->GetDoubleArrayElements(env, location, 0); + RegisterArray(env, location, ptr1, T_DOUBLE_ARRAY, MEMM_TESSELATOR); + } + if(data!=NULL) + { + ptr2 = (jdouble *) (*env)->GetDoubleArrayElements(env, data, 0); + RegisterArray(env, data, ptr2, T_DOUBLE_ARRAY, MEMM_TESSELATOR); + } + SetCurrentCallbackObject((void *) (PointerHolder) tess); + disp__gluTessVertex ( + (GLUtesselator *) (PointerHolder) tess, + (GLdouble *) ptr1, + (GLvoid *) ptr2 + ); + } + JNIEXPORT void JNICALL + Java_gl4java_GLUFunc14JauJNI_gluTessVertex__J_3D_3Z ( + JNIEnv *env, jobject obj, + jlong tess, + jdoubleArray location, + jbooleanArray data) + { + jdouble *ptr1 = NULL; + jboolean *ptr2 = NULL; + + if ( disp__gluTessVertex == NULL ) return; + + if(location!=NULL) + { + ptr1 = (jdouble *) (*env)->GetDoubleArrayElements(env, location, 0); + RegisterArray(env, location, ptr1, T_DOUBLE_ARRAY, MEMM_TESSELATOR); + } + if(data!=NULL) + { + ptr2 = (jboolean *) (*env)->GetBooleanArrayElements(env, data, 0); + RegisterArray(env, data, ptr2, T_BOOLEAN_ARRAY, MEMM_TESSELATOR); + } + SetCurrentCallbackObject((void *) (PointerHolder) tess); + disp__gluTessVertex ( + (GLUtesselator *) (PointerHolder) tess, + (GLdouble *) ptr1, + (GLvoid *) ptr2 + ); + } + JNIEXPORT void JNICALL + Java_gl4java_GLUFunc14JauJNI_gluTessVertex__J_3D_3J ( + JNIEnv *env, jobject obj, + jlong tess, + jdoubleArray location, + jlongArray data) + { + jdouble *ptr1 = NULL; + jlong *ptr2 = NULL; + + if ( disp__gluTessVertex == NULL ) return; + + if(location!=NULL) + { + ptr1 = (jdouble *) (*env)->GetDoubleArrayElements(env, location, 0); + RegisterArray(env, location, ptr1, T_DOUBLE_ARRAY, MEMM_TESSELATOR); + } + if(data!=NULL) + { + ptr2 = (jlong *) (*env)->GetLongArrayElements(env, data, 0); + RegisterArray(env, data, ptr2, T_LONG_ARRAY, MEMM_TESSELATOR); + } + SetCurrentCallbackObject((void *) (PointerHolder) tess); + disp__gluTessVertex ( + (GLUtesselator *) (PointerHolder) tess, + (GLdouble *) ptr1, + (GLvoid *) ptr2 + ); + } + JNIEXPORT void JNICALL + Java_gl4java_GLUFunc14JauJNI_gluTessVertex__JLjava_nio_DoubleBuffer_2Ljava_nio_Buffer_2 ( + JNIEnv *env, jobject obj, + jlong tess, + jobject location, + jobject data) + { + jboolean isCopiedArray1 = JNI_FALSE; + jdouble *ptr1 = NULL; + void *ptr2 = NULL; + + if ( disp__gluTessVertex == NULL ) return; + + if(location!=NULL) + { + ptr1 = (jdouble *) (*env)->GetDirectBufferAddress(env, location); + if (ptr1 == NULL) { + (*env)->ThrowNew(env, (*env)->FindClass(env, "java/lang/IllegalArgumentException"), + "Argument 1 was not a direct double buffer"); + return ; + } + } + if(data!=NULL) + { + ptr2 = (*env)->GetDirectBufferAddress(env, data); + if (ptr2 == NULL) { + (*env)->ThrowNew(env, (*env)->FindClass(env, "java/lang/IllegalArgumentException"), + "Argument 2 was not a direct buffer"); + return ; + } + } + SetCurrentCallbackObject((void *) (PointerHolder) tess); + disp__gluTessVertex ( + (GLUtesselator *) (PointerHolder) tess, + (GLdouble *) ptr1, + (GLvoid *) ptr2 + ); + } + /** * C2J Parser Version 3.0 * Jausoft - Sven Goethel Software Development diff --git a/CNativeCode/OpenGLU_JauJNI_funcs.c b/CNativeCode/OpenGLU_JauJNI_funcs.c index 9bc474c..52bf4ae 100644 --- a/CNativeCode/OpenGLU_JauJNI_funcs.c +++ b/CNativeCode/OpenGLU_JauJNI_funcs.c @@ -33,8 +33,17 @@ * herein lies the native JAVA methods for the OpenGL functions.
*/
+/** THIS IS A MANUAL CODED PART + glu-manualCodedImplJNI14.java +*/ + static const char _glu_n_a_string[] = "GLU-String not available !"; +static const char * _glu_lib_vendor_="Jausoft - Sven Goethel Software Development"; +static const char * _glu_lib_version_="2.8.3.0"; + +/* ---------------------------------------------------------------------- */ + JNIEXPORT jstring JNICALL Java_gl4java_GLUFuncJauJNI_gluErrorString ( JNIEnv *env, jobject obj, jint errorCode ) @@ -67,9 +76,6 @@ Java_gl4java_GLUFuncJauJNI_gluGetString ( JNIEnv *env, jobject obj, return (*env)->NewStringUTF(env, tmpString); } -static const char * _glu_lib_vendor_="Jausoft - Sven Goethel Software Development"; -static const char * _glu_lib_version_="2.8.3.0"; - JNIEXPORT jstring JNICALL Java_gl4java_GLUFuncJauJNI_getNativeVendor ( JNIEnv *env, jobject obj ) { @@ -106,6 +112,31 @@ static void _AddCallbackNode(JNIEnv *env, free(strMethodName); free(strSignature); } + +static void _AddCallbackNodeForCbObj(JNIEnv *env, + jlong qnt_obj, jint which, + jobject methodClassInstance, + jstring methodName, + jstring signature, + jint arrayLen1, + jint arrayLen2, + jint arrayLen3, + jint arrayLen4, + jint arrayLen5) +{ + char * strMethodName = jnitoolsGetJavaString(env, methodName); + char * strSignature = jnitoolsGetJavaString(env, signature); + jlong glx=0; + + glx = GetCurrentGLContext(); + + AddCallbackNodeForCbObj(env, methodClassInstance, strMethodName, strSignature, + arrayLen1, arrayLen2, arrayLen3, + arrayLen4, arrayLen5, + (void *)((PointerHolder)qnt_obj), which, glx); + free(strMethodName); + free(strSignature); +} JNIEXPORT void JNICALL @@ -172,7 +203,7 @@ Java_gl4java_GLUFuncJauJNI_gluTessCallback( JNIEnv *env, jobject obj, jint arrayLen5) { if ( disp__gluTessCallback == NULL ) return; - + switch(which) { case GLU_TESS_BEGIN: @@ -239,7 +270,7 @@ Java_gl4java_GLUFuncJauJNI_gluTessCallback( JNIEnv *env, jobject obj, jnitoolsThrowByName(env, "java/lang/IllegalArgumentException", "Wrong Callback-Function type (\"which\") !"); return; } - _AddCallbackNode(env, + _AddCallbackNodeForCbObj(env, tobj, which, methodClassInstance, methodName, signature, arrayLen1, arrayLen2, arrayLen3, diff --git a/CNativeCode/gltool.c b/CNativeCode/gltool.c index 695c0da..c5fa2ff 100755 --- a/CNativeCode/gltool.c +++ b/CNativeCode/gltool.c @@ -189,6 +189,9 @@ int LIBAPIENTRY loadGLLibrary (const char * libGLName, const char * libGLUName, Str255 errName; OSErr returnError=fragNoErr; #endif +#ifdef _X11_ + const char *err=NULL; +#endif if(_glLibsLoaded) return 1; @@ -237,7 +240,9 @@ int LIBAPIENTRY loadGLLibrary (const char * libGLName, const char * libGLUName, libHandleGL = dlopen (libGLName, RTLD_LAZY | RTLD_GLOBAL); if (libHandleGL == NULL) { + err=dlerror(); printf ("GLERROR: cannot access OpenGL library %s\n", libGLName); + if(err!=NULL) printf("\t dlerror: %s\n", err); fflush (NULL); return 0; } @@ -245,7 +250,9 @@ int LIBAPIENTRY loadGLLibrary (const char * libGLName, const char * libGLUName, libHandleGLU = dlopen (libGLUName, RTLD_LAZY | RTLD_GLOBAL); if (libHandleGLU == NULL) { + err=dlerror(); printf ("GLERROR: cannot access GLU library %s\n", libGLUName); + if(err!=NULL) printf("\t dlerror: %s\n", err); fflush (NULL); return 0; } diff --git a/CNativeCode/invokejvm.c b/CNativeCode/invokejvm.c index 78e5699..dd43a2c 100755 --- a/CNativeCode/invokejvm.c +++ b/CNativeCode/invokejvm.c @@ -43,6 +43,7 @@ int main(int argc, char ** argv) #endif
#ifdef _X11_ void * lib; + const char *err=NULL; #endif char ** myargv; @@ -69,7 +70,9 @@ int main(int argc, char ** argv) lib = dlopen (libname, RTLD_LAZY | RTLD_GLOBAL); if (lib == NULL) { + err=dlerror(); printf ("GLERROR: cannot access library %s\n", libname); + if(err!=NULL) printf("\t dlerror: %s\n", err); exit(1); } #endif
diff --git a/CNativeCode/jawt_misc.c b/CNativeCode/jawt_misc.c index 4f083d7..9fabd78 100644 --- a/CNativeCode/jawt_misc.c +++ b/CNativeCode/jawt_misc.c @@ -36,7 +36,7 @@ jawt_init (char* jawtLibName) if ( hDLL_JAWT==NULL ) { - printf(" jawt_init: LoadLibrary failed\n"); + printf(" jawt_init: LoadLibrary failed: %s\n", jawtLibName); return JNI_FALSE; } @@ -44,7 +44,8 @@ jawt_init (char* jawtLibName) GetProcAddress(hDLL_JAWT, "_JAWT_GetAWT@8"); if (JAWT_GetAWT_fn == NULL) { - printf(" jawt_init: GetProcAddress failed\n"); + printf(" jawt_init: GetProcAddress failed: %s in %s\n", + "_JAWT_GetAWT@8", jawtLibName); return JNI_FALSE; } return JNI_TRUE; @@ -52,19 +53,23 @@ jawt_init (char* jawtLibName) #endif #ifdef _X11_ + const char *err=NULL; if ( libHandleJAWT == NULL ) libHandleJAWT = dlopen(jawtLibName, RTLD_LAZY | RTLD_GLOBAL); if ( libHandleJAWT == NULL) { - printf(" jawt_init: dlopen failed\n"); + err=dlerror(); + printf(" jawt_init: dlopen failed: %s\n", jawtLibName); + if(err!=NULL) printf(" jawt_init: dlerror: %s\n", err); return JNI_FALSE; } JAWT_GetAWT_fn = (JAWT_GetAWT_fn_t*) dlsym(libHandleJAWT, "JAWT_GetAWT"); if (JAWT_GetAWT_fn == NULL) { - printf(" jawt_init: dlsym failed\n"); + printf(" jawt_init: dlsym failed: %s in %s\n", + "JAWT_GetAWT", jawtLibName); return JNI_FALSE; } |