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