glDeleteShader - видаляє шейдерний об'єкт.
C-специфікація
void glDeleteShader (GLuint shader) ;
Параметри
shader - значення даного параметра вказує ідентифікатор який необхідно видалити.
Опис
Функція glDeleteShader вивільняє пам'ять і ідентифікатор зв'язаний з шейдерним об'єктом вказаним за допомогою параметра shader. Ефект від даної команди проявляється у відміні усіх дій виклику glCreateShader.
Якщо шейдерний об'єкт, який необхідно видалити приєднаний до об'єкта програми він буде помічений на видалення, але він не буде видалятись поки він приєднаний до якого-небудь програмного об'єкта, до будь-якого контексту рендерингу (тобто, він повинен бути від'єднаним звідусіль де даний шейдер приєднювався перед тим як його видаляти). Значення 0 для параметра shader буде ігноруватися без генерації помилок.
Для визначення чи об'єкт був помічений на видалення необхідно викликати glGetShader з аргументом shader і GL_DELETE_STATUS.
Нотатки
glDeleteShader доступний для системи OpenGL від версії 2.0 або вище.
Помилки
GL_INVALID_VALUE генерується якщо значення параметра shader не являється згенерованим системою OpenGL.
GL_INVALID_OPERATION генерується якщо glDeleteShader викликається між командами glBegin і відповідним викликом glEnd.
Пов'язані виклики
glGetAttachedShaders з об'єктом програми який необхідно опитати
glGetShader з аргументами shader i GL_DELETE_STATUS
glIsShader
Перегляньте також
glCreateProgram, glCreateShader, glDetachShader, glUseProgram
Оригінал
https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glDeleteShader.xml