GLAPI/glGetProgram

From OpenGL.org
Jump to: navigation, search
glGetProgramiv
Core in version 4.4
Core since version 2.0

glGetProgramiv: Returns a parameter from a program object

Function Definition

 void glGetProgramiv(GLuint program​, GLenum pname​, GLint *params​);
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_ATOMIC_COUNTER_BUFFERS​, GL_ACTIVE_ATTRIBUTES​, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH​, GL_ACTIVE_UNIFORMS​, GL_ACTIVE_UNIFORM_BLOCKS​, GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH​, GL_ACTIVE_UNIFORM_MAX_LENGTH​, GL_COMPUTE_WORK_GROUP_SIZE​GL_PROGRAM_BINARY_LENGTH​, GL_TRANSFORM_FEEDBACK_BUFFER_MODE​, GL_TRANSFORM_FEEDBACK_VARYINGS​, GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH​, GL_GEOMETRY_VERTICES_OUT​, GL_GEOMETRY_INPUT_TYPE​, and GL_GEOMETRY_OUTPUT_TYPE​.
params
Returns the requested object parameter.

Description

glGetProgram 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_ATOMIC_COUNTER_BUFFERS​

params​ returns the number of active attribute atomic counter buffers used by 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.

GL_PROGRAM_BINARY_LENGTH​

params​ returns the length of the program binary, in bytes that will be returned by a call to glGetProgramBinary. When a progam's GL_LINK_STATUS​ is GL_FALSE​, its program binary length is zero.

GL_COMPUTE_WORK_GROUP_SIZE​

params​ returns an array of three integers containing the local work group size of the compute program as specified by its input layout qualifier(s). program​ must be the name of a program object that has been previously linked successfully and contains a binary for the compute shader stage.

GL_TRANSFORM_FEEDBACK_BUFFER_MODE​

params​ returns a symbolic constant indicating the buffer mode used when transform feedback is active. This may be GL_SEPARATE_ATTRIBS​ or GL_INTERLEAVED_ATTRIBS​.

GL_TRANSFORM_FEEDBACK_VARYINGS​

params​ returns the number of varying variables to capture in transform feedback mode for the program.

GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH​

params​ returns the length of the longest variable name to be used for transform feedback, including the null-terminator.

GL_GEOMETRY_VERTICES_OUT​

params​ returns the maximum number of vertices that the geometry shader in program​ will output.

GL_GEOMETRY_INPUT_TYPE​

params​ returns a symbolic constant indicating the primitive type accepted as input to the geometry shader contained in program​.

GL_GEOMETRY_OUTPUT_TYPE​

params​ returns a symbolic constant indicating the primitive type that will be output by the geometry shader contained in program​.

Notes

GL_ACTIVE_UNIFORM_BLOCKS​ and GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH​ are available only if the GL version 3.1 or greater.

GL_GEOMETRY_VERTICES_OUT​, GL_GEOMETRY_INPUT_TYPE​ and GL_GEOMETRY_OUTPUT_TYPE​ are accepted only if the GL version is 3.2 or greater.

GL_COMPUTE_WORK_GROUP_SIZE​ is accepted only if the GL version is 4.3 or greater.

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

Errors

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.

GL_INVALID_OPERATION​ is generated if pname​ is GL_GEOMETRY_VERTICES_OUT​, GL_GEOMETRY_INPUT_TYPE​, or GL_GEOMETRY_OUTPUT_TYPE​, and program​ does not contain a geometry shader.

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

GL_INVALID_OPERATION​ is generated if pname​ is GL_COMPUTE_WORK_GROUP_SIZE​ and program​ does not contain a binary for the compute shader stage.

Associated Gets

glGetActiveAttrib with argument program​

glGetActiveUniform with argument program​

glGetAttachedShaders with argument program​

glGetProgramInfoLog with argument program​

glIsProgram

See Also

glAttachShader, glCreateProgram, glCreateShaderProgram, glDeleteProgram, glGetShader, glLinkProgram, glValidateProgram

Copyright

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