После успешной glLinkProgram следует удалить /отсоединить мои шейдеры?

После того, как у меня есть связанная программа и подумайте о защитном программировании, следует ли удалить и отсоединить шейдеры, используемые для связи этой программы?

Если да, то собирается ли освобождать любые ресурсы? Или эти объекты шейдера будут освобождены только после вызова glDeleteProgram?

edit: Только для пояснения, что я делаю (что согласуется с ответом):

  

glCreateShader -> glShaderSource -> glCompileShader -> glCreateProgram -> glAttachShader -> glLinkProgram -> glDetachShader -> glDeleteShader -> используя эту шейдерную программу -> и когда мне больше не нужен этот шейдер glDeleteProgram

40 голосов | спросил grprado 23 Jam1000000amWed, 23 Jan 2013 06:53:43 +040013 2013, 06:53:43

2 ответа


42

Да, вы всегда должны это делать. Я не узнал об этом до недавнего времени, но шейдер на самом деле не будет удален с помощью glDeleteShader, пока он не будет удален. Он упоминается на странице man-страницы для glDetachShader

РЕДАКТИРОВАТЬ : почти не хватало бит об удалении шейдеров. Да, вы должны сделать это, поскольку он освобождает память, используемую для хранения источника шейдера и несвязанного объектного кода. Это более подробно описано в этом вопросе StackOverflow .

ответил Robert Rouhani 23 Jam1000000amWed, 23 Jan 2013 06:58:22 +040013 2013, 06:58:22
2

Порядок прав, но вам действительно не нужно отключать шейдеры, потому что вызов glDeleteProgram делает это для вас со всеми прикрепленными шейдерами, а затем они автоматически удаляются (если они были помечены для удаления с помощью функции glDeleteShader func).

Ссылка: http://www.opengl.org/sdk/docs /man /xhtml /glDeleteProgram.xml .

ответил davidv 8 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 08 Sep 2013 17:30:15 +0400 2013, 17:30:15

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132