2010-12-10 3 views
1

Я разрабатываю приложение для 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); 

Но я не знаю, как продолжить.

Любые советы?

Я ищу в Интернете, чтобы узнать, как, и если я найду что-то, я скажу вам.

Спасибо.

ответ

0

Сообщите мне, если я неверно истолковал то, что вы просите, но похоже, что вам нужно освежить свой C++. Статические массивы на C++ имеют фиксированный размер во время компиляции. Вероятно, вы захотите изучить new[], или malloc(), чтобы достичь того, чего хотите.

Смежные вопросы