diff --git a/src/native/common/devil/org_lwjgl_devil_IL.c b/src/native/common/devil/org_lwjgl_devil_IL.c index e1e9c779..9b5d44d0 100644 --- a/src/native/common/devil/org_lwjgl_devil_IL.c +++ b/src/native/common/devil/org_lwjgl_devil_IL.c @@ -3,6 +3,63 @@ #include "org_lwjgl_devil_IL.h" #include "common_tools.h" +#ifdef __cplusplus +extern "C" { +/* + * Class: org_lwjgl_devil_IL + * Method: ilActiveImage + * Signature: (I)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilActiveImage(JNIEnv *env, jclass clazz, jint number) { + return ilActiveImage((ILuint)number); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilActiveLayer + * Signature: (I)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilActiveLayer(JNIEnv *env, jclass clazz, jint number) { + return ilActiveLayer((ILuint)number); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilActiveMipmap + * Signature: (I)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilActiveMipmap(JNIEnv *env, jclass clazz, jint number) { + return ilActiveMipmap((ILuint)number); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilApplyPal + * Signature: (Ljava/lang/String;)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilApplyPal(JNIEnv *env, jclass clazz, jstring fileName) { + const char *strFileName = (*env)->GetStringUTFChars(env, fileName, 0); + jboolean result = ilApplyPal((const ILstring*)strFileName); + (*env)->ReleaseStringUTFChars(env, fileName, strFileName); + + return result; +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilApplyProfile + * Signature: (Ljava/lang/String;Ljava/lang/String;)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilApplyProfile(JNIEnv *env, jclass clazz, jstring inProfile, jstring outProfile) { + const char *strInProfile = (*env)->GetStringUTFChars(env, inProfile, 0); + const char *strOutProfile = (*env)->GetStringUTFChars(env, outProfile, 0); + jboolean result = ilApplyProfile((const ILstring)strInProfile, (const ILstring)strOutProfile); + (*env)->ReleaseStringUTFChars(env, inProfile, strInProfile); + (*env)->ReleaseStringUTFChars(env, outProfile, strOutProfile); + + return result; +} + /* * Class: org_lwjgl_devil_IL * Method: ilBindImage @@ -12,6 +69,108 @@ JNIEXPORT void JNICALL Java_org_lwjgl_devil_IL_ilBindImage(JNIEnv *env, jclass c ilBindImage(image); } + +/* + * Class: org_lwjgl_devil_IL + * Method: ilBlit + * Signature: (IIIIIIIIII)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilBlit(JNIEnv *env, jclass clazz, jint source, jint destX, jint destY, jint destZ, jint srcX, jint srcY, jint srcZ, jint width, jint height, jint depth) { + return ilBlit((ILuint)source, (ILint)destX, (ILint)destY, (ILint)destZ, (ILuint)srcX, (ILuint)srcY, (ILuint)srcZ, (ILuint)width, (ILuint)height, (ILuint)depth); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilClearColour + * Signature: (FFFF)V + */ +JNIEXPORT void JNICALL Java_org_lwjgl_devil_IL_ilClearColour(JNIEnv *env, jclass clazz, jfloat red, jfloat green, jfloat blue, jfloat alpha) { + ilClearColour((ILclampf)red, (ILclampf)green, (ILclampf)blue, (ILclampf)alpha); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilClearImage + * Signature: ()Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilClearImage(JNIEnv *env, jclass clazz) { + return ilClearImage(); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilCloneCurImage + * Signature: ()I + */ +JNIEXPORT jint JNICALL Java_org_lwjgl_devil_IL_ilCloneCurImage(JNIEnv *env, jclass clazz) { + return ilCloneCurImage(); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilCompressFunc + * Signature: (I)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilCompressFunc(JNIEnv *env, jclass clazz, jint mode) { + return ilCompressFunc((ILenum)mode); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilConvertImage + * Signature: (II)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilConvertImage(JNIEnv *env, jclass clazz, jint destFormat, jint destType) { + return ilConvertImage((ILenum)destFormat, (ILenum)destType); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilConvertPal + * Signature: (I)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilConvertPal(JNIEnv *env, jclass clazz, jint destFormat) { + return ilConvertPal((ILenum)destFormat); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilCopyImage + * Signature: (I)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilCopyImage(JNIEnv *env, jclass clazz, jint src) { + return ilCopyImage((ILuint)src); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: nilCopyPixels + * Signature: (IIIIIIIILjava/nio/ByteBuffer;I)I + */ +JNIEXPORT jint JNICALL Java_org_lwjgl_devil_IL_nilCopyPixels(JNIEnv *env, jclass clazz, jint xOff, jint yOff, jint zOff, jint width, jint height, jint depth, jint format, jint type, jobject data_buffer, jint data_offset) { + ILbyte *data = (ILbyte *)(*env)->GetDirectBufferAddress(env, data_buffer); + + return ilCopyPixels((ILuint)xOff, (ILuint)yOff, (ILuint)zOff, (ILuint)width, (ILuint)height, (ILuint)depth, (ILenum)format, (ILenum)type, (ILvoid *)(data + data_offset)); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilCreateSubImage + * Signature: (II)I + */ +JNIEXPORT jint JNICALL Java_org_lwjgl_devil_IL_ilCreateSubImage(JNIEnv *env, jclass clazz, jint type, jint num) { + return ilCreateSubImage((ILenum)type, (ILuint)num); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilDefaultImage + * Signature: ()Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilDefaultImage(JNIEnv *env, jclass clazz) { + return ilDefaultImage(); +} + /* * Class: org_lwjgl_devil_IL * Method: ilDeleteImages @@ -22,6 +181,34 @@ JNIEXPORT void JNICALL Java_org_lwjgl_devil_IL_nilDeleteImages(JNIEnv * env, jcl ilDeleteImages((ILsizei)num, (ILuint *)lists); } + +/* + * Class: org_lwjgl_devil_IL + * Method: ilDisable + * Signature: (I)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilDisable(JNIEnv *env, jclass clazz, jint mode) { + return ilDisable((ILenum)mode); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilEnable + * Signature: (I)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilEnable(JNIEnv *env, jclass clazz, jint mode) { + return ilEnable((ILenum)mode); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilFormatFunc + * Signature: (I)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilFormatFunc(JNIEnv *env, jclass clazz, jint mode) { + return ilFormatFunc((ILenum)mode); +} + /* * Class: org_lwjgl_devil_IL * Method: ilGenImages @@ -32,19 +219,58 @@ JNIEXPORT void JNICALL Java_org_lwjgl_devil_IL_nilGenImages(JNIEnv *env , jclass ilGenImages((ILsizei)num, (ILuint *)lists); } + +/* + * Class: org_lwjgl_devil_IL + * Method: ilGetAlpha + * Signature: (I)[B + */ +JNIEXPORT jobject JNICALL Java_org_lwjgl_devil_IL_ilGetAlpha(JNIEnv *env, jclass clazz, jint type) { + ILubyte *alpha = ilGetAlpha((ILenum)type); + + int size = sizeof(alpha); + jobject result = safeNewBuffer(env, alpha, size); + + return result; +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilModAlpha + * Signature: (I)V + */ +JNIEXPORT void JNICALL Java_org_lwjgl_devil_IL_ilModAlpha(JNIEnv *env, jclass clazz, jint alphaValue) { + ilModAlpha((ILint)alphaValue); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilSetAlpha + * Signature: (I)V + */ +JNIEXPORT void JNICALL Java_org_lwjgl_devil_IL_ilSetAlpha(JNIEnv *env, jclass clazz, jint alphaValue) { + ilSetAlpha((ILuint)alphaValue); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilGetBoolean + * Signature: (I)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilGetBoolean(JNIEnv *env, jclass clazz, jint mode) { + return ilGetBoolean((ILenum)mode); +} + /* * Class: org_lwjgl_devil_IL * Method: ilGetData * Signature: ()[B */ JNIEXPORT jobject JNICALL Java_org_lwjgl_devil_IL_ilGetData(JNIEnv * env, jclass clazz) { - int size; - jobject result; - ILubyte *data = ilGetData(); - size = ilGetInteger(IL_IMAGE_WIDTH) * ilGetInteger(IL_IMAGE_HEIGHT) * ilGetInteger(IL_IMAGE_BYTES_PER_PIXEL); - result = safeNewBuffer(env, data, size); + int size = sizeof(data); + jobject result = safeNewBuffer(env, data, size); return result; } @@ -67,6 +293,48 @@ JNIEXPORT jint JNICALL Java_org_lwjgl_devil_IL_ilGetInteger(JNIEnv *env, jclass return ilGetInteger((ILenum)mode); } + +/* + * Class: org_lwjgl_devil_IL + * Method: ilGetLumpPos + * Signature: ()I + */ +JNIEXPORT jint JNICALL Java_org_lwjgl_devil_IL_ilGetLumpPos(JNIEnv *env, jclass clazz) { + return ilGetLumpPos(); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilGetPalette + * Signature: ()[B + */ +JNIEXPORT jobject JNICALL Java_org_lwjgl_devil_IL_ilGetPalette(JNIEnv *env, jclass clazz) { + ILubyte *pal = ilGetPalette(); + + int size = sizeof(pal); + jobject result = safeNewBuffer(env, pal, size); + + return result; +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilGetString + * Signature: (I)Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_org_lwjgl_devil_IL_ilGetString(JNIEnv *env, jclass clazz, jint stringName) { + return (*env)->NewStringUTF(env, ilGetString((ILenum)stringName)); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilHint + * Signature: (II)V + */ +JNIEXPORT void JNICALL Java_org_lwjgl_devil_IL_ilHint(JNIEnv *env, jclass clazz, jint target, jint mode) { + ilHint((ILenum)target, (ILenum)mode); +} + /* * Class: org_lwjgl_devil_IL * Method: ilInit @@ -76,17 +344,378 @@ JNIEXPORT void JNICALL Java_org_lwjgl_devil_IL_ilInit(JNIEnv * env, jclass clazz ilInit(); } +/* + * Class: org_lwjgl_devil_IL + * Method: ilIsDisabled + * Signature: (I)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilIsDisabled(JNIEnv *env, jclass clazz, jint mode) { + return ilIsDisabled((ILenum)mode); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilIsEnabled + * Signature: (I)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilIsEnabled(JNIEnv *env, jclass clazz, jint mode) { + return ilIsEnabled((ILenum)mode); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilIsImage + * Signature: (I)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilIsImage(JNIEnv *env, jclass clazz, jint image) { + return ilIsImage((ILuint)image); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilIsValid + * Signature: (ILjava/lang/String;)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilIsValid(JNIEnv *env, jclass clazz, jint type, jstring fileName) { + const char *strFileName = (*env)->GetStringUTFChars(env, fileName, 0); + jboolean result = ilIsValid((ILuint)type, (const ILstring)strFileName); + (*env)->ReleaseStringUTFChars(env, fileName, strFileName); + + return result; +} + +/* + * Class: org_lwjgl_devil_IL + * Method: nilIsValidL + * Signature: (ILjava/nio/ByteBuffer;II)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_nilIsValidL(JNIEnv *env, jclass clazz, jint type, jobject lump_buffer, jint lump_offset, jint size) { + ILbyte *lump = (ILbyte *)(*env)->GetDirectBufferAddress(env, lump_buffer); + + return ilIsValidL((ILenum)type, (ILvoid *)(lump + lump_offset), (ILuint)size); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilKeyColour + * Signature: (FFFF)V + */ +JNIEXPORT void JNICALL Java_org_lwjgl_devil_IL_ilKeyColour(JNIEnv *env, jclass clazz, jfloat red, jfloat green, jfloat blue, jfloat alpha) { + ilKeyColour((ILclampf)red, (ILclampf)green, (ILclampf)blue, (ILclampf)alpha); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilLoad + * Signature: (ILjava/lang/String;)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilLoad(JNIEnv *env, jclass clazz, jint type, jstring fileName) { + const char *strFileName = (*env)->GetStringUTFChars(env, fileName, 0); + jboolean result = ilLoad((ILenum)type, (const ILstring)strFileName); + (*env)->ReleaseStringUTFChars(env, fileName, strFileName); + + return result; +} + /* * Class: org_lwjgl_devil_IL * Method: ilLoadImage * Signature: (Ljava/lang/String;)Z */ JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilLoadImage(JNIEnv *env, jclass clazz, jstring fileName) { - const char *str = (*env)->GetStringUTFChars(env, fileName, 0); - jboolean result = ilLoadImage((char *)str); - (*env)->ReleaseStringUTFChars(env, fileName, str); + const char *strFileName = (*env)->GetStringUTFChars(env, fileName, 0); + jboolean result = ilLoadImage((const ILstring*)strFileName); + (*env)->ReleaseStringUTFChars(env, fileName, strFileName); + + return result; +} + + +/* + * Class: org_lwjgl_devil_IL + * Method: nilLoadL + * Signature: (ILjava/nio/ByteBuffer;II)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_nilLoadL(JNIEnv *env, jclass clazz, jint type, jobject lump_buffer, jint lump_offset, jint size) { + ILbyte *lump = (ILbyte *)(*env)->GetDirectBufferAddress(env, lump_buffer); + + return ilLoadL((ILenum)type, (ILvoid *)(lump + lump_offset), (ILuint)size); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilLoadPal + * Signature: (Ljava/lang/String;)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilLoadPal(JNIEnv *env, jclass clazz, jstring fileName) { + const char *strFileName = (*env)->GetStringUTFChars(env, fileName, 0); + jboolean result = ilLoadPal((const ILstring)strFileName); + (*env)->ReleaseStringUTFChars(env, fileName, strFileName); + + return result; +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilOriginFunc + * Signature: (I)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilOriginFunc(JNIEnv *env, jclass clazz, jint mode) { + return ilOriginFunc((ILenum)mode); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilOverlayImage + * Signature: (IIII)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilOverlayImage(JNIEnv *env, jclass clazz, jint source, jint xCoord, jint yCoord, jint zCoord) { + return ilOverlayImage((ILuint)source, (ILint)xCoord, (ILint)yCoord, (ILint)zCoord); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilPopAttrib + * Signature: ()V + */ +JNIEXPORT void JNICALL Java_org_lwjgl_devil_IL_ilPopAttrib(JNIEnv *env, jclass clazz) { + ilPopAttrib(); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilPushAttrib + * Signature: (I)V + */ +JNIEXPORT void JNICALL Java_org_lwjgl_devil_IL_ilPushAttrib(JNIEnv *env, jclass clazz, jint bits) { + ilPushAttrib((ILuint)bits); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilRemoveLoad + * Signature: (Ljava/lang/String;)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilRemoveLoad(JNIEnv *env, jclass clazz, jstring ext) { + const char *strExt = (*env)->GetStringUTFChars(env, ext, 0); + jboolean result = ilRemoveLoad((const ILstring)strExt); + (*env)->ReleaseStringUTFChars(env, fileName, strExt); + + return result; +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilRemoveSave + * Signature: (Ljava/lang/String;)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilRemoveSave(JNIEnv *env, jclass clazz, jstring ext) { + const char *strExt = (*env)->GetStringUTFChars(env, ext, 0); + jboolean result = ilRemoveSave((const ILstring)strExt); + (*env)->ReleaseStringUTFChars(env, fileName, strExt); + + return result; +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilResetMemory + * Signature: ()V + */ +JNIEXPORT void JNICALL Java_org_lwjgl_devil_IL_ilResetMemory(JNIEnv *env, jclass clazz) { + ilResetMemory(); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilResetRead + * Signature: ()V + */ +JNIEXPORT void JNICALL Java_org_lwjgl_devil_IL_ilResetRead(JNIEnv *env, jclass clazz) { + ilResetRead(); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilResetWrite + * Signature: ()V + */ +JNIEXPORT void JNICALL Java_org_lwjgl_devil_IL_ilResetWrite(JNIEnv *env, jclass clazz) { + ilResetWrite(); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilSave + * Signature: (ILjava/lang/String;)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilSave(JNIEnv *env, jclass clazz, jint type, jstring fileName) { + const char *strFileName = (*env)->GetStringUTFChars(env, fileName, 0); + jboolean result = ilSave((ILenum)type, (const ILstring)strFileName); + (*env)->ReleaseStringUTFChars(env, fileName, strFileName); + + return result; +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilSaveImage + * Signature: (Ljava/lang/String;)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilSaveImage(JNIEnv *env, jclass clazz, jstring fileName) { + const char *strFileName = (*env)->GetStringUTFChars(env, fileName, 0); + jboolean result = ilSaveImage((const ILstring)strFileName); + (*env)->ReleaseStringUTFChars(env, fileName, strFileName); + + return result; +} + +/* + * Class: org_lwjgl_devil_IL + * Method: nilSaveL + * Signature: (ILjava/nio/ByteBuffer;II)I + */ +JNIEXPORT jint JNICALL Java_org_lwjgl_devil_IL_nilSaveL(JNIEnv *env, jclass clazz, jint type, jobject lump_buffer, jint lump_offset, jint size) { + ILbyte *lump = (ILbyte *)(*env)->GetDirectBufferAddress(env, lump_buffer); + + return ilSaveL((ILenum)type, (ILvoid *)(lump + lump_offset), (ILuint)size); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilSavePal + * Signature: (Ljava/lang/String;)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilSavePal(JNIEnv *env, jclass clazz, jstring fileName) { + const char *strFileName = (*env)->GetStringUTFChars(env, fileName, 0); + jboolean result = ilSavePal((const ILstring)strFileName); + (*env)->ReleaseStringUTFChars(env, fileName, strFileName); + + return result; +} + +/* + * Class: org_lwjgl_devil_IL + * Method: nilSetData + * Signature: (Ljava/nio/ByteBuffer;I)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_nilSetData(JNIEnv *env, jclass clazz, jobject data_buffer, jint data_offset) { + ILbyte *data = (ILbyte *)(*env)->GetDirectBufferAddress(env, data_buffer); + + return ilSetData((ILvoid *)(data + data_offset)); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilSetDuration + * Signature: (I)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilSetDuration(JNIEnv *env, jclass clazz, jint duration) { + return ilSetDuration((ILuint)duration); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilSetInteger + * Signature: (II)V + */ +JNIEXPORT void JNICALL Java_org_lwjgl_devil_IL_ilSetInteger(JNIEnv *env, jclass clazz, jint mode, jint param) { + ilSetInteger((ILenum)mode, (ILint)param); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: nilSetPixels + * Signature: (IIIIIIIILjava/nio/ByteBuffer;I)V + */ +JNIEXPORT void JNICALL Java_org_lwjgl_devil_IL_nilSetPixels(JNIEnv *env, jclass clazz, jint xOff, jint yOff, jint zOff, jint width, jint height, jint depth, jint format, jint type, jobject data_buffer, jint data_offset) { + ILbyte *data = (ILbyte *)(*env)->GetDirectBufferAddress(env, data_buffer); + + ilSetPixels((ILint)xOff, (ILint)yOff, (ILint)zOff, (ILuint)width, (ILuint)height, (ILuint)depth, (ILenum)format, (ILenum)type, (ILvoid *)(data + data_offset)); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilSetString + * Signature: (ILjava/lang/String;)V + */ +JNIEXPORT void JNICALL Java_org_lwjgl_devil_IL_ilSetString(JNIEnv *env, jclass clazz, jint mode, jstring string) { + const char *strString = (*env)->GetStringUTFChars(env, string, 0); + + ilSetString(mode, (const ILstring)strString); + (*env)->ReleaseStringUTFChars(env, string, strString); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilShutDown + * Signature: ()V + */ +JNIEXPORT void JNICALL Java_org_lwjgl_devil_IL_ilShutDown(JNIEnv *env, jclass clazz) { + ilShutDown(); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: nilTexImage + * Signature: (IIIBIILjava/nio/ByteBuffer;I)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_nilTexImage(JNIEnv *env, jclass clazz, jint width, jint height, jint depth , jbyte bpp, jint format, jint type, jobject data_buffer, jint data_offset) { + ILbyte *data = (ILbyte *)(*env)->GetDirectBufferAddress(env, data_buffer); + + return ilTexImage((ILuint)width, (ILuint)height, (ILuint)depth , (ILubyte)bpp, (ILenum)format, (ILenum)type, (ILvoid *)(data + data_offset)); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilTypeFunc + * Signature: (I)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilTypeFunc(JNIEnv *env, jclass clazz, jint mode) { + return ilTypeFunc((ILenum)mode); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilLoadData + * Signature: (Ljava/lang/String;IIIB)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilLoadData(JNIEnv *env, jclass clazz, jstring fileName, jint width, jint height, jint depth, jbyte bpp) { + const char *strFileName = (*env)->GetStringUTFChars(env, fileName, 0); + jboolean result = ilLoadData((const ILstring)strFileName, (ILuint)width, (ILuint)height, (ILuint)depth, (ILubyte)bpp); + (*env)->ReleaseStringUTFChars(env, fileName, strFileName); + + return result; +} + +/* + * Class: org_lwjgl_devil_IL + * Method: nilLoadDataL + * Signature: (Ljava/nio/ByteBuffer;IIIIIB)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_nilLoadDataL(JNIEnv *env, jclass clazz, jobject lump_buffer, jint lump_offset, jint size, jint width, jint height, jint depth, jbyte bpp) { + ILbyte *lump = (ILbyte *)(*env)->GetDirectBufferAddress(env, lump_buffer); + + return ilLoadDataL((ILvoid *)(lump + lump_offset), (ILuint)size, (ILuint)width, (ILuint)height, (ILuint)depth, (ILubyte)bpp); +} + +/* + * Class: org_lwjgl_devil_IL + * Method: ilSaveData + * Signature: (Ljava/lang/String;)Z + */ +JNIEXPORT jboolean JNICALL Java_org_lwjgl_devil_IL_ilSaveData(JNIEnv *env, jclass clazz, jstring fileName) { + const char *strFileName = (*env)->GetStringUTFChars(env, fileName, 0); + jboolean result = ilSaveData((const ILstring)strFileName); + (*env)->ReleaseStringUTFChars(env, fileName, strFileName); + return result; } JNIEXPORT void JNICALL Java_org_lwjgl_devil_IL_initNativeStubs(JNIEnv *env, jclass clazz) { } + +#ifdef __cplusplus +} +#endif +#endif