1 #include "projectkyoto_jme3_mmd_nativelib_SkinUtil.h"
6 * Class: projectkyoto_jme3_mmd_SkinUtil
8 * Signature: (Ljava/nio/Buffer;Ljava/nio/Buffer;I)V
10 JNIEXPORT void JNICALL Java_projectkyoto_jme3_mmd_nativelib_SkinUtil_copy
11 (JNIEnv *env, jclass clazz, jobject src, jobject dist, jint size) {
12 memcpy(env->GetDirectBufferAddress(dist), env->GetDirectBufferAddress(src), size);
16 * Class: projectkyoto_jme3_mmd_nativelib_SkinUtil
18 * Signature: (Ljava/nio/FloatBuffer;Ljava/nio/ShortBuffer;Ljava/nio/FloatBuffer;F)V
20 JNIEXPORT void JNICALL Java_projectkyoto_jme3_mmd_nativelib_SkinUtil_setSkin
21 (JNIEnv *env, jclass clazz, jobject buf, jobject indexBuf, jobject skinBuf, jfloat weight) {
22 jfloat *dist = (jfloat *)env->GetDirectBufferAddress(buf);
23 jshort *ip = (jshort *)env->GetDirectBufferAddress(indexBuf);
24 jfloat *skin = (jfloat *)env->GetDirectBufferAddress(skinBuf);
25 jlong size = env->GetDirectBufferCapacity(indexBuf);
26 for(int i=0;i<size;i++) {
28 jfloat *p1 = &dist[index * 3];
29 jfloat *p2 = &skin[i * 3];
30 *p1 = *p1 + *p2 * weight;
33 *p1 = *p1 + *p2 * weight;
36 *p1 = *p1 + *p2 * weight;
39 JNIEXPORT void JNICALL Java_projectkyoto_jme3_mmd_nativelib_SkinUtil_copyBoneMatrix
40 (JNIEnv *env, jclass clazz, jobject srcBuf, jobject distBuf, jobject indexBuf) {
41 jfloat *src = (jfloat *)env->GetDirectBufferAddress(srcBuf);
42 jfloat *dist = (jfloat *)env->GetDirectBufferAddress(distBuf);
43 jshort *index = (jshort *)env->GetDirectBufferAddress(indexBuf);
44 jlong size = env->GetDirectBufferCapacity(indexBuf);
46 for(int i=0;i<size;i++) {
47 memcpy(p, src + index[i] * 16, sizeof(jfloat) * 16);
52 * Class: projectkyoto_jme3_mmd_nativelib_SkinUtil
54 * Signature: (Ljava/nio/Buffer;)V
56 JNIEXPORT void JNICALL Java_projectkyoto_jme3_mmd_nativelib_SkinUtil_clear
57 (JNIEnv *env, jclass clazz, jobject buf) {
58 jfloat *src = (jfloat *)env->GetDirectBufferAddress(buf);
59 jlong size = env->GetDirectBufferCapacity(buf);