OpenGL гарантирует вам, что, как только любая функция, которая фактически обращается к некоторой памяти, возвращается, вы можете изменить или освободить ее содержимое.Это следующие функции:
- glDrawArrays (после его возврата указатель памяти gl {Normal, Color, TexCoord, Attrib, Vertex} может быть настроен на удаление)
- glDrawElements (послевозвращается, указатель памяти gl {Normal, Color, TexCoord, Attrib, Vertex} был установлен на и массив элементов может быть расположен)
- glTexImage (данные памяти указывают на)
- glTexSubImage (данные памяти указывают на)
- glBufferData (данные памяти указывают на)
- glBufferSubData (данные памяти указывают на)
Важно знать, что gl {Normal,Color, TexCoord, Attrib, Vertex} Pointer просто установите указатель и не создавайте копию.Однако копия данных сортировки создается с помощью вызовов glDrawElements и glDrawArrays (в зависимости от драйвера физическое копирование выполняется не сразу, а управление памятью настраивается для схемы копирования при записи - на случай, если буфер не изменяетсяили освобождается пользовательской программой, это экономит критически важную пропускную способность и циклы ЦП).