Явный вызов glDeleteFramebuffers

#opengl #fbo

#opengl #fbo

Вопрос:

В руководствах по OpenGL я никогда не видел, чтобы кто-то вызывал glDeleteFramebuffers до завершения программы.

Должен ли я удалять фреймбуфер перед закрытием приложения? Или драйвер OpenGL сделает это за меня?

P.S. Тот же вопрос о текстуре glDeleteTextures .

Ответ №1:

Драйвер освободит все ресурсы, связанные с объектами OpenGL процесса, когда этот процесс завершится. Вам не нужно беспокоиться об утечках в масштабах всей системы, если приложение завершает работу без очистки.

Несмотря на то, что механизмы отличаются, поведение очень похоже на то, что происходит с выделением памяти. Если вы не освободите всю динамически выделяемую память перед выходом, вся память, выделенная приложением, все равно будет возвращена системе. (*)

Тем не менее, я думаю, что в целом хорошим стилем является явная очистка всех ресурсов перед выходом. Это также может быть полезно, если вы используете инструменты, которые обнаруживают утечки памяти.

(*) Здесь я говорю о современных полнофункциональных операционных системах, которые обычно используются на настольном компьютере, смартфоне или планшете. Я могу представить, что это может быть неверно в минимальных операционных системах.