По какой-то причине я просто не могу разобраться с процессом создания переменной экземпляра C-Array для класса, в который можно динамически добавлять элементы во время выполнения.
Моя цель - создать класс с именем AEMesh
. Все AEMesh
объекты будут иметь c-массив, хранящий вершинные данные для этой конкретной 3D-модели AEMesh
для использования с OpenGL ES (более конкретно, это функциональность для рисования модели путем передачи ей простого C-массива вершинных данных).
Изначально я использовал NSMutableArray
, исходя из предположения, что я могу просто передать этот массив в OpenGL ES, однако это не так, поскольку для фреймворка требуется C-Array. Я обошёл эту проблему, по сути создав C-массив всех вершинных данных для текущего AEMesh
, когда пришло время визуализировать эту конкретную сетку, и передав этот массив в OpenGL ES. Очевидно, что проблема здесь заключается в производительности, поскольку я постоянно выделяю и освобождаю достаточно памяти для хранения вершинных данных каждой 3D-модели в приложении около десятка раз в секунду.
Итак, я не тот, кому нужна ответная ложка, но если кто-то захочет объяснить мне стандартную идиому для предоставления классу изменяемого c-массива (некоторые статьи, которые я читал, упоминают с использованием malloc
? ) Буду весьма признателен за это. Исходя из информации, которую я собрал, использование malloc может работать, но это не создает стандартный c-массив, который я могу передать OpenGL ES, а скорее его псевдо-c-массив, который работает как c-массив?
В любом случае, я продолжу экспериментировать и искать в Интернете, но опять же, если кто-нибудь сможет предложить руку помощи, я был бы очень признателен.
Спасибо,
- Адам Эйсфельд