私はいくつかのネイティブコード(OpenGL ES 2.0でレンダリングするために使用)を使ってAndroidアプリケーションを開発しています。静的配列へのポインタをコピー
私は次のメソッドのシグネチャがあります。私は、次の手順を実行しjfloatArray vertices, jfloatArray normals, jfloatArray texCoord, jintArray indices
要素へのアクセスを取得するには
JNIEXPORT void JNICALL Java_com_xxxxxx_xxxx_ActivityRenderer_renderFrame
(JNIEnv *env, jobject obj,
jfloatArray vertices, jfloatArray normals,
jfloatArray texCoord, jintArray indices)
を:
jfloat *vertPos, *vertNorm, *vertTexC;
jint *indicesArray;
vertPos = env->GetFloatArrayElements(vertices, 0);
vertNorm = env->GetFloatArrayElements(normals, 0);
vertTexC = env->GetFloatArrayElements(texCoord, 0);
indicesArray = env->GetIntArrayElements(indices, 0);
そして、glDrawElements(...)した後、最後には、私は次のようにします:
env->ReleaseFloatArrayElements(vertices, vertPos, 0);
env->ReleaseFloatArrayElements(normals, vertNorm, 0);
env->ReleaseFloatArrayElements(texCoord, vertTexC, 0);
env->ReleaseIntArrayElements(indices, indicesArray, 0);
私は、おそらく、私が望むモデルを描いていません私は彼らがまだglDrawElementsによって使用されている間、ポインタを解放しています。私は分かりませんが、他のテストを行う前にチェックしたいと思います。
私の質問は、どのようにポインタから静的な配列を作ることができますか?
私はこれをやってポインタ要素を取得することができます
jsize numVertices = env->GetArrayLength(vertices);
jsize numNormals = env->GetArrayLength(normals);
jsize numTexCoords = env->GetArrayLength(texCoord);
GLsizei numIndices = (GLsizei) env->GetArrayLength(indices);
をしかし、私は継続するのか分かりません。
アドバイスはありますか?
私は方法を見つけるためにウェブを検索しています。私が何かを見つけたら教えてくれます。
ありがとうございました。