Light | Dark

# docs.GL

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

# glGetShaderSource

## Name

glGetShaderSource — Returns the source code string from a shader object

## C Specification

`void glGetShaderSource(` | GLuint shader,
| GLsizei bufSize,
| GLsizei *length,
| GLchar *source`)`;

## Parameters

`shader`

  Specifies the shader object to be queried.

`bufSize`

  Specifies the size of the character buffer for storing the returned source code string.

`length`

  Returns the length of the string returned in `source` (excluding the null terminator).

`source`

  Specifies an array of characters that is used to return the source code string.

## Description

`glGetShaderSource` returns the concatenation of the source code strings from the shader object specified by `shader`. The source code strings for a shader object are the result of a previous call to glShaderSource. The string returned by the function will be null terminated.

`glGetShaderSource` returns in `source` as much of the source code string as it can, up to a maximum of `bufSize` characters. The number of characters actually returned, excluding the null termination character, is specified by `length`. If the length of the returned string is not required, a value of `NULL` can be passed in the `length` argument. The size of the buffer required to store the returned source code string can be obtained by calling glGetShaderiv with the value `GL_SHADER_SOURCE_LENGTH`.

## Errors

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

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

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

## Associated Gets

glGetShaderiv with argument `GL_SHADER_SOURCE_LENGTH`

glIsShader

## API Version Support

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

## See Also

glCreateShader, glShaderSource

## 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.