★お前らJavaはJNIで組もうぜ★at TECH
★お前らJavaはJNIで組もうぜ★ - 暇つぶし2ch128:117
02/12/31 20:10
JNIEXPORT void JNICALL Java_Point3d_add(JNIEnv* env, jobject me, jobject p){
jclass cls = env->GetObjectClass(me);
jfieldID fid_x = env->GetFieldID(cls, "x", "D");
jfieldID fid_y = env->GetFieldID(cls, "y", "D");
jfieldID fid_z = env->GetFieldID(cls, "z", "D");
jdouble this_x = env->GetDoubleField(me, fid_x);
jdouble this_y = env->GetDoubleField(me, fid_y);
jdouble this_z = env->GetDoubleField(me, fid_z);
jdouble p_x = env->GetDoubleField(p, fid_x);
jdouble p_y = env->GetDoubleField(p, fid_y);
jdouble p_z = env->GetDoubleField(p, fid_z);
env->SetDoubleField(me, fid_x, this_x+p_x);
env->SetDoubleField(me, fid_y, this_y+p_y);
env->SetDoubleField(me, fid_z, this_z+p_z);
}

JNIEXPORT void JNICALL Java_Point3d_exe(JNIEnv* env, jobject me){
jclass cls = env->GetObjectClass(me);
jfieldID fid_x = env->GetFieldID(cls, "x", "D");jfieldID fid_y = env->GetFieldID(cls, "y", "D");jfieldID fid_z = env->GetFieldID(cls, "z", "D");
jdouble x = env->GetDoubleField(me, fid_x);jdouble y = env->GetDoubleField(me, fid_y);jdouble z = env->GetDoubleField(me, fid_z);
for (int i = 0; i < 0xfffffff; i++) {
    x += 1.0;
    y += 1.0;
    z += 1.0;
}
env->SetDoubleField(me, fid_x, (jdouble) x);
env->SetDoubleField(me, fid_y, (jdouble) y);
env->SetDoubleField(me, fid_z, (jdouble) z);
}

this.x += p.x;を実装するたけでも↑のようなコードが必要っぽい.
なんか他にいい方法ないですかね?


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch