1
我正在開發一個帶有一些本機代碼(用於使用OpenGL ES 2.0進行渲染)的Android應用程序。複製指向靜態數組的指針
我有以下方法簽名:
JNIEXPORT void JNICALL Java_com_xxxxxx_xxxx_ActivityRenderer_renderFrame
(JNIEnv *env, jobject obj,
jfloatArray vertices, jfloatArray normals,
jfloatArray texCoord, jintArray indices)
要訪問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);
但我不知道該怎麼繼續。
有什麼建議嗎?
我正在尋找網絡以查找如何以及如果我找到了我會告訴你的東西。
謝謝。