61e9fd0bc7b21533621bf1c4340013382f336044
[clinton/guile-figl.git] / upstream-man-pages / man3 / glBlendFuncSeparate.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="glBlendFuncSeparate">
5 <refmeta>
6 <refmetainfo>
7 <copyright>
8 <year>1991-2006</year>
9 <holder>Silicon Graphics, Inc.</holder>
10 </copyright>
11 </refmetainfo>
12 <refentrytitle>glBlendFuncSeparate</refentrytitle>
13 <manvolnum>3G</manvolnum>
14 </refmeta>
15 <refnamediv>
16 <refname>glBlendFuncSeparate</refname>
17 <refpurpose>specify pixel arithmetic for RGB and alpha components separately</refpurpose>
18 </refnamediv>
19 <refsynopsisdiv><title>C Specification</title>
20 <funcsynopsis>
21 <funcprototype>
22 <funcdef>void <function>glBlendFuncSeparate</function></funcdef>
23 <paramdef>GLenum <parameter>srcRGB</parameter></paramdef>
24 <paramdef>GLenum <parameter>dstRGB</parameter></paramdef>
25 <paramdef>GLenum <parameter>srcAlpha</parameter></paramdef>
26 <paramdef>GLenum <parameter>dstAlpha</parameter></paramdef>
27 </funcprototype>
28 </funcsynopsis>
29 </refsynopsisdiv>
30 <!-- eqn: ignoring delim $$ -->
31 <refsect1 id="parameters"><title>Parameters</title>
32 <variablelist>
33 <varlistentry>
34 <term><parameter>srcRGB</parameter></term>
35 <listitem>
36 <para>
37 Specifies how the red, green, and blue blending factors are computed.
38 The initial value is <constant>GL_ONE</constant>.
39 </para>
40 </listitem>
41 </varlistentry>
42 <varlistentry>
43 <term><parameter>dstRGB</parameter></term>
44 <listitem>
45 <para>
46 Specifies how the red, green, and blue destination blending factors are
47 computed.
48 The initial value is <constant>GL_ZERO</constant>.
49 </para>
50 </listitem>
51 </varlistentry>
52 <varlistentry>
53 <term><parameter>srcAlpha</parameter></term>
54 <listitem>
55 <para>
56 Specified how the alpha source blending factor is computed.
57 The initial value is <constant>GL_ONE</constant>.
58 </para>
59 </listitem>
60 </varlistentry>
61 <varlistentry>
62 <term><parameter>dstAlpha</parameter></term>
63 <listitem>
64 <para>
65 Specified how the alpha destination blending factor is computed.
66 The initial value is <constant>GL_ZERO</constant>.
67 </para>
68 </listitem>
69 </varlistentry>
70 </variablelist>
71 </refsect1>
72 <refsect1 id="description"><title>Description</title>
73 <para>
74 Pixels can be drawn using a function that blends
75 the incoming (source) RGBA values with the RGBA values
76 that are already in the frame buffer (the destination values).
77 Blending is initially disabled.
78 Use <citerefentry><refentrytitle>glEnable</refentrytitle></citerefentry> and <citerefentry><refentrytitle>glDisable</refentrytitle></citerefentry> with argument <constant>GL_BLEND</constant>
79 to enable and disable blending.
80 </para>
81 <para>
82 <function>glBlendFuncSeparate</function> defines the operation of blending when it is enabled.
83 <parameter>srcRGB</parameter> specifies which method is used to scale the
84 source RGB-color components.
85 <parameter>dstRGB</parameter> specifies which method is used to scale the
86 destination RGB-color components.
87 Likewise, <parameter>srcAlpha</parameter> specifies which method is used to scale the source alpha
88 color component, and <parameter>dstAlpha</parameter> specifies which method is used to scale the
89 destination alpha component.
90 The possible methods are described in the following table.
91 Each method defines four scale factors,
92 one each for red, green, blue, and alpha.
93 </para>
94 <para>
95 In the table and in subsequent equations, first source, second source and destination
96 color components are referred to as
97 <inlineequation><mml:math>
98 <!-- eqn: ( R sub s0 , G sub s0 , B sub s0 , A sub s0 ): -->
99 <mml:mfenced open="(" close=")">
100 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
101 <mml:mi mathvariant="italic">s0</mml:mi>
102 </mml:msub>
103 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
104 <mml:mi mathvariant="italic">s0</mml:mi>
105 </mml:msub>
106 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
107 <mml:mi mathvariant="italic">s0</mml:mi>
108 </mml:msub>
109 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
110 <mml:mi mathvariant="italic">s0</mml:mi>
111 </mml:msub>
112 </mml:mfenced>
113 </mml:math></inlineequation>,
114 <inlineequation><mml:math>
115 <!-- eqn: ( R sub s1 , G sub s1 , B sub s1 , A sub s1 ): -->
116 <mml:mfenced open="(" close=")">
117 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
118 <mml:mi mathvariant="italic">s1</mml:mi>
119 </mml:msub>
120 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
121 <mml:mi mathvariant="italic">s1</mml:mi>
122 </mml:msub>
123 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
124 <mml:mi mathvariant="italic">s1</mml:mi>
125 </mml:msub>
126 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
127 <mml:mi mathvariant="italic">s1</mml:mi>
128 </mml:msub>
129 </mml:mfenced>
130 </mml:math></inlineequation>,
131 and
132 <inlineequation><mml:math>
133 <!-- eqn: ( R sub d , G sub d , B sub d , A sub d ): -->
134 <mml:mfenced open="(" close=")">
135 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
136 <mml:mi mathvariant="italic">d</mml:mi>
137 </mml:msub>
138 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
139 <mml:mi mathvariant="italic">d</mml:mi>
140 </mml:msub>
141 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
142 <mml:mi mathvariant="italic">d</mml:mi>
143 </mml:msub>
144 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
145 <mml:mi mathvariant="italic">d</mml:mi>
146 </mml:msub>
147 </mml:mfenced>
148 </mml:math></inlineequation>, respectively.
149 The color specified by <citerefentry><refentrytitle>glBlendColor</refentrytitle></citerefentry> is referred to as
150 <inlineequation><mml:math>
151 <!-- eqn: ( R sub c , G sub c , B sub c , A sub c ): -->
152 <mml:mfenced open="(" close=")">
153 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
154 <mml:mi mathvariant="italic">c</mml:mi>
155 </mml:msub>
156 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
157 <mml:mi mathvariant="italic">c</mml:mi>
158 </mml:msub>
159 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
160 <mml:mi mathvariant="italic">c</mml:mi>
161 </mml:msub>
162 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
163 <mml:mi mathvariant="italic">c</mml:mi>
164 </mml:msub>
165 </mml:mfenced>
166 </mml:math></inlineequation>.
167 They are understood to have integer values between 0 and
168 <inlineequation><mml:math>
169 <!-- eqn: ( k sub R , k sub G , k sub B , k sub A ): -->
170 <mml:mfenced open="(" close=")">
171 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
172 <mml:mi mathvariant="italic">R</mml:mi>
173 </mml:msub>
174 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
175 <mml:mi mathvariant="italic">G</mml:mi>
176 </mml:msub>
177 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
178 <mml:mi mathvariant="italic">B</mml:mi>
179 </mml:msub>
180 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
181 <mml:mi mathvariant="italic">A</mml:mi>
182 </mml:msub>
183 </mml:mfenced>
184 </mml:math></inlineequation>,
185 where
186 </para>
187 <para>
188 <para>
189 <inlineequation><mml:math>
190 <!-- eqn: k sub c = 2 sup {m sub c} - 1: -->
191 <mml:mrow>
192 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
193 <mml:mi mathvariant="italic">c</mml:mi>
194 </mml:msub>
195 <mml:mo>=</mml:mo>
196 <mml:mrow>
197 <mml:msup><mml:mn>2</mml:mn>
198 <mml:mfenced open="" close="">
199 <mml:msub><mml:mi mathvariant="italic">m</mml:mi>
200 <mml:mi mathvariant="italic">c</mml:mi>
201 </mml:msub>
202 </mml:mfenced>
203 </mml:msup>
204 <mml:mo>-</mml:mo>
205 <mml:mn>1</mml:mn>
206 </mml:mrow>
207 </mml:mrow>
208 </mml:math></inlineequation>
209 </para>
210 </para>
211 <para>
212 and
213 <inlineequation><mml:math>
214 <!-- eqn: ( m sub R , m sub G , m sub B , m sub A ): -->
215 <mml:mfenced open="(" close=")">
216 <mml:msub><mml:mi mathvariant="italic">m</mml:mi>
217 <mml:mi mathvariant="italic">R</mml:mi>
218 </mml:msub>
219 <mml:msub><mml:mi mathvariant="italic">m</mml:mi>
220 <mml:mi mathvariant="italic">G</mml:mi>
221 </mml:msub>
222 <mml:msub><mml:mi mathvariant="italic">m</mml:mi>
223 <mml:mi mathvariant="italic">B</mml:mi>
224 </mml:msub>
225 <mml:msub><mml:mi mathvariant="italic">m</mml:mi>
226 <mml:mi mathvariant="italic">A</mml:mi>
227 </mml:msub>
228 </mml:mfenced>
229 </mml:math></inlineequation>
230 is the number of red,
231 green,
232 blue,
233 and alpha bitplanes.
234 </para>
235 <para>
236 Source and destination scale factors are referred to as
237 <inlineequation><mml:math>
238 <!-- eqn: ( s sub R , s sub G , s sub B , s sub A ): -->
239 <mml:mfenced open="(" close=")">
240 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
241 <mml:mi mathvariant="italic">R</mml:mi>
242 </mml:msub>
243 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
244 <mml:mi mathvariant="italic">G</mml:mi>
245 </mml:msub>
246 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
247 <mml:mi mathvariant="italic">B</mml:mi>
248 </mml:msub>
249 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
250 <mml:mi mathvariant="italic">A</mml:mi>
251 </mml:msub>
252 </mml:mfenced>
253 </mml:math></inlineequation>
254 and
255 <inlineequation><mml:math>
256 <!-- eqn: ( d sub R , d sub G , d sub B , d sub A ): -->
257 <mml:mfenced open="(" close=")">
258 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
259 <mml:mi mathvariant="italic">R</mml:mi>
260 </mml:msub>
261 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
262 <mml:mi mathvariant="italic">G</mml:mi>
263 </mml:msub>
264 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
265 <mml:mi mathvariant="italic">B</mml:mi>
266 </mml:msub>
267 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
268 <mml:mi mathvariant="italic">A</mml:mi>
269 </mml:msub>
270 </mml:mfenced>
271 </mml:math></inlineequation>.
272 All scale factors have range
273 <inlineequation><mml:math>
274 <!-- eqn: [0,1]: -->
275 <mml:mfenced open="[" close="]">
276 <mml:mn>0</mml:mn>
277 <mml:mn>1</mml:mn>
278 </mml:mfenced>
279 </mml:math></inlineequation>.
280 </para>
281 <para>
282 </para>
283 <informaltable frame="topbot">
284 <tgroup cols="3" align="left">
285 <colspec colwidth="3*" />
286 <colspec colwidth="2*" />
287 <colspec colwidth="1*" />
288 <thead>
289 <row>
290 <entry rowsep="1" align="left"><emphasis role="bold">
291 Parameter
292 </emphasis></entry>
293 <entry rowsep="1" align="left"><emphasis role="bold">
294 RGB Factor
295 </emphasis></entry>
296 <entry rowsep="1" align="left"><emphasis role="bold">
297 Alpha Factor
298 </emphasis></entry>
299 </row>
300 </thead>
301 <tbody>
302 <row>
303 <entry align="left">
304 <constant>GL_ZERO</constant>
305 </entry>
306 <entry align="left">
307 <inlineequation><mml:math>
308 <!-- eqn: ( 0, 0, 0 ): -->
309 <mml:mfenced open="(" close=")">
310 <mml:mn>0</mml:mn>
311 <mml:mn>0</mml:mn>
312 <mml:mn>0</mml:mn>
313 </mml:mfenced>
314 </mml:math></inlineequation>
315 </entry>
316 <entry align="left">
317 <inlineequation><mml:math>
318 <!-- eqn: 0: -->
319 <mml:mn>0</mml:mn>
320 </mml:math></inlineequation>
321 </entry>
322 </row>
323 <row>
324 <entry align="left">
325 <constant>GL_ONE</constant>
326 </entry>
327 <entry align="left">
328 <inlineequation><mml:math>
329 <!-- eqn: ( 1, 1, 1 ): -->
330 <mml:mfenced open="(" close=")">
331 <mml:mn>1</mml:mn>
332 <mml:mn>1</mml:mn>
333 <mml:mn>1</mml:mn>
334 </mml:mfenced>
335 </mml:math></inlineequation>
336 </entry>
337 <entry align="left">
338 <inlineequation><mml:math>
339 <!-- eqn: 1: -->
340 <mml:mn>1</mml:mn>
341 </mml:math></inlineequation>
342 </entry>
343 </row>
344 <row>
345 <entry align="left">
346 <constant>GL_SRC_COLOR</constant>
347 </entry>
348 <entry align="left">
349 <inlineequation><mml:math>
350 <!-- eqn: ( R sub s0 / k sub R , G sub s0 / k sub G , B sub s0 / k sub B ): -->
351 <mml:mfenced open="(" close=")">
352 <mml:mfrac>
353 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
354 <mml:mi mathvariant="italic">s0</mml:mi>
355 </mml:msub>
356 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
357 <mml:mi mathvariant="italic">R</mml:mi>
358 </mml:msub>
359 </mml:mfrac>
360 <mml:mfrac>
361 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
362 <mml:mi mathvariant="italic">s0</mml:mi>
363 </mml:msub>
364 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
365 <mml:mi mathvariant="italic">G</mml:mi>
366 </mml:msub>
367 </mml:mfrac>
368 <mml:mfrac>
369 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
370 <mml:mi mathvariant="italic">s0</mml:mi>
371 </mml:msub>
372 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
373 <mml:mi mathvariant="italic">B</mml:mi>
374 </mml:msub>
375 </mml:mfrac>
376 </mml:mfenced>
377 </mml:math></inlineequation>
378 </entry>
379 <entry align="left">
380 <inlineequation><mml:math>
381 <!-- eqn: A sub s0 / k sub A: -->
382 <mml:mfrac>
383 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
384 <mml:mi mathvariant="italic">s0</mml:mi>
385 </mml:msub>
386 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
387 <mml:mi mathvariant="italic">A</mml:mi>
388 </mml:msub>
389 </mml:mfrac>
390 </mml:math></inlineequation>
391 </entry>
392 </row>
393 <row>
394 <entry align="left">
395 <constant>GL_ONE_MINUS_SRC_COLOR</constant>
396 </entry>
397 <entry align="left">
398 <inlineequation><mml:math>
399 <!-- eqn: ( 1, 1, 1, 1 ) - ( R sub s0 / k sub R , G sub s0 / k sub G , B sub 0s / k sub B ): -->
400 <mml:mrow>
401 <mml:mfenced open="(" close=")">
402 <mml:mn>1</mml:mn>
403 <mml:mn>1</mml:mn>
404 <mml:mn>1</mml:mn>
405 <mml:mn>1</mml:mn>
406 </mml:mfenced>
407 <mml:mo>-</mml:mo>
408 <mml:mfenced open="(" close=")">
409 <mml:mfrac>
410 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
411 <mml:mi mathvariant="italic">s0</mml:mi>
412 </mml:msub>
413 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
414 <mml:mi mathvariant="italic">R</mml:mi>
415 </mml:msub>
416 </mml:mfrac>
417 <mml:mfrac>
418 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
419 <mml:mi mathvariant="italic">s0</mml:mi>
420 </mml:msub>
421 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
422 <mml:mi mathvariant="italic">G</mml:mi>
423 </mml:msub>
424 </mml:mfrac>
425 <mml:mfrac>
426 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
427 <mml:mi mathvariant="italic">s0</mml:mi>
428 </mml:msub>
429 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
430 <mml:mi mathvariant="italic">B</mml:mi>
431 </mml:msub>
432 </mml:mfrac>
433 </mml:mfenced>
434 </mml:mrow>
435 </mml:math></inlineequation>
436 </entry>
437 <entry align="left">
438 <inlineequation><mml:math>
439 <!-- eqn: 1 - A sub s0 / k sub A: -->
440 <mml:mrow>
441 <mml:mn>1</mml:mn>
442 <mml:mo>-</mml:mo>
443 <mml:mfrac>
444 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
445 <mml:mi mathvariant="italic">s0</mml:mi>
446 </mml:msub>
447 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
448 <mml:mi mathvariant="italic">A</mml:mi>
449 </mml:msub>
450 </mml:mfrac>
451 </mml:mrow>
452 </mml:math></inlineequation>
453 </entry>
454 </row>
455 <row>
456 <entry align="left">
457 <constant>GL_DST_COLOR</constant>
458 </entry>
459 <entry align="left">
460 <inlineequation><mml:math>
461 <!-- eqn: ( R sub d / k sub R , G sub d / k sub G , B sub d / k sub B ): -->
462 <mml:mfenced open="(" close=")">
463 <mml:mfrac>
464 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
465 <mml:mi mathvariant="italic">d</mml:mi>
466 </mml:msub>
467 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
468 <mml:mi mathvariant="italic">R</mml:mi>
469 </mml:msub>
470 </mml:mfrac>
471 <mml:mfrac>
472 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
473 <mml:mi mathvariant="italic">d</mml:mi>
474 </mml:msub>
475 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
476 <mml:mi mathvariant="italic">G</mml:mi>
477 </mml:msub>
478 </mml:mfrac>
479 <mml:mfrac>
480 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
481 <mml:mi mathvariant="italic">d</mml:mi>
482 </mml:msub>
483 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
484 <mml:mi mathvariant="italic">B</mml:mi>
485 </mml:msub>
486 </mml:mfrac>
487 </mml:mfenced>
488 </mml:math></inlineequation>
489 </entry>
490 <entry align="left">
491 <inlineequation><mml:math>
492 <!-- eqn: A sub d / k sub A: -->
493 <mml:mfrac>
494 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
495 <mml:mi mathvariant="italic">d</mml:mi>
496 </mml:msub>
497 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
498 <mml:mi mathvariant="italic">A</mml:mi>
499 </mml:msub>
500 </mml:mfrac>
501 </mml:math></inlineequation>
502 </entry>
503 </row>
504 <row>
505 <entry align="left">
506 <constant>GL_ONE_MINUS_DST_COLOR</constant>
507 </entry>
508 <entry align="left">
509 <inlineequation><mml:math>
510 <!-- eqn: ( 1, 1, 1 ) - ( R sub d / k sub R , G sub d / k sub G , B sub d / k sub B ): -->
511 <mml:mrow>
512 <mml:mfenced open="(" close=")">
513 <mml:mn>1</mml:mn>
514 <mml:mn>1</mml:mn>
515 <mml:mn>1</mml:mn>
516 </mml:mfenced>
517 <mml:mo>-</mml:mo>
518 <mml:mfenced open="(" close=")">
519 <mml:mfrac>
520 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
521 <mml:mi mathvariant="italic">d</mml:mi>
522 </mml:msub>
523 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
524 <mml:mi mathvariant="italic">R</mml:mi>
525 </mml:msub>
526 </mml:mfrac>
527 <mml:mfrac>
528 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
529 <mml:mi mathvariant="italic">d</mml:mi>
530 </mml:msub>
531 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
532 <mml:mi mathvariant="italic">G</mml:mi>
533 </mml:msub>
534 </mml:mfrac>
535 <mml:mfrac>
536 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
537 <mml:mi mathvariant="italic">d</mml:mi>
538 </mml:msub>
539 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
540 <mml:mi mathvariant="italic">B</mml:mi>
541 </mml:msub>
542 </mml:mfrac>
543 </mml:mfenced>
544 </mml:mrow>
545 </mml:math></inlineequation>
546 </entry>
547 <entry align="left">
548 <inlineequation><mml:math>
549 <!-- eqn: 1 - A sub d / k sub A: -->
550 <mml:mrow>
551 <mml:mn>1</mml:mn>
552 <mml:mo>-</mml:mo>
553 <mml:mfrac>
554 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
555 <mml:mi mathvariant="italic">d</mml:mi>
556 </mml:msub>
557 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
558 <mml:mi mathvariant="italic">A</mml:mi>
559 </mml:msub>
560 </mml:mfrac>
561 </mml:mrow>
562 </mml:math></inlineequation>
563 </entry>
564 </row>
565 <row>
566 <entry align="left">
567 <constant>GL_SRC_ALPHA</constant>
568 </entry>
569 <entry align="left">
570 <inlineequation><mml:math>
571 <!-- eqn: ( A sub s0 / k sub A , A sub s0 / k sub A , A sub s0 / k sub A ): -->
572 <mml:mfenced open="(" close=")">
573 <mml:mfrac>
574 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
575 <mml:mi mathvariant="italic">s0</mml:mi>
576 </mml:msub>
577 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
578 <mml:mi mathvariant="italic">A</mml:mi>
579 </mml:msub>
580 </mml:mfrac>
581 <mml:mfrac>
582 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
583 <mml:mi mathvariant="italic">s0</mml:mi>
584 </mml:msub>
585 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
586 <mml:mi mathvariant="italic">A</mml:mi>
587 </mml:msub>
588 </mml:mfrac>
589 <mml:mfrac>
590 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
591 <mml:mi mathvariant="italic">s0</mml:mi>
592 </mml:msub>
593 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
594 <mml:mi mathvariant="italic">A</mml:mi>
595 </mml:msub>
596 </mml:mfrac>
597 </mml:mfenced>
598 </mml:math></inlineequation>
599 </entry>
600 <entry align="left">
601 <inlineequation><mml:math>
602 <!-- eqn: A sub s / k sub A: -->
603 <mml:mfrac>
604 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
605 <mml:mi mathvariant="italic">s0</mml:mi>
606 </mml:msub>
607 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
608 <mml:mi mathvariant="italic">A</mml:mi>
609 </mml:msub>
610 </mml:mfrac>
611 </mml:math></inlineequation>
612 </entry>
613 </row>
614 <row>
615 <entry align="left">
616 <constant>GL_ONE_MINUS_SRC_ALPHA</constant>
617 </entry>
618 <entry align="left">
619 <inlineequation><mml:math>
620 <!-- eqn: ( 1, 1, 1 ) - ( A sub s0 / k sub A , A sub s0 / k sub A , A sub s0 / k sub A ): -->
621 <mml:mrow>
622 <mml:mfenced open="(" close=")">
623 <mml:mn>1</mml:mn>
624 <mml:mn>1</mml:mn>
625 <mml:mn>1</mml:mn>
626 </mml:mfenced>
627 <mml:mo>-</mml:mo>
628 <mml:mfenced open="(" close=")">
629 <mml:mfrac>
630 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
631 <mml:mi mathvariant="italic">s0</mml:mi>
632 </mml:msub>
633 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
634 <mml:mi mathvariant="italic">A</mml:mi>
635 </mml:msub>
636 </mml:mfrac>
637 <mml:mfrac>
638 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
639 <mml:mi mathvariant="italic">s0</mml:mi>
640 </mml:msub>
641 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
642 <mml:mi mathvariant="italic">A</mml:mi>
643 </mml:msub>
644 </mml:mfrac>
645 <mml:mfrac>
646 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
647 <mml:mi mathvariant="italic">s0</mml:mi>
648 </mml:msub>
649 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
650 <mml:mi mathvariant="italic">A</mml:mi>
651 </mml:msub>
652 </mml:mfrac>
653 </mml:mfenced>
654 </mml:mrow>
655 </mml:math></inlineequation>
656 </entry>
657 <entry align="left">
658 <inlineequation><mml:math>
659 <!-- eqn: 1 - A sub s / k sub A: -->
660 <mml:mrow>
661 <mml:mn>1</mml:mn>
662 <mml:mo>-</mml:mo>
663 <mml:mfrac>
664 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
665 <mml:mi mathvariant="italic">s0</mml:mi>
666 </mml:msub>
667 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
668 <mml:mi mathvariant="italic">A</mml:mi>
669 </mml:msub>
670 </mml:mfrac>
671 </mml:mrow>
672 </mml:math></inlineequation>
673 </entry>
674 </row>
675 <row>
676 <entry align="left">
677 <constant>GL_DST_ALPHA</constant>
678 </entry>
679 <entry align="left">
680 <inlineequation><mml:math>
681 <!-- eqn: ( A sub d / k sub A , A sub d / k sub A , A sub d / k sub A ): -->
682 <mml:mfenced open="(" close=")">
683 <mml:mfrac>
684 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
685 <mml:mi mathvariant="italic">d</mml:mi>
686 </mml:msub>
687 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
688 <mml:mi mathvariant="italic">A</mml:mi>
689 </mml:msub>
690 </mml:mfrac>
691 <mml:mfrac>
692 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
693 <mml:mi mathvariant="italic">d</mml:mi>
694 </mml:msub>
695 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
696 <mml:mi mathvariant="italic">A</mml:mi>
697 </mml:msub>
698 </mml:mfrac>
699 <mml:mfrac>
700 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
701 <mml:mi mathvariant="italic">d</mml:mi>
702 </mml:msub>
703 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
704 <mml:mi mathvariant="italic">A</mml:mi>
705 </mml:msub>
706 </mml:mfrac>
707 </mml:mfenced>
708 </mml:math></inlineequation>
709 </entry>
710 <entry align="left">
711 <inlineequation><mml:math>
712 <!-- eqn: A sub d / k sub A: -->
713 <mml:mfrac>
714 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
715 <mml:mi mathvariant="italic">d</mml:mi>
716 </mml:msub>
717 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
718 <mml:mi mathvariant="italic">A</mml:mi>
719 </mml:msub>
720 </mml:mfrac>
721 </mml:math></inlineequation>
722 </entry>
723 </row>
724 <row>
725 <entry align="left">
726 <constant>GL_ONE_MINUS_DST_ALPHA</constant>
727 </entry>
728 <entry align="left">
729 <inlineequation><mml:math>
730 <!-- eqn: ( 1, 1, 1 ) - ( A sub d / k sub A , A sub d / k sub A , A sub d / k sub A ): -->
731 <mml:mrow>
732 <mml:mfenced open="(" close=")">
733 <mml:mn>1</mml:mn>
734 <mml:mn>1</mml:mn>
735 <mml:mn>1</mml:mn>
736 </mml:mfenced>
737 <mml:mo>-</mml:mo>
738 <mml:mfenced open="(" close=")">
739 <mml:mfrac>
740 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
741 <mml:mi mathvariant="italic">d</mml:mi>
742 </mml:msub>
743 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
744 <mml:mi mathvariant="italic">A</mml:mi>
745 </mml:msub>
746 </mml:mfrac>
747 <mml:mfrac>
748 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
749 <mml:mi mathvariant="italic">d</mml:mi>
750 </mml:msub>
751 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
752 <mml:mi mathvariant="italic">A</mml:mi>
753 </mml:msub>
754 </mml:mfrac>
755 <mml:mfrac>
756 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
757 <mml:mi mathvariant="italic">d</mml:mi>
758 </mml:msub>
759 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
760 <mml:mi mathvariant="italic">A</mml:mi>
761 </mml:msub>
762 </mml:mfrac>
763 </mml:mfenced>
764 </mml:mrow>
765 </mml:math></inlineequation>
766 </entry>
767 <entry align="left">
768 <inlineequation><mml:math>
769 <!-- eqn: 1 - A sub d / k sub A: -->
770 <mml:mrow>
771 <mml:mn>1</mml:mn>
772 <mml:mo>-</mml:mo>
773 <mml:mfrac>
774 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
775 <mml:mi mathvariant="italic">d</mml:mi>
776 </mml:msub>
777 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
778 <mml:mi mathvariant="italic">A</mml:mi>
779 </mml:msub>
780 </mml:mfrac>
781 </mml:mrow>
782 </mml:math></inlineequation>
783 </entry>
784 </row>
785 <row>
786 <entry align="left">
787 <constant>GL_CONSTANT_COLOR</constant>
788 </entry>
789 <entry align="left">
790 <inlineequation><mml:math>
791 <!-- eqn: ( R sub c, G sub c, B sub c ): -->
792 <mml:mfenced open="(" close=")">
793 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
794 <mml:mi mathvariant="italic">c</mml:mi>
795 </mml:msub>
796 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
797 <mml:mi mathvariant="italic">c</mml:mi>
798 </mml:msub>
799 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
800 <mml:mi mathvariant="italic">c</mml:mi>
801 </mml:msub>
802 </mml:mfenced>
803 </mml:math></inlineequation>
804 </entry>
805 <entry align="left">
806 <inlineequation><mml:math>
807 <!-- eqn: A sub c: -->
808 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
809 <mml:mi mathvariant="italic">c</mml:mi>
810 </mml:msub>
811 </mml:math></inlineequation>
812 </entry>
813 </row>
814 <row>
815 <entry align="left">
816 <constant>GL_ONE_MINUS_CONSTANT_COLOR</constant>
817 </entry>
818 <entry align="left">
819 <inlineequation><mml:math>
820 <!-- eqn: ( 1, 1, 1 ) - ( R sub c, G sub c, B sub c ): -->
821 <mml:mrow>
822 <mml:mfenced open="(" close=")">
823 <mml:mn>1</mml:mn>
824 <mml:mn>1</mml:mn>
825 <mml:mn>1</mml:mn>
826 </mml:mfenced>
827 <mml:mo>-</mml:mo>
828 <mml:mfenced open="(" close=")">
829 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
830 <mml:mi mathvariant="italic">c</mml:mi>
831 </mml:msub>
832 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
833 <mml:mi mathvariant="italic">c</mml:mi>
834 </mml:msub>
835 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
836 <mml:mi mathvariant="italic">c</mml:mi>
837 </mml:msub>
838 </mml:mfenced>
839 </mml:mrow>
840 </mml:math></inlineequation>
841 </entry>
842 <entry align="left">
843 <inlineequation><mml:math>
844 <!-- eqn: 1 - A sub c: -->
845 <mml:mrow>
846 <mml:mn>1</mml:mn>
847 <mml:mo>-</mml:mo>
848 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
849 <mml:mi mathvariant="italic">c</mml:mi>
850 </mml:msub>
851 </mml:mrow>
852 </mml:math></inlineequation>
853 </entry>
854 </row>
855 <row>
856 <entry align="left">
857 <constant>GL_CONSTANT_ALPHA</constant>
858 </entry>
859 <entry align="left">
860 <inlineequation><mml:math>
861 <!-- eqn: ( A sub c, A sub c, A sub c ): -->
862 <mml:mfenced open="(" close=")">
863 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
864 <mml:mi mathvariant="italic">c</mml:mi>
865 </mml:msub>
866 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
867 <mml:mi mathvariant="italic">c</mml:mi>
868 </mml:msub>
869 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
870 <mml:mi mathvariant="italic">c</mml:mi>
871 </mml:msub>
872 </mml:mfenced>
873 </mml:math></inlineequation>
874 </entry>
875 <entry align="left">
876 <inlineequation><mml:math>
877 <!-- eqn: A sub c: -->
878 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
879 <mml:mi mathvariant="italic">c</mml:mi>
880 </mml:msub>
881 </mml:math></inlineequation>
882 </entry>
883 </row>
884 <row>
885 <entry align="left">
886 <constant>GL_ONE_MINUS_CONSTANT_ALPHA</constant>
887 </entry>
888 <entry align="left">
889 <inlineequation><mml:math>
890 <!-- eqn: ( 1, 1, 1 ) - ( A sub c, A sub c, A sub c ): -->
891 <mml:mrow>
892 <mml:mfenced open="(" close=")">
893 <mml:mn>1</mml:mn>
894 <mml:mn>1</mml:mn>
895 <mml:mn>1</mml:mn>
896 </mml:mfenced>
897 <mml:mo>-</mml:mo>
898 <mml:mfenced open="(" close=")">
899 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
900 <mml:mi mathvariant="italic">c</mml:mi>
901 </mml:msub>
902 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
903 <mml:mi mathvariant="italic">c</mml:mi>
904 </mml:msub>
905 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
906 <mml:mi mathvariant="italic">c</mml:mi>
907 </mml:msub>
908 </mml:mfenced>
909 </mml:mrow>
910 </mml:math></inlineequation>
911 </entry>
912 <entry align="left">
913 <inlineequation><mml:math>
914 <!-- eqn: 1 - A sub c: -->
915 <mml:mrow>
916 <mml:mn>1</mml:mn>
917 <mml:mo>-</mml:mo>
918 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
919 <mml:mi mathvariant="italic">c</mml:mi>
920 </mml:msub>
921 </mml:mrow>
922 </mml:math></inlineequation>
923 </entry>
924 </row>
925 <row>
926 <entry align="left">
927 <constant>GL_SRC_ALPHA_SATURATE</constant>
928 </entry>
929 <entry align="left">
930 <inlineequation><mml:math>
931 <!-- eqn: ( i, i, i ): -->
932 <mml:mfenced open="(" close=")">
933 <mml:mi mathvariant="italic">i</mml:mi>
934 <mml:mi mathvariant="italic">i</mml:mi>
935 <mml:mi mathvariant="italic">i</mml:mi>
936 </mml:mfenced>
937 </mml:math></inlineequation>
938 </entry>
939 <entry align="left">
940 <inlineequation><mml:math>
941 <!-- eqn: 1: -->
942 <mml:mn>1</mml:mn>
943 </mml:math></inlineequation>
944 </entry>
945 </row>
946 <row>
947 <entry align="left">
948 <constant>GL_SRC1_COLOR</constant>
949 </entry>
950 <entry align="left">
951 <inlineequation><mml:math>
952 <!-- eqn: ( R sub s1 / k sub R , G sub s1 / k sub G , B sub s1 / k sub B ): -->
953 <mml:mfenced open="(" close=")">
954 <mml:mfrac>
955 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
956 <mml:mi mathvariant="italic">s1</mml:mi>
957 </mml:msub>
958 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
959 <mml:mi mathvariant="italic">R</mml:mi>
960 </mml:msub>
961 </mml:mfrac>
962 <mml:mfrac>
963 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
964 <mml:mi mathvariant="italic">s1</mml:mi>
965 </mml:msub>
966 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
967 <mml:mi mathvariant="italic">G</mml:mi>
968 </mml:msub>
969 </mml:mfrac>
970 <mml:mfrac>
971 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
972 <mml:mi mathvariant="italic">s1</mml:mi>
973 </mml:msub>
974 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
975 <mml:mi mathvariant="italic">B</mml:mi>
976 </mml:msub>
977 </mml:mfrac>
978 </mml:mfenced>
979 </mml:math></inlineequation>
980 </entry>
981 <entry align="left">
982 <inlineequation><mml:math>
983 <!-- eqn: A sub s0 / k sub A: -->
984 <mml:mfrac>
985 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
986 <mml:mi mathvariant="italic">s1</mml:mi>
987 </mml:msub>
988 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
989 <mml:mi mathvariant="italic">A</mml:mi>
990 </mml:msub>
991 </mml:mfrac>
992 </mml:math></inlineequation>
993 </entry>
994 </row>
995 <row>
996 <entry align="left">
997 <constant>GL_ONE_MINUS_SRC_COLOR</constant>
998 </entry>
999 <entry align="left">
1000 <inlineequation><mml:math>
1001 <!-- eqn: ( 1, 1, 1, 1 ) - ( R sub s1 / k sub R , G sub s1 / k sub G , B sub s1 / k sub B ): -->
1002 <mml:mrow>
1003 <mml:mfenced open="(" close=")">
1004 <mml:mn>1</mml:mn>
1005 <mml:mn>1</mml:mn>
1006 <mml:mn>1</mml:mn>
1007 <mml:mn>1</mml:mn>
1008 </mml:mfenced>
1009 <mml:mo>-</mml:mo>
1010 <mml:mfenced open="(" close=")">
1011 <mml:mfrac>
1012 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
1013 <mml:mi mathvariant="italic">s1</mml:mi>
1014 </mml:msub>
1015 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
1016 <mml:mi mathvariant="italic">R</mml:mi>
1017 </mml:msub>
1018 </mml:mfrac>
1019 <mml:mfrac>
1020 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
1021 <mml:mi mathvariant="italic">s1</mml:mi>
1022 </mml:msub>
1023 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
1024 <mml:mi mathvariant="italic">G</mml:mi>
1025 </mml:msub>
1026 </mml:mfrac>
1027 <mml:mfrac>
1028 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
1029 <mml:mi mathvariant="italic">s1</mml:mi>
1030 </mml:msub>
1031 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
1032 <mml:mi mathvariant="italic">B</mml:mi>
1033 </mml:msub>
1034 </mml:mfrac>
1035 </mml:mfenced>
1036 </mml:mrow>
1037 </mml:math></inlineequation>
1038 </entry>
1039 <entry align="left">
1040 <inlineequation><mml:math>
1041 <!-- eqn: 1 - A sub s0 / k sub A: -->
1042 <mml:mrow>
1043 <mml:mn>1</mml:mn>
1044 <mml:mo>-</mml:mo>
1045 <mml:mfrac>
1046 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1047 <mml:mi mathvariant="italic">s1</mml:mi>
1048 </mml:msub>
1049 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
1050 <mml:mi mathvariant="italic">A</mml:mi>
1051 </mml:msub>
1052 </mml:mfrac>
1053 </mml:mrow>
1054 </mml:math></inlineequation>
1055 </entry>
1056 </row>
1057 <row>
1058 <entry align="left">
1059 <constant>GL_SRC1_ALPHA</constant>
1060 </entry>
1061 <entry align="left">
1062 <inlineequation><mml:math>
1063 <!-- eqn: ( A sub s1 / k sub A , A sub s1 / k sub A , A sub s1 / k sub A ): -->
1064 <mml:mfenced open="(" close=")">
1065 <mml:mfrac>
1066 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1067 <mml:mi mathvariant="italic">s1</mml:mi>
1068 </mml:msub>
1069 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
1070 <mml:mi mathvariant="italic">A</mml:mi>
1071 </mml:msub>
1072 </mml:mfrac>
1073 <mml:mfrac>
1074 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1075 <mml:mi mathvariant="italic">s1</mml:mi>
1076 </mml:msub>
1077 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
1078 <mml:mi mathvariant="italic">A</mml:mi>
1079 </mml:msub>
1080 </mml:mfrac>
1081 <mml:mfrac>
1082 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1083 <mml:mi mathvariant="italic">s1</mml:mi>
1084 </mml:msub>
1085 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
1086 <mml:mi mathvariant="italic">A</mml:mi>
1087 </mml:msub>
1088 </mml:mfrac>
1089 </mml:mfenced>
1090 </mml:math></inlineequation>
1091 </entry>
1092 <entry align="left">
1093 <inlineequation><mml:math>
1094 <!-- eqn: A sub s1 / k sub A: -->
1095 <mml:mfrac>
1096 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1097 <mml:mi mathvariant="italic">s1</mml:mi>
1098 </mml:msub>
1099 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
1100 <mml:mi mathvariant="italic">A</mml:mi>
1101 </mml:msub>
1102 </mml:mfrac>
1103 </mml:math></inlineequation>
1104 </entry>
1105 </row>
1106 <row>
1107 <entry align="left">
1108 <constant>GL_ONE_MINUS_SRC_ALPHA</constant>
1109 </entry>
1110 <entry align="left">
1111 <inlineequation><mml:math>
1112 <!-- eqn: ( 1, 1, 1 ) - ( A sub s1 / k sub A , A sub s1 / k sub A , A sub s1 / k sub A ): -->
1113 <mml:mrow>
1114 <mml:mfenced open="(" close=")">
1115 <mml:mn>1</mml:mn>
1116 <mml:mn>1</mml:mn>
1117 <mml:mn>1</mml:mn>
1118 </mml:mfenced>
1119 <mml:mo>-</mml:mo>
1120 <mml:mfenced open="(" close=")">
1121 <mml:mfrac>
1122 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1123 <mml:mi mathvariant="italic">s1</mml:mi>
1124 </mml:msub>
1125 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
1126 <mml:mi mathvariant="italic">A</mml:mi>
1127 </mml:msub>
1128 </mml:mfrac>
1129 <mml:mfrac>
1130 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1131 <mml:mi mathvariant="italic">s1</mml:mi>
1132 </mml:msub>
1133 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
1134 <mml:mi mathvariant="italic">A</mml:mi>
1135 </mml:msub>
1136 </mml:mfrac>
1137 <mml:mfrac>
1138 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1139 <mml:mi mathvariant="italic">s1</mml:mi>
1140 </mml:msub>
1141 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
1142 <mml:mi mathvariant="italic">A</mml:mi>
1143 </mml:msub>
1144 </mml:mfrac>
1145 </mml:mfenced>
1146 </mml:mrow>
1147 </mml:math></inlineequation>
1148 </entry>
1149 <entry align="left">
1150 <inlineequation><mml:math>
1151 <!-- eqn: 1 - A sub s1 / k sub A: -->
1152 <mml:mrow>
1153 <mml:mn>1</mml:mn>
1154 <mml:mo>-</mml:mo>
1155 <mml:mfrac>
1156 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1157 <mml:mi mathvariant="italic">s1</mml:mi>
1158 </mml:msub>
1159 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
1160 <mml:mi mathvariant="italic">A</mml:mi>
1161 </mml:msub>
1162 </mml:mfrac>
1163 </mml:mrow>
1164 </mml:math></inlineequation>
1165 </entry>
1166 </row>
1167 </tbody>
1168 </tgroup>
1169 </informaltable>
1170 <para>
1171 In the table,
1172 </para>
1173 <para>
1174 <para>
1175 <inlineequation><mml:math>
1176 <!-- eqn: i = min (A sub s , 1 - {A sub d}): -->
1177 <mml:mrow>
1178 <mml:mi mathvariant="italic">i</mml:mi>
1179 <mml:mo>=</mml:mo>
1180 <mml:mrow>
1181 <mml:mi mathvariant="italic">min</mml:mi>
1182 <mml:mo>&af;</mml:mo>
1183 <mml:mfenced open="(" close=")">
1184 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1185 <mml:mi mathvariant="italic">s</mml:mi>
1186 </mml:msub>
1187 <mml:mrow>
1188 <mml:mn>1</mml:mn>
1189 <mml:mo>-</mml:mo>
1190 <mml:mfenced open="" close="">
1191 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1192 <mml:mi mathvariant="italic">d</mml:mi>
1193 </mml:msub>
1194 </mml:mfenced>
1195 </mml:mrow>
1196 </mml:mfenced>
1197 </mml:mrow>
1198 </mml:mrow>
1199 </mml:math></inlineequation>
1200 </para>
1201 </para>
1202 <para>
1203 To determine the blended RGBA values of a pixel,
1204 the system uses the following equations:
1205 </para>
1206 <para>
1207 <para>
1208 <inlineequation><mml:math>
1209 <!-- eqn: R sub d = min ( k sub R, R sub s s sub R + R sub d d sub R ): -->
1210 <mml:mrow>
1211 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
1212 <mml:mi mathvariant="italic">d</mml:mi>
1213 </mml:msub>
1214 <mml:mo>=</mml:mo>
1215 <mml:mrow>
1216 <mml:mi mathvariant="italic">min</mml:mi>
1217 <mml:mo>&af;</mml:mo>
1218 <mml:mfenced open="(" close=")">
1219 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
1220 <mml:mi mathvariant="italic">R</mml:mi>
1221 </mml:msub>
1222 <mml:mrow>
1223 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
1224 <mml:mi mathvariant="italic">s</mml:mi>
1225 </mml:msub>
1226 <mml:mo>&it;</mml:mo>
1227 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
1228 <mml:mi mathvariant="italic">R</mml:mi>
1229 </mml:msub>
1230 <mml:mo>+</mml:mo>
1231 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
1232 <mml:mi mathvariant="italic">d</mml:mi>
1233 </mml:msub>
1234 <mml:mo>&it;</mml:mo>
1235 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
1236 <mml:mi mathvariant="italic">R</mml:mi>
1237 </mml:msub>
1238 </mml:mrow>
1239 </mml:mfenced>
1240 </mml:mrow>
1241 </mml:mrow>
1242 </mml:math></inlineequation>
1243 <inlineequation><mml:math>
1244 <!-- eqn: G sub d = min ( k sub G, G sub s s sub G + G sub d d sub G ): -->
1245 <mml:mrow>
1246 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
1247 <mml:mi mathvariant="italic">d</mml:mi>
1248 </mml:msub>
1249 <mml:mo>=</mml:mo>
1250 <mml:mrow>
1251 <mml:mi mathvariant="italic">min</mml:mi>
1252 <mml:mo>&af;</mml:mo>
1253 <mml:mfenced open="(" close=")">
1254 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
1255 <mml:mi mathvariant="italic">G</mml:mi>
1256 </mml:msub>
1257 <mml:mrow>
1258 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
1259 <mml:mi mathvariant="italic">s</mml:mi>
1260 </mml:msub>
1261 <mml:mo>&it;</mml:mo>
1262 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
1263 <mml:mi mathvariant="italic">G</mml:mi>
1264 </mml:msub>
1265 <mml:mo>+</mml:mo>
1266 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
1267 <mml:mi mathvariant="italic">d</mml:mi>
1268 </mml:msub>
1269 <mml:mo>&it;</mml:mo>
1270 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
1271 <mml:mi mathvariant="italic">G</mml:mi>
1272 </mml:msub>
1273 </mml:mrow>
1274 </mml:mfenced>
1275 </mml:mrow>
1276 </mml:mrow>
1277 </mml:math></inlineequation>
1278 <inlineequation><mml:math>
1279 <!-- eqn: B sub d = min ( k sub B, B sub s s sub B + B sub d d sub B ): -->
1280 <mml:mrow>
1281 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
1282 <mml:mi mathvariant="italic">d</mml:mi>
1283 </mml:msub>
1284 <mml:mo>=</mml:mo>
1285 <mml:mrow>
1286 <mml:mi mathvariant="italic">min</mml:mi>
1287 <mml:mo>&af;</mml:mo>
1288 <mml:mfenced open="(" close=")">
1289 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
1290 <mml:mi mathvariant="italic">B</mml:mi>
1291 </mml:msub>
1292 <mml:mrow>
1293 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
1294 <mml:mi mathvariant="italic">s</mml:mi>
1295 </mml:msub>
1296 <mml:mo>&it;</mml:mo>
1297 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
1298 <mml:mi mathvariant="italic">B</mml:mi>
1299 </mml:msub>
1300 <mml:mo>+</mml:mo>
1301 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
1302 <mml:mi mathvariant="italic">d</mml:mi>
1303 </mml:msub>
1304 <mml:mo>&it;</mml:mo>
1305 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
1306 <mml:mi mathvariant="italic">B</mml:mi>
1307 </mml:msub>
1308 </mml:mrow>
1309 </mml:mfenced>
1310 </mml:mrow>
1311 </mml:mrow>
1312 </mml:math></inlineequation>
1313 <inlineequation><mml:math>
1314 <!-- eqn: A sub d = min ( k sub A, A sub s s sub A + A sub d d sub A ): -->
1315 <mml:mrow>
1316 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1317 <mml:mi mathvariant="italic">d</mml:mi>
1318 </mml:msub>
1319 <mml:mo>=</mml:mo>
1320 <mml:mrow>
1321 <mml:mi mathvariant="italic">min</mml:mi>
1322 <mml:mo>&af;</mml:mo>
1323 <mml:mfenced open="(" close=")">
1324 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
1325 <mml:mi mathvariant="italic">A</mml:mi>
1326 </mml:msub>
1327 <mml:mrow>
1328 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1329 <mml:mi mathvariant="italic">s</mml:mi>
1330 </mml:msub>
1331 <mml:mo>&it;</mml:mo>
1332 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
1333 <mml:mi mathvariant="italic">A</mml:mi>
1334 </mml:msub>
1335 <mml:mo>+</mml:mo>
1336 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1337 <mml:mi mathvariant="italic">d</mml:mi>
1338 </mml:msub>
1339 <mml:mo>&it;</mml:mo>
1340 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
1341 <mml:mi mathvariant="italic">A</mml:mi>
1342 </mml:msub>
1343 </mml:mrow>
1344 </mml:mfenced>
1345 </mml:mrow>
1346 </mml:mrow>
1347 </mml:math></inlineequation>
1348 </para>
1349 </para>
1350 <para>
1351 Despite the apparent precision of the above equations, blending arithmetic
1352 is not exactly specified, because blending operates with imprecise integer
1353 color values. However, a blend factor that should be equal to 1 is
1354 guaranteed not to modify its multiplicand, and a blend factor equal to 0
1355 reduces its multiplicand to 0. For example, when <parameter>srcRGB</parameter> is
1356 <constant>GL_SRC_ALPHA</constant>, <parameter>dstRGB</parameter> is <constant>GL_ONE_MINUS_SRC_ALPHA</constant>, and
1357 <inlineequation><mml:math>
1358 <!-- eqn: A sub s: -->
1359 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1360 <mml:mi mathvariant="italic">s</mml:mi>
1361 </mml:msub>
1362 </mml:math></inlineequation>
1363 is
1364 equal to
1365 <inlineequation><mml:math>
1366 <!-- eqn: k sub A: -->
1367 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
1368 <mml:mi mathvariant="italic">A</mml:mi>
1369 </mml:msub>
1370 </mml:math></inlineequation>,
1371 the equations reduce to simple replacement:
1372 </para>
1373 <para>
1374 <para>
1375 <inlineequation><mml:math>
1376 <!-- eqn: R sub d = R sub s: -->
1377 <mml:mrow>
1378 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
1379 <mml:mi mathvariant="italic">d</mml:mi>
1380 </mml:msub>
1381 <mml:mo>=</mml:mo>
1382 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
1383 <mml:mi mathvariant="italic">s</mml:mi>
1384 </mml:msub>
1385 </mml:mrow>
1386 </mml:math></inlineequation>
1387 <inlineequation><mml:math>
1388 <!-- eqn: G sub d = G sub s: -->
1389 <mml:mrow>
1390 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
1391 <mml:mi mathvariant="italic">d</mml:mi>
1392 </mml:msub>
1393 <mml:mo>=</mml:mo>
1394 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
1395 <mml:mi mathvariant="italic">s</mml:mi>
1396 </mml:msub>
1397 </mml:mrow>
1398 </mml:math></inlineequation>
1399 <inlineequation><mml:math>
1400 <!-- eqn: B sub d = B sub s: -->
1401 <mml:mrow>
1402 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
1403 <mml:mi mathvariant="italic">d</mml:mi>
1404 </mml:msub>
1405 <mml:mo>=</mml:mo>
1406 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
1407 <mml:mi mathvariant="italic">s</mml:mi>
1408 </mml:msub>
1409 </mml:mrow>
1410 </mml:math></inlineequation>
1411 <inlineequation><mml:math>
1412 <!-- eqn: A sub d = A sub s: -->
1413 <mml:mrow>
1414 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1415 <mml:mi mathvariant="italic">d</mml:mi>
1416 </mml:msub>
1417 <mml:mo>=</mml:mo>
1418 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1419 <mml:mi mathvariant="italic">s</mml:mi>
1420 </mml:msub>
1421 </mml:mrow>
1422 </mml:math></inlineequation>
1423 </para>
1424 </para>
1425 <para>
1426 </para>
1427 </refsect1>
1428 <refsect1 id="notes"><title>Notes</title>
1429 <para>
1430 Incoming (source) alpha is correctly thought of as a material opacity,
1431 ranging from 1.0
1432 (<inlineequation><mml:math>
1433 <!-- eqn: K sub A: -->
1434 <mml:msub><mml:mi mathvariant="italic">K</mml:mi>
1435 <mml:mi mathvariant="italic">A</mml:mi>
1436 </mml:msub>
1437 </mml:math></inlineequation>),
1438 representing complete opacity,
1439 to 0.0 (0), representing complete
1440 transparency.
1441 </para>
1442 <para>
1443 When more than one color buffer is enabled for drawing,
1444 the GL performs blending separately for each enabled buffer,
1445 using the contents of that buffer for destination color.
1446 (See <citerefentry><refentrytitle>glDrawBuffer</refentrytitle></citerefentry>.)
1447 </para>
1448 <para>
1449 When dual source blending is enabled (i.e., one of the blend factors requiring
1450 the second color input is used), the maximum number of enabled draw buffers
1451 is given by <constant>GL_MAX_DUAL_SOURCE_DRAW_BUFFERS</constant>, which may
1452 be lower than <constant>GL_MAX_DRAW_BUFFERS</constant>.
1453 </para>
1454 </refsect1>
1455 <refsect1 id="errors"><title>Errors</title>
1456 <para>
1457 <constant>GL_INVALID_ENUM</constant> is generated if either <parameter>srcRGB</parameter> or <parameter>dstRGB</parameter> is not an
1458 accepted value.
1459 </para>
1460 </refsect1>
1461 <refsect1 id="associatedgets"><title>Associated Gets</title>
1462 <para>
1463 <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_BLEND_SRC_RGB</constant>
1464 </para>
1465 <para>
1466 <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_BLEND_SRC_ALPHA</constant>
1467 </para>
1468 <para>
1469 <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_BLEND_DST_RGB</constant>
1470 </para>
1471 <para>
1472 <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_BLEND_DST_ALPHA</constant>
1473 </para>
1474 <para>
1475 <citerefentry><refentrytitle>glIsEnabled</refentrytitle></citerefentry> with argument <constant>GL_BLEND</constant>
1476 </para>
1477 <para>
1478 </para>
1479 </refsect1>
1480 <refsect1 id="seealso"><title>See Also</title>
1481 <para>
1482 <citerefentry><refentrytitle>glBlendColor</refentrytitle></citerefentry>,
1483 <citerefentry><refentrytitle>glBlendFunc</refentrytitle></citerefentry>,
1484 <citerefentry><refentrytitle>glBlendEquation</refentrytitle></citerefentry>,
1485 <citerefentry><refentrytitle>glClear</refentrytitle></citerefentry>,
1486 <citerefentry><refentrytitle>glDrawBuffer</refentrytitle></citerefentry>,
1487 <citerefentry><refentrytitle>glEnable</refentrytitle></citerefentry>,
1488 <citerefentry><refentrytitle>glLogicOp</refentrytitle></citerefentry>,
1489 <citerefentry><refentrytitle>glStencilFunc</refentrytitle></citerefentry>
1490 </para>
1491 </refsect1>
1492 <refsect1 id="Copyright"><title>Copyright</title>
1493 <para>
1494 Copyright <trademark class="copyright"></trademark> 1991-2006
1495 Silicon Graphics, Inc. This document is licensed under the SGI
1496 Free Software B License. For details, see
1497 <ulink url="http://oss.sgi.com/projects/FreeB/">http://oss.sgi.com/projects/FreeB/</ulink>.
1498 </para>
1499 </refsect1>
1500 </refentry>