Light | Dark

# docs.GL

OpenGL 4
OpenGL 3
OpenGL 2
OpenGL ES 3
OpenGL ES 2

# glDeleteProgram

## Name

glDeleteProgram — Deletes a program object

## C Specification

`void glDeleteProgram(` | GLuint program`)`;

## Parameters

`program`

  Specifies the program object to be deleted.

## Description

`glDeleteProgram` frees the memory and invalidates the name associated with the program object specified by `program.` This command effectively undoes the effects of a call to glCreateProgram.

If a program object is in use as part of current rendering state, it will be flagged for deletion, but it will not be deleted until it is no longer part of current state for any rendering context. If a program object to be deleted has shader objects attached to it, those shader objects will be automatically detached but not deleted unless they have already been flagged for deletion by a previous call to glDeleteShader. A value of 0 for `program` will be silently ignored.

To determine whether a program object has been flagged for deletion, call glGetProgramiv with arguments `program` and `GL_DELETE_STATUS`.

## Errors

`GL_INVALID_VALUE` is generated if `program` is not a value generated by OpenGL.

## Associated Gets

glGet with argument `GL_CURRENT_PROGRAM`

glGetProgramiv with arguments `program` and `GL_DELETE_STATUS`

glIsProgram

## API Version Support

| OpenGL ES API Version
--- | ---
Function Name | 2.0 | 3.0 | 3.1
glDeleteProgram | ✔ | ✔ | ✔

## See Also

glCreateShader, glDetachShader, glUseProgram

## Copyright

Copyright © 2003-2005 3Dlabs Inc. Ltd. Copyright © 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. https://opencontent.org/openpub/.

Think you can improve this page? Edit this page on GitHub.