glGetProgramiv

3G

glGetProgramiv

return a parameter from a program object

# C Specification

    		void glGetProgramiv
    		GLuint program
    		GLenum pname
    		GLint *params

## Parameters

`program`

- Specifies the program object to be queried.

`pname`

- Specifies the object parameter. Accepted symbolic names are `GL_DELETE_STATUS`, `GL_LINK_STATUS`, `GL_VALIDATE_STATUS`, `GL_INFO_LOG_LENGTH`, `GL_ATTACHED_SHADERS`, `GL_ACTIVE_ATTRIBUTES`, `GL_ACTIVE_ATTRIBUTE_MAX_LENGTH`, `GL_ACTIVE_UNIFORMS`, `GL_ACTIVE_UNIFORM_MAX_LENGTH`.

`params`

- Returns the requested object parameter.

## Description

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

`GL_DELETE_STATUS`

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

`GL_LINK_STATUS`

- `params` returns `GL_TRUE` if the last link operation on `program` was successful, and `GL_FALSE` otherwise.

`GL_VALIDATE_STATUS`

- `params` returns `GL_TRUE` or if the last validation operation on `program` was successful, and `GL_FALSE` otherwise.

`GL_INFO_LOG_LENGTH`

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

`GL_ATTACHED_SHADERS`

- `params` returns the number of shader objects attached to `program`.

`GL_ACTIVE_ATTRIBUTES`

- `params` returns the number of active attribute variables for `program`.

`GL_ACTIVE_ATTRIBUTE_MAX_LENGTH`

- `params` returns the length of the longest active attribute name for `program`, including the null termination character (i.e., the size of the character buffer required to store the longest attribute name). If no active attributes exist, 0 is returned.

`GL_ACTIVE_UNIFORMS`

- `params` returns the number of active uniform variables for `program`.

`GL_ACTIVE_UNIFORM_MAX_LENGTH`

- `params` returns the length of the longest active uniform variable name for `program`, including the null termination character (i.e., the size of the character buffer required to store the longest uniform variable name). If no active uniform variables exist, 0 is returned.

## Notes

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

## Errors

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

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

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

## Associated Gets

glGetActiveAttrib

with argument `program`

glGetActiveUniform

with argument `program`

glGetAttachedShaders

with argument `program`

glGetProgramInfoLog

with argument `program`

glIsProgram

``

## See Also

glAttachShader

,

glCreateProgram

,

glDeleteProgram

,

glGetShaderiv

,

glLinkProgram

,

glValidateProgram

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