Int массивы в intbuffer для Android OpenGL ES 1.0?

Недавно я прочитал статью о Badlogicgames.com о том, как ускорить процесс добавления информации в буферы вершин (или любой другой intbuffer), и это увеличило скорость моего проекта, но я не совсем понял,

«Замечание о том, что IntBuffer.put (int [] src) не затронуло проблему"

Statement …. Возможно ли передать массив int [] в IntBuffer, чтобы получить увеличение скорости, если вам не нужны числа с плавающей запятой? Каждый раз, когда я пытаюсь поместить int [] в буфер; Ничего не получается …

Вот пример моего текущего использования:

dMesh[i].putVertexBuffer(coords); //function being called public void putVertexBuffer(int[] input) //actual function { ByteBuffer tC = ByteBuffer.allocateDirect(input.length *4); tC.order(ByteOrder.nativeOrder()); _vertexBuffer = tC.asIntBuffer(); _vertexBuffer.put(input); _vertexBuffer.position(0); } 

Теперь, если int-массивы «coords» заполнены переменными, которые были числами с плавающей запятой, преобразованными в целые числа, используя «Float.floatToIntBits (float value)»; Это хорошо … но массив стандартных целых чисел ничего не показывает … Но если у меня просто есть массив float [] и измените «asIntBuffer ()» на «asFloatBuffer ()», это работает? Я смущен. Требуется ли преобразование? Заранее благодарю всех, кто дает представление.

Быстрое редактирование: я почти забыл … это статья, на которую я ссылался: http://www.badlogicgames.com/wiki/index.php/Direct_Bulk_FloatBuffer.put_is_slow

Вы не используете массив int с параметром GL_FLOAT для типа в вызове glVertexPointer , не так ли? В этом случае я бы не задавался вопросом о поведении. При использовании ints в качестве вершинных маршрутов обязательно используйте тип GL_INT как параметр типа в glVertexPointer (или любую такую ​​функцию массива атрибутов).

Когда вы пробовали ints, вы также изменили код, который использовал массив для использования ints вместо float? Здесь у меня были всевозможные проблемы.

Возможно, мой предыдущий вопрос / ответ помогает – это в этой области:

Передача функции java.nio.IntBuffer в C в Android-игре