From c89cea204c2f2aaebfe4515bd4cc5ca70a656159 Mon Sep 17 00:00:00 2001 From: Caspian Rychlik-Prince Date: Sat, 2 Aug 2003 10:56:04 +0000 Subject: [PATCH] Removed quadrics --- .../common/callbacks/GLUQuadricCallbacks.cpp | 79 ------------------- .../common/callbacks/GLUQuadricCallbacks.h | 36 --------- src/native/common/callbacks/JavaMethod.h | 35 -------- src/native/common/callbacks/Makefile.am | 13 --- src/native/common/callbacks/README.txt | 75 ------------------ 5 files changed, 238 deletions(-) delete mode 100644 src/native/common/callbacks/GLUQuadricCallbacks.cpp delete mode 100644 src/native/common/callbacks/GLUQuadricCallbacks.h delete mode 100644 src/native/common/callbacks/JavaMethod.h delete mode 100644 src/native/common/callbacks/Makefile.am delete mode 100644 src/native/common/callbacks/README.txt diff --git a/src/native/common/callbacks/GLUQuadricCallbacks.cpp b/src/native/common/callbacks/GLUQuadricCallbacks.cpp deleted file mode 100644 index 009768c2..00000000 --- a/src/native/common/callbacks/GLUQuadricCallbacks.cpp +++ /dev/null @@ -1,79 +0,0 @@ -// -// File: GLUQuadricCallback.cc -// Author: alterself -// -// Created on November 28, 2002, 8:21 PM -// - -#include "GLUQuadricCallbacks.h" - -JavaMethod* GLUQuadricCallbacks::errorCallback; - -// -// Constructor -/// -GLUQuadricCallbacks::GLUQuadricCallbacks() -{ - errorCallback = NULL; -} - -// -// Destructor -// -GLUQuadricCallbacks::~GLUQuadricCallbacks() -{ - clear(); -} - -void GLUQuadricCallbacks::clear() { - if (errorCallback != NULL) { - delete errorCallback; - } -} - -typedef void (GLAPIENTRY *callback_t)(); - -void GLUQuadricCallbacks::set(GLUquadricObj *globj, JavaMethod* cb, jint type) -{ - switch (type) { - case GLU_ERROR: - /* If we are already refering to a callback, get rid of it */ - if (errorCallback != NULL) { - delete errorCallback; - } - if (cb == NULL) { - gluQuadricCallback(globj, - (GLenum) type, - NULL); - } - else { - errorCallback = cb; - gluQuadricCallback(globj, - (GLenum) type, - (callback_t) GLUQuadricCallbacks::gluError); - } - break; - } -} - -void CALLBACK GLUQuadricCallbacks::gluError(GLenum type) { - - if (errorCallback == NULL) { - return; - } - - JNIEnv * env = errorCallback->env; - jobject obj = errorCallback->obj; - - jclass cls = (jclass) env->GetObjectClass(obj); - - jmethodID mid = env->GetMethodID(cls, - errorCallback->method.c_str(), - "(I)V"); - - if (mid == 0) { - return; - } - /* Hopefully this will end up calling the java method for handling GLU_ERROR for this quad */ - env->CallVoidMethod(obj, mid, (jint) type); -} diff --git a/src/native/common/callbacks/GLUQuadricCallbacks.h b/src/native/common/callbacks/GLUQuadricCallbacks.h deleted file mode 100644 index deab60a9..00000000 --- a/src/native/common/callbacks/GLUQuadricCallbacks.h +++ /dev/null @@ -1,36 +0,0 @@ -// -// File: GLUQuadricCallbacks.h -// Author: alterself -// -// Created on November 28, 2002, 8:21 PM -// - -#ifndef _GLUQuadricCallbacks_H -#define _GLUQuadricCallbacks_H - -#include "extgl.h" -#include -#include - -#include "JavaMethod.h" - -#ifndef CALLBACK -#define CALLBACK -#endif - - -class GLUQuadricCallbacks { -public: - GLUQuadricCallbacks(); - ~GLUQuadricCallbacks(); - - static void CALLBACK gluError(GLenum); - static void set(GLUquadricObj *, JavaMethod*, jint); - static void clear(); -protected: - -private: - static JavaMethod* errorCallback; -}; -#endif /* _GLUQuadricCallbacks_H */ - diff --git a/src/native/common/callbacks/JavaMethod.h b/src/native/common/callbacks/JavaMethod.h deleted file mode 100644 index 2b3a87f9..00000000 --- a/src/native/common/callbacks/JavaMethod.h +++ /dev/null @@ -1,35 +0,0 @@ -// -// File: Callback.h -// Author: alterself -// -// Created on November 28, 2002, 3:37 PM -// - -#ifndef _JavaMethod_H -#define _JavaMethod_H -#include -#include - -class JavaMethod { -public: - JavaMethod(JNIEnv *newEnv, jobject newObj, std::string newMethod) - { - env = newEnv; - obj = newObj; - method = newMethod; - } - ~JavaMethod() - { - - } - - JNIEnv* env; - jobject obj; - std::string method; -protected: - -private: -}; - -#endif /* _JavaMethod_H */ - diff --git a/src/native/common/callbacks/Makefile.am b/src/native/common/callbacks/Makefile.am deleted file mode 100644 index 4da41418..00000000 --- a/src/native/common/callbacks/Makefile.am +++ /dev/null @@ -1,13 +0,0 @@ -noinst_LTLIBRARIES = libcallbacks.la - -libcallbacks_la_SOURCES = $(COMMON) $(CALLBACKS) -libcallbacks_la_CPPFLAGS = -D_DEBUG - -INCLUDES = -I../ - -COMMON = \ - JavaMethod.h - -CALLBACKS = \ - GLUQuadricCallbacks.cpp \ - GLUQuadricCallbacks.h diff --git a/src/native/common/callbacks/README.txt b/src/native/common/callbacks/README.txt deleted file mode 100644 index dccc27be..00000000 --- a/src/native/common/callbacks/README.txt +++ /dev/null @@ -1,75 +0,0 @@ -This is just the start of my callback implementation. - -Unfortunatly, you cant pass a non static method as a function pointer... -So we can only have callbacks for a single GLU object. However, -according to the OpenGL redbook... this should not be an issue. For example -the redbook states that, a single tess object should be used for an -entire program... and reused for each tessleation. - -The implementation: - -JavaMethod: a data object that contains information on the method to call. - -GLUQuadricCallbacks: a class for working with quadric callbacks - -eventually you can expect callbacks for glu nurbs and glu tesselators. -Of course callbacks for other object types should be easy to do using this framework. - - -Note as elegent as I wanted, but it works. - -You would write a callback like this: - -/* - * Class: org_lwjgl_opengl_GLU - * Method: quadricCallback - * Signature: (IILjava/lang/String;)V - */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GLU_quadricCallback__IILjava_lang_String_2 - (JNIEnv * env, jobject obj, jint quad, jint type, jstring method) -{ - GLUQuadricCallbacks::set(quad, - 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_quadricCallback__IILjava_lang_Object_2Ljava_lang_String_2 - (JNIEnv * env, jobject obj, jint quad, jint type, jobject target, jstring method) -{ - GLUQuadricCallbacks::set(quad, - new JavaMethod(env, target, env->GetStringUTFChars(method, 0)), - type); - CHECK_GL_ERROR -} - - -/* - * Class: org_lwjgl_opengl_GLU - * Method: deleteQuadric - */ -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GLU_deleteQuadric(JNIEnv * env, jobject obj, jint quad) -{ - gluDeleteQuadric((GLUquadricObj *) quad); - GLUQuadricCallbacks::clear(); - CHECK_GL_ERROR -} - - - -and call it from java: - -/* myquadric is a reference to a GLUquadricObj returned by glu.newQuadric() - * GLU.ERROR is the callback type - * errorCallback is the method you wish to be called */ -glu.quadricCallback(myquadric, GLU.ERROR, "errorCallback"); - -or - -glu.quadricCallback(myquadric, GLU.ERROR, someObject, "errorCallback"); -