glDetachShader - від'єднює об'єкт шейдера від програмного об'єкта до якого він прикріплений.

C-специфікація

void glDetachShader (GLuint program,
                     GLuint shader) ;

Параметри

program вказує програмний об'єкт з якого необхідно від'єднати шейдерний об'єкт

shader вказує шейдерний об'єкт який необхідно від'єднати

Опис

Функція glDetachShader від'єднює шейдерний об'єкт вказаний за допомогою параметра shader від програмного об'єкта вказаного за допомогою параметра program. Дана команда може використовуватися для відміни дій команди glAttachShader.

Якщо shader вже був помічений на видалення за допомогою виклику glDeleteShader і він не прикріплений до іншого програмного об'єкта, він буде видалений після від'єднання.

Нотатки

Функція glDetachShader доступна в системах OpenGL версії 2.0 і вище.

Помилки

GL_INVALID_VALUE генерується якщо параметр program або shader містить значення, яке не було створене системою OpenGL.

GL_INVALID_OPERATION генерується якщо program не являється програмним об'єктом.

GL_INVALID_OPERATION генерується якщо shader не містить ідентифікатор шейдерного об'єкта.

GL_INVALID_OPERATION генерується якщо шейдер shader не прикріплений до програми program.

GL_INVALID_OPERATION генерується якщо glDetachShader виконується між відповідними викликами glBegin і glEnd.

Пов'язані параметри

glGetAttachedShaders з коректним параметром ідентифікатора програмного об'єкта.

glGetShader з аргументам shader і GL_DELETE_STATUS

glIsProgram

glIsShader

Перегляньте також

glAttachShader

Оргигінал

https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glDetachShader.xml