ac61d7388882a0249c8528b82aac6897a4adf742
[clinton/guile-figl.git] / upstream-man-pages / man2 / glTexEnv.xml
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="glTexEnv">
5 <refmeta>
6 <refmetainfo>
7 <copyright>
8 <year>1991-2006</year>
9 <holder>Silicon Graphics, Inc.</holder>
10 </copyright>
11 </refmetainfo>
12 <refentrytitle>glTexEnv</refentrytitle>
13 <manvolnum>3G</manvolnum>
14 </refmeta>
15 <refnamediv>
16 <refname>glTexEnv</refname>
17 <refpurpose>set texture environment parameters</refpurpose>
18 </refnamediv>
19 <refsynopsisdiv><title>C Specification</title>
20 <funcsynopsis>
21 <funcprototype>
22 <funcdef>void <function>glTexEnvf</function></funcdef>
23 <paramdef>GLenum <parameter>target</parameter></paramdef>
24 <paramdef>GLenum <parameter>pname</parameter></paramdef>
25 <paramdef>GLfloat <parameter>param</parameter></paramdef>
26 </funcprototype>
27 </funcsynopsis>
28 <para></para>
29 <funcsynopsis>
30 <funcprototype>
31 <funcdef>void <function>glTexEnvi</function></funcdef>
32 <paramdef>GLenum <parameter>target</parameter></paramdef>
33 <paramdef>GLenum <parameter>pname</parameter></paramdef>
34 <paramdef>GLint <parameter>param</parameter></paramdef>
35 </funcprototype>
36 </funcsynopsis>
37 </refsynopsisdiv>
38 <!-- eqn: ignoring delim $$ -->
39 <refsect1 id="parameters"><title>Parameters</title>
40 <variablelist>
41 <varlistentry>
42 <term><parameter>target</parameter></term>
43 <listitem>
44 <para>
45 Specifies a texture environment.
46 May be <constant>GL_TEXTURE_ENV</constant>, <constant>GL_TEXTURE_FILTER_CONTROL</constant> or <constant>GL_POINT_SPRITE</constant>.
47 </para>
48 </listitem>
49 </varlistentry>
50 <varlistentry>
51 <term><parameter>pname</parameter></term>
52 <listitem>
53 <para>
54 Specifies the symbolic name of a single-valued texture environment parameter.
55 May be either <constant>GL_TEXTURE_ENV_MODE</constant>, <constant>GL_TEXTURE_LOD_BIAS</constant>,
56 <constant>GL_COMBINE_RGB</constant>,
57 <constant>GL_COMBINE_ALPHA</constant>,
58 <constant>GL_SRC0_RGB</constant>,
59 <constant>GL_SRC1_RGB</constant>,
60 <constant>GL_SRC2_RGB</constant>,
61 <constant>GL_SRC0_ALPHA</constant>,
62 <constant>GL_SRC1_ALPHA</constant>,
63 <constant>GL_SRC2_ALPHA</constant>,
64 <constant>GL_OPERAND0_RGB</constant>,
65 <constant>GL_OPERAND1_RGB</constant>,
66 <constant>GL_OPERAND2_RGB</constant>,
67 <constant>GL_OPERAND0_ALPHA</constant>,
68 <constant>GL_OPERAND1_ALPHA</constant>,
69 <constant>GL_OPERAND2_ALPHA</constant>,
70 <constant>GL_RGB_SCALE</constant>,
71 <constant>GL_ALPHA_SCALE</constant>, or
72 <constant>GL_COORD_REPLACE</constant>.
73 </para>
74 </listitem>
75 </varlistentry>
76 <varlistentry>
77 <term><parameter>param</parameter></term>
78 <listitem>
79 <para>
80 Specifies a single symbolic constant, one of <constant>GL_ADD</constant>,
81 <constant>GL_ADD_SIGNED</constant>, <constant>GL_INTERPOLATE</constant>, <constant>GL_MODULATE</constant>, <constant>GL_DECAL</constant>,
82 <constant>GL_BLEND</constant>, <constant>GL_REPLACE</constant>, <constant>GL_SUBTRACT</constant>, <constant>GL_COMBINE</constant>,
83 <constant>GL_TEXTURE</constant>, <constant>GL_CONSTANT</constant>, <constant>GL_PRIMARY_COLOR</constant>, <constant>GL_PREVIOUS</constant>,
84 <constant>GL_SRC_COLOR</constant>, <constant>GL_ONE_MINUS_SRC_COLOR</constant>, <constant>GL_SRC_ALPHA</constant>,
85 <constant>GL_ONE_MINUS_SRC_ALPHA</constant>,
86 a single boolean value for the point sprite texture coordinate replacement,
87 a single floating-point value for the texture level-of-detail bias,
88 or 1.0, 2.0, or 4.0 when specifying the <constant>GL_RGB_SCALE</constant> or <constant>GL_ALPHA_SCALE</constant>.
89 </para>
90 </listitem>
91 </varlistentry>
92 </variablelist>
93 </refsect1>
94 <refsynopsisdiv><title>C Specification</title>
95 <funcsynopsis>
96 <funcprototype>
97 <funcdef>void <function>glTexEnvfv</function></funcdef>
98 <paramdef>GLenum <parameter>target</parameter></paramdef>
99 <paramdef>GLenum <parameter>pname</parameter></paramdef>
100 <paramdef>const GLfloat * <parameter>params</parameter></paramdef>
101 </funcprototype>
102 </funcsynopsis>
103 <funcsynopsis>
104 <funcprototype>
105 <funcdef>void <function>glTexEnviv</function></funcdef>
106 <paramdef>GLenum <parameter>target</parameter></paramdef>
107 <paramdef>GLenum <parameter>pname</parameter></paramdef>
108 <paramdef>const GLint * <parameter>params</parameter></paramdef>
109 </funcprototype>
110 </funcsynopsis>
111 </refsynopsisdiv>
112 <refsect1 id="parameters2"><title>Parameters</title>
113 <variablelist>
114 <varlistentry>
115 <term><parameter>target</parameter></term>
116 <listitem>
117 <para>
118 Specifies a texture environment.
119 May be either <constant>GL_TEXTURE_ENV</constant>, or <constant>GL_TEXTURE_FILTER_CONTROL</constant>.
120 </para>
121 </listitem>
122 </varlistentry>
123 <varlistentry>
124 <term><parameter>pname</parameter></term>
125 <listitem>
126 <para>
127 Specifies the symbolic name of a texture environment parameter.
128 Accepted values are <constant>GL_TEXTURE_ENV_MODE</constant>, <constant>GL_TEXTURE_ENV_COLOR</constant>, or
129 <constant>GL_TEXTURE_LOD_BIAS</constant>.
130 </para>
131 </listitem>
132 </varlistentry>
133 <varlistentry>
134 <term><parameter>params</parameter></term>
135 <listitem>
136 <para>
137 Specifies a pointer to a parameter array that contains
138 either a single symbolic constant, single floating-point number, or an RGBA
139 color.
140 </para>
141 </listitem>
142 </varlistentry>
143 </variablelist>
144 </refsect1>
145 <refsect1 id="description"><title>Description</title>
146 <para>
147 A texture environment specifies how texture values are interpreted when a
148 fragment is textured. When <parameter>target</parameter> is <constant>GL_TEXTURE_FILTER_CONTROL</constant>,
149 <parameter>pname</parameter> must be <constant>GL_TEXTURE_LOD_BIAS</constant>. When <parameter>target</parameter> is
150 <constant>GL_TEXTURE_ENV</constant>, <parameter>pname</parameter> can be <constant>GL_TEXTURE_ENV_MODE</constant>,
151 <constant>GL_TEXTURE_ENV_COLOR</constant>, <constant>GL_COMBINE_RGB</constant>, <constant>GL_COMBINE_ALPHA</constant>,
152 <constant>GL_RGB_SCALE</constant>, <constant>GL_ALPHA_SCALE</constant>,
153 <constant>GL_SRC0_RGB</constant>, <constant>GL_SRC1_RGB</constant>, <constant>GL_SRC2_RGB</constant>,
154 <constant>GL_SRC0_ALPHA</constant>, <constant>GL_SRC1_ALPHA</constant>, or <constant>GL_SRC2_ALPHA</constant>.
155 </para>
156 <para>
157 If <parameter>pname</parameter> is <constant>GL_TEXTURE_ENV_MODE</constant>,
158 then <parameter>params</parameter> is (or points to) the symbolic name of a texture function.
159 Six texture functions may be specified:
160 <constant>GL_ADD</constant>,
161 <constant>GL_MODULATE</constant>,
162 <constant>GL_DECAL</constant>,
163 <constant>GL_BLEND</constant>,
164 <constant>GL_REPLACE</constant>, or
165 <constant>GL_COMBINE</constant>.
166 </para>
167 <para>
168 The following table shows the correspondence of filtered texture
169 values
170 <inlineequation><mml:math><mml:msub><mml:mi mathvariant="italic">R</mml:mi>
171 <mml:mi mathvariant="italic">t</mml:mi></mml:msub></mml:math></inlineequation>,
172 <inlineequation><mml:math><mml:msub><mml:mi mathvariant="italic">G</mml:mi>
173 <mml:mi mathvariant="italic">t</mml:mi></mml:msub></mml:math></inlineequation>,
174 <inlineequation><mml:math><mml:msub><mml:mi mathvariant="italic">B</mml:mi>
175 <mml:mi mathvariant="italic">t</mml:mi></mml:msub></mml:math></inlineequation>,
176 <inlineequation><mml:math><mml:msub><mml:mi mathvariant="italic">A</mml:mi>
177 <mml:mi mathvariant="italic">t</mml:mi></mml:msub></mml:math></inlineequation>,
178 <inlineequation><mml:math><mml:msub><mml:mi mathvariant="italic">L</mml:mi>
179 <mml:mi mathvariant="italic">t</mml:mi></mml:msub></mml:math></inlineequation>,
180 <inlineequation><mml:math><mml:msub><mml:mi mathvariant="italic">I</mml:mi>
181 <mml:mi mathvariant="italic">t</mml:mi></mml:msub></mml:math></inlineequation>
182 to texture source components.
183 <inlineequation><mml:math><mml:msub><mml:mi mathvariant="italic">C</mml:mi>
184 <mml:mi mathvariant="italic">s</mml:mi></mml:msub></mml:math></inlineequation>
185 and
186 <inlineequation><mml:math><mml:msub><mml:mi mathvariant="italic">A</mml:mi>
187 <mml:mi mathvariant="italic">s</mml:mi></mml:msub></mml:math></inlineequation>
188 are used by the texture functions described below.
189 </para>
190 <para>
191 </para>
192 <informaltable frame="topbot">
193 <tgroup cols="3" align="left">
194 <colspec/>
195 <colspec/>
196 <thead>
197 <row>
198 <entry rowsep="1" align="left">
199 Texture Base Internal Format
200 </entry>
201 <entry rowsep="1" align="center">
202 <inlineequation><mml:math><mml:msub><mml:mi mathvariant="bold-italic">C</mml:mi>
203 <mml:mi mathvariant="italic">s</mml:mi></mml:msub></mml:math></inlineequation>
204 </entry>
205 <entry rowsep="1" align="center">
206 <inlineequation><mml:math><mml:msub><mml:mi mathvariant="bold-italic">A</mml:mi>
207 <mml:mi mathvariant="italic">s</mml:mi></mml:msub></mml:math></inlineequation>
208 </entry>
209 </row>
210 </thead>
211 <tbody>
212 <row>
213 <entry align="left">
214 <constant>GL_ALPHA</constant>
215 </entry>
216 <entry align="left">
217 (0, 0, 0)
218 </entry>
219 <entry align="left">
220 <inlineequation><mml:math><mml:msub><mml:mi mathvariant="italic">A</mml:mi>
221 <mml:mi mathvariant="italic">t</mml:mi></mml:msub></mml:math></inlineequation>
222 </entry>
223 </row>
224 <row>
225 <entry align="left">
226 <constant>GL_LUMINANCE</constant>
227 </entry>
228 <entry align="left">
229 (
230 <inlineequation><mml:math><mml:msub><mml:mi mathvariant="italic">L</mml:mi>
231 <mml:mi mathvariant="italic">t</mml:mi></mml:msub></mml:math></inlineequation>,
232 <inlineequation><mml:math><mml:msub><mml:mi mathvariant="italic">L</mml:mi>
233 <mml:mi mathvariant="italic">t</mml:mi></mml:msub></mml:math></inlineequation>,
234 <inlineequation><mml:math><mml:msub><mml:mi mathvariant="italic">L</mml:mi>
235 <mml:mi mathvariant="italic">t</mml:mi></mml:msub></mml:math></inlineequation>
236 )
237 </entry>
238 <entry align="left">
239 1
240 </entry>
241 </row>
242 <row>
243 <entry align="left">
244 <constant>GL_LUMINANCE_ALPHA</constant>
245 </entry>
246 <entry align="left">
247 (
248 <inlineequation><mml:math><mml:msub><mml:mi mathvariant="italic">L</mml:mi>
249 <mml:mi mathvariant="italic">t</mml:mi></mml:msub></mml:math></inlineequation>,
250 <inlineequation><mml:math><mml:msub><mml:mi mathvariant="italic">L</mml:mi>
251 <mml:mi mathvariant="italic">t</mml:mi></mml:msub></mml:math></inlineequation>,
252 <inlineequation><mml:math><mml:msub><mml:mi mathvariant="italic">L</mml:mi>
253 <mml:mi mathvariant="italic">t</mml:mi></mml:msub></mml:math></inlineequation>
254 )
255 </entry>
256 <entry align="left">
257 <inlineequation><mml:math><mml:msub><mml:mi mathvariant="italic">A</mml:mi>
258 <mml:mi mathvariant="italic">t</mml:mi></mml:msub></mml:math></inlineequation>
259 </entry>
260 </row>
261 <row>
262 <entry align="left">
263 <constant>GL_INTENSITY</constant>
264 </entry>
265 <entry align="left">
266 (
267 <inlineequation><mml:math><mml:msub><mml:mi mathvariant="italic">I</mml:mi>
268 <mml:mi mathvariant="italic">t</mml:mi></mml:msub></mml:math></inlineequation>,
269 <inlineequation><mml:math><mml:msub><mml:mi mathvariant="italic">I</mml:mi>
270 <mml:mi mathvariant="italic">t</mml:mi></mml:msub></mml:math></inlineequation>,
271 <inlineequation><mml:math><mml:msub><mml:mi mathvariant="italic">I</mml:mi>
272 <mml:mi mathvariant="italic">t</mml:mi></mml:msub></mml:math></inlineequation>
273 )
274 </entry>
275 <entry align="left">
276 <inlineequation><mml:math><mml:msub><mml:mi mathvariant="italic">I</mml:mi>
277 <mml:mi mathvariant="italic">t</mml:mi></mml:msub></mml:math></inlineequation>
278 </entry>
279 </row>
280 <row>
281 <entry align="left">
282 <constant>GL_RGB</constant>
283 </entry>
284 <entry align="left">
285 (
286 <inlineequation><mml:math><mml:msub><mml:mi mathvariant="italic">R</mml:mi>
287 <mml:mi mathvariant="italic">t</mml:mi></mml:msub></mml:math></inlineequation>,
288 <inlineequation><mml:math><mml:msub><mml:mi mathvariant="italic">G</mml:mi>
289 <mml:mi mathvariant="italic">t</mml:mi></mml:msub></mml:math></inlineequation>,
290 <inlineequation><mml:math><mml:msub><mml:mi mathvariant="italic">B</mml:mi>
291 <mml:mi mathvariant="italic">t</mml:mi></mml:msub></mml:math></inlineequation>
292 )
293 </entry>
294 <entry align="left">
295 1
296 </entry>
297 </row>
298 <row>
299 <entry align="left">
300 <constant>GL_RGBA</constant>
301 </entry>
302 <entry align="left">
303 (
304 <inlineequation><mml:math><mml:msub><mml:mi mathvariant="italic">R</mml:mi>
305 <mml:mi mathvariant="italic">t</mml:mi></mml:msub></mml:math></inlineequation>,
306 <inlineequation><mml:math><mml:msub><mml:mi mathvariant="italic">G</mml:mi>
307 <mml:mi mathvariant="italic">t</mml:mi></mml:msub></mml:math></inlineequation>,
308 <inlineequation><mml:math><mml:msub><mml:mi mathvariant="italic">B</mml:mi>
309 <mml:mi mathvariant="italic">t</mml:mi></mml:msub></mml:math></inlineequation>
310 )
311 </entry>
312 <entry align="left">
313 <inlineequation><mml:math><mml:msub><mml:mi mathvariant="italic">A</mml:mi>
314 <mml:mi mathvariant="italic">t</mml:mi></mml:msub></mml:math></inlineequation>
315 </entry>
316 </row>
317 </tbody>
318 </tgroup>
319 </informaltable>
320 <para>
321 A texture function acts on the fragment to be textured using
322 the texture image value that applies to the fragment
323 (see <citerefentry><refentrytitle>glTexParameter</refentrytitle></citerefentry>)
324 and produces an RGBA color for that fragment.
325 The following table shows how the RGBA color is produced for each
326 of the first five texture functions that can be chosen.
327 <inlineequation><mml:math><mml:mi mathvariant="italic">C</mml:mi></mml:math></inlineequation>
328 is a triple of color values (RGB) and
329 <inlineequation><mml:math><mml:mi mathvariant="italic">A</mml:mi></mml:math></inlineequation>
330 is the associated alpha value.
331 RGBA values extracted from a texture image are in the range [0,1].
332 The subscript
333 <inlineequation><mml:math><mml:mi mathvariant="italic">p</mml:mi></mml:math></inlineequation>
334 refers to the color computed from the previous texture stage (or the incoming fragment if processing texture stage 0),
335 the subscript
336 <inlineequation><mml:math><mml:mi mathvariant="italic">s</mml:mi></mml:math></inlineequation>
337 to the texture source color,
338 the subscript
339 <inlineequation><mml:math><mml:mi mathvariant="italic">c</mml:mi></mml:math></inlineequation>
340 to the texture environment color,
341 and the subscript
342 <inlineequation><mml:math><mml:mi mathvariant="italic">v</mml:mi></mml:math></inlineequation>
343 indicates a value produced by the texture function.
344 </para>
345 <para>
346 </para>
347 <informaltable pgwide="1" font-size="8pt" frame="topbot">
348 <tgroup cols="7" align="left">
349 <colspec colwidth="4.1*" align="center"/>
350 <colspec colwidth="1*" align="center"/>
351 <colspec colwidth="2.3*" align="center"/>
352 <colspec colwidth="2.7*" />
353 <colspec colwidth="3.4*" />
354 <colspec colwidth="3.5*" />
355 <colspec colwidth="1.4*" />
356 <thead>
357 <row>
358 <entry rowsep="1" align="center">
359 Texture Base Internal Format
360 </entry>
361 <entry rowsep="1" align="center">
362 <constant>Value</constant>
363 </entry>
364 <entry rowsep="1" align="center">
365 <constant>GL_REPLACE</constant> Function
366 </entry>
367 <entry rowsep="1" align="center">
368 <constant>GL_MODULATE</constant> Function
369 </entry>
370 <entry rowsep="1" align="center">
371 <constant>GL_DECAL</constant> Function
372 </entry>
373 <entry rowsep="1" align="center">
374 <constant>GL_BLEND</constant> Function
375 </entry>
376 <entry rowsep="1" align="center">
377 <constant>GL_ADD</constant> Function
378 </entry>
379 </row>
380 </thead>
381 <tbody>
382 <row>
383 <entry align="center">
384 <constant>GL_ALPHA</constant>
385 </entry>
386 <entry align="center">
387 <inlineequation><mml:math>
388 <!-- eqn: C sub v = :-->
389 <mml:mrow>
390 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
391 <mml:mi mathvariant="italic">v</mml:mi>
392 </mml:msub>
393 <mml:mo>=</mml:mo>
394 </mml:mrow>
395 </mml:math></inlineequation>
396 </entry>
397 <entry align="center">
398 <inlineequation><mml:math>
399 <!-- eqn: C sub p:-->
400 <mml:mrow>
401 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
402 <mml:mi mathvariant="italic">p</mml:mi>
403 </mml:msub>
404 </mml:mrow>
405 </mml:math></inlineequation>
406 </entry>
407 <entry align="center">
408 <inlineequation><mml:math>
409 <!-- eqn: C sub p:-->
410 <mml:mrow>
411 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
412 <mml:mi mathvariant="italic">p</mml:mi>
413 </mml:msub>
414 </mml:mrow>
415 </mml:math></inlineequation>
416 </entry>
417 <entry align="center">
418 undefined
419 </entry>
420 <entry align="center">
421 <inlineequation><mml:math>
422 <!-- eqn: C sub v = C sub p:-->
423 <mml:mrow>
424 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
425 <mml:mi mathvariant="italic">p</mml:mi>
426 </mml:msub>
427 </mml:mrow>
428 </mml:math></inlineequation>
429 </entry>
430 <entry align="center">
431 <inlineequation><mml:math>
432 <!-- eqn: C sub v = C sub p:-->
433 <mml:mrow>
434 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
435 <mml:mi mathvariant="italic">p</mml:mi>
436 </mml:msub>
437 </mml:mrow>
438 </mml:math></inlineequation>
439 </entry>
440 </row>
441 <row>
442 <entry align="center">
443 </entry>
444 <entry align="center">
445 <inlineequation><mml:math>
446 <!-- eqn: A sub v = :-->
447 <mml:mrow>
448 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
449 <mml:mi mathvariant="italic">v</mml:mi>
450 </mml:msub>
451 <mml:mo>=</mml:mo>
452 </mml:mrow>
453 </mml:math></inlineequation>
454 </entry>
455 <entry align="center">
456 <inlineequation><mml:math>
457 <!-- eqn: A sub v = A sub s:-->
458 <mml:mrow>
459 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
460 <mml:mi mathvariant="italic">s</mml:mi>
461 </mml:msub>
462 </mml:mrow>
463 </mml:math></inlineequation>
464 </entry>
465 <entry align="center">
466 <inlineequation><mml:math>
467 <!-- eqn: A sub v = A sub p A sub s:-->
468 <mml:mrow>
469 <mml:mrow>
470 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
471 <mml:mi mathvariant="italic">p</mml:mi>
472 </mml:msub>
473 <mml:mo>&it;</mml:mo>
474 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
475 <mml:mi mathvariant="italic">s</mml:mi>
476 </mml:msub>
477 </mml:mrow>
478 </mml:mrow>
479 </mml:math></inlineequation>
480 </entry>
481 <entry align="center">
482 </entry>
483 <entry align="center">
484 <inlineequation><mml:math>
485 <!-- eqn: A sub v = A sub p A sub s:-->
486 <mml:mrow>
487 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
488 <mml:mi mathvariant="italic">v</mml:mi>
489 </mml:msub>
490 <mml:mo>=</mml:mo>
491 <mml:mrow>
492 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
493 <mml:mi mathvariant="italic">p</mml:mi>
494 </mml:msub>
495 <mml:mo>&it;</mml:mo>
496 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
497 <mml:mi mathvariant="italic">s</mml:mi>
498 </mml:msub>
499 </mml:mrow>
500 </mml:mrow>
501 </mml:math></inlineequation>
502 </entry>
503 <entry align="center">
504 <inlineequation><mml:math>
505 <!-- eqn: A sub v = A sub p A sub s:-->
506 <mml:mrow>
507 <mml:mrow>
508 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
509 <mml:mi mathvariant="italic">p</mml:mi>
510 </mml:msub>
511 <mml:mo>&it;</mml:mo>
512 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
513 <mml:mi mathvariant="italic">s</mml:mi>
514 </mml:msub>
515 </mml:mrow>
516 </mml:mrow>
517 </mml:math></inlineequation>
518 </entry>
519 </row>
520 <row>
521 <entry align="center">
522 <constant>GL_LUMINANCE</constant>
523 </entry>
524 <entry align="center">
525 <inlineequation><mml:math>
526 <!-- eqn: C sub v = :-->
527 <mml:mrow>
528 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
529 <mml:mi mathvariant="italic">v</mml:mi>
530 </mml:msub>
531 <mml:mo>=</mml:mo>
532 </mml:mrow>
533 </mml:math></inlineequation>
534 </entry>
535 <entry align="center">
536 <inlineequation><mml:math>
537 <!-- eqn: C sub v = C sub s:-->
538 <mml:mrow>
539 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
540 <mml:mi mathvariant="italic">s</mml:mi>
541 </mml:msub>
542 </mml:mrow>
543 </mml:math></inlineequation>
544 </entry>
545 <entry align="center">
546 <inlineequation><mml:math>
547 <!-- eqn: C sub v = C sub p C sub s:-->
548 <mml:mrow>
549 <mml:mrow>
550 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
551 <mml:mi mathvariant="italic">p</mml:mi>
552 </mml:msub>
553 <mml:mo>&it;</mml:mo>
554 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
555 <mml:mi mathvariant="italic">s</mml:mi>
556 </mml:msub>
557 </mml:mrow>
558 </mml:mrow>
559 </mml:math></inlineequation>
560 </entry>
561 <entry align="center">
562 undefined
563 </entry>
564 <entry align="center">
565 <inlineequation><mml:math>
566 <!-- eqn: C sub v = C sub p ( 1 - C sub s ) + C sub c C sub s:-->
567 <mml:mrow>
568 <mml:mrow>
569 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
570 <mml:mi mathvariant="italic">p</mml:mi>
571 </mml:msub>
572 <mml:mo>&it;</mml:mo>
573 <mml:mfenced open="(" close=")">
574 <mml:mrow>
575 <mml:mn>1</mml:mn>
576 <mml:mo>-</mml:mo>
577 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
578 <mml:mi mathvariant="italic">s</mml:mi>
579 </mml:msub>
580 </mml:mrow>
581 </mml:mfenced>
582 <mml:mo>+</mml:mo>
583 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
584 <mml:mi mathvariant="italic">c</mml:mi>
585 </mml:msub>
586 <mml:mo>&it;</mml:mo>
587 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
588 <mml:mi mathvariant="italic">s</mml:mi>
589 </mml:msub>
590 </mml:mrow>
591 </mml:mrow>
592 </mml:math></inlineequation>
593 </entry>
594 <entry align="center">
595 <inlineequation><mml:math>
596 <!-- eqn: C sub v = C sub p + C sub s:-->
597 <mml:mrow>
598 <mml:mrow>
599 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
600 <mml:mi mathvariant="italic">p</mml:mi>
601 </mml:msub>
602 <mml:mo>+</mml:mo>
603 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
604 <mml:mi mathvariant="italic">s</mml:mi>
605 </mml:msub>
606 </mml:mrow>
607 </mml:mrow>
608 </mml:math></inlineequation>
609 </entry>
610 </row>
611 <row>
612 <entry align="center">
613 (or 1)
614 </entry>
615 <entry align="center">
616 <inlineequation><mml:math>
617 <!-- eqn: A sub v = :-->
618 <mml:mrow>
619 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
620 <mml:mi mathvariant="italic">v</mml:mi>
621 </mml:msub>
622 <mml:mo>=</mml:mo>
623 </mml:mrow>
624 </mml:math></inlineequation>
625 </entry>
626 <entry align="center">
627 <inlineequation><mml:math>
628 <!-- eqn: A sub v = A sub p:-->
629 <mml:mrow>
630 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
631 <mml:mi mathvariant="italic">p</mml:mi>
632 </mml:msub>
633 </mml:mrow>
634 </mml:math></inlineequation>
635 </entry>
636 <entry align="center">
637 <inlineequation><mml:math>
638 <!-- eqn: A sub v = A sub p:-->
639 <mml:mrow>
640 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
641 <mml:mi mathvariant="italic">p</mml:mi>
642 </mml:msub>
643 </mml:mrow>
644 </mml:math></inlineequation>
645 </entry>
646 <entry align="center">
647 </entry>
648 <entry align="center">
649 <inlineequation><mml:math>
650 <!-- eqn: A sub v = A sub p:-->
651 <mml:mrow>
652 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
653 <mml:mi mathvariant="italic">p</mml:mi>
654 </mml:msub>
655 </mml:mrow>
656 </mml:math></inlineequation>
657 </entry>
658 <entry align="center">
659 <inlineequation><mml:math>
660 <!-- eqn: A sub v = A sub p:-->
661 <mml:mrow>
662 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
663 <mml:mi mathvariant="italic">p</mml:mi>
664 </mml:msub>
665 </mml:mrow>
666 </mml:math></inlineequation>
667 </entry>
668 </row>
669 <row>
670 <entry align="center">
671 <constant>GL_LUMINANCE_ALPHA</constant>
672 </entry>
673 <entry align="center">
674 <inlineequation><mml:math>
675 <!-- eqn: C sub v = :-->
676 <mml:mrow>
677 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
678 <mml:mi mathvariant="italic">v</mml:mi>
679 </mml:msub>
680 <mml:mo>=</mml:mo>
681 </mml:mrow>
682 </mml:math></inlineequation>
683 </entry>
684 <entry align="center">
685 <inlineequation><mml:math>
686 <!-- eqn: C sub v = C sub s:-->
687 <mml:mrow>
688 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
689 <mml:mi mathvariant="italic">s</mml:mi>
690 </mml:msub>
691 </mml:mrow>
692 </mml:math></inlineequation>
693 </entry>
694 <entry align="center">
695 <inlineequation><mml:math>
696 <!-- eqn: C sub v = C sub p C sub s:-->
697 <mml:mrow>
698 <mml:mrow>
699 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
700 <mml:mi mathvariant="italic">p</mml:mi>
701 </mml:msub>
702 <mml:mo>&it;</mml:mo>
703 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
704 <mml:mi mathvariant="italic">s</mml:mi>
705 </mml:msub>
706 </mml:mrow>
707 </mml:mrow>
708 </mml:math></inlineequation>
709 </entry>
710 <entry align="center">
711 undefined
712 </entry>
713 <entry align="center">
714 <inlineequation><mml:math>
715 <!-- eqn: C sub v = C sub p ( 1 - C sub s ) + C sub c C sub s:-->
716 <mml:mrow>
717 <mml:mrow>
718 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
719 <mml:mi mathvariant="italic">p</mml:mi>
720 </mml:msub>
721 <mml:mo>&it;</mml:mo>
722 <mml:mfenced open="(" close=")">
723 <mml:mrow>
724 <mml:mn>1</mml:mn>
725 <mml:mo>-</mml:mo>
726 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
727 <mml:mi mathvariant="italic">s</mml:mi>
728 </mml:msub>
729 </mml:mrow>
730 </mml:mfenced>
731 <mml:mo>+</mml:mo>
732 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
733 <mml:mi mathvariant="italic">c</mml:mi>
734 </mml:msub>
735 <mml:mo>&it;</mml:mo>
736 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
737 <mml:mi mathvariant="italic">s</mml:mi>
738 </mml:msub>
739 </mml:mrow>
740 </mml:mrow>
741 </mml:math></inlineequation>
742 </entry>
743 <entry align="center">
744 <inlineequation><mml:math>
745 <!-- eqn: C sub v = C sub p + C sub s:-->
746 <mml:mrow>
747 <mml:mrow>
748 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
749 <mml:mi mathvariant="italic">p</mml:mi>
750 </mml:msub>
751 <mml:mo>+</mml:mo>
752 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
753 <mml:mi mathvariant="italic">s</mml:mi>
754 </mml:msub>
755 </mml:mrow>
756 </mml:mrow>
757 </mml:math></inlineequation>
758 </entry>
759 </row>
760 <row>
761 <entry align="center">
762 (or 2)
763 </entry>
764 <entry align="center">
765 <inlineequation><mml:math>
766 <!-- eqn: A sub v = :-->
767 <mml:mrow>
768 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
769 <mml:mi mathvariant="italic">v</mml:mi>
770 </mml:msub>
771 <mml:mo>=</mml:mo>
772 </mml:mrow>
773 </mml:math></inlineequation>
774 </entry>
775 <entry align="center">
776 <inlineequation><mml:math>
777 <!-- eqn: A sub v = A sub s:-->
778 <mml:mrow>
779 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
780 <mml:mi mathvariant="italic">s</mml:mi>
781 </mml:msub>
782 </mml:mrow>
783 </mml:math></inlineequation>
784 </entry>
785 <entry align="center">
786 <inlineequation><mml:math>
787 <!-- eqn: A sub v = A sub p A sub s:-->
788 <mml:mrow>
789 <mml:mrow>
790 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
791 <mml:mi mathvariant="italic">p</mml:mi>
792 </mml:msub>
793 <mml:mo>&it;</mml:mo>
794 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
795 <mml:mi mathvariant="italic">s</mml:mi>
796 </mml:msub>
797 </mml:mrow>
798 </mml:mrow>
799 </mml:math></inlineequation>
800 </entry>
801 <entry align="center">
802 </entry>
803 <entry align="center">
804 <inlineequation><mml:math>
805 <!-- eqn: A sub v = A sub p A sub s:-->
806 <mml:mrow>
807 <mml:mrow>
808 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
809 <mml:mi mathvariant="italic">p</mml:mi>
810 </mml:msub>
811 <mml:mo>&it;</mml:mo>
812 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
813 <mml:mi mathvariant="italic">s</mml:mi>
814 </mml:msub>
815 </mml:mrow>
816 </mml:mrow>
817 </mml:math></inlineequation>
818 </entry>
819 <entry align="center">
820 <inlineequation><mml:math>
821 <!-- eqn: A sub v = A sub p A sub s:-->
822 <mml:mrow>
823 <mml:mrow>
824 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
825 <mml:mi mathvariant="italic">p</mml:mi>
826 </mml:msub>
827 <mml:mo>&it;</mml:mo>
828 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
829 <mml:mi mathvariant="italic">s</mml:mi>
830 </mml:msub>
831 </mml:mrow>
832 </mml:mrow>
833 </mml:math></inlineequation>
834 </entry>
835 </row>
836 <row>
837 <entry align="center">
838 <constant>GL_INTENSITY</constant>
839 </entry>
840 <entry align="center">
841 <inlineequation><mml:math>
842 <!-- eqn: C sub v = :-->
843 <mml:mrow>
844 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
845 <mml:mi mathvariant="italic">v</mml:mi>
846 </mml:msub>
847 <mml:mo>=</mml:mo>
848 </mml:mrow>
849 </mml:math></inlineequation>
850 </entry>
851 <entry align="center">
852 <inlineequation><mml:math>
853 <!-- eqn: C sub v = C sub s:-->
854 <mml:mrow>
855 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
856 <mml:mi mathvariant="italic">s</mml:mi>
857 </mml:msub>
858 </mml:mrow>
859 </mml:math></inlineequation>
860 </entry>
861 <entry align="center">
862 <inlineequation><mml:math>
863 <!-- eqn: C sub v = C sub p C sub s:-->
864 <mml:mrow>
865 <mml:mrow>
866 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
867 <mml:mi mathvariant="italic">p</mml:mi>
868 </mml:msub>
869 <mml:mo>&it;</mml:mo>
870 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
871 <mml:mi mathvariant="italic">s</mml:mi>
872 </mml:msub>
873 </mml:mrow>
874 </mml:mrow>
875 </mml:math></inlineequation>
876 </entry>
877 <entry align="center">
878 undefined
879 </entry>
880 <entry align="center">
881 <inlineequation><mml:math>
882 <!-- eqn: C sub v = C sub p ( 1 - C sub s ) + C sub c C sub s:-->
883 <mml:mrow>
884 <mml:mrow>
885 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
886 <mml:mi mathvariant="italic">p</mml:mi>
887 </mml:msub>
888 <mml:mo>&it;</mml:mo>
889 <mml:mfenced open="(" close=")">
890 <mml:mrow>
891 <mml:mn>1</mml:mn>
892 <mml:mo>-</mml:mo>
893 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
894 <mml:mi mathvariant="italic">s</mml:mi>
895 </mml:msub>
896 </mml:mrow>
897 </mml:mfenced>
898 <mml:mo>+</mml:mo>
899 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
900 <mml:mi mathvariant="italic">c</mml:mi>
901 </mml:msub>
902 <mml:mo>&it;</mml:mo>
903 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
904 <mml:mi mathvariant="italic">s</mml:mi>
905 </mml:msub>
906 </mml:mrow>
907 </mml:mrow>
908 </mml:math></inlineequation>
909 </entry>
910 <entry align="center">
911 <inlineequation><mml:math>
912 <!-- eqn: C sub v = C sub p + C sub s:-->
913 <mml:mrow>
914 <mml:mrow>
915 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
916 <mml:mi mathvariant="italic">p</mml:mi>
917 </mml:msub>
918 <mml:mo>+</mml:mo>
919 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
920 <mml:mi mathvariant="italic">s</mml:mi>
921 </mml:msub>
922 </mml:mrow>
923 </mml:mrow>
924 </mml:math></inlineequation>
925 </entry>
926 </row>
927 <row>
928 <entry align="center">
929 </entry>
930 <entry align="center">
931 <inlineequation><mml:math>
932 <!-- eqn: A sub v = :-->
933 <mml:mrow>
934 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
935 <mml:mi mathvariant="italic">v</mml:mi>
936 </mml:msub>
937 <mml:mo>=</mml:mo>
938 </mml:mrow>
939 </mml:math></inlineequation>
940 </entry>
941 <entry align="center">
942 <inlineequation><mml:math>
943 <!-- eqn: A sub v = A sub s:-->
944 <mml:mrow>
945 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
946 <mml:mi mathvariant="italic">s</mml:mi>
947 </mml:msub>
948 </mml:mrow>
949 </mml:math></inlineequation>
950 </entry>
951 <entry align="center">
952 <inlineequation><mml:math>
953 <!-- eqn: A sub v = A sub p A sub s:-->
954 <mml:mrow>
955 <mml:mrow>
956 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
957 <mml:mi mathvariant="italic">p</mml:mi>
958 </mml:msub>
959 <mml:mo>&it;</mml:mo>
960 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
961 <mml:mi mathvariant="italic">s</mml:mi>
962 </mml:msub>
963 </mml:mrow>
964 </mml:mrow>
965 </mml:math></inlineequation>
966 </entry>
967 <entry align="center">
968 </entry>
969 <entry align="center">
970 <inlineequation><mml:math>
971 <!-- eqn: A sub v = A sub p ( 1 - A sub s ) + A sub c A sub s:-->
972 <mml:mrow>
973 <mml:mrow>
974 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
975 <mml:mi mathvariant="italic">p</mml:mi>
976 </mml:msub>
977 <mml:mo>&it;</mml:mo>
978 <mml:mfenced open="(" close=")">
979 <mml:mrow>
980 <mml:mn>1</mml:mn>
981 <mml:mo>-</mml:mo>
982 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
983 <mml:mi mathvariant="italic">s</mml:mi>
984 </mml:msub>
985 </mml:mrow>
986 </mml:mfenced>
987 <mml:mo>+</mml:mo>
988 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
989 <mml:mi mathvariant="italic">c</mml:mi>
990 </mml:msub>
991 <mml:mo>&it;</mml:mo>
992 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
993 <mml:mi mathvariant="italic">s</mml:mi>
994 </mml:msub>
995 </mml:mrow>
996 </mml:mrow>
997 </mml:math></inlineequation>
998 </entry>
999 <entry align="center">
1000 <inlineequation><mml:math>
1001 <!-- eqn: A sub v = A sub p + A sub s:-->
1002 <mml:mrow>
1003 <mml:mrow>
1004 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1005 <mml:mi mathvariant="italic">p</mml:mi>
1006 </mml:msub>
1007 <mml:mo>+</mml:mo>
1008 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1009 <mml:mi mathvariant="italic">s</mml:mi>
1010 </mml:msub>
1011 </mml:mrow>
1012 </mml:mrow>
1013 </mml:math></inlineequation>
1014 </entry>
1015 </row>
1016 <row>
1017 <entry align="center">
1018 <constant>GL_RGB</constant>
1019 </entry>
1020 <entry align="center">
1021 <inlineequation><mml:math>
1022 <!-- eqn: C sub v = :-->
1023 <mml:mrow>
1024 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1025 <mml:mi mathvariant="italic">v</mml:mi>
1026 </mml:msub>
1027 <mml:mo>=</mml:mo>
1028 </mml:mrow>
1029 </mml:math></inlineequation>
1030 </entry>
1031 <entry align="center">
1032 <inlineequation><mml:math>
1033 <!-- eqn: C sub v = C sub s:-->
1034 <mml:mrow>
1035 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1036 <mml:mi mathvariant="italic">s</mml:mi>
1037 </mml:msub>
1038 </mml:mrow>
1039 </mml:math></inlineequation>
1040 </entry>
1041 <entry align="center">
1042 <inlineequation><mml:math>
1043 <!-- eqn: C sub v = C sub p C sub s:-->
1044 <mml:mrow>
1045 <mml:mrow>
1046 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1047 <mml:mi mathvariant="italic">p</mml:mi>
1048 </mml:msub>
1049 <mml:mo>&it;</mml:mo>
1050 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1051 <mml:mi mathvariant="italic">s</mml:mi>
1052 </mml:msub>
1053 </mml:mrow>
1054 </mml:mrow>
1055 </mml:math></inlineequation>
1056 </entry>
1057 <entry align="center">
1058 <inlineequation><mml:math>
1059 <!-- eqn: C sub v = C sub s:-->
1060 <mml:mrow>
1061 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1062 <mml:mi mathvariant="italic">s</mml:mi>
1063 </mml:msub>
1064 </mml:mrow>
1065 </mml:math></inlineequation>
1066 </entry>
1067 <entry align="center">
1068 <inlineequation><mml:math>
1069 <!-- eqn: C sub v = C sub p ( 1 - C sub s ) + C sub c C sub s:-->
1070 <mml:mrow>
1071 <mml:mrow>
1072 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1073 <mml:mi mathvariant="italic">p</mml:mi>
1074 </mml:msub>
1075 <mml:mo>&it;</mml:mo>
1076 <mml:mfenced open="(" close=")">
1077 <mml:mrow>
1078 <mml:mn>1</mml:mn>
1079 <mml:mo>-</mml:mo>
1080 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1081 <mml:mi mathvariant="italic">s</mml:mi>
1082 </mml:msub>
1083 </mml:mrow>
1084 </mml:mfenced>
1085 <mml:mo>+</mml:mo>
1086 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1087 <mml:mi mathvariant="italic">c</mml:mi>
1088 </mml:msub>
1089 <mml:mo>&it;</mml:mo>
1090 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1091 <mml:mi mathvariant="italic">s</mml:mi>
1092 </mml:msub>
1093 </mml:mrow>
1094 </mml:mrow>
1095 </mml:math></inlineequation>
1096 </entry>
1097 <entry align="center">
1098 <inlineequation><mml:math>
1099 <!-- eqn: C sub v = C sub p + C sub s:-->
1100 <mml:mrow>
1101 <mml:mrow>
1102 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1103 <mml:mi mathvariant="italic">p</mml:mi>
1104 </mml:msub>
1105 <mml:mo>+</mml:mo>
1106 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1107 <mml:mi mathvariant="italic">s</mml:mi>
1108 </mml:msub>
1109 </mml:mrow>
1110 </mml:mrow>
1111 </mml:math></inlineequation>
1112 </entry>
1113 </row>
1114 <row>
1115 <entry align="center">
1116 (or 3)
1117 </entry>
1118 <entry align="center">
1119 <inlineequation><mml:math>
1120 <!-- eqn: A sub v = :-->
1121 <mml:mrow>
1122 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1123 <mml:mi mathvariant="italic">v</mml:mi>
1124 </mml:msub>
1125 <mml:mo>=</mml:mo>
1126 </mml:mrow>
1127 </mml:math></inlineequation>
1128 </entry>
1129 <entry align="center">
1130 <inlineequation><mml:math>
1131 <!-- eqn: A sub v = A sub p:-->
1132 <mml:mrow>
1133 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1134 <mml:mi mathvariant="italic">p</mml:mi>
1135 </mml:msub>
1136 </mml:mrow>
1137 </mml:math></inlineequation>
1138 </entry>
1139 <entry align="center">
1140 <inlineequation><mml:math>
1141 <!-- eqn: A sub v = A sub p:-->
1142 <mml:mrow>
1143 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1144 <mml:mi mathvariant="italic">p</mml:mi>
1145 </mml:msub>
1146 </mml:mrow>
1147 </mml:math></inlineequation>
1148 </entry>
1149 <entry align="center">
1150 <inlineequation><mml:math>
1151 <!-- eqn: A sub v = A sub p:-->
1152 <mml:mrow>
1153 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1154 <mml:mi mathvariant="italic">p</mml:mi>
1155 </mml:msub>
1156 </mml:mrow>
1157 </mml:math></inlineequation>
1158 </entry>
1159 <entry align="center">
1160 <inlineequation><mml:math>
1161 <!-- eqn: A sub v = A sub p:-->
1162 <mml:mrow>
1163 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1164 <mml:mi mathvariant="italic">p</mml:mi>
1165 </mml:msub>
1166 </mml:mrow>
1167 </mml:math></inlineequation>
1168 </entry>
1169 <entry align="center">
1170 <inlineequation><mml:math>
1171 <!-- eqn: A sub v = A sub p:-->
1172 <mml:mrow>
1173 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1174 <mml:mi mathvariant="italic">p</mml:mi>
1175 </mml:msub>
1176 </mml:mrow>
1177 </mml:math></inlineequation>
1178 </entry>
1179 </row>
1180 <row>
1181 <entry align="center">
1182 <constant>GL_RGBA</constant>
1183 </entry>
1184 <entry align="center">
1185 <inlineequation><mml:math>
1186 <!-- eqn: C sub v = :-->
1187 <mml:mrow>
1188 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1189 <mml:mi mathvariant="italic">v</mml:mi>
1190 </mml:msub>
1191 <mml:mo>=</mml:mo>
1192 </mml:mrow>
1193 </mml:math></inlineequation>
1194 </entry>
1195 <entry align="center">
1196 <inlineequation><mml:math>
1197 <!-- eqn: C sub v = C sub s:-->
1198 <mml:mrow>
1199 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1200 <mml:mi mathvariant="italic">s</mml:mi>
1201 </mml:msub>
1202 </mml:mrow>
1203 </mml:math></inlineequation>
1204 </entry>
1205 <entry align="center">
1206 <inlineequation><mml:math>
1207 <!-- eqn: C sub v = C sub p C sub s:-->
1208 <mml:mrow>
1209 <mml:mrow>
1210 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1211 <mml:mi mathvariant="italic">p</mml:mi>
1212 </mml:msub>
1213 <mml:mo>&it;</mml:mo>
1214 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1215 <mml:mi mathvariant="italic">s</mml:mi>
1216 </mml:msub>
1217 </mml:mrow>
1218 </mml:mrow>
1219 </mml:math></inlineequation>
1220 </entry>
1221 <entry align="center">
1222 <inlineequation><mml:math>
1223 <!-- eqn: C sub v = C sub p ( 1 - A sub s ) + C sub s A sub s:-->
1224 <mml:mrow>
1225 <mml:mrow>
1226 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1227 <mml:mi mathvariant="italic">p</mml:mi>
1228 </mml:msub>
1229 <mml:mo>&it;</mml:mo>
1230 <mml:mfenced open="(" close=")">
1231 <mml:mrow>
1232 <mml:mn>1</mml:mn>
1233 <mml:mo>-</mml:mo>
1234 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1235 <mml:mi mathvariant="italic">s</mml:mi>
1236 </mml:msub>
1237 </mml:mrow>
1238 </mml:mfenced>
1239 <mml:mo>+</mml:mo>
1240 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1241 <mml:mi mathvariant="italic">s</mml:mi>
1242 </mml:msub>
1243 <mml:mo>&it;</mml:mo>
1244 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1245 <mml:mi mathvariant="italic">s</mml:mi>
1246 </mml:msub>
1247 </mml:mrow>
1248 </mml:mrow>
1249 </mml:math></inlineequation>
1250 </entry>
1251 <entry align="center">
1252 <inlineequation><mml:math>
1253 <!-- eqn: C sub v = C sub p ( 1 - C sub s ) + C sub c C sub s:-->
1254 <mml:mrow>
1255 <mml:mrow>
1256 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1257 <mml:mi mathvariant="italic">p</mml:mi>
1258 </mml:msub>
1259 <mml:mo>&it;</mml:mo>
1260 <mml:mfenced open="(" close=")">
1261 <mml:mrow>
1262 <mml:mn>1</mml:mn>
1263 <mml:mo>-</mml:mo>
1264 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1265 <mml:mi mathvariant="italic">s</mml:mi>
1266 </mml:msub>
1267 </mml:mrow>
1268 </mml:mfenced>
1269 <mml:mo>+</mml:mo>
1270 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1271 <mml:mi mathvariant="italic">c</mml:mi>
1272 </mml:msub>
1273 <mml:mo>&it;</mml:mo>
1274 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1275 <mml:mi mathvariant="italic">s</mml:mi>
1276 </mml:msub>
1277 </mml:mrow>
1278 </mml:mrow>
1279 </mml:math></inlineequation>
1280 </entry>
1281 <entry align="center">
1282 <inlineequation><mml:math>
1283 <!-- eqn: C sub v = C sub p + C sub s:-->
1284 <mml:mrow>
1285 <mml:mrow>
1286 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1287 <mml:mi mathvariant="italic">p</mml:mi>
1288 </mml:msub>
1289 <mml:mo>+</mml:mo>
1290 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1291 <mml:mi mathvariant="italic">s</mml:mi>
1292 </mml:msub>
1293 </mml:mrow>
1294 </mml:mrow>
1295 </mml:math></inlineequation>
1296 </entry>
1297 </row>
1298 <row>
1299 <entry align="center">
1300 (or 4)
1301 </entry>
1302 <entry align="center">
1303 <inlineequation><mml:math>
1304 <!-- eqn: A sub v = :-->
1305 <mml:mrow>
1306 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1307 <mml:mi mathvariant="italic">v</mml:mi>
1308 </mml:msub>
1309 <mml:mo>=</mml:mo>
1310 </mml:mrow>
1311 </mml:math></inlineequation>
1312 </entry>
1313 <entry align="center">
1314 <inlineequation><mml:math>
1315 <!-- eqn: A sub v = A sub s:-->
1316 <mml:mrow>
1317 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1318 <mml:mi mathvariant="italic">s</mml:mi>
1319 </mml:msub>
1320 </mml:mrow>
1321 </mml:math></inlineequation>
1322 </entry>
1323 <entry align="center">
1324 <inlineequation><mml:math>
1325 <!-- eqn: A sub v = A sub p A sub s:-->
1326 <mml:mrow>
1327 <mml:mrow>
1328 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1329 <mml:mi mathvariant="italic">p</mml:mi>
1330 </mml:msub>
1331 <mml:mo>&it;</mml:mo>
1332 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1333 <mml:mi mathvariant="italic">s</mml:mi>
1334 </mml:msub>
1335 </mml:mrow>
1336 </mml:mrow>
1337 </mml:math></inlineequation>
1338 </entry>
1339 <entry align="center">
1340 <inlineequation><mml:math>
1341 <!-- eqn: A sub v = A sub p:-->
1342 <mml:mrow>
1343 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1344 <mml:mi mathvariant="italic">p</mml:mi>
1345 </mml:msub>
1346 </mml:mrow>
1347 </mml:math></inlineequation>
1348 </entry>
1349 <entry align="center">
1350 <inlineequation><mml:math>
1351 <!-- eqn: A sub v = A sub p A sub s:-->
1352 <mml:mrow>
1353 <mml:mrow>
1354 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1355 <mml:mi mathvariant="italic">p</mml:mi>
1356 </mml:msub>
1357 <mml:mo>&it;</mml:mo>
1358 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1359 <mml:mi mathvariant="italic">s</mml:mi>
1360 </mml:msub>
1361 </mml:mrow>
1362 </mml:mrow>
1363 </mml:math></inlineequation>
1364 </entry>
1365 <entry align="center">
1366 <inlineequation><mml:math>
1367 <!-- eqn: A sub v = A sub p A sub s:-->
1368 <mml:mrow>
1369 <mml:mrow>
1370 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1371 <mml:mi mathvariant="italic">p</mml:mi>
1372 </mml:msub>
1373 <mml:mo>&it;</mml:mo>
1374 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1375 <mml:mi mathvariant="italic">s</mml:mi>
1376 </mml:msub>
1377 </mml:mrow>
1378 </mml:mrow>
1379 </mml:math></inlineequation>
1380 </entry>
1381 </row>
1382 </tbody>
1383 </tgroup>
1384 </informaltable>
1385 <para>
1386 If <parameter>pname</parameter> is <constant>GL_TEXTURE_ENV_MODE</constant>, and <parameter>params</parameter> is <constant>GL_COMBINE</constant>, the
1387 form of the texture function depends on the values of <constant>GL_COMBINE_RGB</constant>
1388 and <constant>GL_COMBINE_ALPHA</constant>.
1389 </para>
1390 <para>
1391 The following describes how the texture sources, as specified by
1392 <constant>GL_SRC0_RGB</constant>, <constant>GL_SRC1_RGB</constant>, <constant>GL_SRC2_RGB</constant>,
1393 <constant>GL_SRC0_ALPHA</constant>, <constant>GL_SRC1_ALPHA</constant>, and <constant>GL_SRC2_ALPHA</constant>,
1394 are combined to produce a final texture color. In the following tables,
1395 <constant>GL_SRC0_c</constant> is represented by
1396 <inlineequation><mml:math><mml:mi mathvariant="italic">Arg0</mml:mi></mml:math></inlineequation>,
1397 <constant>GL_SRC1_c</constant> is
1398 represented by
1399 <inlineequation><mml:math><mml:mi mathvariant="italic">Arg1</mml:mi></mml:math></inlineequation>,
1400 and <constant>GL_SRC2_c</constant> is represented by
1401 <inlineequation><mml:math><mml:mi mathvariant="italic">Arg2</mml:mi></mml:math></inlineequation>.
1402 </para>
1403 <para>
1404 <constant>GL_COMBINE_RGB</constant> accepts any of <constant>GL_REPLACE</constant>, <constant>GL_MODULATE</constant>,
1405 <constant>GL_ADD</constant>, <constant>GL_ADD_SIGNED</constant>, <constant>GL_INTERPOLATE</constant>, <constant>GL_SUBTRACT</constant>,
1406 <constant>GL_DOT3_RGB</constant>, or <constant>GL_DOT3_RGBA</constant>.
1407 </para>
1408 <para>
1409 </para>
1410 <informaltable frame="topbot">
1411 <tgroup cols="2" align="left">
1412 <colspec/>
1413 <colspec/>
1414 <thead>
1415 <row>
1416 <entry rowsep="1" align="left"><emphasis role="bold">
1417 <constant>GL_COMBINE_RGB</constant>
1418 </emphasis></entry>
1419 <entry rowsep="1" align="left"><emphasis role="bold">
1420 Texture Function
1421 </emphasis></entry>
1422 </row>
1423 </thead>
1424 <tbody>
1425 <row>
1426 <entry align="left">
1427 <constant>GL_REPLACE</constant>
1428 </entry>
1429 <entry align="left">
1430 <inlineequation><mml:math><mml:mi mathvariant="italic">Arg0</mml:mi></mml:math></inlineequation>
1431 </entry>
1432 </row>
1433 <row>
1434 <entry align="left">
1435 <constant>GL_MODULATE</constant>
1436 </entry>
1437 <entry align="left">
1438 <inlineequation><mml:math>
1439 <!-- eqn: Arg0 * Arg1:-->
1440 <mml:mrow>
1441 <mml:mi mathvariant="italic">Arg0</mml:mi>
1442 <mml:mo>&times;</mml:mo>
1443 <mml:mi mathvariant="italic">Arg1</mml:mi>
1444 </mml:mrow>
1445 </mml:math></inlineequation>
1446 </entry>
1447 </row>
1448 <row>
1449 <entry align="left">
1450 <constant>GL_ADD</constant>
1451 </entry>
1452 <entry align="left">
1453 <inlineequation><mml:math>
1454 <!-- eqn: Arg0 + Arg1:-->
1455 <mml:mrow>
1456 <mml:mi mathvariant="italic">Arg0</mml:mi>
1457 <mml:mo>+</mml:mo>
1458 <mml:mi mathvariant="italic">Arg1</mml:mi>
1459 </mml:mrow>
1460 </mml:math></inlineequation>
1461 </entry>
1462 </row>
1463 <row>
1464 <entry align="left">
1465 <constant>GL_ADD_SIGNED</constant>
1466 </entry>
1467 <entry align="left">
1468 <inlineequation><mml:math>
1469 <!-- eqn: Arg0 + Arg1 - 0.5:-->
1470 <mml:mrow>
1471 <mml:mi mathvariant="italic">Arg0</mml:mi>
1472 <mml:mo>+</mml:mo>
1473 <mml:mi mathvariant="italic">Arg1</mml:mi>
1474 <mml:mo>-</mml:mo>
1475 <mml:mn>0.5</mml:mn>
1476 </mml:mrow>
1477 </mml:math></inlineequation>
1478 </entry>
1479 </row>
1480 <row>
1481 <entry align="left">
1482 <constant>GL_INTERPOLATE</constant>
1483 </entry>
1484 <entry align="left">
1485 <inlineequation><mml:math>
1486 <!-- eqn: Arg0 * Arg2 + Arg1*(1 - Arg2):-->
1487 <mml:mrow>
1488 <mml:mrow>
1489 <mml:mi mathvariant="italic">Arg0</mml:mi>
1490 <mml:mo>&times;</mml:mo>
1491 <mml:mi mathvariant="italic">Arg2</mml:mi>
1492 </mml:mrow>
1493 <mml:mo>+</mml:mo>
1494 <mml:mrow>
1495 <mml:mi mathvariant="italic">Arg1</mml:mi>
1496 <mml:mo>&times;</mml:mo>
1497 <mml:mfenced open="(" close=")">
1498 <mml:mrow>
1499 <mml:mn>1</mml:mn>
1500 <mml:mo>-</mml:mo>
1501 <mml:mi mathvariant="italic">Arg2</mml:mi>
1502 </mml:mrow>
1503 </mml:mfenced>
1504 </mml:mrow>
1505 </mml:mrow>
1506 </mml:math></inlineequation>
1507 </entry>
1508 </row>
1509 <row>
1510 <entry align="left">
1511 <constant>GL_SUBTRACT</constant>
1512 </entry>
1513 <entry align="left">
1514 <inlineequation><mml:math>
1515 <!-- eqn: Arg0 - Arg1:-->
1516 <mml:mrow>
1517 <mml:mi mathvariant="italic">Arg0</mml:mi>
1518 <mml:mo>-</mml:mo>
1519 <mml:mi mathvariant="italic">Arg1</mml:mi>
1520 </mml:mrow>
1521 </mml:math></inlineequation>
1522 </entry>
1523 </row>
1524 <row>
1525 <entry align="left">
1526 <constant>GL_DOT3_RGB</constant>
1527 or
1528 <constant>GL_DOT3_RGBA</constant>
1529 </entry>
1530 <entry align="left">
1531 <!-- eqn: 4 * ((({Arg0 sub r} - 0.5) * ({Arg1 sub r} - 0.5)) +
1532 (({Arg0 sub g} - 0.5) * ({Arg1 sub g} - 0.5)) +
1533 (({Arg0 sub b} - 0.5) * ({Arg1 sub b} - 0.5)):-->
1534 <inlineequation><mml:math>
1535 <mml:mrow>
1536 <mml:mn>4</mml:mn>
1537 <mml:mo>&times;</mml:mo>
1538 <mml:mfenced open="(" close=")">
1539 <mml:mrow>
1540 <mml:mfenced open="(" close=")">
1541 <mml:mrow>
1542 <mml:mfenced open="(" close=")">
1543 <mml:mrow>
1544 <mml:mfenced open="" close="">
1545 <mml:msub><mml:mi mathvariant="italic">Arg0</mml:mi>
1546 <mml:mi mathvariant="italic">r</mml:mi>
1547 </mml:msub>
1548 </mml:mfenced>
1549 <mml:mo>-</mml:mo>
1550 <mml:mn>0.5</mml:mn>
1551 </mml:mrow>
1552 </mml:mfenced>
1553 <mml:mo>&times;</mml:mo>
1554 <mml:mfenced open="(" close=")">
1555 <mml:mrow>
1556 <mml:mfenced open="" close="">
1557 <mml:msub><mml:mi mathvariant="italic">Arg1</mml:mi>
1558 <mml:mi mathvariant="italic">r</mml:mi>
1559 </mml:msub>
1560 </mml:mfenced>
1561 <mml:mo>-</mml:mo>
1562 <mml:mn>0.5</mml:mn>
1563 </mml:mrow>
1564 </mml:mfenced>
1565 </mml:mrow>
1566 </mml:mfenced>
1567 <mml:mo>+</mml:mo>
1568 <mml:mfenced open="(" close=")">
1569 <mml:mrow>
1570 <mml:mfenced open="(" close=")">
1571 <mml:mrow>
1572 <mml:mfenced open="" close="">
1573 <mml:msub><mml:mi mathvariant="italic">Arg0</mml:mi>
1574 <mml:mi mathvariant="italic">g</mml:mi>
1575 </mml:msub>
1576 </mml:mfenced>
1577 <mml:mo>-</mml:mo>
1578 <mml:mn>0.5</mml:mn>
1579 </mml:mrow>
1580 </mml:mfenced>
1581 <mml:mo>&times;</mml:mo>
1582 <mml:mfenced open="(" close=")">
1583 <mml:mrow>
1584 <mml:mfenced open="" close="">
1585 <mml:msub><mml:mi mathvariant="italic">Arg1</mml:mi>
1586 <mml:mi mathvariant="italic">g</mml:mi>
1587 </mml:msub>
1588 </mml:mfenced>
1589 <mml:mo>-</mml:mo>
1590 <mml:mn>0.5</mml:mn>
1591 </mml:mrow>
1592 </mml:mfenced>
1593 </mml:mrow>
1594 </mml:mfenced>
1595 <mml:mo>+</mml:mo>
1596 <mml:mfenced open="(" close=")">
1597 <mml:mrow>
1598 <mml:mfenced open="(" close=")">
1599 <mml:mrow>
1600 <mml:mfenced open="" close="">
1601 <mml:msub><mml:mi mathvariant="italic">Arg0</mml:mi>
1602 <mml:mi mathvariant="italic">b</mml:mi>
1603 </mml:msub>
1604 </mml:mfenced>
1605 <mml:mo>-</mml:mo>
1606 <mml:mn>0.5</mml:mn>
1607 </mml:mrow>
1608 </mml:mfenced>
1609 <mml:mo>&times;</mml:mo>
1610 <mml:mfenced open="(" close=")">
1611 <mml:mrow>
1612 <mml:mfenced open="" close="">
1613 <mml:msub><mml:mi mathvariant="italic">Arg1</mml:mi>
1614 <mml:mi mathvariant="italic">b</mml:mi>
1615 </mml:msub>
1616 </mml:mfenced>
1617 <mml:mo>-</mml:mo>
1618 <mml:mn>0.5</mml:mn>
1619 </mml:mrow>
1620 </mml:mfenced>
1621 </mml:mrow>
1622 </mml:mfenced>
1623 </mml:mrow>
1624 </mml:mfenced>
1625 </mml:mrow>
1626 </mml:math></inlineequation>
1627 </entry>
1628 </row>
1629 </tbody>
1630 </tgroup>
1631 </informaltable>
1632 <para>
1633 The scalar results for <constant>GL_DOT3_RGB</constant> and <constant>GL_DOT3_RGBA</constant> are placed
1634 into each of the 3 (RGB) or 4 (RGBA) components on output.
1635 </para>
1636 <para>
1637 Likewise, <constant>GL_COMBINE_ALPHA</constant> accepts any of <constant>GL_REPLACE</constant>,
1638 <constant>GL_MODULATE</constant>, <constant>GL_ADD</constant>, <constant>GL_ADD_SIGNED</constant>, <constant>GL_INTERPOLATE</constant>, or
1639 <constant>GL_SUBTRACT</constant>. The following table describes how alpha values are
1640 combined:
1641 </para>
1642 <para>
1643 </para>
1644 <informaltable frame="topbot">
1645 <tgroup cols="2" align="left">
1646 <colspec/>
1647 <colspec/>
1648 <thead>
1649 <row>
1650 <entry rowsep="1" align="left"><emphasis role="bold">
1651 <constant>GL_COMBINE_ALPHA</constant>
1652 </emphasis></entry>
1653 <entry rowsep="1" align="left"><emphasis role="bold">
1654 Texture Function
1655 </emphasis></entry>
1656 </row>
1657 </thead>
1658 <tbody>
1659 <row>
1660 <entry align="left">
1661 <constant>GL_REPLACE</constant>
1662 </entry>
1663 <entry align="left">
1664 <inlineequation><mml:math><mml:mi mathvariant="italic">Arg0</mml:mi></mml:math></inlineequation>
1665 </entry>
1666 </row>
1667 <row>
1668 <entry align="left">
1669 <constant>GL_MODULATE</constant>
1670 </entry>
1671 <entry align="left">
1672 <inlineequation><mml:math>
1673 <!-- eqn: Arg0 * Arg1:-->
1674 <mml:mrow>
1675 <mml:mi mathvariant="italic">Arg0</mml:mi>
1676 <mml:mo>&times;</mml:mo>
1677 <mml:mi mathvariant="italic">Arg1</mml:mi>
1678 </mml:mrow>
1679 </mml:math></inlineequation>
1680 </entry>
1681 </row>
1682 <row>
1683 <entry align="left">
1684 <constant>GL_ADD</constant>
1685 </entry>
1686 <entry align="left">
1687 <inlineequation><mml:math>
1688 <!-- eqn: Arg0 + Arg1:-->
1689 <mml:mrow>
1690 <mml:mi mathvariant="italic">Arg0</mml:mi>
1691 <mml:mo>+</mml:mo>
1692 <mml:mi mathvariant="italic">Arg1</mml:mi>
1693 </mml:mrow>
1694 </mml:math></inlineequation>
1695 </entry>
1696 </row>
1697 <row>
1698 <entry align="left">
1699 <constant>GL_ADD_SIGNED</constant>
1700 </entry>
1701 <entry align="left">
1702 <inlineequation><mml:math>
1703 <!-- eqn: Arg0 + Arg1 - 0.5:-->
1704 <mml:mrow>
1705 <mml:mi mathvariant="italic">Arg0</mml:mi>
1706 <mml:mo>+</mml:mo>
1707 <mml:mi mathvariant="italic">Arg1</mml:mi>
1708 <mml:mo>-</mml:mo>
1709 <mml:mn>0.5</mml:mn>
1710 </mml:mrow>
1711 </mml:math></inlineequation>
1712 </entry>
1713 </row>
1714 <row>
1715 <entry align="left">
1716 <constant>GL_INTERPOLATE</constant>
1717 </entry>
1718 <entry align="left">
1719 <inlineequation><mml:math>
1720 <!-- eqn: Arg0 * Arg2 + Arg1*(1 - Arg2):-->
1721 <mml:mrow>
1722 <mml:mrow>
1723 <mml:mi mathvariant="italic">Arg0</mml:mi>
1724 <mml:mo>&times;</mml:mo>
1725 <mml:mi mathvariant="italic">Arg2</mml:mi>
1726 </mml:mrow>
1727 <mml:mo>+</mml:mo>
1728 <mml:mrow>
1729 <mml:mi mathvariant="italic">Arg1</mml:mi>
1730 <mml:mo>&times;</mml:mo>
1731 <mml:mfenced open="(" close=")">
1732 <mml:mrow>
1733 <mml:mn>1</mml:mn>
1734 <mml:mo>-</mml:mo>
1735 <mml:mi mathvariant="italic">Arg2</mml:mi>
1736 </mml:mrow>
1737 </mml:mfenced>
1738 </mml:mrow>
1739 </mml:mrow>
1740 </mml:math></inlineequation>
1741 </entry>
1742 </row>
1743 <row>
1744 <entry align="left">
1745 <constant>GL_SUBTRACT</constant>
1746 </entry>
1747 <entry align="left">
1748 <inlineequation><mml:math>
1749 <!-- eqn: Arg0 - Arg1:-->
1750 <mml:mrow>
1751 <mml:mi mathvariant="italic">Arg0</mml:mi>
1752 <mml:mo>-</mml:mo>
1753 <mml:mi mathvariant="italic">Arg1</mml:mi>
1754 </mml:mrow>
1755 </mml:math></inlineequation>
1756 </entry>
1757 </row>
1758 </tbody>
1759 </tgroup>
1760 </informaltable>
1761 <para>
1762 In the following tables, the value
1763 <inlineequation><mml:math>
1764 <!-- eqn: C sub s:-->
1765 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1766 <mml:mi mathvariant="italic">s</mml:mi>
1767 </mml:msub>
1768 </mml:math></inlineequation>
1769 represents the color sampled
1770 from the currently bound texture,
1771 <inlineequation><mml:math>
1772 <!-- eqn: C sub c:-->
1773 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1774 <mml:mi mathvariant="italic">c</mml:mi>
1775 </mml:msub>
1776 </mml:math></inlineequation>
1777 represents the constant
1778 texture-environment color,
1779 <inlineequation><mml:math>
1780 <!-- eqn: C sub f:-->
1781 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1782 <mml:mi mathvariant="italic">f</mml:mi>
1783 </mml:msub>
1784 </mml:math></inlineequation>
1785 represents the primary color of the
1786 incoming fragment, and
1787 <inlineequation><mml:math>
1788 <!-- eqn: C sub p:-->
1789 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1790 <mml:mi mathvariant="italic">p</mml:mi>
1791 </mml:msub>
1792 </mml:math></inlineequation>
1793 represents the color computed from the
1794 previous texture stage or
1795 <inlineequation><mml:math>
1796 <!-- eqn: C sub f:-->
1797 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1798 <mml:mi mathvariant="italic">f</mml:mi>
1799 </mml:msub>
1800 </mml:math></inlineequation>
1801 if processing texture stage 0. Likewise,
1802 <inlineequation><mml:math>
1803 <!-- eqn: A sub s:-->
1804 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1805 <mml:mi mathvariant="italic">s</mml:mi>
1806 </mml:msub>
1807 </mml:math></inlineequation>,
1808 <inlineequation><mml:math>
1809 <!-- eqn: A sub c:-->
1810 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1811 <mml:mi mathvariant="italic">c</mml:mi>
1812 </mml:msub>
1813 </mml:math></inlineequation>,
1814 <inlineequation><mml:math>
1815 <!-- eqn: A sub f:-->
1816 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1817 <mml:mi mathvariant="italic">f</mml:mi>
1818 </mml:msub>
1819 </mml:math></inlineequation>,
1820 and
1821 <inlineequation><mml:math>
1822 <!-- eqn: A sub p:-->
1823 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1824 <mml:mi mathvariant="italic">p</mml:mi>
1825 </mml:msub>
1826 </mml:math></inlineequation>
1827 represent the respective
1828 alpha values.
1829 </para>
1830 <para>
1831 The following table describes the values assigned to
1832 <inlineequation><mml:math><mml:mi mathvariant="italic">Arg0</mml:mi></mml:math></inlineequation>,
1833 <inlineequation><mml:math><mml:mi mathvariant="italic">Arg1</mml:mi></mml:math></inlineequation>,
1834 and
1835 <inlineequation><mml:math><mml:mi mathvariant="italic">Arg2</mml:mi></mml:math></inlineequation>
1836 based upon the RGB sources and operands:
1837 </para>
1838 <para>
1839 </para>
1840 <informaltable frame="topbot">
1841 <tgroup cols="3" align="left">
1842 <colspec/>
1843 <colspec/>
1844 <colspec align="center"/>
1845 <thead>
1846 <row>
1847 <entry rowsep="1" align="left"><emphasis role="bold">
1848 <constant>GL_SRCn_RGB</constant>
1849 </emphasis></entry>
1850 <entry rowsep="1" align="left"><emphasis role="bold">
1851 <constant>GL_OPERANDn_RGB</constant>
1852 </emphasis></entry>
1853 <entry rowsep="1" align="center"><emphasis role="bold">
1854 Argument Value
1855 </emphasis></entry>
1856 </row>
1857 </thead>
1858 <tbody>
1859 <row>
1860 <entry align="left">
1861 <constant>GL_TEXTURE</constant>
1862 </entry>
1863 <entry align="left">
1864 <constant>GL_SRC_COLOR</constant>
1865 </entry>
1866 <entry align="center">
1867 <inlineequation><mml:math>
1868 <!-- eqn: {C sub s}:-->
1869 <mml:mfenced open="" close="">
1870 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1871 <mml:mi mathvariant="italic">s</mml:mi>
1872 </mml:msub>
1873 </mml:mfenced>
1874 </mml:math></inlineequation>
1875 </entry>
1876 </row>
1877 <row>
1878 <entry align="left">
1879 </entry>
1880 <entry align="left">
1881 <constant>GL_ONE_MINUS_SRC_COLOR</constant>
1882 </entry>
1883 <entry align="center">
1884 <inlineequation><mml:math>
1885 <!-- eqn: 1 - {C sub s}:-->
1886 <mml:mrow>
1887 <mml:mn>1</mml:mn>
1888 <mml:mo>-</mml:mo>
1889 <mml:mfenced open="" close="">
1890 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1891 <mml:mi mathvariant="italic">s</mml:mi>
1892 </mml:msub>
1893 </mml:mfenced>
1894 </mml:mrow>
1895 </mml:math></inlineequation>
1896 </entry>
1897 </row>
1898 <row>
1899 <entry align="left">
1900 </entry>
1901 <entry align="left">
1902 <constant>GL_SRC_ALPHA</constant>
1903 </entry>
1904 <entry align="center">
1905 <inlineequation><mml:math>
1906 <!-- eqn: {A sub s}:-->
1907 <mml:mfenced open="" close="">
1908 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1909 <mml:mi mathvariant="italic">s</mml:mi>
1910 </mml:msub>
1911 </mml:mfenced>
1912 </mml:math></inlineequation>
1913 </entry>
1914 </row>
1915 <row>
1916 <entry align="left">
1917 </entry>
1918 <entry align="left">
1919 <constant>GL_ONE_MINUS_SRC_ALPHA</constant>
1920 </entry>
1921 <entry align="center">
1922 <inlineequation><mml:math>
1923 <!-- eqn: 1 - {A sub s}:-->
1924 <mml:mrow>
1925 <mml:mn>1</mml:mn>
1926 <mml:mo>-</mml:mo>
1927 <mml:mfenced open="" close="">
1928 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1929 <mml:mi mathvariant="italic">s</mml:mi>
1930 </mml:msub>
1931 </mml:mfenced>
1932 </mml:mrow>
1933 </mml:math></inlineequation>
1934 </entry>
1935 </row>
1936 <row>
1937 <entry align="left">
1938 <constant>GL_TEXTUREn</constant>
1939 </entry>
1940 <entry align="left">
1941 <constant>GL_SRC_COLOR</constant>
1942 </entry>
1943 <entry align="center">
1944 <inlineequation><mml:math>
1945 <!-- eqn: {C sub s}:-->
1946 <mml:mfenced open="" close="">
1947 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1948 <mml:mi mathvariant="italic">s</mml:mi>
1949 </mml:msub>
1950 </mml:mfenced>
1951 </mml:math></inlineequation>
1952 </entry>
1953 </row>
1954 <row>
1955 <entry align="left">
1956 </entry>
1957 <entry align="left">
1958 <constant>GL_ONE_MINUS_SRC_COLOR</constant>
1959 </entry>
1960 <entry align="center">
1961 <inlineequation><mml:math>
1962 <!-- eqn: 1 - {C sub s}:-->
1963 <mml:mrow>
1964 <mml:mn>1</mml:mn>
1965 <mml:mo>-</mml:mo>
1966 <mml:mfenced open="" close="">
1967 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
1968 <mml:mi mathvariant="italic">s</mml:mi>
1969 </mml:msub>
1970 </mml:mfenced>
1971 </mml:mrow>
1972 </mml:math></inlineequation>
1973 </entry>
1974 </row>
1975 <row>
1976 <entry align="left">
1977 </entry>
1978 <entry align="left">
1979 <constant>GL_SRC_ALPHA</constant>
1980 </entry>
1981 <entry align="center">
1982 <inlineequation><mml:math>
1983 <!-- eqn: {A sub s}:-->
1984 <mml:mfenced open="" close="">
1985 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1986 <mml:mi mathvariant="italic">s</mml:mi>
1987 </mml:msub>
1988 </mml:mfenced>
1989 </mml:math></inlineequation>
1990 </entry>
1991 </row>
1992 <row>
1993 <entry align="left">
1994 </entry>
1995 <entry align="left">
1996 <constant>GL_ONE_MINUS_SRC_ALPHA</constant>
1997 </entry>
1998 <entry align="center">
1999 <inlineequation><mml:math>
2000 <!-- eqn: 1 - {A sub s}:-->
2001 <mml:mrow>
2002 <mml:mn>1</mml:mn>
2003 <mml:mo>-</mml:mo>
2004 <mml:mfenced open="" close="">
2005 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
2006 <mml:mi mathvariant="italic">s</mml:mi>
2007 </mml:msub>
2008 </mml:mfenced>
2009 </mml:mrow>
2010 </mml:math></inlineequation>
2011 </entry>
2012 </row>
2013 <row>
2014 <entry align="left">
2015 <constant>GL_CONSTANT</constant>
2016 </entry>
2017 <entry align="left">
2018 <constant>GL_SRC_COLOR</constant>
2019 </entry>
2020 <entry align="center">
2021 <inlineequation><mml:math>
2022 <!-- eqn: {C sub c}:-->
2023 <mml:mfenced open="" close="">
2024 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
2025 <mml:mi mathvariant="italic">c</mml:mi>
2026 </mml:msub>
2027 </mml:mfenced>
2028 </mml:math></inlineequation>
2029 </entry>
2030 </row>
2031 <row>
2032 <entry align="left">
2033 </entry>
2034 <entry align="left">
2035 <constant>GL_ONE_MINUS_SRC_COLOR</constant>
2036 </entry>
2037 <entry align="center">
2038 <inlineequation><mml:math>
2039 <!-- eqn: 1 - {C sub c}:-->
2040 <mml:mrow>
2041 <mml:mn>1</mml:mn>
2042 <mml:mo>-</mml:mo>
2043 <mml:mfenced open="" close="">
2044 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
2045 <mml:mi mathvariant="italic">c</mml:mi>
2046 </mml:msub>
2047 </mml:mfenced>
2048 </mml:mrow>
2049 </mml:math></inlineequation>
2050 </entry>
2051 </row>
2052 <row>
2053 <entry align="left">
2054 </entry>
2055 <entry align="left">
2056 <constant>GL_SRC_ALPHA</constant>
2057 </entry>
2058 <entry align="center">
2059 <inlineequation><mml:math>
2060 <!-- eqn: {A sub c}:-->
2061 <mml:mfenced open="" close="">
2062 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
2063 <mml:mi mathvariant="italic">c</mml:mi>
2064 </mml:msub>
2065 </mml:mfenced>
2066 </mml:math></inlineequation>
2067 </entry>
2068 </row>
2069 <row>
2070 <entry align="left">
2071 </entry>
2072 <entry align="left">
2073 <constant>GL_ONE_MINUS_SRC_ALPHA</constant>
2074 </entry>
2075 <entry align="center">
2076 <inlineequation><mml:math>
2077 <!-- eqn: 1 - {A sub c}:-->
2078 <mml:mrow>
2079 <mml:mn>1</mml:mn>
2080 <mml:mo>-</mml:mo>
2081 <mml:mfenced open="" close="">
2082 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
2083 <mml:mi mathvariant="italic">c</mml:mi>
2084 </mml:msub>
2085 </mml:mfenced>
2086 </mml:mrow>
2087 </mml:math></inlineequation>
2088 </entry>
2089 </row>
2090 <row>
2091 <entry align="left">
2092 <constant>GL_PRIMARY_COLOR</constant>
2093 </entry>
2094 <entry align="left">
2095 <constant>GL_SRC_COLOR</constant>
2096 </entry>
2097 <entry align="center">
2098 <inlineequation><mml:math>
2099 <!-- eqn: {C sub f}:-->
2100 <mml:mfenced open="" close="">
2101 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
2102 <mml:mi mathvariant="italic">f</mml:mi>
2103 </mml:msub>
2104 </mml:mfenced>
2105 </mml:math></inlineequation>
2106 </entry>
2107 </row>
2108 <row>
2109 <entry align="left">
2110 </entry>
2111 <entry align="left">
2112 <constant>GL_ONE_MINUS_SRC_COLOR</constant>
2113 </entry>
2114 <entry align="center">
2115 <inlineequation><mml:math>
2116 <!-- eqn: 1 - {C sub f}:-->
2117 <mml:mrow>
2118 <mml:mn>1</mml:mn>
2119 <mml:mo>-</mml:mo>
2120 <mml:mfenced open="" close="">
2121 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
2122 <mml:mi mathvariant="italic">f</mml:mi>
2123 </mml:msub>
2124 </mml:mfenced>
2125 </mml:mrow>
2126 </mml:math></inlineequation>
2127 </entry>
2128 </row>
2129 <row>
2130 <entry align="left">
2131 </entry>
2132 <entry align="left">
2133 <constant>GL_SRC_ALPHA</constant>
2134 </entry>
2135 <entry align="center">
2136 <inlineequation><mml:math>
2137 <!-- eqn: {A sub f}:-->
2138 <mml:mfenced open="" close="">
2139 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
2140 <mml:mi mathvariant="italic">f</mml:mi>
2141 </mml:msub>
2142 </mml:mfenced>
2143 </mml:math></inlineequation>
2144 </entry>
2145 </row>
2146 <row>
2147 <entry align="left">
2148 </entry>
2149 <entry align="left">
2150 <constant>GL_ONE_MINUS_SRC_ALPHA</constant>
2151 </entry>
2152 <entry align="center">
2153 <inlineequation><mml:math>
2154 <!-- eqn: 1 - {A sub f}:-->
2155 <mml:mrow>
2156 <mml:mn>1</mml:mn>
2157 <mml:mo>-</mml:mo>
2158 <mml:mfenced open="" close="">
2159 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
2160 <mml:mi mathvariant="italic">f</mml:mi>
2161 </mml:msub>
2162 </mml:mfenced>
2163 </mml:mrow>
2164 </mml:math></inlineequation>
2165 </entry>
2166 </row>
2167 <row>
2168 <entry align="left">
2169 <constant>GL_PREVIOUS</constant>
2170 </entry>
2171 <entry align="left">
2172 <constant>GL_SRC_COLOR</constant>
2173 </entry>
2174 <entry align="center">
2175 <inlineequation><mml:math>
2176 <!-- eqn: {C sub p}:-->
2177 <mml:mfenced open="" close="">
2178 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
2179 <mml:mi mathvariant="italic">p</mml:mi>
2180 </mml:msub>
2181 </mml:mfenced>
2182 </mml:math></inlineequation>
2183 </entry>
2184 </row>
2185 <row>
2186 <entry align="left">
2187 </entry>
2188 <entry align="left">
2189 <constant>GL_ONE_MINUS_SRC_COLOR</constant>
2190 </entry>
2191 <entry align="center">
2192 <inlineequation><mml:math>
2193 <!-- eqn: 1 - {C sub p}:-->
2194 <mml:mrow>
2195 <mml:mn>1</mml:mn>
2196 <mml:mo>-</mml:mo>
2197 <mml:mfenced open="" close="">
2198 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
2199 <mml:mi mathvariant="italic">p</mml:mi>
2200 </mml:msub>
2201 </mml:mfenced>
2202 </mml:mrow>
2203 </mml:math></inlineequation>
2204 </entry>
2205 </row>
2206 <row>
2207 <entry align="left">
2208 </entry>
2209 <entry align="left">
2210 <constant>GL_SRC_ALPHA</constant>
2211 </entry>
2212 <entry align="center">
2213 <inlineequation><mml:math>
2214 <!-- eqn: {A sub p}:-->
2215 <mml:mfenced open="" close="">
2216 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
2217 <mml:mi mathvariant="italic">p</mml:mi>
2218 </mml:msub>
2219 </mml:mfenced>
2220 </mml:math></inlineequation>
2221 </entry>
2222 </row>
2223 <row>
2224 <entry align="left">
2225 </entry>
2226 <entry align="left">
2227 <constant>GL_ONE_MINUS_SRC_ALPHA</constant>
2228 </entry>
2229 <entry align="center">
2230 <inlineequation><mml:math>
2231 <!-- eqn: 1 - {A sub p}:-->
2232 <mml:mrow>
2233 <mml:mn>1</mml:mn>
2234 <mml:mo>-</mml:mo>
2235 <mml:mfenced open="" close="">
2236 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
2237 <mml:mi mathvariant="italic">p</mml:mi>
2238 </mml:msub>
2239 </mml:mfenced>
2240 </mml:mrow>
2241 </mml:math></inlineequation>
2242 </entry>
2243 </row>
2244 </tbody>
2245 </tgroup>
2246 </informaltable>
2247 <para>
2248 For <constant>GL_TEXTUREn</constant> sources,
2249 <inlineequation><mml:math>
2250 <!-- eqn: C sub s:-->
2251 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
2252 <mml:mi mathvariant="italic">s</mml:mi>
2253 </mml:msub>
2254 </mml:math></inlineequation>
2255 and
2256 <inlineequation><mml:math>
2257 <!-- eqn: A sub s:-->
2258 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
2259 <mml:mi mathvariant="italic">s</mml:mi>
2260 </mml:msub>
2261 </mml:math></inlineequation>
2262 represent the color
2263 and alpha, respectively, produced from texture stage
2264 <inlineequation><mml:math><mml:mi mathvariant="italic">n</mml:mi></mml:math></inlineequation>.
2265 </para>
2266 <para>
2267 The follow table describes the values assigned to
2268 <inlineequation><mml:math><mml:mi mathvariant="italic">Arg0</mml:mi></mml:math></inlineequation>,
2269 <inlineequation><mml:math><mml:mi mathvariant="italic">Arg1</mml:mi></mml:math></inlineequation>,
2270 and
2271 <inlineequation><mml:math><mml:mi mathvariant="italic">Arg2</mml:mi></mml:math></inlineequation>
2272 based upon the alpha sources and operands:
2273 </para>
2274 <para>
2275 </para>
2276 <informaltable frame="topbot">
2277 <tgroup cols="3" align="left">
2278 <colspec/>
2279 <colspec/>
2280 <colspec align="center"/>
2281 <thead>
2282 <row>
2283 <entry rowsep="1" align="left"><emphasis role="bold">
2284 <constant>GL_SRCn_ALPHA</constant>
2285 </emphasis></entry>
2286 <entry rowsep="1" align="left"><emphasis role="bold">
2287 <constant>GL_OPERANDn_ALPHA</constant>
2288 </emphasis></entry>
2289 <entry rowsep="1" align="center"><emphasis role="bold">
2290 Argument Value
2291 </emphasis></entry>
2292 </row>
2293 </thead>
2294 <tbody>
2295 <row>
2296 <entry align="left">
2297 <constant>GL_TEXTURE</constant>
2298 </entry>
2299 <entry align="left">
2300 <constant>GL_SRC_ALPHA</constant>
2301 </entry>
2302 <entry align="center">
2303 <inlineequation><mml:math>
2304 <!-- eqn: {A sub s}:-->
2305 <mml:mfenced open="" close="">
2306 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
2307 <mml:mi mathvariant="italic">s</mml:mi>
2308 </mml:msub>
2309 </mml:mfenced>
2310 </mml:math></inlineequation>
2311 </entry>
2312 </row>
2313 <row>
2314 <entry align="left">
2315 </entry>
2316 <entry align="left">
2317 <constant>GL_ONE_MINUS_SRC_ALPHA</constant>
2318 </entry>
2319 <entry align="center">
2320 <inlineequation><mml:math>
2321 <!-- eqn: 1 - {A sub s}:-->
2322 <mml:mrow>
2323 <mml:mn>1</mml:mn>
2324 <mml:mo>-</mml:mo>
2325 <mml:mfenced open="" close="">
2326 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
2327 <mml:mi mathvariant="italic">s</mml:mi>
2328 </mml:msub>
2329 </mml:mfenced>
2330 </mml:mrow>
2331 </mml:math></inlineequation>
2332 </entry>
2333 </row>
2334 <row>
2335 <entry align="left">
2336 <constant>GL_TEXTUREn</constant>
2337 </entry>
2338 <entry align="left">
2339 <constant>GL_SRC_ALPHA</constant>
2340 </entry>
2341 <entry align="center">
2342 <inlineequation><mml:math>
2343 <!-- eqn: {A sub s}:-->
2344 <mml:mfenced open="" close="">
2345 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
2346 <mml:mi mathvariant="italic">s</mml:mi>
2347 </mml:msub>
2348 </mml:mfenced>
2349 </mml:math></inlineequation>
2350 </entry>
2351 </row>
2352 <row>
2353 <entry align="left">
2354 </entry>
2355 <entry align="left">
2356 <constant>GL_ONE_MINUS_SRC_ALPHA</constant>
2357 </entry>
2358 <entry align="center">
2359 <inlineequation><mml:math>
2360 <!-- eqn: 1 - {A sub s}:-->
2361 <mml:mrow>
2362 <mml:mn>1</mml:mn>
2363 <mml:mo>-</mml:mo>
2364 <mml:mfenced open="" close="">
2365 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
2366 <mml:mi mathvariant="italic">s</mml:mi>
2367 </mml:msub>
2368 </mml:mfenced>
2369 </mml:mrow>
2370 </mml:math></inlineequation>
2371 </entry>
2372 </row>
2373 <row>
2374 <entry align="left">
2375 <constant>GL_CONSTANT</constant>
2376 </entry>
2377 <entry align="left">
2378 <constant>GL_SRC_ALPHA</constant>
2379 </entry>
2380 <entry align="center">
2381 <inlineequation><mml:math>
2382 <!-- eqn: {A sub c}:-->
2383 <mml:mfenced open="" close="">
2384 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
2385 <mml:mi mathvariant="italic">c</mml:mi>
2386 </mml:msub>
2387 </mml:mfenced>
2388 </mml:math></inlineequation>
2389 </entry>
2390 </row>
2391 <row>
2392 <entry align="left">
2393 </entry>
2394 <entry align="left">
2395 <constant>GL_ONE_MINUS_SRC_ALPHA</constant>
2396 </entry>
2397 <entry align="center">
2398 <inlineequation><mml:math>
2399 <!-- eqn: 1 - {A sub c}:-->
2400 <mml:mrow>
2401 <mml:mn>1</mml:mn>
2402 <mml:mo>-</mml:mo>
2403 <mml:mfenced open="" close="">
2404 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
2405 <mml:mi mathvariant="italic">c</mml:mi>
2406 </mml:msub>
2407 </mml:mfenced>
2408 </mml:mrow>
2409 </mml:math></inlineequation>
2410 </entry>
2411 </row>
2412 <row>
2413 <entry align="left">
2414 <constant>GL_PRIMARY_COLOR</constant>
2415 </entry>
2416 <entry align="left">
2417 <constant>GL_SRC_ALPHA</constant>
2418 </entry>
2419 <entry align="center">
2420 <inlineequation><mml:math>
2421 <!-- eqn: {A sub f}:-->
2422 <mml:mfenced open="" close="">
2423 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
2424 <mml:mi mathvariant="italic">f</mml:mi>
2425 </mml:msub>
2426 </mml:mfenced>
2427 </mml:math></inlineequation>
2428 </entry>
2429 </row>
2430 <row>
2431 <entry align="left">
2432 </entry>
2433 <entry align="left">
2434 <constant>GL_ONE_MINUS_SRC_ALPHA</constant>
2435 </entry>
2436 <entry align="center">
2437 <inlineequation><mml:math>
2438 <!-- eqn: 1 - {A sub f}:-->
2439 <mml:mrow>
2440 <mml:mn>1</mml:mn>
2441 <mml:mo>-</mml:mo>
2442 <mml:mfenced open="" close="">
2443 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
2444 <mml:mi mathvariant="italic">f</mml:mi>
2445 </mml:msub>
2446 </mml:mfenced>
2447 </mml:mrow>
2448 </mml:math></inlineequation>
2449 </entry>
2450 </row>
2451 <row>
2452 <entry align="left">
2453 <constant>GL_PREVIOUS</constant>
2454 </entry>
2455 <entry align="left">
2456 <constant>GL_SRC_ALPHA</constant>
2457 </entry>
2458 <entry align="center">
2459 <inlineequation><mml:math>
2460 <!-- eqn: {A sub p}:-->
2461 <mml:mfenced open="" close="">
2462 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
2463 <mml:mi mathvariant="italic">p</mml:mi>
2464 </mml:msub>
2465 </mml:mfenced>
2466 </mml:math></inlineequation>
2467 </entry>
2468 </row>
2469 <row>
2470 <entry align="left">
2471 </entry>
2472 <entry align="left">
2473 <constant>GL_ONE_MINUS_SRC_ALPHA</constant>
2474 </entry>
2475 <entry align="center">
2476 <inlineequation><mml:math>
2477 <!-- eqn: 1 - {A sub p}:-->
2478 <mml:mrow>
2479 <mml:mn>1</mml:mn>
2480 <mml:mo>-</mml:mo>
2481 <mml:mfenced open="" close="">
2482 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
2483 <mml:mi mathvariant="italic">p</mml:mi>
2484 </mml:msub>
2485 </mml:mfenced>
2486 </mml:mrow>
2487 </mml:math></inlineequation>
2488 </entry>
2489 </row>
2490 </tbody>
2491 </tgroup>
2492 </informaltable>
2493 <para>
2494 The RGB and alpha results of the texture function are multipled by the
2495 values of <constant>GL_RGB_SCALE</constant> and <constant>GL_ALPHA_SCALE</constant>, respectively, and
2496 clamped to the range
2497 <inlineequation><mml:math>
2498 <!-- eqn: [0, 1]:-->
2499 <mml:mfenced open="[" close="]">
2500 <mml:mn>0</mml:mn>
2501 <mml:mn>1</mml:mn>
2502 </mml:mfenced>
2503 </mml:math></inlineequation>.
2504 </para>
2505 <para>
2506 If <parameter>pname</parameter> is <constant>GL_TEXTURE_ENV_COLOR</constant>,
2507 <parameter>params</parameter> is a pointer to an array that holds an RGBA color consisting of four
2508 values.
2509 Integer color components are interpreted linearly such that the most
2510 positive integer maps to 1.0,
2511 and the most negative integer maps to -1.0.
2512 The values are clamped to the range [0,1] when they are specified.
2513 <inlineequation><mml:math>
2514 <!-- eqn: C sub c:-->
2515 <mml:msub><mml:mi mathvariant="italic">C</mml:mi>
2516 <mml:mi mathvariant="italic">c</mml:mi>
2517 </mml:msub>
2518 </mml:math></inlineequation>
2519 takes these four values.
2520 </para>
2521 <para>
2522 If <parameter>pname</parameter> is <constant>GL_TEXTURE_LOD_BIAS</constant>, the value specified is added to the
2523 texture level-of-detail parameter, that selects which mipmap, or mipmaps
2524 depending upon the selected <constant>GL_TEXTURE_MIN_FILTER</constant>, will be sampled.
2525 </para>
2526 <para>
2527 <constant>GL_TEXTURE_ENV_MODE</constant> defaults to <constant>GL_MODULATE</constant> and
2528 <constant>GL_TEXTURE_ENV_COLOR</constant> defaults to (0, 0, 0, 0).
2529 </para>
2530 <para>
2531 If <parameter>target</parameter> is <constant>GL_POINT_SPRITE</constant> and <parameter>pname</parameter> is <constant>GL_COORD_REPLACE</constant>, the boolean value specified
2532 is used to either enable or disable point sprite texture coordinate replacement. The default value is <constant>GL_FALSE</constant>.
2533 </para>
2534 </refsect1>
2535 <refsect1 id="notes"><title>Notes</title>
2536 <para>
2537 <constant>GL_REPLACE</constant> may only be used if the GL version is 1.1 or greater.
2538 </para>
2539 <para>
2540 <constant>GL_TEXTURE_FILTER_CONTROL</constant> and <constant>GL_TEXTURE_LOD_BIAS</constant> may only be
2541 used if the GL version is 1.4 or greater.
2542 </para>
2543 <para>
2544 <constant>GL_COMBINE</constant> mode and its associated constants may only be used if the
2545 GL version is 1.3 or greater.
2546 </para>
2547 <para>
2548 <constant>GL_TEXTUREn</constant> may only be used if the GL version is 1.4 or greater.
2549 </para>
2550 <para>
2551 Internal formats other than 1, 2, 3, or 4 may only be used if the GL
2552 version is 1.1 or greater.
2553 </para>
2554 <para>
2555 For OpenGL versions 1.3 and greater, or when the <code>ARB_multitexture</code> extension is supported, <function>glTexEnv</function> controls
2556 the texture environment for the current active texture unit, selected by
2557 <citerefentry><refentrytitle>glActiveTexture</refentrytitle></citerefentry>.
2558 </para>
2559 <para>
2560 <constant>GL_POINT_SPRITE</constant> and <constant>GL_COORD_REPLACE</constant> are available
2561 only if the GL version is 2.0 or greater.
2562 </para>
2563 </refsect1>
2564 <refsect1 id="errors"><title>Errors</title>
2565 <para>
2566 <constant>GL_INVALID_ENUM</constant> is generated when <parameter>target</parameter> or <parameter>pname</parameter> is not
2567 one of the accepted defined values,
2568 or when <parameter>params</parameter> should have a defined constant value
2569 (based on the value of <parameter>pname</parameter>)
2570 and does not.
2571 </para>
2572 <para>
2573 <constant>GL_INVALID_VALUE</constant> is generated if the <parameter>params</parameter> value for
2574 <constant>GL_RGB_SCALE</constant> or <constant>GL_ALPHA_SCALE</constant> are not one of 1.0, 2.0,
2575 or 4.0.
2576 </para>
2577 <para>
2578 <constant>GL_INVALID_OPERATION</constant> is generated if <function>glTexEnv</function>
2579 is executed between the execution of <citerefentry><refentrytitle>glBegin</refentrytitle></citerefentry>
2580 and the corresponding execution of <citerefentry><refentrytitle>glEnd</refentrytitle></citerefentry>.
2581 </para>
2582 </refsect1>
2583 <refsect1 id="associatedgets"><title>Associated Gets</title>
2584 <para>
2585 <citerefentry><refentrytitle>glGetTexEnv</refentrytitle></citerefentry>
2586 </para>
2587 </refsect1>
2588 <refsect1 id="seealso"><title>See Also</title>
2589 <para>
2590 <citerefentry><refentrytitle>glActiveTexture</refentrytitle></citerefentry>,
2591 <citerefentry><refentrytitle>glCopyPixels</refentrytitle></citerefentry>,
2592 <citerefentry><refentrytitle>glCopyTexImage1D</refentrytitle></citerefentry>,
2593 <citerefentry><refentrytitle>glCopyTexImage2D</refentrytitle></citerefentry>,
2594 <citerefentry><refentrytitle>glCopyTexSubImage1D</refentrytitle></citerefentry>,
2595 <citerefentry><refentrytitle>glCopyTexSubImage2D</refentrytitle></citerefentry>,
2596 <citerefentry><refentrytitle>glCopyTexSubImage3D</refentrytitle></citerefentry>,
2597 <citerefentry><refentrytitle>glTexImage1D</refentrytitle></citerefentry>,
2598 <citerefentry><refentrytitle>glTexImage2D</refentrytitle></citerefentry>,
2599 <citerefentry><refentrytitle>glTexImage3D</refentrytitle></citerefentry>,
2600 <citerefentry><refentrytitle>glTexParameter</refentrytitle></citerefentry>,
2601 <citerefentry><refentrytitle>glTexSubImage1D</refentrytitle></citerefentry>,
2602 <citerefentry><refentrytitle>glTexSubImage2D</refentrytitle></citerefentry>,
2603 <citerefentry><refentrytitle>glTexSubImage3D</refentrytitle></citerefentry>
2604 </para>
2605 </refsect1>
2606 <refsect1 id="Copyright"><title>Copyright</title>
2607 <para>
2608 Copyright <trademark class="copyright"></trademark> 1991-2006
2609 Silicon Graphics, Inc. This document is licensed under the SGI
2610 Free Software B License. For details, see
2611 <ulink url="http://oss.sgi.com/projects/FreeB/">http://oss.sgi.com/projects/FreeB/</ulink>.
2612 </para>
2613 </refsect1>
2614 </refentry>