Обычно я делаю что-то вроде этого:
GenerateLinePoly(Contour[i].DrawingPoints, Contour[i].Outline.OutlineWidth);
Contour[i].Outline.OutlineSize = OutlineVec.size() / 2;
glBindBufferARB(GL_ARRAY_BUFFER_ARB,Contour[i].Outline.OutlineVBO);
glBufferDataARB(GL_ARRAY_BUFFER_ARB,sizeof(GLfloat) * OutlineVec.size(),
&OutlineVec[0],GL_DYNAMIC_COPY_ARB);
в своем конструкторе классов я делаю GlGenBuffers для всех этих и я гарантирую, что я использую GlDeleteBuffersARB в деконструкторе.использование идет вверх, как ожидалось.Но после уничтожения объекта память, занятая буферами, остается.Я не думаю, что это утечка памяти.Я вызываю GlDeleteBuffers, и он не очищает всю используемую память.Это нормальное поведение?Что может вызвать это?
Если я только сделаю:
GenerateLinePoly(Contour[i].DrawingPoints, Contour[i].Outline.OutlineWidth);
Contour[i].Outline.OutlineSize = OutlineVec.size() / 2;
Тогда моя память будет управляться идеально, как я и ожидал.
Спасибо