GLAPI/glGetProgram

From OpenGL Wiki
< GLAPI
Revision as of 19:38, 27 September 2012 by AlfonsesCategoryBot (talk | contribs) (Bot: Adding better formatting.)
Jump to navigation Jump to search
glGetProgramiv
Core in version 4.6
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_SIZEGL_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/.