Eliminazione

Anche se sarebbe comunque buona pratica, in brevi programmi non è necessario rimuovere gli shader, perchè tutti gli oggetti di openGL sono cancellati automaticamente all'uscita.
Ciò non vale per applicazioni complesse, perciò OpenGL definisce alcune funzioni per cancellare gli shader.

Per cominciare, si deve scollegare lo shader da tutti i program a cui è collegato. Se si tenta di cancellare uno shader che è ancora collegato a un program, la funzione ritorna senza nessun effetto immediato, ma lo shader è cancellato non appena viene scollegato.

void glDetachShader(GLuint program, GLuint shader);

Dove program e shader sono rispettivamente gli id del program e dello shader che devono essere separati.

Dopodiché si può eliminare lo shader:

void glDeleteShader(GLuint shader);

Allo stesso modo, si possono eliminare i program. Se viene eliminato il program attualmente in uso (selezionato con glUseProgram), la funzione si limita a marcare il program per essere cancellato appena non sarà più in uso.

void glDeleteProgram(GLuint program);

Copyright © 2011 Riccardo Monica
Eccetto ove espressamente indicato altrimenti, il contenuto di questa pagina è disponibile secondo la licenza Creative Commons Attribuzione - Condividi allo stesso modo 3.0.