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, `GL_GEOMETRY_SHADER` if shader is a geometry 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

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.

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