12-04-2020, 10:54 PM
(12-04-2020, 04:15 PM)megamarc Wrote: Hi,
The bindings that are updated more are C# (for compiled, managed language) and Python (for interpreted, scripted language). Other bindings are contributed by other people, or are a proof of concept demonstrating the integration of Tilengine. Unitil now nobody has shown interest on the Java binding, so I'm afraid that keeping it alive is not a priority at this moment.
Most people is using the library directly in C.
Thanks anyway! I'll try to learn C and use it in pure C or updating the Java binding.
I took a look to this binding too. The most of the binding is pretty repeatitive and easy to understand. But there is some parts I don't understand well.
For exemple why this part only has 2 lines of code
Code:
JNIEXPORT jboolean JNICALL Java_Tilengine_SetBGPalette (JNIEnv* env, jobject thisobj, jint palette)
{
return TLN_SetBGPalette ((TLN_Palette)palette);
}
and this part has more code?
Code:
JNIEXPORT void JNICALL Java_Tilengine_SetRasterCallback (JNIEnv* env, jobject thisobj, jobject obj, jstring methodname)
{
/* release previous */
TLN_SetRasterCallback (NULL);
if (callback.obj)
(*env)->DeleteGlobalRef (env, callback.obj);
callback.obj = NULL;
/* store new */
if (obj && methodname)
{
const char* strmethod;
jclass cls;
strmethod = (*env)->GetStringUTFChars (env, methodname, NULL);
cls = (*env)->GetObjectClass (env, obj);
callback.env = env;
callback.obj = (*env)->NewGlobalRef (env, obj);
callback.method = (*env)->GetMethodID (env, cls, strmethod, "(I)V");
(*env)->ReleaseStringUTFChars (env, methodname, strmethod);
(*env)->DeleteLocalRef (env, obj);
TLN_SetRasterCallback (raster_callback);
}
}