## Name

glGetAttachedShaders — Returns the handles of the shader objects attached to a program object

## C Specification

`void glGetAttachedShaders(` | GLuint program,
| GLsizei maxCount,
| GLsizei *count,
| GLuint *shaders`)`;

## Parameters

`program`

  Specifies the program object to be queried.

`maxCount`

  Specifies the size of the array for storing the returned object names.

`count`

  Returns the number of names actually returned in `shaders`.

`shaders`

  Specifies an array that is used to return the names of attached shader objects.

## Description

`glGetAttachedShaders` returns the names of the shader objects attached to `program`. The names of shader objects that are attached to `program` will be returned in `shaders.` The actual number of shader names written into `shaders` is returned in `count.` If no shader objects are attached to `program`, `count` is set to 0. The maximum number of shader names that may be returned in `shaders` is specified by `maxCount`.

If the number of names actually returned is not required (for instance, if it has just been obtained by calling glGetProgram), a value of `NULL` may be passed for count. If no shader objects are attached to `program`, a value of 0 will be returned in `count`. The actual number of attached shaders can be obtained by calling glGetProgram with the value `GL_ATTACHED_SHADERS`.

## Errors

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

`GL_INVALID_OPERATION` is generated if `program` is not a program object.

`GL_INVALID_VALUE` is generated if `maxCount` is less than 0.

## Associated Gets

glGetProgram with argument `GL_ATTACHED_SHADERS`

glIsProgram

## Version Support

| OpenGL Version
--- | ---
Function / Feature Name | 2.0 | 2.1 | 3.0 | 3.1 | 3.2 | 3.3 | 4.0 | 4.1 | 4.2 | 4.3 | 4.4 | 4.5
`glGetAttachedShaders` | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔

## See Also

glAttachShader, glDetachShader.

## 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. http://opencontent.org/openpub/.