Subversion Repositories AndroidProjects

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1452 chris 1
<?xml version="1.0" encoding="UTF-8"?>
2
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
3
              "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
4
<refentry id="glAlphaFunc">
5
    <refmeta>
6
        <refmetainfo>
7
            <copyright>
8
                <year>1991-2006</year>
9
                <holder>Silicon Graphics, Inc.</holder>
10
            </copyright>
11
        </refmetainfo>
12
        <refentrytitle>glAlphaFunc</refentrytitle>
13
        <manvolnum>3G</manvolnum>
14
    </refmeta>
15
    <refnamediv>
16
        <refname>glAlphaFunc</refname>
17
        <refpurpose>specify the alpha test function</refpurpose>
18
    </refnamediv>
19
    <refsynopsisdiv><title>C Specification</title>
20
        <funcsynopsis>
21
            <funcprototype>
22
                <funcdef>void <function>glAlphaFunc</function></funcdef>
23
                <paramdef>GLenum <parameter>func</parameter></paramdef>
24
                <paramdef>GLclampf <parameter>ref</parameter></paramdef>
25
            </funcprototype>
26
        </funcsynopsis>
27
    </refsynopsisdiv>
28
    <refsect1 id="parameters"><title>Parameters</title>
29
        <variablelist>
30
        <varlistentry>
31
            <term><parameter>func</parameter></term>
32
            <listitem>
33
                <para>
34
                    Specifies the alpha comparison function.
35
                    Symbolic constants
36
                    <constant>GL_NEVER</constant>,
37
                    <constant>GL_LESS</constant>,
38
                    <constant>GL_EQUAL</constant>,
39
                    <constant>GL_LEQUAL</constant>,
40
                    <constant>GL_GREATER</constant>,
41
                    <constant>GL_NOTEQUAL</constant>,
42
                    <constant>GL_GEQUAL</constant>, and
43
                    <constant>GL_ALWAYS</constant> are accepted. The initial value is <constant>GL_ALWAYS</constant>.
44
                </para>
45
            </listitem>
46
        </varlistentry>
47
        <varlistentry>
48
            <term><parameter>ref</parameter></term>
49
            <listitem>
50
                <para>
51
                    Specifies the reference value that incoming alpha values are compared to.
52
                    This value is clamped to the range
53
                    <inlineequation><mml:math>
54
                        <!-- eqn: [0,1]:-->
55
                        <mml:mfenced open="[" close="]">
56
                            <mml:mn>0</mml:mn>
57
                            <mml:mn>1</mml:mn>
58
                        </mml:mfenced>
59
                    </mml:math></inlineequation>,
60
                    where 0 represents the lowest possible alpha value
61
                    and 1 the highest possible value.
62
                    The initial reference value is 0.
63
                </para>
64
            </listitem>
65
        </varlistentry>
66
        </variablelist>
67
    </refsect1>
68
    <refsect1 id="description"><title>Description</title>
69
        <para>
70
            The alpha test discards fragments depending on the outcome of a comparison
71
            between an incoming fragment's alpha value and a constant reference value.
72
            <function>glAlphaFunc</function> specifies the reference value and the comparison function.
73
            The comparison is performed only if alpha testing is enabled. By
74
            default, it is not enabled.
75
            (See
76
            <citerefentry><refentrytitle>glEnable</refentrytitle></citerefentry> and <citerefentry><refentrytitle>glDisable</refentrytitle></citerefentry> of <constant>GL_ALPHA_TEST</constant>.)
77
        </para>
78
        <para>
79
            <parameter>func</parameter> and <parameter>ref</parameter> specify the conditions under which
80
            the pixel is drawn.
81
            The incoming alpha value is compared to <parameter>ref</parameter>
82
            using the function specified by <parameter>func</parameter>.
83
            If the value passes the comparison,
84
            the incoming fragment is drawn
85
            if it also passes subsequent stencil and depth buffer tests.
86
            If the value fails the comparison,
87
            no change is made to the frame buffer at that pixel location. The
88
            comparison functions are as follows:
89
        </para>
90
        <variablelist>
91
            <varlistentry>
92
                <term><constant>GL_NEVER</constant></term>
93
                <listitem>
94
                    <para>
95
                        Never passes.
96
                    </para>
97
                </listitem>
98
            </varlistentry>
99
            <varlistentry>
100
                <term><constant>GL_LESS</constant></term>
101
                <listitem>
102
                    <para>
