Я разрабатываю приложение для Android с некоторым собственным кодом (используется для рендеринга с OpenGL ES 2.0).Скопировать указатель на статический массив
У меня есть метод следующую подпись:
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);
Я не рисую модель, которую я хочу, возможно, ause Я выпускаю указатели, пока они все еще используются glDrawElements. Я не уверен, но я хочу проверить это, прежде чем делать какие-либо другие тесты.
Мой вопрос в том, как я могу сделать статический массив из указателя?
я могу получить элементы указателей делают это:
jsize numVertices = env->GetArrayLength(vertices);
jsize numNormals = env->GetArrayLength(normals);
jsize numTexCoords = env->GetArrayLength(texCoord);
GLsizei numIndices = (GLsizei) env->GetArrayLength(indices);
Но я не знаю, как продолжить.
Любые советы?
Я ищу в Интернете, чтобы узнать, как, и если я найду что-то, я скажу вам.
Спасибо.