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