1 <?xml version=
"1.0" encoding=
"UTF-8"?>
2 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
3 <!-- saved from url=(0013)about:internet -->
4 <?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" /><link rel=
"stylesheet" type=
"text/css" href=
"opengl-man.css" /><title>glBlendFunc - OpenGL
4 Reference Pages
</title><meta name=
"generator" content=
"DocBook XSL Stylesheets V1.69.1" /></head><body><div class=
"refentry" lang=
"en" xml:
lang=
"en"><a id=
"glBlendFunc"></a><div class=
"titlepage"></div><div class=
"refnamediv"><h2>Name
</h2><p>glBlendFunc — specify pixel arithmetic
</p></div><div class=
"refsynopsisdiv"><h2>C Specification
</h2><div class=
"funcsynopsis"><table border=
"0" summary=
"Function synopsis" cellspacing=
"0" cellpadding=
"0" style=
"padding-bottom: 1em"><tr><td><code class=
"funcdef">void
<b class=
"fsfunc">glBlendFunc
</b>(
</code></td><td>GLenum
</td><td><var class=
"pdparam">sfactor
</var>,
</td></tr><tr><td> </td><td>GLenum
</td><td><var class=
"pdparam">dfactor
</var><code>)
</code>;
</td></tr></table><table border=
"0" summary=
"Function synopsis" cellspacing=
"0" cellpadding=
"0"><tr><td><code class=
"funcdef">void
<b class=
"fsfunc">glBlendFunci
</b>(
</code></td><td>GLuint
</td><td><var class=
"pdparam">buf
</var>,
</td></tr><tr><td> </td><td>GLenum
</td><td><var class=
"pdparam">sfactor
</var>,
</td></tr><tr><td> </td><td>GLenum
</td><td><var class=
"pdparam">dfactor
</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>buf
</code></em></span></dt><dd><p>
5 For
<code class=
"function">glBlendFunci
</code>, specifies the index of the draw
6 buffer for which to set the blend function.
7 </p></dd><dt><span class=
"term"><em class=
"parameter"><code>sfactor
</code></em></span></dt><dd><p>
8 Specifies how the red, green, blue,
9 and alpha source blending factors are computed.
10 The initial value is
<code class=
"constant">GL_ONE
</code>.
11 </p></dd><dt><span class=
"term"><em class=
"parameter"><code>dfactor
</code></em></span></dt><dd><p>
12 Specifies how the red, green, blue,
13 and alpha destination blending factors are computed.
14 The following symbolic constants are accepted:
15 <code class=
"constant">GL_ZERO
</code>,
16 <code class=
"constant">GL_ONE
</code>,
17 <code class=
"constant">GL_SRC_COLOR
</code>,
18 <code class=
"constant">GL_ONE_MINUS_SRC_COLOR
</code>,
19 <code class=
"constant">GL_DST_COLOR
</code>,
20 <code class=
"constant">GL_ONE_MINUS_DST_COLOR
</code>,
21 <code class=
"constant">GL_SRC_ALPHA
</code>,
22 <code class=
"constant">GL_ONE_MINUS_SRC_ALPHA
</code>,
23 <code class=
"constant">GL_DST_ALPHA
</code>,
24 <code class=
"constant">GL_ONE_MINUS_DST_ALPHA
</code>.
25 <code class=
"constant">GL_CONSTANT_COLOR
</code>,
26 <code class=
"constant">GL_ONE_MINUS_CONSTANT_COLOR
</code>,
27 <code class=
"constant">GL_CONSTANT_ALPHA
</code>, and
28 <code class=
"constant">GL_ONE_MINUS_CONSTANT_ALPHA
</code>.
29 The initial value is
<code class=
"constant">GL_ZERO
</code>.
30 </p></dd></dl></div></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"description"></a><h2>Description
</h2><p>
31 Pixels can be drawn using a function that blends
32 the incoming (source) RGBA values with the RGBA values
33 that are already in the frame buffer (the destination values).
34 Blending is initially disabled.
35 Use
<a href=
"glEnable.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glEnable
</span></span></a> and
<a href=
"glDisable.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glDisable
</span></span></a> with argument
<code class=
"constant">GL_BLEND
</code>
36 to enable and disable blending.
38 <code class=
"function">glBlendFunc
</code> defines the operation of blending for all draw buffers when it is enabled.
39 <code class=
"function">glBlendFunci
</code> defines the operation of blending for a single draw buffer
40 specified by
<em class=
"parameter"><code>buf
</code></em> when enabled for that draw buffer.
41 <em class=
"parameter"><code>sfactor
</code></em> specifies which method is used to scale the
42 source color components.
43 <em class=
"parameter"><code>dfactor
</code></em> specifies which method is used to scale the
44 destination color components.
45 Both parameters must be one of the following symbolic constants:
46 <code class=
"constant">GL_ZERO
</code>,
47 <code class=
"constant">GL_ONE
</code>,
48 <code class=
"constant">GL_SRC_COLOR
</code>,
49 <code class=
"constant">GL_ONE_MINUS_SRC_COLOR
</code>,
50 <code class=
"constant">GL_DST_COLOR
</code>,
51 <code class=
"constant">GL_ONE_MINUS_DST_COLOR
</code>,
52 <code class=
"constant">GL_SRC_ALPHA
</code>,
53 <code class=
"constant">GL_ONE_MINUS_SRC_ALPHA
</code>,
54 <code class=
"constant">GL_DST_ALPHA
</code>,
55 <code class=
"constant">GL_ONE_MINUS_DST_ALPHA
</code>,
56 <code class=
"constant">GL_CONSTANT_COLOR
</code>,
57 <code class=
"constant">GL_ONE_MINUS_CONSTANT_COLOR
</code>,
58 <code class=
"constant">GL_CONSTANT_ALPHA
</code>,
59 <code class=
"constant">GL_ONE_MINUS_CONSTANT_ALPHA
</code>,
60 <code class=
"constant">GL_SRC_ALPHA_SATURATE
</code>,
61 <code class=
"constant">GL_SRC1_COLOR
</code>,
62 <code class=
"constant">GL_ONE_MINUS_SRC1_COLOR
</code>,
63 <code class=
"constant">GL_SRC1_ALPHA
</code>, and
64 <code class=
"constant">GL_ONE_MINUS_SRC1_ALPHA
</code>.
65 The possible methods are described in the following table.
66 Each method defines four scale factors,
67 one each for red, green, blue, and alpha.
68 In the table and in subsequent equations, first source, second source
69 and destination 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">s0
</mml:mi>
76 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
77 <mml:mi mathvariant=
"italic">s0
</mml:mi>
79 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
80 <mml:mi mathvariant=
"italic">s0
</mml:mi>
82 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
83 <mml:mi mathvariant=
"italic">s0
</mml:mi>
87 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
89 <mml:mfenced open=
"(" close=
")">
90 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
91 <mml:mi mathvariant=
"italic">s1
</mml:mi>
93 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
94 <mml:mi mathvariant=
"italic">s1
</mml:mi>
96 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
97 <mml:mi mathvariant=
"italic">s1
</mml:mi>
99 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
100 <mml:mi mathvariant=
"italic">s1
</mml:mi>
105 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
107 <mml:mfenced open=
"(" close=
")">
108 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
109 <mml:mi mathvariant=
"italic">d
</mml:mi>
111 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
112 <mml:mi mathvariant=
"italic">d
</mml:mi>
114 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
115 <mml:mi mathvariant=
"italic">d
</mml:mi>
117 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
118 <mml:mi mathvariant=
"italic">d
</mml:mi>
121 </mml:math>, respectively.
122 The color specified by
<a href=
"glBlendColor.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glBlendColor
</span></span></a> is referred to as
123 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
125 <mml:mfenced open=
"(" close=
")">
126 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
127 <mml:mi mathvariant=
"italic">c
</mml:mi>
129 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
130 <mml:mi mathvariant=
"italic">c
</mml:mi>
132 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
133 <mml:mi mathvariant=
"italic">c
</mml:mi>
135 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
136 <mml:mi mathvariant=
"italic">c
</mml:mi>
140 They are understood to have integer values between
0 and
141 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
143 <mml:mfenced open=
"(" close=
")">
144 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
145 <mml:mi mathvariant=
"italic">R
</mml:mi>
147 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
148 <mml:mi mathvariant=
"italic">G
</mml:mi>
150 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
151 <mml:mi mathvariant=
"italic">B
</mml:mi>
153 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
154 <mml:mi mathvariant=
"italic">A
</mml:mi>
161 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
164 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
165 <mml:mi mathvariant=
"italic">c
</mml:mi>
169 <mml:msup><mml:mn>2</mml:mn>
170 <mml:mfenced open=
"" close=
"">
171 <mml:msub><mml:mi mathvariant=
"italic">m
</mml:mi>
172 <mml:mi mathvariant=
"italic">c
</mml:mi>
184 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
186 <mml:mfenced open=
"(" close=
")">
187 <mml:msub><mml:mi mathvariant=
"italic">m
</mml:mi>
188 <mml:mi mathvariant=
"italic">R
</mml:mi>
190 <mml:msub><mml:mi mathvariant=
"italic">m
</mml:mi>
191 <mml:mi mathvariant=
"italic">G
</mml:mi>
193 <mml:msub><mml:mi mathvariant=
"italic">m
</mml:mi>
194 <mml:mi mathvariant=
"italic">B
</mml:mi>
196 <mml:msub><mml:mi mathvariant=
"italic">m
</mml:mi>
197 <mml:mi mathvariant=
"italic">A
</mml:mi>
201 is the number of red,
206 Source and destination scale factors are referred to as
207 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
209 <mml:mfenced open=
"(" close=
")">
210 <mml:msub><mml:mi mathvariant=
"italic">s
</mml:mi>
211 <mml:mi mathvariant=
"italic">R
</mml:mi>
213 <mml:msub><mml:mi mathvariant=
"italic">s
</mml:mi>
214 <mml:mi mathvariant=
"italic">G
</mml:mi>
216 <mml:msub><mml:mi mathvariant=
"italic">s
</mml:mi>
217 <mml:mi mathvariant=
"italic">B
</mml:mi>
219 <mml:msub><mml:mi mathvariant=
"italic">s
</mml:mi>
220 <mml:mi mathvariant=
"italic">A
</mml:mi>
225 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
227 <mml:mfenced open=
"(" close=
")">
228 <mml:msub><mml:mi mathvariant=
"italic">d
</mml:mi>
229 <mml:mi mathvariant=
"italic">R
</mml:mi>
231 <mml:msub><mml:mi mathvariant=
"italic">d
</mml:mi>
232 <mml:mi mathvariant=
"italic">G
</mml:mi>
234 <mml:msub><mml:mi mathvariant=
"italic">d
</mml:mi>
235 <mml:mi mathvariant=
"italic">B
</mml:mi>
237 <mml:msub><mml:mi mathvariant=
"italic">d
</mml:mi>
238 <mml:mi mathvariant=
"italic">A
</mml:mi>
242 The scale factors described in the table,
244 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
246 <mml:mfenced open=
"(" close=
")">
247 <mml:msub><mml:mi mathvariant=
"italic">f
</mml:mi>
248 <mml:mi mathvariant=
"italic">R
</mml:mi>
250 <mml:msub><mml:mi mathvariant=
"italic">f
</mml:mi>
251 <mml:mi mathvariant=
"italic">G
</mml:mi>
253 <mml:msub><mml:mi mathvariant=
"italic">f
</mml:mi>
254 <mml:mi mathvariant=
"italic">B
</mml:mi>
256 <mml:msub><mml:mi mathvariant=
"italic">f
</mml:mi>
257 <mml:mi mathvariant=
"italic">A
</mml:mi>
261 represent either source or destination factors.
262 All scale factors have range
263 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
265 <mml:mfenced open=
"[" close=
"]">
271 </p><div class=
"informaltable"><table border=
"1"><colgroup><col align=
"left" /><col align=
"left" /></colgroup><thead><tr><th align=
"left"><span class=
"bold"><strong>
273 </strong></span></th><th align=
"left"><span class=
"bold"><strong>
274 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
276 <mml:mfenced open=
"(" close=
")">
277 <mml:msub><mml:mi mathvariant=
"italic">f
</mml:mi>
278 <mml:mi mathvariant=
"italic">R
</mml:mi>
280 <mml:msub><mml:mi mathvariant=
"italic">f
</mml:mi>
281 <mml:mi mathvariant=
"italic">G
</mml:mi>
283 <mml:msub><mml:mi mathvariant=
"italic">f
</mml:mi>
284 <mml:mi mathvariant=
"italic">B
</mml:mi>
286 <mml:msub><mml:mi mathvariant=
"italic">f
</mml:mi>
287 <mml:mi mathvariant=
"italic">A
</mml:mi>
291 </strong></span></th></tr></thead><tbody><tr><td align=
"left">
292 <code class=
"constant">GL_ZERO
</code>
293 </td><td align=
"left">
294 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
296 <mml:mfenced open=
"(" close=
")">
303 </td></tr><tr><td align=
"left">
304 <code class=
"constant">GL_ONE
</code>
305 </td><td align=
"left">
306 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
308 <mml:mfenced open=
"(" close=
")">
315 </td></tr><tr><td align=
"left">
316 <code class=
"constant">GL_SRC_COLOR
</code>
317 </td><td align=
"left">
318 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
320 <mml:mfenced open=
"(" close=
")">
322 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
323 <mml:mi mathvariant=
"italic">s0
</mml:mi>
325 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
326 <mml:mi mathvariant=
"italic">R
</mml:mi>
330 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
331 <mml:mi mathvariant=
"italic">s0
</mml:mi>
333 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
334 <mml:mi mathvariant=
"italic">G
</mml:mi>
338 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
339 <mml:mi mathvariant=
"italic">s0
</mml:mi>
341 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
342 <mml:mi mathvariant=
"italic">B
</mml:mi>
346 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
347 <mml:mi mathvariant=
"italic">s0
</mml:mi>
349 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
350 <mml:mi mathvariant=
"italic">A
</mml:mi>
355 </td></tr><tr><td align=
"left">
356 <code class=
"constant">GL_ONE_MINUS_SRC_COLOR
</code>
357 </td><td align=
"left">
358 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
361 <mml:mfenced open=
"(" close=
")">
368 <mml:mfenced open=
"(" close=
")">
370 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
371 <mml:mi mathvariant=
"italic">s0
</mml:mi>
373 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
374 <mml:mi mathvariant=
"italic">R
</mml:mi>
378 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
379 <mml:mi mathvariant=
"italic">s0
</mml:mi>
381 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
382 <mml:mi mathvariant=
"italic">G
</mml:mi>
386 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
387 <mml:mi mathvariant=
"italic">s0
</mml:mi>
389 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
390 <mml:mi mathvariant=
"italic">B
</mml:mi>
394 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
395 <mml:mi mathvariant=
"italic">s0
</mml:mi>
397 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
398 <mml:mi mathvariant=
"italic">A
</mml:mi>
404 </td></tr><tr><td align=
"left">
405 <code class=
"constant">GL_DST_COLOR
</code>
406 </td><td align=
"left">
407 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
409 <mml:mfenced open=
"(" close=
")">
411 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
412 <mml:mi mathvariant=
"italic">d
</mml:mi>
414 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
415 <mml:mi mathvariant=
"italic">R
</mml:mi>
419 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
420 <mml:mi mathvariant=
"italic">d
</mml:mi>
422 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
423 <mml:mi mathvariant=
"italic">G
</mml:mi>
427 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
428 <mml:mi mathvariant=
"italic">d
</mml:mi>
430 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
431 <mml:mi mathvariant=
"italic">B
</mml:mi>
435 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
436 <mml:mi mathvariant=
"italic">d
</mml:mi>
438 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
439 <mml:mi mathvariant=
"italic">A
</mml:mi>
444 </td></tr><tr><td align=
"left">
445 <code class=
"constant">GL_ONE_MINUS_DST_COLOR
</code>
446 </td><td align=
"left">
447 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
450 <mml:mfenced open=
"(" close=
")">
457 <mml:mfenced open=
"(" close=
")">
459 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
460 <mml:mi mathvariant=
"italic">d
</mml:mi>
462 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
463 <mml:mi mathvariant=
"italic">R
</mml:mi>
467 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
468 <mml:mi mathvariant=
"italic">d
</mml:mi>
470 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
471 <mml:mi mathvariant=
"italic">G
</mml:mi>
475 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
476 <mml:mi mathvariant=
"italic">d
</mml:mi>
478 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
479 <mml:mi mathvariant=
"italic">B
</mml:mi>
483 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
484 <mml:mi mathvariant=
"italic">d
</mml:mi>
486 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
487 <mml:mi mathvariant=
"italic">A
</mml:mi>
493 </td></tr><tr><td align=
"left">
494 <code class=
"constant">GL_SRC_ALPHA
</code>
495 </td><td align=
"left">
496 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
498 <mml:mfenced open=
"(" close=
")">
500 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
501 <mml:mi mathvariant=
"italic">s0
</mml:mi>
503 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
504 <mml:mi mathvariant=
"italic">A
</mml:mi>
508 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
509 <mml:mi mathvariant=
"italic">s0
</mml:mi>
511 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
512 <mml:mi mathvariant=
"italic">A
</mml:mi>
516 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
517 <mml:mi mathvariant=
"italic">s0
</mml:mi>
519 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
520 <mml:mi mathvariant=
"italic">A
</mml:mi>
524 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
525 <mml:mi mathvariant=
"italic">s0
</mml:mi>
527 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
528 <mml:mi mathvariant=
"italic">A
</mml:mi>
533 </td></tr><tr><td align=
"left">
534 <code class=
"constant">GL_ONE_MINUS_SRC_ALPHA
</code>
535 </td><td align=
"left">
536 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
539 <mml:mfenced open=
"(" close=
")">
546 <mml:mfenced open=
"(" close=
")">
548 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
549 <mml:mi mathvariant=
"italic">s0
</mml:mi>
551 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
552 <mml:mi mathvariant=
"italic">A
</mml:mi>
556 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
557 <mml:mi mathvariant=
"italic">s0
</mml:mi>
559 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
560 <mml:mi mathvariant=
"italic">A
</mml:mi>
564 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
565 <mml:mi mathvariant=
"italic">s0
</mml:mi>
567 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
568 <mml:mi mathvariant=
"italic">A
</mml:mi>
572 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
573 <mml:mi mathvariant=
"italic">s0
</mml:mi>
575 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
576 <mml:mi mathvariant=
"italic">A
</mml:mi>
582 </td></tr><tr><td align=
"left">
583 <code class=
"constant">GL_DST_ALPHA
</code>
584 </td><td align=
"left">
585 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
587 <mml:mfenced open=
"(" close=
")">
589 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
590 <mml:mi mathvariant=
"italic">d
</mml:mi>
592 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
593 <mml:mi mathvariant=
"italic">A
</mml:mi>
597 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
598 <mml:mi mathvariant=
"italic">d
</mml:mi>
600 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
601 <mml:mi mathvariant=
"italic">A
</mml:mi>
605 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
606 <mml:mi mathvariant=
"italic">d
</mml:mi>
608 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
609 <mml:mi mathvariant=
"italic">A
</mml:mi>
613 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
614 <mml:mi mathvariant=
"italic">d
</mml:mi>
616 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
617 <mml:mi mathvariant=
"italic">A
</mml:mi>
622 </td></tr><tr><td align=
"left">
623 <code class=
"constant">GL_ONE_MINUS_DST_ALPHA
</code>
624 </td><td align=
"left">
625 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
628 <mml:mfenced open=
"(" close=
")">
635 <mml:mfenced open=
"(" close=
")">
637 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
638 <mml:mi mathvariant=
"italic">d
</mml:mi>
640 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
641 <mml:mi mathvariant=
"italic">A
</mml:mi>
645 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
646 <mml:mi mathvariant=
"italic">d
</mml:mi>
648 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
649 <mml:mi mathvariant=
"italic">A
</mml:mi>
653 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
654 <mml:mi mathvariant=
"italic">d
</mml:mi>
656 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
657 <mml:mi mathvariant=
"italic">A
</mml:mi>
661 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
662 <mml:mi mathvariant=
"italic">d
</mml:mi>
664 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
665 <mml:mi mathvariant=
"italic">A
</mml:mi>
671 </td></tr><tr><td align=
"left">
672 <code class=
"constant">GL_CONSTANT_COLOR
</code>
673 </td><td align=
"left">
674 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
676 <mml:mfenced open=
"(" close=
")">
677 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
678 <mml:mi mathvariant=
"italic">c
</mml:mi>
680 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
681 <mml:mi mathvariant=
"italic">c
</mml:mi>
683 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
684 <mml:mi mathvariant=
"italic">c
</mml:mi>
686 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
687 <mml:mi mathvariant=
"italic">c
</mml:mi>
691 </td></tr><tr><td align=
"left">
692 <code class=
"constant">GL_ONE_MINUS_CONSTANT_COLOR
</code>
693 </td><td align=
"left">
694 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
697 <mml:mfenced open=
"(" close=
")">
704 <mml:mfenced open=
"(" close=
")">
705 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
706 <mml:mi mathvariant=
"italic">c
</mml:mi>
708 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
709 <mml:mi mathvariant=
"italic">c
</mml:mi>
711 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
712 <mml:mi mathvariant=
"italic">c
</mml:mi>
714 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
715 <mml:mi mathvariant=
"italic">c
</mml:mi>
720 </td></tr><tr><td align=
"left">
721 <code class=
"constant">GL_CONSTANT_ALPHA
</code>
722 </td><td align=
"left">
723 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
725 <mml:mfenced open=
"(" close=
")">
726 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
727 <mml:mi mathvariant=
"italic">c
</mml:mi>
729 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
730 <mml:mi mathvariant=
"italic">c
</mml:mi>
732 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
733 <mml:mi mathvariant=
"italic">c
</mml:mi>
735 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
736 <mml:mi mathvariant=
"italic">c
</mml:mi>
740 </td></tr><tr><td align=
"left">
741 <code class=
"constant">GL_ONE_MINUS_CONSTANT_ALPHA
</code>
742 </td><td align=
"left">
743 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
746 <mml:mfenced open=
"(" close=
")">
753 <mml:mfenced open=
"(" close=
")">
754 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
755 <mml:mi mathvariant=
"italic">c
</mml:mi>
757 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
758 <mml:mi mathvariant=
"italic">c
</mml:mi>
760 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
761 <mml:mi mathvariant=
"italic">c
</mml:mi>
763 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
764 <mml:mi mathvariant=
"italic">c
</mml:mi>
769 </td></tr><tr><td align=
"left">
770 <code class=
"constant">GL_SRC_ALPHA_SATURATE
</code>
771 </td><td align=
"left">
772 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
774 <mml:mfenced open=
"(" close=
")">
775 <mml:mi mathvariant=
"italic">i
</mml:mi>
776 <mml:mi mathvariant=
"italic">i
</mml:mi>
777 <mml:mi mathvariant=
"italic">i
</mml:mi>
781 </td></tr><tr><td align=
"left">
782 <code class=
"constant">GL_SRC1_COLOR
</code>
783 </td><td align=
"left">
784 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
786 <mml:mfenced open=
"(" close=
")">
788 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
789 <mml:mi mathvariant=
"italic">s1
</mml:mi>
791 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
792 <mml:mi mathvariant=
"italic">R
</mml:mi>
796 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
797 <mml:mi mathvariant=
"italic">s1
</mml:mi>
799 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
800 <mml:mi mathvariant=
"italic">G
</mml:mi>
804 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
805 <mml:mi mathvariant=
"italic">s1
</mml:mi>
807 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
808 <mml:mi mathvariant=
"italic">B
</mml:mi>
812 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
813 <mml:mi mathvariant=
"italic">s1
</mml:mi>
815 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
816 <mml:mi mathvariant=
"italic">A
</mml:mi>
821 </td></tr><tr><td align=
"left">
822 <code class=
"constant">GL_ONE_MINUS_SRC1_COLOR
</code>
823 </td><td align=
"left">
824 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
827 <mml:mfenced open=
"(" close=
")">
834 <mml:mfenced open=
"(" close=
")">
836 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
837 <mml:mi mathvariant=
"italic">s1
</mml:mi>
839 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
840 <mml:mi mathvariant=
"italic">R
</mml:mi>
844 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
845 <mml:mi mathvariant=
"italic">s1
</mml:mi>
847 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
848 <mml:mi mathvariant=
"italic">G
</mml:mi>
852 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
853 <mml:mi mathvariant=
"italic">s1
</mml:mi>
855 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
856 <mml:mi mathvariant=
"italic">B
</mml:mi>
860 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
861 <mml:mi mathvariant=
"italic">s1
</mml:mi>
863 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
864 <mml:mi mathvariant=
"italic">A
</mml:mi>
870 </td></tr><tr><td align=
"left">
871 <code class=
"constant">GL_SRC1_ALPHA
</code>
872 </td><td align=
"left">
873 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
875 <mml:mfenced open=
"(" close=
")">
877 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
878 <mml:mi mathvariant=
"italic">s1
</mml:mi>
880 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
881 <mml:mi mathvariant=
"italic">A
</mml:mi>
885 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
886 <mml:mi mathvariant=
"italic">s1
</mml:mi>
888 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
889 <mml:mi mathvariant=
"italic">A
</mml:mi>
893 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
894 <mml:mi mathvariant=
"italic">s1
</mml:mi>
896 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
897 <mml:mi mathvariant=
"italic">A
</mml:mi>
901 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
902 <mml:mi mathvariant=
"italic">s1
</mml:mi>
904 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
905 <mml:mi mathvariant=
"italic">A
</mml:mi>
910 </td></tr><tr><td align=
"left">
911 <code class=
"constant">GL_ONE_MINUS_SRC1_ALPHA
</code>
912 </td><td align=
"left">
913 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
916 <mml:mfenced open=
"(" close=
")">
923 <mml:mfenced open=
"(" close=
")">
925 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
926 <mml:mi mathvariant=
"italic">s1
</mml:mi>
928 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
929 <mml:mi mathvariant=
"italic">A
</mml:mi>
933 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
934 <mml:mi mathvariant=
"italic">s1
</mml:mi>
936 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
937 <mml:mi mathvariant=
"italic">A
</mml:mi>
941 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
942 <mml:mi mathvariant=
"italic">s1
</mml:mi>
944 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
945 <mml:mi mathvariant=
"italic">A
</mml:mi>
949 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
950 <mml:mi mathvariant=
"italic">s1
</mml:mi>
952 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
953 <mml:mi mathvariant=
"italic">A
</mml:mi>
959 </td></tr></tbody></table></div><p>
963 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
966 <mml:mi mathvariant=
"italic">i
</mml:mi>
970 <mml:mi mathvariant=
"italic">min
</mml:mi>
972 <mml:mfenced open=
"(" close=
")">
973 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
974 <mml:mi mathvariant=
"italic">s
</mml:mi>
977 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
978 <mml:mi mathvariant=
"italic">A
</mml:mi>
981 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
982 <mml:mi mathvariant=
"italic">d
</mml:mi>
987 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
988 <mml:mi mathvariant=
"italic">A
</mml:mi>
995 To determine the blended RGBA values of a pixel,
996 the system uses the following equations:
999 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
1002 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
1003 <mml:mi mathvariant=
"italic">d
</mml:mi>
1007 <mml:mi mathvariant=
"italic">min
</mml:mi>
1009 <mml:mfenced open=
"(" close=
")">
1010 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
1011 <mml:mi mathvariant=
"italic">R
</mml:mi>
1014 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
1015 <mml:mi mathvariant=
"italic">s
</mml:mi>
1018 <mml:msub><mml:mi mathvariant=
"italic">s
</mml:mi>
1019 <mml:mi mathvariant=
"italic">R
</mml:mi>
1022 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
1023 <mml:mi mathvariant=
"italic">d
</mml:mi>
1026 <mml:msub><mml:mi mathvariant=
"italic">d
</mml:mi>
1027 <mml:mi mathvariant=
"italic">R
</mml:mi>
1034 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
1037 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
1038 <mml:mi mathvariant=
"italic">d
</mml:mi>
1042 <mml:mi mathvariant=
"italic">min
</mml:mi>
1044 <mml:mfenced open=
"(" close=
")">
1045 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
1046 <mml:mi mathvariant=
"italic">G
</mml:mi>
1049 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
1050 <mml:mi mathvariant=
"italic">s
</mml:mi>
1053 <mml:msub><mml:mi mathvariant=
"italic">s
</mml:mi>
1054 <mml:mi mathvariant=
"italic">G
</mml:mi>
1057 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
1058 <mml:mi mathvariant=
"italic">d
</mml:mi>
1061 <mml:msub><mml:mi mathvariant=
"italic">d
</mml:mi>
1062 <mml:mi mathvariant=
"italic">G
</mml:mi>
1069 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
1072 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
1073 <mml:mi mathvariant=
"italic">d
</mml:mi>
1077 <mml:mi mathvariant=
"italic">min
</mml:mi>
1079 <mml:mfenced open=
"(" close=
")">
1080 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
1081 <mml:mi mathvariant=
"italic">B
</mml:mi>
1084 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
1085 <mml:mi mathvariant=
"italic">s
</mml:mi>
1088 <mml:msub><mml:mi mathvariant=
"italic">s
</mml:mi>
1089 <mml:mi mathvariant=
"italic">B
</mml:mi>
1092 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
1093 <mml:mi mathvariant=
"italic">d
</mml:mi>
1096 <mml:msub><mml:mi mathvariant=
"italic">d
</mml:mi>
1097 <mml:mi mathvariant=
"italic">B
</mml:mi>
1104 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
1107 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
1108 <mml:mi mathvariant=
"italic">d
</mml:mi>
1112 <mml:mi mathvariant=
"italic">min
</mml:mi>
1114 <mml:mfenced open=
"(" close=
")">
1115 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
1116 <mml:mi mathvariant=
"italic">A
</mml:mi>
1119 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
1120 <mml:mi mathvariant=
"italic">s
</mml:mi>
1123 <mml:msub><mml:mi mathvariant=
"italic">s
</mml:mi>
1124 <mml:mi mathvariant=
"italic">A
</mml:mi>
1127 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
1128 <mml:mi mathvariant=
"italic">d
</mml:mi>
1131 <mml:msub><mml:mi mathvariant=
"italic">d
</mml:mi>
1132 <mml:mi mathvariant=
"italic">A
</mml:mi>
1141 Despite the apparent precision of the above equations,
1142 blending arithmetic is not exactly specified,
1143 because blending operates with imprecise integer color values.
1145 a blend factor that should be equal to
1
1146 is guaranteed not to modify its multiplicand,
1147 and a blend factor equal to
0 reduces its multiplicand to
0.
1149 when
<em class=
"parameter"><code>sfactor
</code></em> is
<code class=
"constant">GL_SRC_ALPHA
</code>,
1150 <em class=
"parameter"><code>dfactor
</code></em> is
<code class=
"constant">GL_ONE_MINUS_SRC_ALPHA
</code>,
1152 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
1154 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
1155 <mml:mi mathvariant=
"italic">s
</mml:mi>
1159 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
1161 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
1162 <mml:mi mathvariant=
"italic">A
</mml:mi>
1165 the equations reduce to simple replacement:
1168 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
1171 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
1172 <mml:mi mathvariant=
"italic">d
</mml:mi>
1175 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
1176 <mml:mi mathvariant=
"italic">s
</mml:mi>
1180 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
1183 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
1184 <mml:mi mathvariant=
"italic">d
</mml:mi>
1187 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
1188 <mml:mi mathvariant=
"italic">s
</mml:mi>
1192 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
1195 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
1196 <mml:mi mathvariant=
"italic">d
</mml:mi>
1199 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
1200 <mml:mi mathvariant=
"italic">s
</mml:mi>
1204 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
1207 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
1208 <mml:mi mathvariant=
"italic">d
</mml:mi>
1211 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
1212 <mml:mi mathvariant=
"italic">s
</mml:mi>
1218 </p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"examples"></a><h2>Examples
</h2><p>
1220 Transparency is best implemented using blend function
1221 (
<code class=
"constant">GL_SRC_ALPHA
</code>,
<code class=
"constant">GL_ONE_MINUS_SRC_ALPHA
</code>)
1222 with primitives sorted from farthest to nearest.
1223 Note that this transparency calculation does not require
1224 the presence of alpha bitplanes in the frame buffer.
1227 (
<code class=
"constant">GL_SRC_ALPHA
</code>,
<code class=
"constant">GL_ONE_MINUS_SRC_ALPHA
</code>)
1228 is also useful for rendering antialiased points and lines
1231 Polygon antialiasing is optimized using blend function
1232 (
<code class=
"constant">GL_SRC_ALPHA_SATURATE
</code>,
<code class=
"constant">GL_ONE
</code>)
1233 with polygons sorted from nearest to farthest.
1234 (See the
<a href=
"glEnable.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glEnable
</span></span></a>,
<a href=
"glDisable.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glDisable
</span></span></a> reference page and the
1235 <code class=
"constant">GL_POLYGON_SMOOTH
</code> argument for information on polygon antialiasing.)
1236 Destination alpha bitplanes,
1237 which must be present for this blend function to operate correctly,
1238 store the accumulated coverage.
1239 </p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"notes"></a><h2>Notes
</h2><p>
1240 Incoming (source) alpha is correctly thought of as a material opacity,
1242 (
<mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
1244 <mml:msub><mml:mi mathvariant=
"italic">K
</mml:mi>
1245 <mml:mi mathvariant=
"italic">A
</mml:mi>
1248 representing complete opacity,
1249 to
0.0 (
0), representing complete
1252 When more than one color buffer is enabled for drawing,
1253 the GL performs blending separately for each enabled buffer,
1254 using the contents of that buffer for destination color.
1255 (See
<a href=
"glDrawBuffer.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glDrawBuffer
</span></span></a>.)
1257 When dual source blending is enabled (i.e., one of the blend factors requiring
1258 the second color input is used), the maximum number of enabled draw buffers
1259 is given by
<code class=
"constant">GL_MAX_DUAL_SOURCE_DRAW_BUFFERS
</code>, which may
1260 be lower than
<code class=
"constant">GL_MAX_DRAW_BUFFERS
</code>.
1261 </p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"errors"></a><h2>Errors
</h2><p>
1262 <code class=
"constant">GL_INVALID_ENUM
</code> is generated if either
<em class=
"parameter"><code>sfactor
</code></em>
1263 or
<em class=
"parameter"><code>dfactor
</code></em> is not an accepted value.
1265 <code class=
"constant">GL_INVALID_VALUE
</code> is generated by
<code class=
"function">glBlendFunci
</code> if
<em class=
"parameter"><code>buf
</code></em> is greater
1266 than or equal to the value of
<code class=
"constant">GL_MAX_DRAW_BUFFERS
</code>.
1267 </p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"associatedgets"></a><h2>Associated Gets
</h2><p>
1268 <a href=
"glGet.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGet
</span></span></a> with argument
<code class=
"constant">GL_BLEND_SRC
</code>
1270 <a href=
"glGet.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGet
</span></span></a> with argument
<code class=
"constant">GL_BLEND_DST
</code>
1272 <a href=
"glIsEnabled.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glIsEnabled
</span></span></a> with argument
<code class=
"constant">GL_BLEND
</code>
1274 </p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"seealso"></a><h2>See Also
</h2><p>
1275 <a href=
"glBlendColor.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glBlendColor
</span></span></a>,
1276 <a href=
"glBlendEquation.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glBlendEquation
</span></span></a>,
1277 <a href=
"glBlendFuncSeparate.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glBlendFuncSeparate
</span></span></a>,
1278 <a href=
"glClear.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glClear
</span></span></a>,
1279 <a href=
"glDrawBuffer.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glDrawBuffer
</span></span></a>,
1280 <a href=
"glEnable.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glEnable
</span></span></a>,
1281 <a href=
"glLogicOp.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glLogicOp
</span></span></a>,
1282 <a href=
"glStencilFunc.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glStencilFunc
</span></span></a>
1283 </p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"Copyright"></a><h2>Copyright
</h2><p>
1284 Copyright
<span class=
"trademark"></span>©
1991-
2006
1285 Silicon Graphics, Inc. This document is licensed under the SGI
1286 Free Software B License. For details, see
1287 <a href=
"http://oss.sgi.com/projects/FreeB/" target=
"_top">http://oss.sgi.com/projects/FreeB/
</a>.
1288 </p></div></div></body></html>