#opengl #fbo
#opengl #fbo
Вопрос:
В руководствах по OpenGL я никогда не видел, чтобы кто-то вызывал glDeleteFramebuffers
до завершения программы.
Должен ли я удалять фреймбуфер перед закрытием приложения? Или драйвер OpenGL сделает это за меня?
P.S. Тот же вопрос о текстуре glDeleteTextures
.
Ответ №1:
Драйвер освободит все ресурсы, связанные с объектами OpenGL процесса, когда этот процесс завершится. Вам не нужно беспокоиться об утечках в масштабах всей системы, если приложение завершает работу без очистки.
Несмотря на то, что механизмы отличаются, поведение очень похоже на то, что происходит с выделением памяти. Если вы не освободите всю динамически выделяемую память перед выходом, вся память, выделенная приложением, все равно будет возвращена системе. (*)
Тем не менее, я думаю, что в целом хорошим стилем является явная очистка всех ресурсов перед выходом. Это также может быть полезно, если вы используете инструменты, которые обнаруживают утечки памяти.
(*) Здесь я говорю о современных полнофункциональных операционных системах, которые обычно используются на настольном компьютере, смартфоне или планшете. Я могу представить, что это может быть неверно в минимальных операционных системах.