From 958b4a62bbfa639ad27756037049c9db3e7d3bf2 Mon Sep 17 00:00:00 2001 From: athomas Date: Sun, 23 Nov 2003 01:39:59 +0000 Subject: Several changes, uses newest lwjgl extal, throws exceptions from native code if AL doesn't load correctly and creates Context and Device objects in Native code. git-svn-id: file:///home/mbien/NetBeansProjects/JOGAMP/joal-sync/git-svn/../svn-server-sync/joal/trunk@69 03bf7f67-59de-4072-a415-9a990d468a3f --- src/native/extal.c | 500 ++++++++++++++++++++++++++++------------------------- 1 file changed, 260 insertions(+), 240 deletions(-) (limited to 'src/native/extal.c') diff --git a/src/native/extal.c b/src/native/extal.c index e264db2..45947dc 100644 --- a/src/native/extal.c +++ b/src/native/extal.c @@ -7,15 +7,15 @@ * met: * * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. + * notice, this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. * * * Neither the name of 'Light Weight Java Game Library' nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED @@ -30,12 +30,12 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include -#include +#include "stdio.h" #include "extal.h" +#include "common_tools.h" #ifdef _X11 -#include +#include "dlfcn.h" #endif /** @@ -118,32 +118,60 @@ alcGetProcAddressPROC alcGetProcAddress = NULL; alcGetEnumValuePROC alcGetEnumValue = NULL; #ifdef _WIN32 -EAXSet eaxSet; // EAXSet function, ret$ -EAXGet eaxGet; // EAXGet function, ret$ +EAXSet eaxSet; // EAXSet function, ret$ +EAXGet eaxGet; // EAXGet function, ret$ /* Handle to OpenAL Library */ HMODULE handleOAL; -#else +#endif +#ifdef _X11 void* handleOAL; #endif +#ifdef _AGL +#include "mach-o/dyld.h" +#include "stdlib.h" +#include "string.h" +const struct mach_header* handleOAL; +#endif /* Loads OpenAL */ -void LoadOpenAL(); +static int LoadOpenAL(JNIEnv *env, jobjectArray oalPaths); /* Unloads OpenAL */ -void UnLoadOpenAL(); +static void UnLoadOpenAL(void); /* Gets a pointer to the named function */ -void* GetFunctionPointer(const char* function); +static void* GetFunctionPointer(const char* function); /* Loads OpenAL basic functions */ -int LoadAL(); +static int LoadAL(void); /* Loads OpenAL ALC functions */ -int LoadALC(); +static int LoadALC(void); /* Loads any extensions to OpenAL */ -int LoadALExtensions(); +static int LoadALExtensions(void); + +static void *NativeGetFunctionPointer(const char *function) { +#ifdef _WIN32 + return GetProcAddress(handleOAL, function); +#endif +#ifdef _X11 + return dlsym(handleOAL, function); +#endif +#ifdef _AGL + char *mac_symbol_name = (char *)malloc((strlen(function) + 2)*sizeof(char)); + if (mac_symbol_name == NULL) + return NULL; + mac_symbol_name[0] = '_'; + strcpy(&(mac_symbol_name[1]), function); + NSSymbol symbol = NSLookupSymbolInImage(handleOAL, mac_symbol_name, NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR); + free(mac_symbol_name); + if (symbol == NULL) + return NULL; + return NSAddressOfSymbol(symbol); +#endif +} /** * Retrieves a pointer to the named function @@ -151,102 +179,106 @@ int LoadALExtensions(); * @param function Name of function * @return pointer to named function, or NULL if not found */ -void* GetFunctionPointer(const char* function) { -#ifdef _WIN32 - return GetProcAddress(handleOAL, function); -#endif -#ifdef _X11 - return dlsym(handleOAL, function); +static void* GetFunctionPointer(const char* function) { + void *p = NativeGetFunctionPointer(function); + if (p == NULL) { +#ifdef _DEBUG + printf("Could not locate symbol %s\n", function); #endif + } + return p; } /** * Loads the OpenAL Library */ -void LoadOpenAL(JNIEnv *env, jobjectArray oalPaths) { - printf("LoadOpenAL: Enter\n"); - jsize pathcount = (*env)->GetArrayLength(env,oalPaths); -//#ifdef _DEBUG - printf("LoadOpenAL: test 1 Found %d OpenAL paths\n", pathcount); -//#endif - int i; - for(i=0;iGetObjectArrayElement(env,oalPaths, i); - const char *path_str = (*env)->GetStringUTFChars(env,path, NULL); -//#ifdef _DEBUG - printf("LoadOpenAL: Test 2 loading '%s'\n", path_str); -//#endif +static int LoadOpenAL(JNIEnv *env, jobjectArray oalPaths) { + + jsize pathcount = (*env)->GetArrayLength(env,oalPaths); +#ifdef _DEBUG + printf("Found %d OpenAL paths\n", (int)pathcount); +#endif + int i; + for(i=0;iGetObjectArrayElement(env,oalPaths, i); + const char *path_str = (*env)->GetStringUTFChars(env,path, NULL); +#ifdef _DEBUG + printf("Testing '%s'\n", path_str); +#endif #ifdef _WIN32 - handleOAL = LoadLibrary(path_str); + handleOAL = LoadLibrary(path_str); #endif #ifdef _X11 - handleOAL = dlopen(path_str, RTLD_LAZY); + handleOAL = dlopen(path_str, RTLD_LAZY); #endif - if (handleOAL != NULL) { -//#ifdef _DEBUG - printf("loadOpenAL: Test 3 Found OpenAL at '%s'\n", path_str); -//#endif - break; - } - (*env)->ReleaseStringUTFChars(env, path, path_str); - } +#ifdef _AGL + handleOAL = NSAddImage(path_str, NSADDIMAGE_OPTION_RETURN_ON_ERROR); +#endif + if (handleOAL != NULL) { +#ifdef _DEBUG + printf("Found OpenAL at '%s'\n", path_str); +#endif + return 1; + } + (*env)->ReleaseStringUTFChars(env,path, path_str); + } + throwOpenALException(env, "Could not load openal library."); + return 0; } /** * Unloads the OpenAL Library */ -void UnLoadOpenAL() { +static void UnLoadOpenAL() { #ifdef _WIN32 - FreeLibrary(handleOAL); + FreeLibrary(handleOAL); #endif #ifdef _X11 - dlclose(handleOAL); + dlclose(handleOAL); +#endif +#ifdef _AGL + // Cannot remove the image #endif } /** * Initializes OpenAL by loading the library */ -int InitializeOpenAL(JNIEnv *env, jobjectArray oalPaths) { - printf("InitializeOpenAL: Enter\n"); - if(handleOAL != 0) { - return JNI_TRUE; - } - printf("InitializeOpenAL: test 1\n"); - //load our library - LoadOpenAL(env, oalPaths); - printf("InitializeOpenAL: test 2 handleOAL = %i\n",(int)handleOAL); - // if we couldn't load the library, get out - if(handleOAL == 0) { - return JNI_FALSE; - } - printf("InitializeOpenAL: test 3\n"); - - //load basic OpenAL functions - if(!LoadAL()) { - return JNI_FALSE; - } - printf("InitializeOpenAL: test 4\n"); +void InitializeOpenAL(JNIEnv *env, jobjectArray oalPaths) { + if(handleOAL != NULL) { + return; + } - //load OpenAL context functions - if(!LoadALC()) { - return JNI_FALSE; - } - printf("InitializeOpenAL: test 5\n"); - //load OpenAL extensions - if(!LoadALExtensions()) { - return JNI_FALSE; - } - printf("InitializeOpenAL: Exit\n"); - return JNI_TRUE; + //load our library + if (!LoadOpenAL(env, oalPaths)) { + return; + } + + //load basic OpenAL functions + if(!LoadAL()) { + throwOpenALException(env, "Could not load OpenAL function pointers."); + return; + } + + //load OpenAL context functions + if(!LoadALC()) { + throwOpenALException(env, "Could not load ALC function pointers."); + return; + } + + //load OpenAL extensions + if(!LoadALExtensions()) { + throwOpenALException(env, "Could not load AL extension function pointers."); + return; + } } /** * Called to deinitialize OpenAL */ void DeInitializeOpenAL() { - UnLoadOpenAL(); - handleOAL = 0; + UnLoadOpenAL(); + handleOAL = 0; } /** @@ -254,124 +286,119 @@ void DeInitializeOpenAL() { * * @return true if all methods were loaded, false if one of the methods could not be loaded */ -int LoadAL() { - printf("LoadAL: Enter\n"); - - alEnable = (alEnablePROC) GetFunctionPointer("alEnable"); - alDisable = (alDisablePROC) GetFunctionPointer("alDisable"); - alIsEnabled = (alIsEnabledPROC) GetFunctionPointer("alIsEnabled"); - //alHint = (alHintPROC) GetFunctionPointer("alHint"); - alGetBoolean = (alGetBooleanPROC) GetFunctionPointer("alGetBoolean"); - alGetInteger = (alGetIntegerPROC) GetFunctionPointer("alGetInteger"); - alGetFloat = (alGetFloatPROC) GetFunctionPointer("alGetFloat"); - alGetDouble = (alGetDoublePROC) GetFunctionPointer("alGetDouble"); - alGetBooleanv = (alGetBooleanvPROC) GetFunctionPointer("alGetBooleanv"); - alGetIntegerv = (alGetIntegervPROC) GetFunctionPointer("alGetIntegerv"); - alGetFloatv = (alGetFloatvPROC) GetFunctionPointer("alGetFloatv"); - alGetDoublev = (alGetDoublevPROC) GetFunctionPointer("alGetDoublev"); - alGetString = (alGetStringPROC) GetFunctionPointer("alGetString"); - alGetError = (alGetErrorPROC) GetFunctionPointer("alGetError"); - alIsExtensionPresent = (alIsExtensionPresentPROC) GetFunctionPointer("alIsExtensionPresent"); - alGetProcAddress = (alGetProcAddressPROC) GetFunctionPointer("alGetProcAddress"); - alGetEnumValue = (alGetEnumValuePROC) GetFunctionPointer("alGetEnumValue"); - alListeneri = (alListeneriPROC) GetFunctionPointer("alListeneri"); - alListenerf = (alListenerfPROC) GetFunctionPointer("alListenerf"); - alListener3f = (alListener3fPROC) GetFunctionPointer("alListener3f"); - alListenerfv = (alListenerfvPROC) GetFunctionPointer("alListenerfv"); - alGetListeneri = (alGetListeneriPROC) GetFunctionPointer("alGetListeneri"); - alGetListenerf = (alGetListenerfPROC) GetFunctionPointer("alGetListenerf"); - alGetListener3f = (alGetListener3fPROC) GetFunctionPointer("alGetListener3f"); - alGetListenerfv = (alGetListenerfvPROC) GetFunctionPointer("alGetListenerfv"); - alGenSources = (alGenSourcesPROC) GetFunctionPointer("alGenSources"); - alDeleteSources = (alDeleteSourcesPROC) GetFunctionPointer("alDeleteSources"); - alIsSource = (alIsSourcePROC) GetFunctionPointer("alIsSource"); - alSourcei = (alSourceiPROC) GetFunctionPointer("alSourcei"); - alSourcef = (alSourcefPROC) GetFunctionPointer("alSourcef"); - alSource3f = (alSource3fPROC) GetFunctionPointer("alSource3f"); - alSourcefv = (alSourcefvPROC) GetFunctionPointer("alSourcefv"); - alGetSourcei = (alGetSourceiPROC) GetFunctionPointer("alGetSourcei"); - alGetSourcef = (alGetSourcefPROC) GetFunctionPointer("alGetSourcef"); - alGetSource3f = (alGetSource3fPROC) GetFunctionPointer("alGetSource3f"); - alGetSourcefv = (alGetSourcefvPROC) GetFunctionPointer("alGetSourcefv"); - alSourcePlayv = (alSourcePlayvPROC) GetFunctionPointer("alSourcePlayv"); - alSourcePausev = (alSourcePausevPROC) GetFunctionPointer("alSourcePausev"); - alSourceStopv = (alSourceStopvPROC) GetFunctionPointer("alSourceStopv"); - alSourceRewindv = (alSourceRewindvPROC) GetFunctionPointer("alSourceRewindv"); - alSourcePlay = (alSourcePlayPROC) GetFunctionPointer("alSourcePlay"); - alSourcePause = (alSourcePausePROC) GetFunctionPointer("alSourcePause"); - alSourceStop = (alSourceStopPROC) GetFunctionPointer("alSourceStop"); - alSourceRewind = (alSourceRewindPROC) GetFunctionPointer("alSourceRewind"); - alGenBuffers = (alGenBuffersPROC) GetFunctionPointer("alGenBuffers"); - alDeleteBuffers = (alDeleteBuffersPROC) GetFunctionPointer("alDeleteBuffers"); - alIsBuffer = (alIsBufferPROC) GetFunctionPointer("alIsBuffer"); - alBufferData = (alBufferDataPROC) GetFunctionPointer("alBufferData"); - alGetBufferi = (alGetBufferiPROC) GetFunctionPointer("alGetBufferi"); - alGetBufferf = (alGetBufferfPROC) GetFunctionPointer("alGetBufferf"); - alSourceQueueBuffers = (alSourceQueueBuffersPROC) GetFunctionPointer("alSourceQueueBuffers"); - alSourceUnqueueBuffers = (alSourceUnqueueBuffersPROC) GetFunctionPointer("alSourceUnqueueBuffers"); - alDistanceModel = (alDistanceModelPROC) GetFunctionPointer("alDistanceModel"); - alDopplerFactor = (alDopplerFactorPROC) GetFunctionPointer("alDopplerFactor"); - alDopplerVelocity = (alDopplerVelocityPROC) GetFunctionPointer("alDopplerVelocity"); +static int LoadAL() { + alEnable = (alEnablePROC) GetFunctionPointer("alEnable"); + alDisable = (alDisablePROC) GetFunctionPointer("alDisable"); + alIsEnabled = (alIsEnabledPROC) GetFunctionPointer("alIsEnabled"); + //alHint = (alHintPROC) GetFunctionPointer("alHint"); + //alGetintean = (alGetinteanPROC) GetFunctionPointer("alGetintean"); + alGetInteger = (alGetIntegerPROC) GetFunctionPointer("alGetInteger"); + alGetFloat = (alGetFloatPROC) GetFunctionPointer("alGetFloat"); + alGetDouble = (alGetDoublePROC) GetFunctionPointer("alGetDouble"); + //alGetinteanv = (alGetinteanvPROC) GetFunctionPointer("alGetinteanv"); + alGetIntegerv = (alGetIntegervPROC) GetFunctionPointer("alGetIntegerv"); + alGetFloatv = (alGetFloatvPROC) GetFunctionPointer("alGetFloatv"); + alGetDoublev = (alGetDoublevPROC) GetFunctionPointer("alGetDoublev"); + alGetString = (alGetStringPROC) GetFunctionPointer("alGetString"); + alGetError = (alGetErrorPROC) GetFunctionPointer("alGetError"); + alIsExtensionPresent = (alIsExtensionPresentPROC) GetFunctionPointer("alIsExtensionPresent"); + alGetProcAddress = (alGetProcAddressPROC) GetFunctionPointer("alGetProcAddress"); + alGetEnumValue = (alGetEnumValuePROC) GetFunctionPointer("alGetEnumValue"); + alListeneri = (alListeneriPROC) GetFunctionPointer("alListeneri"); + alListenerf = (alListenerfPROC) GetFunctionPointer("alListenerf"); + alListener3f = (alListener3fPROC) GetFunctionPointer("alListener3f"); + alListenerfv = (alListenerfvPROC) GetFunctionPointer("alListenerfv"); + alGetListeneri = (alGetListeneriPROC) GetFunctionPointer("alGetListeneri"); + alGetListenerf = (alGetListenerfPROC) GetFunctionPointer("alGetListenerf"); + alGetListener3f = (alGetListener3fPROC) GetFunctionPointer("alGetListener3f"); + alGetListenerfv = (alGetListenerfvPROC) GetFunctionPointer("alGetListenerfv"); + alGenSources = (alGenSourcesPROC) GetFunctionPointer("alGenSources"); + alDeleteSources = (alDeleteSourcesPROC) GetFunctionPointer("alDeleteSources"); + alIsSource = (alIsSourcePROC) GetFunctionPointer("alIsSource"); + alSourcei = (alSourceiPROC) GetFunctionPointer("alSourcei"); + alSourcef = (alSourcefPROC) GetFunctionPointer("alSourcef"); + alSource3f = (alSource3fPROC) GetFunctionPointer("alSource3f"); + alSourcefv = (alSourcefvPROC) GetFunctionPointer("alSourcefv"); + alGetSourcei = (alGetSourceiPROC) GetFunctionPointer("alGetSourcei"); + alGetSourcef = (alGetSourcefPROC) GetFunctionPointer("alGetSourcef"); + alGetSource3f = (alGetSource3fPROC) GetFunctionPointer("alGetSource3f"); + alGetSourcefv = (alGetSourcefvPROC) GetFunctionPointer("alGetSourcefv"); + alSourcePlayv = (alSourcePlayvPROC) GetFunctionPointer("alSourcePlayv"); + alSourcePausev = (alSourcePausevPROC) GetFunctionPointer("alSourcePausev"); + alSourceStopv = (alSourceStopvPROC) GetFunctionPointer("alSourceStopv"); + alSourceRewindv = (alSourceRewindvPROC) GetFunctionPointer("alSourceRewindv"); + alSourcePlay = (alSourcePlayPROC) GetFunctionPointer("alSourcePlay"); + alSourcePause = (alSourcePausePROC) GetFunctionPointer("alSourcePause"); + alSourceStop = (alSourceStopPROC) GetFunctionPointer("alSourceStop"); + alSourceRewind = (alSourceRewindPROC) GetFunctionPointer("alSourceRewind"); + alGenBuffers = (alGenBuffersPROC) GetFunctionPointer("alGenBuffers"); + alDeleteBuffers = (alDeleteBuffersPROC) GetFunctionPointer("alDeleteBuffers"); + alIsBuffer = (alIsBufferPROC) GetFunctionPointer("alIsBuffer"); + alBufferData = (alBufferDataPROC) GetFunctionPointer("alBufferData"); + alGetBufferi = (alGetBufferiPROC) GetFunctionPointer("alGetBufferi"); + alGetBufferf = (alGetBufferfPROC) GetFunctionPointer("alGetBufferf"); + alSourceQueueBuffers = (alSourceQueueBuffersPROC) GetFunctionPointer("alSourceQueueBuffers"); + alSourceUnqueueBuffers = (alSourceUnqueueBuffersPROC) GetFunctionPointer("alSourceUnqueueBuffers"); + alDistanceModel = (alDistanceModelPROC) GetFunctionPointer("alDistanceModel"); + alDopplerFactor = (alDopplerFactorPROC) GetFunctionPointer("alDopplerFactor"); + alDopplerVelocity = (alDopplerVelocityPROC) GetFunctionPointer("alDopplerVelocity"); - int result = - alEnable != NULL && - alDisable != NULL && - alIsEnabled != NULL && - //alHint != NULL && - alGetBoolean != NULL && - alGetInteger != NULL && - alGetFloat != NULL && - alGetDouble != NULL && - alGetBooleanv != NULL && - alGetIntegerv != NULL && - alGetFloatv != NULL && - alGetDoublev != NULL && - alGetString != NULL && - alGetError != NULL && - alIsExtensionPresent != NULL && - alGetProcAddress != NULL && - alGetEnumValue != NULL && - alListeneri != NULL && - alListenerf != NULL && - alListener3f != NULL && - alListenerfv != NULL && - alGetListeneri != NULL && - alGetListenerf != NULL && - alGetListener3f != NULL && - alGetListenerfv != NULL && - alGenSources != NULL && - alDeleteSources != NULL && - alIsSource != NULL && - alSourcei != NULL && - alSourcef != NULL && - alSource3f != NULL && - alSourcefv != NULL && - alGetSourcei != NULL && - alGetSourcef != NULL && - alGetSource3f != NULL && - alGetSourcefv != NULL && - alSourcePlayv != NULL && - alSourcePausev != NULL && - alSourceStopv != NULL && - alSourceRewindv != NULL && - alSourcePlay != NULL && - alSourcePause != NULL && - alSourceStop != NULL && - alSourceRewind != NULL && - alGenBuffers != NULL && - alDeleteBuffers != NULL && - alIsBuffer != NULL && - alBufferData != NULL && - alGetBufferi != NULL && - alGetBufferf != NULL && - alSourceQueueBuffers != NULL && - alSourceUnqueueBuffers != NULL && - alDistanceModel != NULL && - alDopplerFactor != NULL && - alDopplerVelocity != NULL; - printf("LoadAL: test 1 result = %i\n",result); - printf("LoadAL: Exit\n"); - return result; + return + alEnable != NULL && + alDisable != NULL && + alIsEnabled != NULL && + //alHint != NULL && + //alGetintean != NULL && + alGetInteger != NULL && + alGetFloat != NULL && + alGetDouble != NULL && + //alGetinteanv != NULL && + alGetIntegerv != NULL && + alGetFloatv != NULL && + alGetDoublev != NULL && + alGetString != NULL && + alGetError != NULL && + alIsExtensionPresent != NULL && + alGetProcAddress != NULL && + alGetEnumValue != NULL && + alListeneri != NULL && + alListenerf != NULL && + alListener3f != NULL && + alListenerfv != NULL && + alGetListeneri != NULL && + alGetListenerf != NULL && + alGetListener3f != NULL && + alGetListenerfv != NULL && + alGenSources != NULL && + alDeleteSources != NULL && + alIsSource != NULL && + alSourcei != NULL && + alSourcef != NULL && + alSource3f != NULL && + alSourcefv != NULL && + alGetSourcei != NULL && + alGetSourcef != NULL && + alGetSource3f != NULL && + alGetSourcefv != NULL && + alSourcePlayv != NULL && + alSourcePausev != NULL && + alSourceStopv != NULL && + alSourceRewindv != NULL && + alSourcePlay != NULL && + alSourcePause != NULL && + alSourceStop != NULL && + alSourceRewind != NULL && + alGenBuffers != NULL && + alDeleteBuffers != NULL && + alIsBuffer != NULL && + alBufferData != NULL && + alGetBufferi != NULL && + alGetBufferf != NULL && + alSourceQueueBuffers != NULL && + alSourceUnqueueBuffers != NULL && + alDistanceModel != NULL && + alDopplerFactor != NULL && + alDopplerVelocity != NULL; } /** @@ -379,45 +406,39 @@ int LoadAL() { * * @return true if all methods were loaded, false if one of the methods could not be loaded */ -int LoadALC() { - printf("LoadALC: Enter\n"); +static int LoadALC() { + alcGetString = (alcGetStringPROC) GetFunctionPointer("alcGetString"); + alcGetIntegerv = (alcGetIntegervPROC) GetFunctionPointer("alcGetIntegerv"); + alcOpenDevice = (alcOpenDevicePROC) GetFunctionPointer("alcOpenDevice"); + alcCloseDevice = (alcCloseDevicePROC) GetFunctionPointer("alcCloseDevice"); + alcCreateContext = (alcCreateContextPROC) GetFunctionPointer("alcCreateContext"); + alcMakeContextCurrent = (alcMakeContextCurrentPROC) GetFunctionPointer("alcMakeContextCurrent"); + alcProcessContext = (alcProcessContextPROC) GetFunctionPointer("alcProcessContext"); + alcGetCurrentContext = (alcGetCurrentContextPROC) GetFunctionPointer("alcGetCurrentContext"); + alcGetContextsDevice = (alcGetContextsDevicePROC) GetFunctionPointer("alcGetContextsDevice"); + alcSuspendContext = (alcSuspendContextPROC) GetFunctionPointer("alcSuspendContext"); + alcDestroyContext = (alcDestroyContextPROC) GetFunctionPointer("alcDestroyContext"); + alcGetError = (alcGetErrorPROC) GetFunctionPointer("alcGetError"); + alcIsExtensionPresent = (alcIsExtensionPresentPROC) GetFunctionPointer("alcIsExtensionPresent"); + alcGetProcAddress = (alcGetProcAddressPROC) GetFunctionPointer("alcGetProcAddress"); + alcGetEnumValue = (alcGetEnumValuePROC) GetFunctionPointer("alcGetEnumValue"); - alcGetString = (alcGetStringPROC) GetFunctionPointer("alcGetString"); - alcGetIntegerv = (alcGetIntegervPROC) GetFunctionPointer("alcGetIntegerv"); - alcOpenDevice = (alcOpenDevicePROC) GetFunctionPointer("alcOpenDevice"); - alcCloseDevice = (alcCloseDevicePROC) GetFunctionPointer("alcCloseDevice"); - alcCreateContext = (alcCreateContextPROC) GetFunctionPointer("alcCreateContext"); - alcMakeContextCurrent = (alcMakeContextCurrentPROC) GetFunctionPointer("alcMakeContextCurrent"); - alcProcessContext = (alcProcessContextPROC) GetFunctionPointer("alcProcessContext"); - alcGetCurrentContext = (alcGetCurrentContextPROC) GetFunctionPointer("alcGetCurrentContext"); - alcGetContextsDevice = (alcGetContextsDevicePROC) GetFunctionPointer("alcGetContextsDevice"); - alcSuspendContext = (alcSuspendContextPROC) GetFunctionPointer("alcSuspendContext"); - alcDestroyContext = (alcDestroyContextPROC) GetFunctionPointer("alcDestroyContext"); - alcGetError = (alcGetErrorPROC) GetFunctionPointer("alcGetError"); - alcIsExtensionPresent = (alcIsExtensionPresentPROC) GetFunctionPointer("alcIsExtensionPresent"); - alcGetProcAddress = (alcGetProcAddressPROC) GetFunctionPointer("alcGetProcAddress"); - alcGetEnumValue = (alcGetEnumValuePROC) GetFunctionPointer("alcGetEnumValue"); - - int result = - alcGetString != NULL && - alcGetIntegerv != NULL && - alcOpenDevice != NULL && - alcCloseDevice != NULL && - alcCreateContext != NULL && - alcMakeContextCurrent != NULL && - alcProcessContext != NULL && - alcGetCurrentContext != NULL && - alcGetContextsDevice != NULL && - alcSuspendContext != NULL && - alcDestroyContext != NULL && - alcGetError != NULL && - alcIsExtensionPresent != NULL && - alcGetProcAddress != NULL && - alcGetEnumValue != NULL; - - printf("LoadALC: test1 result = %i\n",result); - printf("LoadALC: Exit\n"); - return result; + return + alcGetString != NULL && + alcGetIntegerv != NULL && + alcOpenDevice != NULL && + alcCloseDevice != NULL && + alcCreateContext != NULL && + alcMakeContextCurrent != NULL && + alcProcessContext != NULL && + alcGetCurrentContext != NULL && + alcGetContextsDevice != NULL && + alcSuspendContext != NULL && + alcDestroyContext != NULL && + alcGetError != NULL && + alcIsExtensionPresent != NULL && + alcGetProcAddress != NULL && + alcGetEnumValue != NULL; } /** @@ -425,7 +446,6 @@ int LoadALC() { * * @return true if all methods were loaded, false if one of the methods could not be loaded */ -int LoadALExtensions() { - return JNI_TRUE; +static int LoadALExtensions() { + return 1; } - -- cgit v1.2.3