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 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
|
<!DOCTYPE refentry [ <!ENTITY % mathent SYSTEM "math.ent"> %mathent; ]>
<!-- Converted by db4-upgrade version 1.1 -->
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="glGetProgramStage">
<info>
<copyright>
<year>2010-2014</year>
<holder>Khronos Group.</holder>
</copyright>
</info>
<refmeta>
<refentrytitle>glGetProgramStage</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glGetProgramStage</refname>
<refpurpose>retrieve properties of a program object corresponding to a specified shader stage</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGetProgramStageiv</function></funcdef>
<paramdef>GLuint <parameter>program</parameter></paramdef>
<paramdef>GLenum <parameter>shadertype</parameter></paramdef>
<paramdef>GLenum <parameter>pname</parameter></paramdef>
<paramdef>GLint *<parameter>values</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 xml:id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>program</parameter></term>
<listitem>
<para>
Specifies the name of the program containing shader stage.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>shadertype</parameter></term>
<listitem>
<para>
Specifies the shader stage from which to query for the subroutine parameter. <parameter>shadertype</parameter>
must be one of <constant>GL_VERTEX_SHADER</constant>, <constant>GL_TESS_CONTROL_SHADER</constant>,
<constant>GL_TESS_EVALUATION_SHADER</constant>, <constant>GL_GEOMETRY_SHADER</constant> or
<constant>GL_FRAGMENT_SHADER</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>pname</parameter></term>
<listitem>
<para>
Specifies the parameter of the shader to query. <parameter>pname</parameter>
must be <constant>GL_ACTIVE_SUBROUTINE_UNIFORMS</constant>,
<constant>GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS</constant>,
<constant>GL_ACTIVE_SUBROUTINES</constant>,
<constant>GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH</constant>,
or <constant>GL_ACTIVE_SUBROUTINE_MAX_LENGTH</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>values</parameter></term>
<listitem>
<para>
Specifies the address of a variable into which the queried value or values will be placed.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 xml:id="description"><title>Description</title>
<para>
<function>glGetProgramStage</function> queries a parameter of a shader stage attached to a program object.
<parameter>program</parameter> contains the name of the program to which the shader is attached. <parameter>shadertype</parameter>
specifies the stage from which to query the parameter. <parameter>pname</parameter> specifies which parameter
should be queried. The value or values of the parameter to be queried is returned in the variable whose address
is given in <parameter>values</parameter>.
</para>
<para>
If <parameter>pname</parameter> is <constant>GL_ACTIVE_SUBROUTINE_UNIFORMS</constant>, the number
of active subroutine variables in the stage is returned in <parameter>values</parameter>.
</para>
<para>
If <parameter>pname</parameter> is <constant>GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS</constant>,
the number of active subroutine variable locations in the stage is returned in <parameter>values</parameter>.
</para>
<para>
If <parameter>pname</parameter> is <constant>GL_ACTIVE_SUBROUTINES</constant>,
the number of active subroutines in the stage is returned in <parameter>values</parameter>.
</para>
<para>
If <parameter>pname</parameter> is <constant>GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH</constant>,
the length of the longest subroutine uniform for the stage is returned in <parameter>values</parameter>.
</para>
<para>
If <parameter>pname</parameter> is <constant>GL_ACTIVE_SUBROUTINE_MAX_LENGTH</constant>,
the length of the longest subroutine name for the stage is returned in <parameter>values</parameter>. The
returned name length includes space for the null-terminator.
</para>
<para>
If there is no shader present of type <parameter>shadertype</parameter>, the returned value will be consistent
with a shader containing no subroutines or subroutine uniforms.
</para>
</refsect1>
<refsect1 xml:id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>shadertype</parameter> or <parameter>pname</parameter>
is not one of the accepted values.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>program</parameter> is not the name of an
existing program object.
</para>
</refsect1>
<refsect1 xml:id="versions"><title>Version Support</title>
<informaltable>
<tgroup cols="13" align="left">
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="apifunchead.xml" xpointer="xpointer(/*/*)"/>
<tbody>
<row>
<entry><function>glGetProgramStageiv</function></entry>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="apiversion.xml" xpointer="xpointer(/*/*[@role='40']/*)"/>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 xml:id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glGetProgram</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 xml:id="Copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"/> 2010-2014 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.
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://opencontent.org/openpub/">http://opencontent.org/openpub/</link>.
</para>
</refsect1>
</refentry>
|