forked from BSVino/docs.gl
-
Notifications
You must be signed in to change notification settings - Fork 0
/
glGetShaderiv.xhtml
75 lines (75 loc) · 8.65 KB
/
glGetShaderiv.xhtml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<div class="refentry"><a id="glGetShaderiv"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>glGetShaderiv — return a parameter from a shader object</p></div><div class="refsynopsisdiv"><h2>C Specification</h2><div class="funcsynopsis"><table class="funcprototype-table" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <strong class="fsfunc">glGetShaderiv</strong>(</code></td><td>GLuint <var class="pdparam">shader</var>, </td></tr><tr><td> </td><td>GLenum <var class="pdparam">pname</var>, </td></tr><tr><td> </td><td>GLint *<var class="pdparam">params</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a id="parameters"></a><h2>Parameters</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>shader</code></em></span></dt><dd><p>Specifies the shader object to be
queried.</p></dd><dt><span class="term"><em class="parameter"><code>pname</code></em></span></dt><dd><p>Specifies the object parameter. Accepted
symbolic names are
<code class="constant">GL_SHADER_TYPE</code>,
<code class="constant">GL_DELETE_STATUS</code>,
<code class="constant">GL_COMPILE_STATUS</code>,
<code class="constant">GL_INFO_LOG_LENGTH</code>,
<code class="constant">GL_SHADER_SOURCE_LENGTH</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"><a id="description"></a><h2>Description</h2><p><code class="function">glGetShaderiv</code>
returns in <em class="parameter"><code>params</code></em>
the value of a parameter for a specific shader object. The
following parameters are defined:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">GL_SHADER_TYPE</code></span></dt><dd><p> <em class="parameter"><code>params</code></em> returns
<code class="constant">GL_VERTEX_SHADER</code> if
<em class="parameter"><code>shader</code></em> is a vertex shader
object, and <code class="constant">GL_FRAGMENT_SHADER</code>
if <em class="parameter"><code>shader</code></em> is a fragment
shader object.</p></dd><dt><span class="term"><code class="constant">GL_DELETE_STATUS</code></span></dt><dd><p> <em class="parameter"><code>params</code></em> returns
<code class="constant">GL_TRUE</code> if
<em class="parameter"><code>shader</code></em> is currently flagged
for deletion, and <code class="constant">GL_FALSE</code>
otherwise.</p></dd><dt><span class="term"><code class="constant">GL_COMPILE_STATUS</code></span></dt><dd><p>For implementations that support a shader compiler,
<em class="parameter"><code>params</code></em> returns
<code class="constant">GL_TRUE</code> if the last compile
operation on <em class="parameter"><code>shader</code></em> was
successful, and <code class="constant">GL_FALSE</code>
otherwise.</p></dd><dt><span class="term"><code class="constant">GL_INFO_LOG_LENGTH</code></span></dt><dd><p>For implementations that support a shader compiler,
<em class="parameter"><code>params</code></em> returns the
number of characters in the information log for
<em class="parameter"><code>shader</code></em> including the null
termination character (i.e., the size of the
character buffer required to store the information
log). If <em class="parameter"><code>shader</code></em> has no
information log, a value of 0 is returned.</p></dd><dt><span class="term"><code class="constant">GL_SHADER_SOURCE_LENGTH</code></span></dt><dd><p>For implementations that support a shader compiler,
<em class="parameter"><code>params</code></em> returns the
length of the concatenation of the source strings
that make up the shader source for the
<em class="parameter"><code>shader</code></em>, 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.</p></dd></dl></div></div><div class="refsect1"><a id="notes"></a><h2>Notes</h2><p>Shader compiler support is optional, and thus must be queried
before use by calling <a class="citerefentry" href="glGet"><span class="citerefentry"><span class="refentrytitle">glGet</span></span></a>
with argument <code class="constant">GL_SHADER_COMPILER</code>. <a class="citerefentry" href="glShaderSource"><span class="citerefentry"><span class="refentrytitle">glShaderSource</span></span></a>,
<a class="citerefentry" href="glCompileShader"><span class="citerefentry"><span class="refentrytitle">glCompileShader</span></span></a>,
<a class="citerefentry" href="glGetShaderPrecisionFormat"><span class="citerefentry"><span class="refentrytitle">glGetShaderPrecisionFormat</span></span></a>, and
<a class="citerefentry" href="glReleaseShaderCompiler"><span class="citerefentry"><span class="refentrytitle">glReleaseShaderCompiler</span></span></a> will
each generate <code class="constant">GL_INVALID_OPERATION</code> on implementations
that do not support a shader compiler, as will <code class="function">glGetShaderiv</code> queries of
<code class="constant">GL_COMPILE_STATUS</code>, <code class="constant">GL_INFO_LOG_LENGTH</code>, and
<code class="constant">GL_SHADER_SOURCE_LENGTH</code>. Such implementations instead offer the
<a class="citerefentry" href="glShaderBinary"><span class="citerefentry"><span class="refentrytitle">glShaderBinary</span></span></a>
alternative for supplying a pre-compiled shader binary.</p><p>If an error is generated, no change is made to the
contents of <em class="parameter"><code>params</code></em>.</p></div><div class="refsect1"><a id="errors"></a><h2>Errors</h2><p><code class="constant">GL_INVALID_ENUM</code> is generated if
<em class="parameter"><code>pname</code></em> is not an accepted value.</p><p><code class="constant">GL_INVALID_VALUE</code> is generated if
<em class="parameter"><code>shader</code></em> is not a value generated by
OpenGL.</p><p><code class="constant">GL_INVALID_OPERATION</code> is generated if
<em class="parameter"><code>pname</code></em> is <code class="constant">GL_COMPILE_STATUS</code>,
<code class="constant">GL_INFO_LOG_LENGTH</code>, or <code class="constant">GL_SHADER_SOURCE_LENGTH</code>
but a shader compiler is not supported.</p><p><code class="constant">GL_INVALID_OPERATION</code> is generated if
<em class="parameter"><code>shader</code></em> does not refer to a shader
object.</p></div><div class="refsect1"><a id="associatedgets"></a><h2>Associated Gets</h2><p><a class="citerefentry" href="glGet"><span class="citerefentry"><span class="refentrytitle">glGet</span></span></a>
with argument <code class="constant">GL_SHADER_COMPILER</code></p><p><a class="citerefentry" href="glGetShaderInfoLog"><span class="citerefentry"><span class="refentrytitle">glGetShaderInfoLog</span></span></a>
with argument <em class="parameter"><code>shader</code></em></p><p><a class="citerefentry" href="glGetShaderSource"><span class="citerefentry"><span class="refentrytitle">glGetShaderSource</span></span></a>
with argument <em class="parameter"><code>shader</code></em></p><p><a class="citerefentry" href="glIsShader"><span class="citerefentry"><span class="refentrytitle">glIsShader</span></span></a></p></div>
{$pipelinestall}{$examples}
<div class="refsect1"><a id="seealso"></a><h2>See Also</h2><p><a class="citerefentry" href="glCompileShader"><span class="citerefentry"><span class="refentrytitle">glCompileShader</span></span></a>,
<a class="citerefentry" href="glCreateShader"><span class="citerefentry"><span class="refentrytitle">glCreateShader</span></span></a>,
<a class="citerefentry" href="glDeleteShader"><span class="citerefentry"><span class="refentrytitle">glDeleteShader</span></span></a>,
<a class="citerefentry" href="glGetProgramiv"><span class="citerefentry"><span class="refentrytitle">glGetProgramiv</span></span></a>,
<a class="citerefentry" href="glShaderSource"><span class="citerefentry"><span class="refentrytitle">glShaderSource</span></span></a>,
<a class="citerefentry" href="glShaderBinary"><span class="citerefentry"><span class="refentrytitle">glShaderBinary</span></span></a></p></div><div class="refsect1"><div id="Copyright"><h2>Copyright</h2><p>
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.
<a class="ulink" href="https://opencontent.org/openpub/" target="_top">https://opencontent.org/openpub/</a>.
</p></div></div></div>