103
                        Passes if the incoming alpha value is less than the reference value.
104
                    </para>
105
                </listitem>
106
            </varlistentry>
107
            <varlistentry>
108
                <term><constant>GL_EQUAL</constant></term>
109
                <listitem>
110
                    <para>
111
                        Passes if the incoming alpha value is equal to the reference value.
112
                    </para>
113
                </listitem>
114
            </varlistentry>
115
            <varlistentry>
116
                <term><constant>GL_LEQUAL</constant></term>
117
                <listitem>
118
                    <para>
119
                        Passes if the incoming alpha value is less than or equal to the reference value.
120
                    </para>
121
                </listitem>
122
            </varlistentry>
123
            <varlistentry>
124
                <term><constant>GL_GREATER</constant></term>
125
                <listitem>
126
                    <para>
127
                        Passes if the incoming alpha value is greater than the reference value.
128
                    </para>
129
                </listitem>
130
            </varlistentry>
131
            <varlistentry>
132
                <term><constant>GL_NOTEQUAL</constant></term>
133
                <listitem>
134
                    <para>
135
                        Passes if the incoming alpha value is not equal to the reference value.
136
                    </para>
137
                </listitem>
138
            </varlistentry>
139
            <varlistentry>
140
                <term><constant>GL_GEQUAL</constant></term>
141
                <listitem>
142
                    <para>
143
                        Passes if the incoming alpha value is greater than or equal to
144
                        the reference value.
145
                    </para>
146
                </listitem>
147
            </varlistentry>
148
            <varlistentry>
149
                <term><constant>GL_ALWAYS</constant></term>
150
                <listitem>
151
                    <para>
152
                        Always passes (initial value).
153
                    </para>
154
                </listitem>
155
            </varlistentry>
156
        </variablelist>
157
        <para>
158
            <function>glAlphaFunc</function> operates on all pixel write operations,
159
            including those resulting from the scan conversion of points,
160
            lines,
161
            polygons,
162
            and bitmaps,
163
            and from pixel draw and copy operations.
164
            <function>glAlphaFunc</function> does not affect screen clear operations.
165
        </para>
166
    </refsect1>
167
    <refsect1 id="notes"><title>Notes</title>
168
        <para>
169
            Alpha testing is performed only in RGBA mode.
170
        </para>
171
    </refsect1>
172
    <refsect1 id="errors"><title>Errors</title>
173
        <para>
174
            <constant>GL_INVALID_ENUM</constant> is generated if <parameter>func</parameter> is not an accepted value.
175
        </para>
176
        <para>
177
            <constant>GL_INVALID_OPERATION</constant> is generated if <function>glAlphaFunc</function>
178
            is executed between the execution of <citerefentry><refentrytitle>glBegin</refentrytitle></citerefentry>
179
            and the corresponding execution of <citerefentry><refentrytitle>glEnd</refentrytitle></citerefentry>.
180
        </para>
181
    </refsect1>
182
    <refsect1 id="associatedgets"><title>Associated Gets</title>
183
        <para>
184
            <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_ALPHA_TEST_FUNC</constant>
185
        </para>
186
        <para>
187
            <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_ALPHA_TEST_REF</constant>
188
        </para>
189
        <para>
190
            <citerefentry><refentrytitle>glIsEnabled</refentrytitle></citerefentry> with argument <constant>GL_ALPHA_TEST</constant>
191
        </para>
192
    </refsect1>
193
    <refsect1 id="seealso"><title>See Also</title>
194
        <para>
195
            <citerefentry><refentrytitle>glBlendFunc</refentrytitle></citerefentry>,
196
            <citerefentry><refentrytitle>glClear</refentrytitle></citerefentry>,
197
            <citerefentry><refentrytitle>glDepthFunc</refentrytitle></citerefentry>,
198
            <citerefentry><refentrytitle>glEnable</refentrytitle></citerefentry>,
199
            <citerefentry><refentrytitle>glStencilFunc</refentrytitle></citerefentry>
200
        </para>
201
    </refsect1>
202
    <refsect1 id="Copyright"><title>Copyright</title>
203
        <para>
204
            Copyright <trademark class="copyright"></trademark> 1991-2006
205
            Silicon Graphics, Inc. This document is licensed under the SGI
206
            Free Software B License. For details, see
207
            <ulink url="http://oss.sgi.com/projects/FreeB/">http://oss.sgi.com/projects/FreeB/</ulink>.
208
        </para>
209
    </refsect1>
210
</refentry>