1 <?xml version=
"1.0" encoding=
"UTF-8"?>
2 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
3 <!-- saved from url=(0013)about:internet -->
4 <?xml-stylesheet type=
"text/xsl" href=
"mathml.xsl"?><html xmlns=
"http://www.w3.org/1999/xhtml" xmlns:
pref=
"http://www.w3.org/2002/Math/preference" pref:
renderer=
"mathplayer-dl"><head><meta http-equiv=
"Content-Type" content=
"text/html; charset=UTF-8" /><link rel=
"stylesheet" type=
"text/css" href=
"opengl-man.css" /><title>glGetProgram - OpenGL
4 Reference Pages
</title><meta name=
"generator" content=
"DocBook XSL Stylesheets V1.69.1" /></head><body><div class=
"refentry" lang=
"en" xml:
lang=
"en"><a id=
"glGetProgram"></a><div class=
"titlepage"></div><div class=
"refnamediv"><h2>Name
</h2><p>glGetProgramiv — Returns a parameter from a program object
</p></div><div class=
"refsynopsisdiv"><h2>C Specification
</h2><div class=
"funcsynopsis"><table border=
"0" summary=
"Function synopsis" cellspacing=
"0" cellpadding=
"0"><tr><td><code class=
"funcdef">void
<b class=
"fsfunc">glGetProgramiv
</b>(
</code></td><td>GLuint
</td><td><var class=
"pdparam">program
</var>,
</td></tr><tr><td> </td><td>GLenum
</td><td><var class=
"pdparam">pname
</var>,
</td></tr><tr><td> </td><td>GLint *
</td><td><var class=
"pdparam">params
</var><code>)
</code>;
</td></tr></table></div></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"parameters"></a><h2>Parameters
</h2><div class=
"variablelist"><dl><dt><span class=
"term"><em class=
"parameter"><code>program
</code></em></span></dt><dd><p>Specifies the program object to be
5 queried.
</p></dd><dt><span class=
"term"><em class=
"parameter"><code>pname
</code></em></span></dt><dd><p>Specifies the object parameter. Accepted
7 <code class=
"constant">GL_DELETE_STATUS
</code>,
8 <code class=
"constant">GL_LINK_STATUS
</code>,
9 <code class=
"constant">GL_VALIDATE_STATUS
</code>,
10 <code class=
"constant">GL_INFO_LOG_LENGTH
</code>,
11 <code class=
"constant">GL_ATTACHED_SHADERS
</code>,
12 <code class=
"constant">GL_ACTIVE_ATOMIC_COUNTER_BUFFERS
</code>,
13 <code class=
"constant">GL_ACTIVE_ATTRIBUTES
</code>,
14 <code class=
"constant">GL_ACTIVE_ATTRIBUTE_MAX_LENGTH
</code>,
15 <code class=
"constant">GL_ACTIVE_UNIFORMS
</code>,
16 <code class=
"constant">GL_ACTIVE_UNIFORM_BLOCKS
</code>,
17 <code class=
"constant">GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH
</code>,
18 <code class=
"constant">GL_ACTIVE_UNIFORM_MAX_LENGTH
</code>,
19 <code class=
"constant">GL_COMPUTE_WORK_GROUP_SIZE
</code>
20 <code class=
"constant">GL_PROGRAM_BINARY_LENGTH
</code>,
21 <code class=
"constant">GL_TRANSFORM_FEEDBACK_BUFFER_MODE
</code>,
22 <code class=
"constant">GL_TRANSFORM_FEEDBACK_VARYINGS
</code>,
23 <code class=
"constant">GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH
</code>,
24 <code class=
"constant">GL_GEOMETRY_VERTICES_OUT
</code>,
25 <code class=
"constant">GL_GEOMETRY_INPUT_TYPE
</code>, and
26 <code class=
"constant">GL_GEOMETRY_OUTPUT_TYPE
</code>.
</p></dd><dt><span class=
"term"><em class=
"parameter"><code>params
</code></em></span></dt><dd><p>Returns the requested object parameter.
</p></dd></dl></div></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"description"></a><h2>Description
</h2><p><code class=
"function">glGetProgram
</code>
27 returns in
<em class=
"parameter"><code>params
</code></em>
28 the value of a parameter for a specific program object. The following parameters are defined:
</p><div class=
"variablelist"><dl><dt><span class=
"term"><code class=
"constant">GL_DELETE_STATUS
</code></span></dt><dd><p>
29 </p><p> <em class=
"parameter"><code>params
</code></em> returns
30 <code class=
"constant">GL_TRUE
</code> if
31 <em class=
"parameter"><code>program
</code></em> is currently flagged
32 for deletion, and
<code class=
"constant">GL_FALSE
</code>
33 otherwise.
</p></dd><dt><span class=
"term"><code class=
"constant">GL_LINK_STATUS
</code></span></dt><dd><p>
34 </p><p> <em class=
"parameter"><code>params
</code></em> returns
35 <code class=
"constant">GL_TRUE
</code> if the last link
36 operation on
<em class=
"parameter"><code>program
</code></em> was
37 successful, and
<code class=
"constant">GL_FALSE
</code>
38 otherwise.
</p></dd><dt><span class=
"term"><code class=
"constant">GL_VALIDATE_STATUS
</code></span></dt><dd><p>
39 </p><p> <em class=
"parameter"><code>params
</code></em> returns
40 <code class=
"constant">GL_TRUE
</code> or if the last
41 validation operation on
42 <em class=
"parameter"><code>program
</code></em> was successful, and
43 <code class=
"constant">GL_FALSE
</code>
44 otherwise.
</p></dd><dt><span class=
"term"><code class=
"constant">GL_INFO_LOG_LENGTH
</code></span></dt><dd><p>
45 </p><p> <em class=
"parameter"><code>params
</code></em> returns the
46 number of characters in the information log for
47 <em class=
"parameter"><code>program
</code></em> including the null
48 termination character (i.e., the size of the
49 character buffer required to store the information
50 log). If
<em class=
"parameter"><code>program
</code></em> has no
51 information log, a value of
0 is
52 returned.
</p></dd><dt><span class=
"term"><code class=
"constant">GL_ATTACHED_SHADERS
</code></span></dt><dd><p>
53 </p><p> <em class=
"parameter"><code>params
</code></em> returns the
54 number of shader objects attached to
55 <em class=
"parameter"><code>program
</code></em>.
</p></dd><dt><span class=
"term"><code class=
"constant">GL_ACTIVE_ATOMIC_COUNTER_BUFFERS
</code></span></dt><dd><p>
56 </p><p> <em class=
"parameter"><code>params
</code></em> returns the
57 number of active attribute atomic counter buffers used by
58 <em class=
"parameter"><code>program
</code></em>.
</p></dd><dt><span class=
"term"><code class=
"constant">GL_ACTIVE_ATTRIBUTES
</code></span></dt><dd><p>
59 </p><p> <em class=
"parameter"><code>params
</code></em> returns the
60 number of active attribute variables for
61 <em class=
"parameter"><code>program
</code></em>.
</p></dd><dt><span class=
"term"><code class=
"constant">GL_ACTIVE_ATTRIBUTE_MAX_LENGTH
</code></span></dt><dd><p>
62 </p><p> <em class=
"parameter"><code>params
</code></em> returns the
63 length of the longest active attribute name for
64 <em class=
"parameter"><code>program
</code></em>, including the null
65 termination character (i.e., the size of the
66 character buffer required to store the longest
67 attribute name). If no active attributes exist,
0 is
68 returned.
</p></dd><dt><span class=
"term"><code class=
"constant">GL_ACTIVE_UNIFORMS
</code></span></dt><dd><p>
69 </p><p> <em class=
"parameter"><code>params
</code></em> returns the
70 number of active uniform variables for
71 <em class=
"parameter"><code>program
</code></em>.
</p></dd><dt><span class=
"term"><code class=
"constant">GL_ACTIVE_UNIFORM_MAX_LENGTH
</code></span></dt><dd><p>
72 </p><p> <em class=
"parameter"><code>params
</code></em> returns the
73 length of the longest active uniform variable name
74 for
<em class=
"parameter"><code>program
</code></em>, including the
75 null termination character (i.e., the size of the
76 character buffer required to store the longest
77 uniform variable name). If no active uniform
78 variables exist,
0 is returned.
</p></dd><dt><span class=
"term"><code class=
"constant">GL_PROGRAM_BINARY_LENGTH
</code></span></dt><dd><p>
79 </p><p> <em class=
"parameter"><code>params
</code></em> returns the
80 length of the program binary, in bytes that will be returned by
81 a call to
<a href=
"glGetProgramBinary.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGetProgramBinary
</span></span></a>.
82 When a progam's
<code class=
"constant">GL_LINK_STATUS
</code> is
<code class=
"constant">GL_FALSE
</code>,
83 its program binary length is zero.
84 </p></dd><dt><span class=
"term"><code class=
"constant">GL_COMPUTE_WORK_GROUP_SIZE
</code></span></dt><dd><p>
85 </p><p> <em class=
"parameter"><code>params
</code></em> returns an
86 array of three integers containing the local work group size of
87 the compute program as specified by its input layout qualifier(s).
88 <em class=
"parameter"><code>program
</code></em> must be the name of a program object
89 that has been previously linked successfully and contains a binary
90 for the compute shader stage.
91 </p></dd><dt><span class=
"term"><code class=
"constant">GL_TRANSFORM_FEEDBACK_BUFFER_MODE
</code></span></dt><dd><p>
92 </p><p> <em class=
"parameter"><code>params
</code></em> returns a symbolic constant
93 indicating the buffer mode used when transform feedback is active.
94 This may be
<code class=
"constant">GL_SEPARATE_ATTRIBS
</code> or
95 <code class=
"constant">GL_INTERLEAVED_ATTRIBS
</code>.
</p></dd><dt><span class=
"term"><code class=
"constant">GL_TRANSFORM_FEEDBACK_VARYINGS
</code></span></dt><dd><p>
96 </p><p> <em class=
"parameter"><code>params
</code></em> returns the number of varying
97 variables to capture in transform feedback mode for the program.
</p></dd><dt><span class=
"term"><code class=
"constant">GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH
</code></span></dt><dd><p>
98 </p><p> <em class=
"parameter"><code>params
</code></em> returns the length of the longest
99 variable name to be used for transform feedback, including the null-terminator.
</p></dd><dt><span class=
"term"><code class=
"constant">GL_GEOMETRY_VERTICES_OUT
</code></span></dt><dd><p>
100 </p><p> <em class=
"parameter"><code>params
</code></em> returns the maximum number of vertices
101 that the geometry shader in
<em class=
"parameter"><code>program
</code></em> will output.
</p></dd><dt><span class=
"term"><code class=
"constant">GL_GEOMETRY_INPUT_TYPE
</code></span></dt><dd><p>
102 </p><p> <em class=
"parameter"><code>params
</code></em> returns a symbolic constant indicating
103 the primitive type accepted as input to the geometry shader contained in
104 <em class=
"parameter"><code>program
</code></em>.
</p></dd><dt><span class=
"term"><code class=
"constant">GL_GEOMETRY_OUTPUT_TYPE
</code></span></dt><dd><p>
105 </p><p> <em class=
"parameter"><code>params
</code></em> returns a symbolic constant indicating
106 the primitive type that will be output by the geometry shader contained
107 in
<em class=
"parameter"><code>program
</code></em>.
</p></dd></dl></div></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"notes"></a><h2>Notes
</h2><p>
108 <code class=
"constant">GL_ACTIVE_UNIFORM_BLOCKS
</code> and
109 <code class=
"constant">GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH
</code>
110 are available only if the GL version
3.1 or greater.
112 <code class=
"constant">GL_GEOMETRY_VERTICES_OUT
</code>,
<code class=
"constant">GL_GEOMETRY_INPUT_TYPE
</code>
113 and
<code class=
"constant">GL_GEOMETRY_OUTPUT_TYPE
</code> are accepted only if the GL
114 version is
3.2 or greater.
116 <code class=
"constant">GL_COMPUTE_WORK_GROUP_SIZE
</code> is accepted only if the
117 GL version is
4.3 or greater.
118 </p><p>If an error is generated, no change is made to the
119 contents of
<em class=
"parameter"><code>params
</code></em>.
</p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"errors"></a><h2>Errors
</h2><p><code class=
"constant">GL_INVALID_VALUE
</code>
120 is generated if
<em class=
"parameter"><code>program
</code></em>
121 is not a value generated by OpenGL.
</p><p><code class=
"constant">GL_INVALID_OPERATION
</code>
122 is generated if
<em class=
"parameter"><code>program
</code></em>
123 does not refer to a program object.
</p><p><code class=
"constant">GL_INVALID_OPERATION
</code> is generated if
124 <em class=
"parameter"><code>pname
</code></em> is
<code class=
"constant">GL_GEOMETRY_VERTICES_OUT
</code>,
125 <code class=
"constant">GL_GEOMETRY_INPUT_TYPE
</code>, or
<code class=
"constant">GL_GEOMETRY_OUTPUT_TYPE
</code>,
126 and
<em class=
"parameter"><code>program
</code></em> does not contain a geometry shader.
</p><p><code class=
"constant">GL_INVALID_ENUM
</code>
127 is generated if
<em class=
"parameter"><code>pname
</code></em>
128 is not an accepted value.
</p><p><code class=
"constant">GL_INVALID_OPERATION
</code> is generated if
<em class=
"parameter"><code>pname
</code></em>
129 is
<code class=
"constant">GL_COMPUTE_WORK_GROUP_SIZE
</code> and
<em class=
"parameter"><code>program
</code></em>
130 does not contain a binary for the compute shader stage.
</p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"associatedgets"></a><h2>Associated Gets
</h2><p><a href=
"glGetActiveAttrib.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGetActiveAttrib
</span></span></a>
131 with argument
<em class=
"parameter"><code>program
</code></em></p><p><a href=
"glGetActiveUniform.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGetActiveUniform
</span></span></a>
132 with argument
<em class=
"parameter"><code>program
</code></em></p><p><a href=
"glGetAttachedShaders.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGetAttachedShaders
</span></span></a>
133 with argument
<em class=
"parameter"><code>program
</code></em></p><p><a href=
"glGetProgramInfoLog.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGetProgramInfoLog
</span></span></a>
134 with argument
<em class=
"parameter"><code>program
</code></em></p><p><a href=
"glIsProgram.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glIsProgram
</span></span></a>
135 <em class=
"parameter"><code></code></em></p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"seealso"></a><h2>See Also
</h2><p><a href=
"glAttachShader.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glAttachShader
</span></span></a>,
136 <a href=
"glCreateProgram.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glCreateProgram
</span></span></a>,
137 <a href=
"glDeleteProgram.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glDeleteProgram
</span></span></a>,
138 <a href=
"glGetShader.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGetShader
</span></span></a>,
139 <a href=
"glLinkProgram.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glLinkProgram
</span></span></a>,
140 <a href=
"glValidateProgram.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glValidateProgram
</span></span></a></p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"Copyright"></a><h2>Copyright
</h2><p>
141 Copyright
<span class=
"trademark"></span>©
2003-
2005 3Dlabs Inc. Ltd.
142 Copyright
<span class=
"trademark"></span>©
2010-
2011 Khronos Group.
143 This material may be distributed subject to the terms and conditions set forth in
144 the Open Publication License, v
1.0,
8 June
1999.
145 <a href=
"http://opencontent.org/openpub/" target=
"_top">http://opencontent.org/openpub/
</a>.
146 </p></div></div></body></html>