1 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
2 <!-- saved from url=(0013)about:internet -->
3 <?xml-stylesheet type=
"text/xsl" href=
"mathml.xsl"?><html xmlns=
"http://www.w3.org/1999/xhtml" xmlns:
pref=
"http://www.w3.org/2002/Math/preference" pref:
renderer=
"mathplayer-dl"><head><meta http-equiv=
"Content-Type" content=
"text/html; charset=UTF-8" /><title>glBlendFuncSeparate
</title><meta name=
"generator" content=
"DocBook XSL Stylesheets V1.73.2" /></head><body><div class=
"refentry" lang=
"en" xml:
lang=
"en"><a id=
"glBlendFuncSeparate"></a><div class=
"titlepage"></div><div class=
"refnamediv"><h2>Name
</h2><p>glBlendFuncSeparate — specify pixel arithmetic for RGB and alpha components separately
</p></div><div class=
"refsynopsisdiv"><h2>C Specification
</h2><div class=
"funcsynopsis"><table border=
"0" summary=
"Function synopsis" cellspacing=
"0" cellpadding=
"0"><tr><td><code class=
"funcdef">void
<b class=
"fsfunc">glBlendFuncSeparate
</b>(
</code></td><td>GLenum
</td><td><var class=
"pdparam">srcRGB
</var>,
</td></tr><tr><td> </td><td>GLenum
</td><td><var class=
"pdparam">dstRGB
</var>,
</td></tr><tr><td> </td><td>GLenum
</td><td><var class=
"pdparam">srcAlpha
</var>,
</td></tr><tr><td> </td><td>GLenum
</td><td><var class=
"pdparam">dstAlpha
</var><code>)
</code>;
</td></tr></table></div></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"parameters"></a><h2>Parameters
</h2><div class=
"variablelist"><dl><dt><span class=
"term"><em class=
"parameter"><code>srcRGB
</code></em></span></dt><dd><p>
4 Specifies how the red, green, and blue blending factors are computed.
5 The following symbolic constants are accepted:
6 <code class=
"constant">GL_ZERO
</code>,
7 <code class=
"constant">GL_ONE
</code>,
8 <code class=
"constant">GL_SRC_COLOR
</code>,
9 <code class=
"constant">GL_ONE_MINUS_SRC_COLOR
</code>,
10 <code class=
"constant">GL_DST_COLOR
</code>,
11 <code class=
"constant">GL_ONE_MINUS_DST_COLOR
</code>,
12 <code class=
"constant">GL_SRC_ALPHA
</code>,
13 <code class=
"constant">GL_ONE_MINUS_SRC_ALPHA
</code>,
14 <code class=
"constant">GL_DST_ALPHA
</code>,
15 <code class=
"constant">GL_ONE_MINUS_DST_ALPHA
</code>,
16 <code class=
"constant">GL_CONSTANT_COLOR
</code>,
17 <code class=
"constant">GL_ONE_MINUS_CONSTANT_COLOR
</code>,
18 <code class=
"constant">GL_CONSTANT_ALPHA
</code>,
19 <code class=
"constant">GL_ONE_MINUS_CONSTANT_ALPHA
</code>, and
20 <code class=
"constant">GL_SRC_ALPHA_SATURATE
</code>.
21 The initial value is
<code class=
"constant">GL_ONE
</code>.
22 </p></dd><dt><span class=
"term"><em class=
"parameter"><code>dstRGB
</code></em></span></dt><dd><p>
23 Specifies how the red, green, and blue destination blending factors are
24 computed. The following symbolic constants are accepted:
25 <code class=
"constant">GL_ZERO
</code>,
26 <code class=
"constant">GL_ONE
</code>,
27 <code class=
"constant">GL_SRC_COLOR
</code>,
28 <code class=
"constant">GL_ONE_MINUS_SRC_COLOR
</code>,
29 <code class=
"constant">GL_DST_COLOR
</code>,
30 <code class=
"constant">GL_ONE_MINUS_DST_COLOR
</code>,
31 <code class=
"constant">GL_SRC_ALPHA
</code>,
32 <code class=
"constant">GL_ONE_MINUS_SRC_ALPHA
</code>,
33 <code class=
"constant">GL_DST_ALPHA
</code>,
34 <code class=
"constant">GL_ONE_MINUS_DST_ALPHA
</code>.
35 <code class=
"constant">GL_CONSTANT_COLOR
</code>,
36 <code class=
"constant">GL_ONE_MINUS_CONSTANT_COLOR
</code>,
37 <code class=
"constant">GL_CONSTANT_ALPHA
</code>, and
38 <code class=
"constant">GL_ONE_MINUS_CONSTANT_ALPHA
</code>.
39 The initial value is
<code class=
"constant">GL_ZERO
</code>.
40 </p></dd><dt><span class=
"term"><em class=
"parameter"><code>srcAlpha
</code></em></span></dt><dd><p>
41 Specified how the alpha source blending factor is computed. The same
42 symbolic constants are accepted as for
<em class=
"parameter"><code>srcRGB
</code></em>.
43 The initial value is
<code class=
"constant">GL_ONE
</code>.
44 </p></dd><dt><span class=
"term"><em class=
"parameter"><code>dstAlpha
</code></em></span></dt><dd><p>
45 Specified how the alpha destination blending factor is computed. The same
46 symbolic constants are accepted as for
<em class=
"parameter"><code>dstRGB
</code></em>.
47 The initial value is
<code class=
"constant">GL_ZERO
</code>.
48 </p></dd></dl></div></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"description"></a><h2>Description
</h2><p>
49 In RGBA mode, pixels can be drawn using a function that blends
50 the incoming (source) RGBA values with the RGBA values
51 that are already in the frame buffer (the destination values).
52 Blending is initially disabled.
53 Use
<a class=
"citerefentry" href=
"glEnable.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glEnable
</span></span></a> and
<a class=
"citerefentry" href=
"glDisable.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glDisable
</span></span></a> with argument
<code class=
"constant">GL_BLEND
</code>
54 to enable and disable blending.
56 <code class=
"function">glBlendFuncSeparate
</code> defines the operation of blending when it is enabled.
57 <em class=
"parameter"><code>srcRGB
</code></em> specifies which method is used to scale the
58 source RGB-color components.
59 <em class=
"parameter"><code>dstRGB
</code></em> specifies which method is used to scale the
60 destination RGB-color components.
61 Likewise,
<em class=
"parameter"><code>srcAlpha
</code></em> specifies which method is used to scale the source alpha
62 color component, and
<em class=
"parameter"><code>dstAlpha
</code></em> specifies which method is used to scale the
63 destination alpha component.
64 The possible methods are described in the following table.
65 Each method defines four scale factors,
66 one each for red, green, blue, and alpha.
68 In the table and in subsequent equations, source and destination
69 color components are referred to as
70 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
72 <mml:mfenced open=
"(" close=
")">
73 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
74 <mml:mi mathvariant=
"italic">s
</mml:mi>
76 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
77 <mml:mi mathvariant=
"italic">s
</mml:mi>
79 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
80 <mml:mi mathvariant=
"italic">s
</mml:mi>
82 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
83 <mml:mi mathvariant=
"italic">s
</mml:mi>
88 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
90 <mml:mfenced open=
"(" close=
")">
91 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
92 <mml:mi mathvariant=
"italic">d
</mml:mi>
94 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
95 <mml:mi mathvariant=
"italic">d
</mml:mi>
97 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
98 <mml:mi mathvariant=
"italic">d
</mml:mi>
100 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
101 <mml:mi mathvariant=
"italic">d
</mml:mi>
105 The color specified by
<a class=
"citerefentry" href=
"glBlendColor.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glBlendColor
</span></span></a> is referred to as
106 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
108 <mml:mfenced open=
"(" close=
")">
109 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
110 <mml:mi mathvariant=
"italic">c
</mml:mi>
112 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
113 <mml:mi mathvariant=
"italic">c
</mml:mi>
115 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
116 <mml:mi mathvariant=
"italic">c
</mml:mi>
118 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
119 <mml:mi mathvariant=
"italic">c
</mml:mi>
123 They are understood to have integer values between
0 and
124 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
126 <mml:mfenced open=
"(" close=
")">
127 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
128 <mml:mi mathvariant=
"italic">R
</mml:mi>
130 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
131 <mml:mi mathvariant=
"italic">G
</mml:mi>
133 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
134 <mml:mi mathvariant=
"italic">B
</mml:mi>
136 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
137 <mml:mi mathvariant=
"italic">A
</mml:mi>
144 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
147 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
148 <mml:mi mathvariant=
"italic">c
</mml:mi>
152 <mml:msup><mml:mn>2</mml:mn>
153 <mml:mfenced open=
"" close=
"">
154 <mml:msub><mml:mi mathvariant=
"italic">m
</mml:mi>
155 <mml:mi mathvariant=
"italic">c
</mml:mi>
167 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
169 <mml:mfenced open=
"(" close=
")">
170 <mml:msub><mml:mi mathvariant=
"italic">m
</mml:mi>
171 <mml:mi mathvariant=
"italic">R
</mml:mi>
173 <mml:msub><mml:mi mathvariant=
"italic">m
</mml:mi>
174 <mml:mi mathvariant=
"italic">G
</mml:mi>
176 <mml:msub><mml:mi mathvariant=
"italic">m
</mml:mi>
177 <mml:mi mathvariant=
"italic">B
</mml:mi>
179 <mml:msub><mml:mi mathvariant=
"italic">m
</mml:mi>
180 <mml:mi mathvariant=
"italic">A
</mml:mi>
184 is the number of red,
189 Source and destination scale factors are referred to as
190 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
192 <mml:mfenced open=
"(" close=
")">
193 <mml:msub><mml:mi mathvariant=
"italic">s
</mml:mi>
194 <mml:mi mathvariant=
"italic">R
</mml:mi>
196 <mml:msub><mml:mi mathvariant=
"italic">s
</mml:mi>
197 <mml:mi mathvariant=
"italic">G
</mml:mi>
199 <mml:msub><mml:mi mathvariant=
"italic">s
</mml:mi>
200 <mml:mi mathvariant=
"italic">B
</mml:mi>
202 <mml:msub><mml:mi mathvariant=
"italic">s
</mml:mi>
203 <mml:mi mathvariant=
"italic">A
</mml:mi>
208 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
210 <mml:mfenced open=
"(" close=
")">
211 <mml:msub><mml:mi mathvariant=
"italic">d
</mml:mi>
212 <mml:mi mathvariant=
"italic">R
</mml:mi>
214 <mml:msub><mml:mi mathvariant=
"italic">d
</mml:mi>
215 <mml:mi mathvariant=
"italic">G
</mml:mi>
217 <mml:msub><mml:mi mathvariant=
"italic">d
</mml:mi>
218 <mml:mi mathvariant=
"italic">B
</mml:mi>
220 <mml:msub><mml:mi mathvariant=
"italic">d
</mml:mi>
221 <mml:mi mathvariant=
"italic">A
</mml:mi>
225 All scale factors have range
226 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
228 <mml:mfenced open=
"[" close=
"]">
234 </p><div class=
"informaltable"><table border=
"1"><colgroup><col align=
"left" /><col align=
"left" /><col align=
"left" /></colgroup><thead><tr><th align=
"left"><span class=
"bold"><strong>
236 </strong></span></th><th align=
"left"><span class=
"bold"><strong>
238 </strong></span></th><th align=
"left"><span class=
"bold"><strong>
240 </strong></span></th></tr></thead><tbody><tr><td align=
"left">
241 <code class=
"constant">GL_ZERO
</code>
242 </td><td align=
"left">
243 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
245 <mml:mfenced open=
"(" close=
")">
251 </td><td align=
"left">
252 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
256 </td></tr><tr><td align=
"left">
257 <code class=
"constant">GL_ONE
</code>
258 </td><td align=
"left">
259 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
261 <mml:mfenced open=
"(" close=
")">
267 </td><td align=
"left">
268 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
272 </td></tr><tr><td align=
"left">
273 <code class=
"constant">GL_SRC_COLOR
</code>
274 </td><td align=
"left">
275 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
277 <mml:mfenced open=
"(" close=
")">
279 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
280 <mml:mi mathvariant=
"italic">s
</mml:mi>
282 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
283 <mml:mi mathvariant=
"italic">R
</mml:mi>
287 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
288 <mml:mi mathvariant=
"italic">s
</mml:mi>
290 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
291 <mml:mi mathvariant=
"italic">G
</mml:mi>
295 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
296 <mml:mi mathvariant=
"italic">s
</mml:mi>
298 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
299 <mml:mi mathvariant=
"italic">B
</mml:mi>
304 </td><td align=
"left">
305 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
308 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
309 <mml:mi mathvariant=
"italic">s
</mml:mi>
311 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
312 <mml:mi mathvariant=
"italic">A
</mml:mi>
316 </td></tr><tr><td align=
"left">
317 <code class=
"constant">GL_ONE_MINUS_SRC_COLOR
</code>
318 </td><td align=
"left">
319 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
322 <mml:mfenced open=
"(" close=
")">
329 <mml:mfenced open=
"(" close=
")">
331 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
332 <mml:mi mathvariant=
"italic">s
</mml:mi>
334 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
335 <mml:mi mathvariant=
"italic">R
</mml:mi>
339 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
340 <mml:mi mathvariant=
"italic">s
</mml:mi>
342 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
343 <mml:mi mathvariant=
"italic">G
</mml:mi>
347 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
348 <mml:mi mathvariant=
"italic">s
</mml:mi>
350 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
351 <mml:mi mathvariant=
"italic">B
</mml:mi>
357 </td><td align=
"left">
358 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
364 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
365 <mml:mi mathvariant=
"italic">s
</mml:mi>
367 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
368 <mml:mi mathvariant=
"italic">A
</mml:mi>
373 </td></tr><tr><td align=
"left">
374 <code class=
"constant">GL_DST_COLOR
</code>
375 </td><td align=
"left">
376 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
378 <mml:mfenced open=
"(" close=
")">
380 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
381 <mml:mi mathvariant=
"italic">d
</mml:mi>
383 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
384 <mml:mi mathvariant=
"italic">R
</mml:mi>
388 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
389 <mml:mi mathvariant=
"italic">d
</mml:mi>
391 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
392 <mml:mi mathvariant=
"italic">G
</mml:mi>
396 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
397 <mml:mi mathvariant=
"italic">d
</mml:mi>
399 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
400 <mml:mi mathvariant=
"italic">B
</mml:mi>
405 </td><td align=
"left">
406 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
409 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
410 <mml:mi mathvariant=
"italic">d
</mml:mi>
412 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
413 <mml:mi mathvariant=
"italic">A
</mml:mi>
417 </td></tr><tr><td align=
"left">
418 <code class=
"constant">GL_ONE_MINUS_DST_COLOR
</code>
419 </td><td align=
"left">
420 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
423 <mml:mfenced open=
"(" close=
")">
429 <mml:mfenced open=
"(" close=
")">
431 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
432 <mml:mi mathvariant=
"italic">d
</mml:mi>
434 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
435 <mml:mi mathvariant=
"italic">R
</mml:mi>
439 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
440 <mml:mi mathvariant=
"italic">d
</mml:mi>
442 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
443 <mml:mi mathvariant=
"italic">G
</mml:mi>
447 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
448 <mml:mi mathvariant=
"italic">d
</mml:mi>
450 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
451 <mml:mi mathvariant=
"italic">B
</mml:mi>
457 </td><td align=
"left">
458 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
464 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
465 <mml:mi mathvariant=
"italic">d
</mml:mi>
467 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
468 <mml:mi mathvariant=
"italic">A
</mml:mi>
473 </td></tr><tr><td align=
"left">
474 <code class=
"constant">GL_SRC_ALPHA
</code>
475 </td><td align=
"left">
476 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
478 <mml:mfenced open=
"(" close=
")">
480 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
481 <mml:mi mathvariant=
"italic">s
</mml:mi>
483 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
484 <mml:mi mathvariant=
"italic">A
</mml:mi>
488 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
489 <mml:mi mathvariant=
"italic">s
</mml:mi>
491 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
492 <mml:mi mathvariant=
"italic">A
</mml:mi>
496 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
497 <mml:mi mathvariant=
"italic">s
</mml:mi>
499 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
500 <mml:mi mathvariant=
"italic">A
</mml:mi>
505 </td><td align=
"left">
506 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
509 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
510 <mml:mi mathvariant=
"italic">s
</mml:mi>
512 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
513 <mml:mi mathvariant=
"italic">A
</mml:mi>
517 </td></tr><tr><td align=
"left">
518 <code class=
"constant">GL_ONE_MINUS_SRC_ALPHA
</code>
519 </td><td align=
"left">
520 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
523 <mml:mfenced open=
"(" close=
")">
529 <mml:mfenced open=
"(" close=
")">
531 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
532 <mml:mi mathvariant=
"italic">s
</mml:mi>
534 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
535 <mml:mi mathvariant=
"italic">A
</mml:mi>
539 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
540 <mml:mi mathvariant=
"italic">s
</mml:mi>
542 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
543 <mml:mi mathvariant=
"italic">A
</mml:mi>
547 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
548 <mml:mi mathvariant=
"italic">s
</mml:mi>
550 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
551 <mml:mi mathvariant=
"italic">A
</mml:mi>
557 </td><td align=
"left">
558 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
564 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
565 <mml:mi mathvariant=
"italic">s
</mml:mi>
567 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
568 <mml:mi mathvariant=
"italic">A
</mml:mi>
573 </td></tr><tr><td align=
"left">
574 <code class=
"constant">GL_DST_ALPHA
</code>
575 </td><td align=
"left">
576 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
578 <mml:mfenced open=
"(" close=
")">
580 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
581 <mml:mi mathvariant=
"italic">d
</mml:mi>
583 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
584 <mml:mi mathvariant=
"italic">A
</mml:mi>
588 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
589 <mml:mi mathvariant=
"italic">d
</mml:mi>
591 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
592 <mml:mi mathvariant=
"italic">A
</mml:mi>
596 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
597 <mml:mi mathvariant=
"italic">d
</mml:mi>
599 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
600 <mml:mi mathvariant=
"italic">A
</mml:mi>
605 </td><td align=
"left">
606 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
609 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
610 <mml:mi mathvariant=
"italic">d
</mml:mi>
612 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
613 <mml:mi mathvariant=
"italic">A
</mml:mi>
617 </td></tr><tr><td align=
"left">
618 <code class=
"constant">GL_ONE_MINUS_DST_ALPHA
</code>
619 </td><td align=
"left">
620 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
623 <mml:mfenced open=
"(" close=
")">
629 <mml:mfenced open=
"(" close=
")">
631 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
632 <mml:mi mathvariant=
"italic">d
</mml:mi>
634 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
635 <mml:mi mathvariant=
"italic">A
</mml:mi>
639 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
640 <mml:mi mathvariant=
"italic">d
</mml:mi>
642 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
643 <mml:mi mathvariant=
"italic">A
</mml:mi>
647 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
648 <mml:mi mathvariant=
"italic">d
</mml:mi>
650 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
651 <mml:mi mathvariant=
"italic">A
</mml:mi>
657 </td><td align=
"left">
658 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
664 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
665 <mml:mi mathvariant=
"italic">d
</mml:mi>
667 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
668 <mml:mi mathvariant=
"italic">A
</mml:mi>
673 </td></tr><tr><td align=
"left">
674 <code class=
"constant">GL_CONSTANT_COLOR
</code>
675 </td><td align=
"left">
676 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
678 <mml:mfenced open=
"(" close=
")">
679 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
680 <mml:mi mathvariant=
"italic">c
</mml:mi>
682 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
683 <mml:mi mathvariant=
"italic">c
</mml:mi>
685 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
686 <mml:mi mathvariant=
"italic">c
</mml:mi>
690 </td><td align=
"left">
691 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
693 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
694 <mml:mi mathvariant=
"italic">c
</mml:mi>
697 </td></tr><tr><td align=
"left">
698 <code class=
"constant">GL_ONE_MINUS_CONSTANT_COLOR
</code>
699 </td><td align=
"left">
700 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
703 <mml:mfenced open=
"(" close=
")">
709 <mml:mfenced open=
"(" close=
")">
710 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
711 <mml:mi mathvariant=
"italic">c
</mml:mi>
713 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
714 <mml:mi mathvariant=
"italic">c
</mml:mi>
716 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
717 <mml:mi mathvariant=
"italic">c
</mml:mi>
722 </td><td align=
"left">
723 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
728 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
729 <mml:mi mathvariant=
"italic">c
</mml:mi>
733 </td></tr><tr><td align=
"left">
734 <code class=
"constant">GL_CONSTANT_ALPHA
</code>
735 </td><td align=
"left">
736 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
738 <mml:mfenced open=
"(" close=
")">
739 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
740 <mml:mi mathvariant=
"italic">c
</mml:mi>
742 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
743 <mml:mi mathvariant=
"italic">c
</mml:mi>
745 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
746 <mml:mi mathvariant=
"italic">c
</mml:mi>
750 </td><td align=
"left">
751 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
753 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
754 <mml:mi mathvariant=
"italic">c
</mml:mi>
757 </td></tr><tr><td align=
"left">
758 <code class=
"constant">GL_ONE_MINUS_CONSTANT_ALPHA
</code>
759 </td><td align=
"left">
760 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
763 <mml:mfenced open=
"(" close=
")">
769 <mml:mfenced open=
"(" close=
")">
770 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
771 <mml:mi mathvariant=
"italic">c
</mml:mi>
773 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
774 <mml:mi mathvariant=
"italic">c
</mml:mi>
776 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
777 <mml:mi mathvariant=
"italic">c
</mml:mi>
782 </td><td align=
"left">
783 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
788 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
789 <mml:mi mathvariant=
"italic">c
</mml:mi>
793 </td></tr><tr><td align=
"left">
794 <code class=
"constant">GL_SRC_ALPHA_SATURATE
</code>
795 </td><td align=
"left">
796 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
798 <mml:mfenced open=
"(" close=
")">
799 <mml:mi mathvariant=
"italic">i
</mml:mi>
800 <mml:mi mathvariant=
"italic">i
</mml:mi>
801 <mml:mi mathvariant=
"italic">i
</mml:mi>
804 </td><td align=
"left">
805 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
809 </td></tr></tbody></table></div><p>
813 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
816 <mml:mi mathvariant=
"italic">i
</mml:mi>
819 <mml:mi mathvariant=
"italic">min
</mml:mi>
821 <mml:mfenced open=
"(" close=
")">
822 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
823 <mml:mi mathvariant=
"italic">s
</mml:mi>
828 <mml:mfenced open=
"" close=
"">
829 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
830 <mml:mi mathvariant=
"italic">d
</mml:mi>
840 To determine the blended RGBA values of a pixel when drawing in RGBA mode,
841 the system uses the following equations:
844 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
847 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
848 <mml:mi mathvariant=
"italic">d
</mml:mi>
852 <mml:mi mathvariant=
"italic">min
</mml:mi>
854 <mml:mfenced open=
"(" close=
")">
855 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
856 <mml:mi mathvariant=
"italic">R
</mml:mi>
859 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
860 <mml:mi mathvariant=
"italic">s
</mml:mi>
863 <mml:msub><mml:mi mathvariant=
"italic">s
</mml:mi>
864 <mml:mi mathvariant=
"italic">R
</mml:mi>
867 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
868 <mml:mi mathvariant=
"italic">d
</mml:mi>
871 <mml:msub><mml:mi mathvariant=
"italic">d
</mml:mi>
872 <mml:mi mathvariant=
"italic">R
</mml:mi>
879 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
882 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
883 <mml:mi mathvariant=
"italic">d
</mml:mi>
887 <mml:mi mathvariant=
"italic">min
</mml:mi>
889 <mml:mfenced open=
"(" close=
")">
890 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
891 <mml:mi mathvariant=
"italic">G
</mml:mi>
894 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
895 <mml:mi mathvariant=
"italic">s
</mml:mi>
898 <mml:msub><mml:mi mathvariant=
"italic">s
</mml:mi>
899 <mml:mi mathvariant=
"italic">G
</mml:mi>
902 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
903 <mml:mi mathvariant=
"italic">d
</mml:mi>
906 <mml:msub><mml:mi mathvariant=
"italic">d
</mml:mi>
907 <mml:mi mathvariant=
"italic">G
</mml:mi>
914 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
917 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
918 <mml:mi mathvariant=
"italic">d
</mml:mi>
922 <mml:mi mathvariant=
"italic">min
</mml:mi>
924 <mml:mfenced open=
"(" close=
")">
925 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
926 <mml:mi mathvariant=
"italic">B
</mml:mi>
929 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
930 <mml:mi mathvariant=
"italic">s
</mml:mi>
933 <mml:msub><mml:mi mathvariant=
"italic">s
</mml:mi>
934 <mml:mi mathvariant=
"italic">B
</mml:mi>
937 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
938 <mml:mi mathvariant=
"italic">d
</mml:mi>
941 <mml:msub><mml:mi mathvariant=
"italic">d
</mml:mi>
942 <mml:mi mathvariant=
"italic">B
</mml:mi>
949 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
952 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
953 <mml:mi mathvariant=
"italic">d
</mml:mi>
957 <mml:mi mathvariant=
"italic">min
</mml:mi>
959 <mml:mfenced open=
"(" close=
")">
960 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
961 <mml:mi mathvariant=
"italic">A
</mml:mi>
964 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
965 <mml:mi mathvariant=
"italic">s
</mml:mi>
968 <mml:msub><mml:mi mathvariant=
"italic">s
</mml:mi>
969 <mml:mi mathvariant=
"italic">A
</mml:mi>
972 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
973 <mml:mi mathvariant=
"italic">d
</mml:mi>
976 <mml:msub><mml:mi mathvariant=
"italic">d
</mml:mi>
977 <mml:mi mathvariant=
"italic">A
</mml:mi>
986 Despite the apparent precision of the above equations, blending arithmetic
987 is not exactly specified, because blending operates with imprecise integer
988 color values. However, a blend factor that should be equal to
1 is
989 guaranteed not to modify its multiplicand, and a blend factor equal to
0
990 reduces its multiplicand to
0. For example, when
<em class=
"parameter"><code>srcRGB
</code></em> is
991 <code class=
"constant">GL_SRC_ALPHA
</code>,
<em class=
"parameter"><code>dstRGB
</code></em> is
<code class=
"constant">GL_ONE_MINUS_SRC_ALPHA
</code>, and
992 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
994 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
995 <mml:mi mathvariant=
"italic">s
</mml:mi>
1000 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
1002 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
1003 <mml:mi mathvariant=
"italic">A
</mml:mi>
1006 the equations reduce to simple replacement:
1009 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
1012 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
1013 <mml:mi mathvariant=
"italic">d
</mml:mi>
1016 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
1017 <mml:mi mathvariant=
"italic">s
</mml:mi>
1021 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
1024 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
1025 <mml:mi mathvariant=
"italic">d
</mml:mi>
1028 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
1029 <mml:mi mathvariant=
"italic">s
</mml:mi>
1033 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
1036 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
1037 <mml:mi mathvariant=
"italic">d
</mml:mi>
1040 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
1041 <mml:mi mathvariant=
"italic">s
</mml:mi>
1045 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
1048 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
1049 <mml:mi mathvariant=
"italic">d
</mml:mi>
1052 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
1053 <mml:mi mathvariant=
"italic">s
</mml:mi>
1059 </p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"notes"></a><h2>Notes
</h2><p>
1060 <code class=
"function">glBlendFuncSeparate
</code> is available only if the GL version is
1.4 or greater.
1062 Incoming (source) alpha is correctly thought of as a material opacity,
1064 (
<mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
1066 <mml:msub><mml:mi mathvariant=
"italic">K
</mml:mi>
1067 <mml:mi mathvariant=
"italic">A
</mml:mi>
1070 representing complete opacity,
1071 to
0.0 (
0), representing complete
1074 When more than one color buffer is enabled for drawing,
1075 the GL performs blending separately for each enabled buffer,
1076 using the contents of that buffer for destination color.
1077 (See
<a class=
"citerefentry" href=
"glDrawBuffer.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glDrawBuffer
</span></span></a>.)
1079 Blending affects only RGBA rendering.
1080 It is ignored by color index renderers.
1082 <code class=
"constant">GL_CONSTANT_COLOR
</code>,
<code class=
"constant">GL_ONE_MINUS_CONSTANT_COLOR
</code>,
1083 <code class=
"constant">GL_CONSTANT_ALPHA
</code>,
<code class=
"constant">GL_ONE_MINUS_CONSTANT_ALPHA
</code> are available only
1084 if the GL version is
1.4 or greater or if the
<code class=
"code">ARB_imaging
</code> is
1085 supported by your implementation.
1087 <code class=
"constant">GL_SRC_COLOR
</code> and
<code class=
"constant">GL_ONE_MINUS_SRC_COLOR
</code> are valid only for
1088 <em class=
"parameter"><code>srcRGB
</code></em> if the GL version is
1.4 or greater.
1090 <code class=
"constant">GL_DST_COLOR
</code> and
<code class=
"constant">GL_ONE_MINUS_DST_COLOR
</code> are valid only for
1091 <em class=
"parameter"><code>dstRGB
</code></em> if the GL version is
1.4 or greater.
1092 </p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"errors"></a><h2>Errors
</h2><p>
1093 <code class=
"constant">GL_INVALID_ENUM
</code> is generated if either
<em class=
"parameter"><code>srcRGB
</code></em> or
<em class=
"parameter"><code>dstRGB
</code></em> is not an
1096 <code class=
"constant">GL_INVALID_OPERATION
</code> is generated if
<code class=
"function">glBlendFuncSeparate
</code>
1097 is executed between the execution of
<a class=
"citerefentry" href=
"glBegin.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glBegin
</span></span></a>
1098 and the corresponding execution of
<a class=
"citerefentry" href=
"glEnd.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glEnd
</span></span></a>.
1099 </p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"associatedgets"></a><h2>Associated Gets
</h2><p>
1100 <a class=
"citerefentry" href=
"glGet.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGet
</span></span></a> with argument
<code class=
"constant">GL_BLEND_SRC_RGB
</code>
1102 <a class=
"citerefentry" href=
"glGet.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGet
</span></span></a> with argument
<code class=
"constant">GL_BLEND_SRC_ALPHA
</code>
1104 <a class=
"citerefentry" href=
"glGet.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGet
</span></span></a> with argument
<code class=
"constant">GL_BLEND_DST_RGB
</code>
1106 <a class=
"citerefentry" href=
"glGet.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGet
</span></span></a> with argument
<code class=
"constant">GL_BLEND_DST_ALPHA
</code>
1108 <a class=
"citerefentry" href=
"glIsEnabled.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glIsEnabled
</span></span></a> with argument
<code class=
"constant">GL_BLEND
</code>
1110 </p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"seealso"></a><h2>See Also
</h2><p>
1111 <a class=
"citerefentry" href=
"glAlphaFunc.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glAlphaFunc
</span></span></a>,
1112 <a class=
"citerefentry" href=
"glBlendColor.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glBlendColor
</span></span></a>,
1113 <a class=
"citerefentry" href=
"glBlendFunc.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glBlendFunc
</span></span></a>,
1114 <a class=
"citerefentry" href=
"glBlendEquation.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glBlendEquation
</span></span></a>,
1115 <a class=
"citerefentry" href=
"glClear.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glClear
</span></span></a>,
1116 <a class=
"citerefentry" href=
"glDrawBuffer.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glDrawBuffer
</span></span></a>,
1117 <a class=
"citerefentry" href=
"glEnable.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glEnable
</span></span></a>,
1118 <a class=
"citerefentry" href=
"glLogicOp.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glLogicOp
</span></span></a>,
1119 <a class=
"citerefentry" href=
"glStencilFunc.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glStencilFunc
</span></span></a>
1120 </p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"Copyright"></a><h2>Copyright
</h2><p>
1121 Copyright
<span class=
"trademark"></span>©
1991-
2006
1122 Silicon Graphics, Inc. This document is licensed under the SGI
1123 Free Software B License. For details, see
1124 <a class=
"ulink" href=
"http://oss.sgi.com/projects/FreeB/" target=
"_top">http://oss.sgi.com/projects/FreeB/
</a>.
1125 </p></div></div></body></html>