File: glGetUniform.xml

package info (click to toggle)
khronos-opengl-man4 1.0~svn27841-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 24,888 kB
  • ctags: 377
  • sloc: xml: 188,408; makefile: 1,153; python: 736; sh: 49; php: 7; sed: 2
file content (159 lines) | stat: -rw-r--r-- 7,309 bytes parent folder | download
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
          "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
<refentry id="glGetUniform">
    <refentryinfo>
        <copyright>
            <year>2003-2005</year>
            <holder>3Dlabs Inc. Ltd.</holder>
        </copyright>
        <copyright>
            <year>2010-2013</year>
            <holder>Khronos Group</holder>
        </copyright>
    </refentryinfo>
    <refmeta>
        <refentrytitle>glGetUniform</refentrytitle>
        <manvolnum>3G</manvolnum>
    </refmeta>
    <refnamediv>
    <refdescriptor>glGetUniform</refdescriptor>
        <refname>glGetUniformfv</refname>
        <refname>glGetUniformiv</refname>
        <refpurpose>Returns the value of a uniform variable</refpurpose>
    </refnamediv>
    <refsynopsisdiv><title>C Specification</title>
    <funcsynopsis>
        <funcprototype>
        <funcdef>void <function>glGetUniformfv</function></funcdef>
        <paramdef>GLuint <parameter>program</parameter></paramdef>
        <paramdef>GLint <parameter>location</parameter></paramdef>
        <paramdef>GLfloat *<parameter>params</parameter></paramdef>
        </funcprototype>
        <funcprototype>
        <funcdef>void <function>glGetUniformiv</function></funcdef>
        <paramdef>GLuint <parameter>program</parameter></paramdef>
        <paramdef>GLint <parameter>location</parameter></paramdef>
        <paramdef>GLint *<parameter>params</parameter></paramdef>
        </funcprototype>
        <funcprototype>
        <funcdef>void <function>glGetUniformuiv</function></funcdef>
        <paramdef>GLuint <parameter>program</parameter></paramdef>
        <paramdef>GLint <parameter>location</parameter></paramdef>
        <paramdef>GLuint *<parameter>params</parameter></paramdef>
        </funcprototype>
        <funcprototype>
        <funcdef>void <function>glGetUniformdv</function></funcdef>
        <paramdef>GLuint <parameter>program</parameter></paramdef>
        <paramdef>GLint <parameter>location</parameter></paramdef>
        <paramdef>GLdouble *<parameter>params</parameter></paramdef>
        </funcprototype>
    </funcsynopsis>
    </refsynopsisdiv>
    <refsect1 id="parameters"><title>Parameters</title>
    <variablelist>
        <varlistentry>
        <term><parameter>program</parameter></term>
        <listitem>
            <para>Specifies the program object to be
            queried.</para>
        </listitem>
        </varlistentry>
        <varlistentry>
        <term><parameter>location</parameter></term>
        <listitem>
            <para>Specifies the location of the uniform variable
            to be queried.</para>
        </listitem>
        </varlistentry>
        <varlistentry>
        <term><parameter>params</parameter></term>
        <listitem>
            <para>Returns the value of the specified uniform
            variable.</para>
        </listitem>
        </varlistentry>
    </variablelist>
    </refsect1>
    <refsect1 id="description"><title>Description</title>
    <para><function>glGetUniform</function> returns in
    <parameter>params</parameter> the value(s) of the specified
    uniform variable. The type of the uniform variable specified by
    <parameter>location</parameter> determines the number of values
    returned. If the uniform variable is defined in the shader as a
    boolean, int, or float, a single value will be returned. If it
    is defined as a vec2, ivec2, or bvec2, two values will be
    returned. If it is defined as a vec3, ivec3, or bvec3, three
    values will be returned, and so on. To query values stored in
    uniform variables declared as arrays, call
    <function>glGetUniform</function> for each element of the array.
    To query values stored in uniform variables declared as
    structures, call <function>glGetUniform</function> for each
    field in the structure. The values for uniform variables
    declared as a matrix will be returned in column major
    order.</para>

    <para>The locations assigned to uniform variables are not known
    until the program object is linked. After linking has occurred,
    the command
    <citerefentry><refentrytitle>glGetUniformLocation</refentrytitle></citerefentry>
    can be used to obtain the location of a uniform variable. This
    location value can then be passed to
    <function>glGetUniform</function> in order to query the current
    value of the uniform variable. After a program object has been
    linked successfully, the index values for uniform variables
    remain fixed until the next link command occurs. The uniform
    variable values can only be queried after a link if the link was
    successful.</para>
    </refsect1>
    <refsect1 id="notes"><title>Notes</title>
    <para>If an error is generated, no change is made to the
    contents of <parameter>params</parameter>.</para>
    </refsect1>
    <refsect1 id="errors"><title>Errors</title>
    <para><constant>GL_INVALID_VALUE</constant> is generated if
    <parameter>program</parameter> is not a value generated by
    OpenGL.</para>

    <para><constant>GL_INVALID_OPERATION</constant> is generated if
    <parameter>program</parameter> is not a program object.</para>

    <para><constant>GL_INVALID_OPERATION</constant> is generated if
    <parameter>program</parameter> has not been successfully
    linked.</para>

    <para><constant>GL_INVALID_OPERATION</constant> is generated if
    <parameter>location</parameter> does not correspond to a valid
    uniform variable location for the specified program object.</para>

    </refsect1>
    <refsect1 id="associatedgets"><title>Associated Gets</title>
    <para><citerefentry><refentrytitle>glGetActiveUniform</refentrytitle></citerefentry>
    with arguments <parameter>program</parameter> and the index of an active
    uniform variable</para>

    <para><citerefentry><refentrytitle>glGetProgram</refentrytitle></citerefentry>
    with arguments <parameter>program</parameter> and
    <constant>GL_ACTIVE_UNIFORMS</constant> or
    <constant>GL_ACTIVE_UNIFORM_MAX_LENGTH</constant></para>

    <para><citerefentry><refentrytitle>glGetUniformLocation</refentrytitle></citerefentry>
    with arguments <parameter>program</parameter> and the name of a
    uniform variable</para>
    <para><citerefentry><refentrytitle>glIsProgram</refentrytitle></citerefentry></para>
    </refsect1>
    <refsect1 id="seealso"><title>See Also</title>
    <para><citerefentry><refentrytitle>glCreateProgram</refentrytitle></citerefentry>,
    <citerefentry><refentrytitle>glLinkProgram</refentrytitle></citerefentry>,
    <citerefentry><refentrytitle>glUniform</refentrytitle></citerefentry></para>
    </refsect1>
    <refsect1 id="Copyright"><title>Copyright</title>
        <para>
            Copyright <trademark class="copyright"></trademark> 2003-2005 3Dlabs Inc. Ltd.
            Copyright <trademark class="copyright"></trademark> 2010-2013 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.
            <ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
        </para>
    </refsect1>
</refentry>