glGetShader
3G

# glGetShaderiv

Returns a parameter from a shader object

## C Specification

    		void glGetShaderiv
    		GLuint shader
    		GLenum pname
    		GLint *params

## Parameters

`shader`

  Specifies the shader object to be queried.

`pname`

  Specifies the object parameter. Accepted symbolic names are `GL_SHADER_TYPE`, `GL_DELETE_STATUS`, `GL_COMPILE_STATUS`, `GL_INFO_LOG_LENGTH`, `GL_SHADER_SOURCE_LENGTH`.

`params`

  Returns the requested object parameter.

## Description

`glGetShader` returns in `params` the value of a parameter for a specific shader object. The following parameters are defined:

`GL_SHADER_TYPE`

  `params` returns `GL_VERTEX_SHADER` if `shader` is a vertex shader object, and `GL_FRAGMENT_SHADER` if `shader` is a fragment shader object.

`GL_DELETE_STATUS`

  `params` returns `GL_TRUE` if `shader` is currently flagged for deletion, and `GL_FALSE` otherwise.

`GL_COMPILE_STATUS`

  `params` returns `GL_TRUE` if the last compile operation on `shader` was successful, and `GL_FALSE` otherwise.

`GL_INFO_LOG_LENGTH`

  `params` returns the number of characters in the information log for `shader` including the null termination character (i.e., the size of the character buffer required to store the information log). If `shader` has no information log, a value of 0 is returned.

`GL_SHADER_SOURCE_LENGTH`

  `params` returns the length of the concatenation of the source strings that make up the shader source for the `shader`, including the null termination character. (i.e., the size of the character buffer required to store the shader source). If no source code exists, 0 is returned.

## Notes

`glGetShader` is available only if the GL version is 2.0 or greater.

If an error is generated, no change is made to the contents of `params`.

## Errors

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

`GL_INVALID_OPERATION` is generated if `shader` does not refer to a shader object.

`GL_INVALID_ENUM` is generated if `pname` is not an accepted value.

`GL_INVALID_OPERATION` is generated if `glGetShader` is executed between the execution of glBegin and the corresponding execution of glEnd.

## Associated Gets

glGetShaderInfoLog with argument `shader`

glGetShaderSource with argument `shader`

glIsShader

## See Also

glCompileShader, glCreateShader, glDeleteShader, glGetProgram, glShaderSource

## Copyright

Copyright 2003-2005 3Dlabs Inc. Ltd. 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/.