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