Есть структура «анимация» - тупо набор RGBA-кадров, есть класс - анимированная текстура, в котором загружаются все кадры в OpenGL и потом уже используются ID текстур. Проблема с очисткой изначальной анимации. Вот код конструктора:
AnimatedTexture::AnimatedTexture(const Animation& a)
{
    realWidth = a.width;
    realHeight = a.height;
    frameCount = a.frameCount;
    textureIDs = new GLuint[frameCount];
    glGenTextures(frameCount, textureIDs);
    
    for (int i = 0; i < frameCount; i++)
    {
        glBindTexture(GL_TEXTURE_2D, textureIDs[i]);
	
        glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, a.frames[i].width, a.frames[i].height, 0, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8, a.frames[i].data);
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
        //delete[] a.frames[i].data; //<- тут удаляется
    }
    for(int i = 0; i < frameCount; i++)
    {
        delete[] a.frames[i].data; //<- а тут нет 0_0
    }
}
Программа работает корректно в обоих случаях, только в первом занимает 350 Мб (Анимация - 300 Мб без сжатия), а во втором - 700.
Пока проверял только на Gentoo x86_64.








