rename upstream-man-pages to upstream-doc
[clinton/guile-figl.git] / upstream-doc / man2 / xhtml / glBlendFunc.xml
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>glBlendFunc</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /></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"><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></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>sfactor</code></em></span></dt><dd><p>
4 Specifies how the red, green, blue,
5 and alpha source blending factors are computed.
6 The following symbolic constants are accepted:
7 <code class="constant">GL_ZERO</code>,
8 <code class="constant">GL_ONE</code>,
9 <code class="constant">GL_SRC_COLOR</code>,
10 <code class="constant">GL_ONE_MINUS_SRC_COLOR</code>,
11 <code class="constant">GL_DST_COLOR</code>,
12 <code class="constant">GL_ONE_MINUS_DST_COLOR</code>,
13 <code class="constant">GL_SRC_ALPHA</code>,
14 <code class="constant">GL_ONE_MINUS_SRC_ALPHA</code>,
15 <code class="constant">GL_DST_ALPHA</code>,
16 <code class="constant">GL_ONE_MINUS_DST_ALPHA</code>,
17 <code class="constant">GL_CONSTANT_COLOR</code>,
18 <code class="constant">GL_ONE_MINUS_CONSTANT_COLOR</code>,
19 <code class="constant">GL_CONSTANT_ALPHA</code>,
20 <code class="constant">GL_ONE_MINUS_CONSTANT_ALPHA</code>, and
21 <code class="constant">GL_SRC_ALPHA_SATURATE</code>.
22 The initial value is <code class="constant">GL_ONE</code>.
23 </p></dd><dt><span class="term"><em class="parameter"><code>dfactor</code></em></span></dt><dd><p>
24 Specifies how the red, green, blue,
25 and alpha destination blending factors are computed.
26 The following symbolic constants are accepted:
27 <code class="constant">GL_ZERO</code>,
28 <code class="constant">GL_ONE</code>,
29 <code class="constant">GL_SRC_COLOR</code>,
30 <code class="constant">GL_ONE_MINUS_SRC_COLOR</code>,
31 <code class="constant">GL_DST_COLOR</code>,
32 <code class="constant">GL_ONE_MINUS_DST_COLOR</code>,
33 <code class="constant">GL_SRC_ALPHA</code>,
34 <code class="constant">GL_ONE_MINUS_SRC_ALPHA</code>,
35 <code class="constant">GL_DST_ALPHA</code>,
36 <code class="constant">GL_ONE_MINUS_DST_ALPHA</code>.
37 <code class="constant">GL_CONSTANT_COLOR</code>,
38 <code class="constant">GL_ONE_MINUS_CONSTANT_COLOR</code>,
39 <code class="constant">GL_CONSTANT_ALPHA</code>, and
40 <code class="constant">GL_ONE_MINUS_CONSTANT_ALPHA</code>.
41 The initial value is <code class="constant">GL_ZERO</code>.
42 </p></dd></dl></div></div><div class="refsect1" lang="en" xml:lang="en"><a id="description"></a><h2>Description</h2><p>
43 In RGBA mode, pixels can be drawn using a function that blends
44 the incoming (source) RGBA values with the RGBA values
45 that are already in the frame buffer (the destination values).
46 Blending is initially disabled.
47 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>
48 to enable and disable blending.
49 </p><p>
50 <code class="function">glBlendFunc</code> defines the operation of blending when it is enabled.
51 <em class="parameter"><code>sfactor</code></em> specifies which method is used to scale the
52 source color components.
53 <em class="parameter"><code>dfactor</code></em> specifies which method is used to scale the
54 destination color components.
55 The possible methods are described in the following table.
56 Each method defines four scale factors,
57 one each for red, green, blue, and alpha.
58 In the table and in subsequent equations, source and destination
59 color components are referred to as
60 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
61
62 <mml:mfenced open="(" close=")">
63 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
64 <mml:mi mathvariant="italic">s</mml:mi>
65 </mml:msub>
66 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
67 <mml:mi mathvariant="italic">s</mml:mi>
68 </mml:msub>
69 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
70 <mml:mi mathvariant="italic">s</mml:mi>
71 </mml:msub>
72 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
73 <mml:mi mathvariant="italic">s</mml:mi>
74 </mml:msub>
75 </mml:mfenced>
76 </mml:math>
77 and
78 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
79
80 <mml:mfenced open="(" close=")">
81 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
82 <mml:mi mathvariant="italic">d</mml:mi>
83 </mml:msub>
84 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
85 <mml:mi mathvariant="italic">d</mml:mi>
86 </mml:msub>
87 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
88 <mml:mi mathvariant="italic">d</mml:mi>
89 </mml:msub>
90 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
91 <mml:mi mathvariant="italic">d</mml:mi>
92 </mml:msub>
93 </mml:mfenced>
94 </mml:math>.
95 The color specified by <a class="citerefentry" href="glBlendColor.xml"><span class="citerefentry"><span class="refentrytitle">glBlendColor</span></span></a> is referred to as
96 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
97
98 <mml:mfenced open="(" close=")">
99 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
100 <mml:mi mathvariant="italic">c</mml:mi>
101 </mml:msub>
102 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
103 <mml:mi mathvariant="italic">c</mml:mi>
104 </mml:msub>
105 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
106 <mml:mi mathvariant="italic">c</mml:mi>
107 </mml:msub>
108 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
109 <mml:mi mathvariant="italic">c</mml:mi>
110 </mml:msub>
111 </mml:mfenced>
112 </mml:math>.
113 They are understood to have integer values between 0 and
114 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
115
116 <mml:mfenced open="(" close=")">
117 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
118 <mml:mi mathvariant="italic">R</mml:mi>
119 </mml:msub>
120 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
121 <mml:mi mathvariant="italic">G</mml:mi>
122 </mml:msub>
123 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
124 <mml:mi mathvariant="italic">B</mml:mi>
125 </mml:msub>
126 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
127 <mml:mi mathvariant="italic">A</mml:mi>
128 </mml:msub>
129 </mml:mfenced>
130 </mml:math>,
131 where
132 </p><p>
133 </p><p>
134 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
135
136 <mml:mrow>
137 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
138 <mml:mi mathvariant="italic">c</mml:mi>
139 </mml:msub>
140 <mml:mo>=</mml:mo>
141 <mml:mrow>
142 <mml:msup><mml:mn>2</mml:mn>
143 <mml:mfenced open="" close="">
144 <mml:msub><mml:mi mathvariant="italic">m</mml:mi>
145 <mml:mi mathvariant="italic">c</mml:mi>
146 </mml:msub>
147 </mml:mfenced>
148 </mml:msup>
149 <mml:mo>-</mml:mo>
150 <mml:mn>1</mml:mn>
151 </mml:mrow>
152 </mml:mrow>
153 </mml:math>
154 </p><p>
155 </p><p>
156 and
157 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
158
159 <mml:mfenced open="(" close=")">
160 <mml:msub><mml:mi mathvariant="italic">m</mml:mi>
161 <mml:mi mathvariant="italic">R</mml:mi>
162 </mml:msub>
163 <mml:msub><mml:mi mathvariant="italic">m</mml:mi>
164 <mml:mi mathvariant="italic">G</mml:mi>
165 </mml:msub>
166 <mml:msub><mml:mi mathvariant="italic">m</mml:mi>
167 <mml:mi mathvariant="italic">B</mml:mi>
168 </mml:msub>
169 <mml:msub><mml:mi mathvariant="italic">m</mml:mi>
170 <mml:mi mathvariant="italic">A</mml:mi>
171 </mml:msub>
172 </mml:mfenced>
173 </mml:math>
174 is the number of red,
175 green,
176 blue,
177 and alpha bitplanes.
178 </p><p>
179 Source and destination scale factors are referred to as
180 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
181
182 <mml:mfenced open="(" close=")">
183 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
184 <mml:mi mathvariant="italic">R</mml:mi>
185 </mml:msub>
186 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
187 <mml:mi mathvariant="italic">G</mml:mi>
188 </mml:msub>
189 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
190 <mml:mi mathvariant="italic">B</mml:mi>
191 </mml:msub>
192 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
193 <mml:mi mathvariant="italic">A</mml:mi>
194 </mml:msub>
195 </mml:mfenced>
196 </mml:math>
197 and
198 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
199
200 <mml:mfenced open="(" close=")">
201 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
202 <mml:mi mathvariant="italic">R</mml:mi>
203 </mml:msub>
204 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
205 <mml:mi mathvariant="italic">G</mml:mi>
206 </mml:msub>
207 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
208 <mml:mi mathvariant="italic">B</mml:mi>
209 </mml:msub>
210 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
211 <mml:mi mathvariant="italic">A</mml:mi>
212 </mml:msub>
213 </mml:mfenced>
214 </mml:math>.
215 The scale factors described in the table,
216 denoted
217 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
218
219 <mml:mfenced open="(" close=")">
220 <mml:msub><mml:mi mathvariant="italic">f</mml:mi>
221 <mml:mi mathvariant="italic">R</mml:mi>
222 </mml:msub>
223 <mml:msub><mml:mi mathvariant="italic">f</mml:mi>
224 <mml:mi mathvariant="italic">G</mml:mi>
225 </mml:msub>
226 <mml:msub><mml:mi mathvariant="italic">f</mml:mi>
227 <mml:mi mathvariant="italic">B</mml:mi>
228 </mml:msub>
229 <mml:msub><mml:mi mathvariant="italic">f</mml:mi>
230 <mml:mi mathvariant="italic">A</mml:mi>
231 </mml:msub>
232 </mml:mfenced>
233 </mml:math>,
234 represent either source or destination factors.
235 All scale factors have range
236 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
237
238 <mml:mfenced open="[" close="]">
239 <mml:mn>0</mml:mn>
240 <mml:mn>1</mml:mn>
241 </mml:mfenced>
242 </mml:math>.
243 </p><p>
244 </p><div class="informaltable"><table border="1"><colgroup><col align="left" /><col align="left" /></colgroup><thead><tr><th align="left"><span class="bold"><strong>
245 Parameter
246 </strong></span></th><th align="left"><span class="bold"><strong>
247 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
248
249 <mml:mfenced open="(" close=")">
250 <mml:msub><mml:mi mathvariant="italic">f</mml:mi>
251 <mml:mi mathvariant="italic">R</mml:mi>
252 </mml:msub>
253 <mml:msub><mml:mi mathvariant="italic">f</mml:mi>
254 <mml:mi mathvariant="italic">G</mml:mi>
255 </mml:msub>
256 <mml:msub><mml:mi mathvariant="italic">f</mml:mi>
257 <mml:mi mathvariant="italic">B</mml:mi>
258 </mml:msub>
259 <mml:msub><mml:mi mathvariant="italic">f</mml:mi>
260 <mml:mi mathvariant="italic">A</mml:mi>
261 </mml:msub>
262 </mml:mfenced>
263 </mml:math>
264 </strong></span></th></tr></thead><tbody><tr><td align="left">
265 <code class="constant">GL_ZERO</code>
266 </td><td align="left">
267 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
268
269 <mml:mfenced open="(" close=")">
270 <mml:mn>0</mml:mn>
271 <mml:mn>0</mml:mn>
272 <mml:mn>0</mml:mn>
273 <mml:mn>0</mml:mn>
274 </mml:mfenced>
275 </mml:math>
276 </td></tr><tr><td align="left">
277 <code class="constant">GL_ONE</code>
278 </td><td align="left">
279 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
280
281 <mml:mfenced open="(" close=")">
282 <mml:mn>1</mml:mn>
283 <mml:mn>1</mml:mn>
284 <mml:mn>1</mml:mn>
285 <mml:mn>1</mml:mn>
286 </mml:mfenced>
287 </mml:math>
288 </td></tr><tr><td align="left">
289 <code class="constant">GL_SRC_COLOR</code>
290 </td><td align="left">
291 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
292
293 <mml:mfenced open="(" close=")">
294 <mml:mfrac>
295 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
296 <mml:mi mathvariant="italic">s</mml:mi>
297 </mml:msub>
298 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
299 <mml:mi mathvariant="italic">R</mml:mi>
300 </mml:msub>
301 </mml:mfrac>
302 <mml:mfrac>
303 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
304 <mml:mi mathvariant="italic">s</mml:mi>
305 </mml:msub>
306 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
307 <mml:mi mathvariant="italic">G</mml:mi>
308 </mml:msub>
309 </mml:mfrac>
310 <mml:mfrac>
311 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
312 <mml:mi mathvariant="italic">s</mml:mi>
313 </mml:msub>
314 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
315 <mml:mi mathvariant="italic">B</mml:mi>
316 </mml:msub>
317 </mml:mfrac>
318 <mml:mfrac>
319 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
320 <mml:mi mathvariant="italic">s</mml:mi>
321 </mml:msub>
322 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
323 <mml:mi mathvariant="italic">A</mml:mi>
324 </mml:msub>
325 </mml:mfrac>
326 </mml:mfenced>
327 </mml:math>
328 </td></tr><tr><td align="left">
329 <code class="constant">GL_ONE_MINUS_SRC_COLOR</code>
330 </td><td align="left">
331 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
332
333 <mml:mrow>
334 <mml:mfenced open="(" close=")">
335 <mml:mn>1</mml:mn>
336 <mml:mn>1</mml:mn>
337 <mml:mn>1</mml:mn>
338 <mml:mn>1</mml:mn>
339 </mml:mfenced>
340 <mml:mo>-</mml:mo>
341 <mml:mfenced open="(" close=")">
342 <mml:mfrac>
343 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
344 <mml:mi mathvariant="italic">s</mml:mi>
345 </mml:msub>
346 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
347 <mml:mi mathvariant="italic">R</mml:mi>
348 </mml:msub>
349 </mml:mfrac>
350 <mml:mfrac>
351 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
352 <mml:mi mathvariant="italic">s</mml:mi>
353 </mml:msub>
354 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
355 <mml:mi mathvariant="italic">G</mml:mi>
356 </mml:msub>
357 </mml:mfrac>
358 <mml:mfrac>
359 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
360 <mml:mi mathvariant="italic">s</mml:mi>
361 </mml:msub>
362 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
363 <mml:mi mathvariant="italic">B</mml:mi>
364 </mml:msub>
365 </mml:mfrac>
366 <mml:mfrac>
367 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
368 <mml:mi mathvariant="italic">s</mml:mi>
369 </mml:msub>
370 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
371 <mml:mi mathvariant="italic">A</mml:mi>
372 </mml:msub>
373 </mml:mfrac>
374 </mml:mfenced>
375 </mml:mrow>
376 </mml:math>
377 </td></tr><tr><td align="left">
378 <code class="constant">GL_DST_COLOR</code>
379 </td><td align="left">
380 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
381
382 <mml:mfenced open="(" close=")">
383 <mml:mfrac>
384 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
385 <mml:mi mathvariant="italic">d</mml:mi>
386 </mml:msub>
387 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
388 <mml:mi mathvariant="italic">R</mml:mi>
389 </mml:msub>
390 </mml:mfrac>
391 <mml:mfrac>
392 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
393 <mml:mi mathvariant="italic">d</mml:mi>
394 </mml:msub>
395 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
396 <mml:mi mathvariant="italic">G</mml:mi>
397 </mml:msub>
398 </mml:mfrac>
399 <mml:mfrac>
400 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
401 <mml:mi mathvariant="italic">d</mml:mi>
402 </mml:msub>
403 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
404 <mml:mi mathvariant="italic">B</mml:mi>
405 </mml:msub>
406 </mml:mfrac>
407 <mml:mfrac>
408 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
409 <mml:mi mathvariant="italic">d</mml:mi>
410 </mml:msub>
411 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
412 <mml:mi mathvariant="italic">A</mml:mi>
413 </mml:msub>
414 </mml:mfrac>
415 </mml:mfenced>
416 </mml:math>
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">
421
422 <mml:mrow>
423 <mml:mfenced open="(" close=")">
424 <mml:mn>1</mml:mn>
425 <mml:mn>1</mml:mn>
426 <mml:mn>1</mml:mn>
427 <mml:mn>1</mml:mn>
428 </mml:mfenced>
429 <mml:mo>-</mml:mo>
430 <mml:mfenced open="(" close=")">
431 <mml:mfrac>
432 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
433 <mml:mi mathvariant="italic">d</mml:mi>
434 </mml:msub>
435 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
436 <mml:mi mathvariant="italic">R</mml:mi>
437 </mml:msub>
438 </mml:mfrac>
439 <mml:mfrac>
440 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
441 <mml:mi mathvariant="italic">d</mml:mi>
442 </mml:msub>
443 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
444 <mml:mi mathvariant="italic">G</mml:mi>
445 </mml:msub>
446 </mml:mfrac>
447 <mml:mfrac>
448 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
449 <mml:mi mathvariant="italic">d</mml:mi>
450 </mml:msub>
451 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
452 <mml:mi mathvariant="italic">B</mml:mi>
453 </mml:msub>
454 </mml:mfrac>
455 <mml:mfrac>
456 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
457 <mml:mi mathvariant="italic">d</mml:mi>
458 </mml:msub>
459 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
460 <mml:mi mathvariant="italic">A</mml:mi>
461 </mml:msub>
462 </mml:mfrac>
463 </mml:mfenced>
464 </mml:mrow>
465 </mml:math>
466 </td></tr><tr><td align="left">
467 <code class="constant">GL_SRC_ALPHA</code>
468 </td><td align="left">
469 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
470
471 <mml:mfenced open="(" close=")">
472 <mml:mfrac>
473 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
474 <mml:mi mathvariant="italic">s</mml:mi>
475 </mml:msub>
476 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
477 <mml:mi mathvariant="italic">A</mml:mi>
478 </mml:msub>
479 </mml:mfrac>
480 <mml:mfrac>
481 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
482 <mml:mi mathvariant="italic">s</mml:mi>
483 </mml:msub>
484 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
485 <mml:mi mathvariant="italic">A</mml:mi>
486 </mml:msub>
487 </mml:mfrac>
488 <mml:mfrac>
489 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
490 <mml:mi mathvariant="italic">s</mml:mi>
491 </mml:msub>
492 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
493 <mml:mi mathvariant="italic">A</mml:mi>
494 </mml:msub>
495 </mml:mfrac>
496 <mml:mfrac>
497 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
498 <mml:mi mathvariant="italic">s</mml:mi>
499 </mml:msub>
500 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
501 <mml:mi mathvariant="italic">A</mml:mi>
502 </mml:msub>
503 </mml:mfrac>
504 </mml:mfenced>
505 </mml:math>
506 </td></tr><tr><td align="left">
507 <code class="constant">GL_ONE_MINUS_SRC_ALPHA</code>
508 </td><td align="left">
509 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
510
511 <mml:mrow>
512 <mml:mfenced open="(" close=")">
513 <mml:mn>1</mml:mn>
514 <mml:mn>1</mml:mn>
515 <mml:mn>1</mml:mn>
516 <mml:mn>1</mml:mn>
517 </mml:mfenced>
518 <mml:mo>-</mml:mo>
519 <mml:mfenced open="(" close=")">
520 <mml:mfrac>
521 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
522 <mml:mi mathvariant="italic">s</mml:mi>
523 </mml:msub>
524 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
525 <mml:mi mathvariant="italic">A</mml:mi>
526 </mml:msub>
527 </mml:mfrac>
528 <mml:mfrac>
529 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
530 <mml:mi mathvariant="italic">s</mml:mi>
531 </mml:msub>
532 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
533 <mml:mi mathvariant="italic">A</mml:mi>
534 </mml:msub>
535 </mml:mfrac>
536 <mml:mfrac>
537 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
538 <mml:mi mathvariant="italic">s</mml:mi>
539 </mml:msub>
540 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
541 <mml:mi mathvariant="italic">A</mml:mi>
542 </mml:msub>
543 </mml:mfrac>
544 <mml:mfrac>
545 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
546 <mml:mi mathvariant="italic">s</mml:mi>
547 </mml:msub>
548 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
549 <mml:mi mathvariant="italic">A</mml:mi>
550 </mml:msub>
551 </mml:mfrac>
552 </mml:mfenced>
553 </mml:mrow>
554 </mml:math>
555 </td></tr><tr><td align="left">
556 <code class="constant">GL_DST_ALPHA</code>
557 </td><td align="left">
558 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
559
560 <mml:mfenced open="(" close=")">
561 <mml:mfrac>
562 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
563 <mml:mi mathvariant="italic">d</mml:mi>
564 </mml:msub>
565 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
566 <mml:mi mathvariant="italic">A</mml:mi>
567 </mml:msub>
568 </mml:mfrac>
569 <mml:mfrac>
570 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
571 <mml:mi mathvariant="italic">d</mml:mi>
572 </mml:msub>
573 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
574 <mml:mi mathvariant="italic">A</mml:mi>
575 </mml:msub>
576 </mml:mfrac>
577 <mml:mfrac>
578 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
579 <mml:mi mathvariant="italic">d</mml:mi>
580 </mml:msub>
581 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
582 <mml:mi mathvariant="italic">A</mml:mi>
583 </mml:msub>
584 </mml:mfrac>
585 <mml:mfrac>
586 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
587 <mml:mi mathvariant="italic">d</mml:mi>
588 </mml:msub>
589 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
590 <mml:mi mathvariant="italic">A</mml:mi>
591 </mml:msub>
592 </mml:mfrac>
593 </mml:mfenced>
594 </mml:math>
595 </td></tr><tr><td align="left">
596 <code class="constant">GL_ONE_MINUS_DST_ALPHA</code>
597 </td><td align="left">
598 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
599
600 <mml:mrow>
601 <mml:mfenced open="(" close=")">
602 <mml:mn>1</mml:mn>
603 <mml:mn>1</mml:mn>
604 <mml:mn>1</mml:mn>
605 <mml:mn>1</mml:mn>
606 </mml:mfenced>
607 <mml:mo>-</mml:mo>
608 <mml:mfenced open="(" close=")">
609 <mml:mfrac>
610 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
611 <mml:mi mathvariant="italic">d</mml:mi>
612 </mml:msub>
613 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
614 <mml:mi mathvariant="italic">A</mml:mi>
615 </mml:msub>
616 </mml:mfrac>
617 <mml:mfrac>
618 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
619 <mml:mi mathvariant="italic">d</mml:mi>
620 </mml:msub>
621 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
622 <mml:mi mathvariant="italic">A</mml:mi>
623 </mml:msub>
624 </mml:mfrac>
625 <mml:mfrac>
626 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
627 <mml:mi mathvariant="italic">d</mml:mi>
628 </mml:msub>
629 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
630 <mml:mi mathvariant="italic">A</mml:mi>
631 </mml:msub>
632 </mml:mfrac>
633 <mml:mfrac>
634 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
635 <mml:mi mathvariant="italic">d</mml:mi>
636 </mml:msub>
637 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
638 <mml:mi mathvariant="italic">A</mml:mi>
639 </mml:msub>
640 </mml:mfrac>
641 </mml:mfenced>
642 </mml:mrow>
643 </mml:math>
644 </td></tr><tr><td align="left">
645 <code class="constant">GL_CONSTANT_COLOR</code>
646 </td><td align="left">
647 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
648
649 <mml:mfenced open="(" close=")">
650 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
651 <mml:mi mathvariant="italic">c</mml:mi>
652 </mml:msub>
653 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
654 <mml:mi mathvariant="italic">c</mml:mi>
655 </mml:msub>
656 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
657 <mml:mi mathvariant="italic">c</mml:mi>
658 </mml:msub>
659 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
660 <mml:mi mathvariant="italic">c</mml:mi>
661 </mml:msub>
662 </mml:mfenced>
663 </mml:math>
664 </td></tr><tr><td align="left">
665 <code class="constant">GL_ONE_MINUS_CONSTANT_COLOR</code>
666 </td><td align="left">
667 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
668
669 <mml:mrow>
670 <mml:mfenced open="(" close=")">
671 <mml:mn>1</mml:mn>
672 <mml:mn>1</mml:mn>
673 <mml:mn>1</mml:mn>
674 <mml:mn>1</mml:mn>
675 </mml:mfenced>
676 <mml:mo>-</mml:mo>
677 <mml:mfenced open="(" close=")">
678 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
679 <mml:mi mathvariant="italic">c</mml:mi>
680 </mml:msub>
681 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
682 <mml:mi mathvariant="italic">c</mml:mi>
683 </mml:msub>
684 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
685 <mml:mi mathvariant="italic">c</mml:mi>
686 </mml:msub>
687 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
688 <mml:mi mathvariant="italic">c</mml:mi>
689 </mml:msub>
690 </mml:mfenced>
691 </mml:mrow>
692 </mml:math>
693 </td></tr><tr><td align="left">
694 <code class="constant">GL_CONSTANT_ALPHA</code>
695 </td><td align="left">
696 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
697
698 <mml:mfenced open="(" close=")">
699 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
700 <mml:mi mathvariant="italic">c</mml:mi>
701 </mml:msub>
702 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
703 <mml:mi mathvariant="italic">c</mml:mi>
704 </mml:msub>
705 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
706 <mml:mi mathvariant="italic">c</mml:mi>
707 </mml:msub>
708 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
709 <mml:mi mathvariant="italic">c</mml:mi>
710 </mml:msub>
711 </mml:mfenced>
712 </mml:math>
713 </td></tr><tr><td align="left">
714 <code class="constant">GL_ONE_MINUS_CONSTANT_ALPHA</code>
715 </td><td align="left">
716 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
717
718 <mml:mrow>
719 <mml:mfenced open="(" close=")">
720 <mml:mn>1</mml:mn>
721 <mml:mn>1</mml:mn>
722 <mml:mn>1</mml:mn>
723 <mml:mn>1</mml:mn>
724 </mml:mfenced>
725 <mml:mo>-</mml:mo>
726 <mml:mfenced open="(" close=")">
727 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
728 <mml:mi mathvariant="italic">c</mml:mi>
729 </mml:msub>
730 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
731 <mml:mi mathvariant="italic">c</mml:mi>
732 </mml:msub>
733 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
734 <mml:mi mathvariant="italic">c</mml:mi>
735 </mml:msub>
736 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
737 <mml:mi mathvariant="italic">c</mml:mi>
738 </mml:msub>
739 </mml:mfenced>
740 </mml:mrow>
741 </mml:math>
742 </td></tr><tr><td align="left">
743 <code class="constant">GL_SRC_ALPHA_SATURATE</code>
744 </td><td align="left">
745 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
746
747 <mml:mfenced open="(" close=")">
748 <mml:mi mathvariant="italic">i</mml:mi>
749 <mml:mi mathvariant="italic">i</mml:mi>
750 <mml:mi mathvariant="italic">i</mml:mi>
751 <mml:mn>1</mml:mn>
752 </mml:mfenced>
753 </mml:math>
754 </td></tr></tbody></table></div><p>
755 In the table,
756 </p><p>
757 </p><p>
758 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
759
760 <mml:mrow>
761 <mml:mi mathvariant="italic">i</mml:mi>
762 <mml:mo>=</mml:mo>
763 <mml:mfrac>
764 <mml:mrow>
765 <mml:mi mathvariant="italic">min</mml:mi>
766 <mml:mo></mml:mo>
767 <mml:mfenced open="(" close=")">
768 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
769 <mml:mi mathvariant="italic">s</mml:mi>
770 </mml:msub>
771 <mml:mrow>
772 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
773 <mml:mi mathvariant="italic">A</mml:mi>
774 </mml:msub>
775 <mml:mo>-</mml:mo>
776 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
777 <mml:mi mathvariant="italic">d</mml:mi>
778 </mml:msub>
779 </mml:mrow>
780 </mml:mfenced>
781 </mml:mrow>
782 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
783 <mml:mi mathvariant="italic">A</mml:mi>
784 </mml:msub>
785 </mml:mfrac>
786 </mml:mrow>
787 </mml:math>
788 </p><p>
789 </p><p>
790 To determine the blended RGBA values of a pixel when drawing in RGBA mode,
791 the system uses the following equations:
792 </p><p>
793 </p><p>
794 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
795
796 <mml:mrow>
797 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
798 <mml:mi mathvariant="italic">d</mml:mi>
799 </mml:msub>
800 <mml:mo>=</mml:mo>
801 <mml:mrow>
802 <mml:mi mathvariant="italic">min</mml:mi>
803 <mml:mo></mml:mo>
804 <mml:mfenced open="(" close=")">
805 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
806 <mml:mi mathvariant="italic">R</mml:mi>
807 </mml:msub>
808 <mml:mrow>
809 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
810 <mml:mi mathvariant="italic">s</mml:mi>
811 </mml:msub>
812 <mml:mo></mml:mo>
813 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
814 <mml:mi mathvariant="italic">R</mml:mi>
815 </mml:msub>
816 <mml:mo>+</mml:mo>
817 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
818 <mml:mi mathvariant="italic">d</mml:mi>
819 </mml:msub>
820 <mml:mo></mml:mo>
821 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
822 <mml:mi mathvariant="italic">R</mml:mi>
823 </mml:msub>
824 </mml:mrow>
825 </mml:mfenced>
826 </mml:mrow>
827 </mml:mrow>
828 </mml:math>
829 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
830
831 <mml:mrow>
832 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
833 <mml:mi mathvariant="italic">d</mml:mi>
834 </mml:msub>
835 <mml:mo>=</mml:mo>
836 <mml:mrow>
837 <mml:mi mathvariant="italic">min</mml:mi>
838 <mml:mo></mml:mo>
839 <mml:mfenced open="(" close=")">
840 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
841 <mml:mi mathvariant="italic">G</mml:mi>
842 </mml:msub>
843 <mml:mrow>
844 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
845 <mml:mi mathvariant="italic">s</mml:mi>
846 </mml:msub>
847 <mml:mo></mml:mo>
848 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
849 <mml:mi mathvariant="italic">G</mml:mi>
850 </mml:msub>
851 <mml:mo>+</mml:mo>
852 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
853 <mml:mi mathvariant="italic">d</mml:mi>
854 </mml:msub>
855 <mml:mo></mml:mo>
856 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
857 <mml:mi mathvariant="italic">G</mml:mi>
858 </mml:msub>
859 </mml:mrow>
860 </mml:mfenced>
861 </mml:mrow>
862 </mml:mrow>
863 </mml:math>
864 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
865
866 <mml:mrow>
867 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
868 <mml:mi mathvariant="italic">d</mml:mi>
869 </mml:msub>
870 <mml:mo>=</mml:mo>
871 <mml:mrow>
872 <mml:mi mathvariant="italic">min</mml:mi>
873 <mml:mo></mml:mo>
874 <mml:mfenced open="(" close=")">
875 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
876 <mml:mi mathvariant="italic">B</mml:mi>
877 </mml:msub>
878 <mml:mrow>
879 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
880 <mml:mi mathvariant="italic">s</mml:mi>
881 </mml:msub>
882 <mml:mo></mml:mo>
883 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
884 <mml:mi mathvariant="italic">B</mml:mi>
885 </mml:msub>
886 <mml:mo>+</mml:mo>
887 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
888 <mml:mi mathvariant="italic">d</mml:mi>
889 </mml:msub>
890 <mml:mo></mml:mo>
891 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
892 <mml:mi mathvariant="italic">B</mml:mi>
893 </mml:msub>
894 </mml:mrow>
895 </mml:mfenced>
896 </mml:mrow>
897 </mml:mrow>
898 </mml:math>
899 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
900
901 <mml:mrow>
902 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
903 <mml:mi mathvariant="italic">d</mml:mi>
904 </mml:msub>
905 <mml:mo>=</mml:mo>
906 <mml:mrow>
907 <mml:mi mathvariant="italic">min</mml:mi>
908 <mml:mo></mml:mo>
909 <mml:mfenced open="(" close=")">
910 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
911 <mml:mi mathvariant="italic">A</mml:mi>
912 </mml:msub>
913 <mml:mrow>
914 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
915 <mml:mi mathvariant="italic">s</mml:mi>
916 </mml:msub>
917 <mml:mo></mml:mo>
918 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
919 <mml:mi mathvariant="italic">A</mml:mi>
920 </mml:msub>
921 <mml:mo>+</mml:mo>
922 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
923 <mml:mi mathvariant="italic">d</mml:mi>
924 </mml:msub>
925 <mml:mo></mml:mo>
926 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
927 <mml:mi mathvariant="italic">A</mml:mi>
928 </mml:msub>
929 </mml:mrow>
930 </mml:mfenced>
931 </mml:mrow>
932 </mml:mrow>
933 </mml:math>
934 </p><p>
935 </p><p>
936 Despite the apparent precision of the above equations,
937 blending arithmetic is not exactly specified,
938 because blending operates with imprecise integer color values.
939 However,
940 a blend factor that should be equal to 1
941 is guaranteed not to modify its multiplicand,
942 and a blend factor equal to 0 reduces its multiplicand to 0.
943 For example,
944 when <em class="parameter"><code>sfactor</code></em> is <code class="constant">GL_SRC_ALPHA</code>,
945 <em class="parameter"><code>dfactor</code></em> is <code class="constant">GL_ONE_MINUS_SRC_ALPHA</code>,
946 and
947 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
948
949 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
950 <mml:mi mathvariant="italic">s</mml:mi>
951 </mml:msub>
952 </mml:math>
953 is equal to
954 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
955
956 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
957 <mml:mi mathvariant="italic">A</mml:mi>
958 </mml:msub>
959 </mml:math>,
960 the equations reduce to simple replacement:
961 </p><p>
962 </p><p>
963 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
964
965 <mml:mrow>
966 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
967 <mml:mi mathvariant="italic">d</mml:mi>
968 </mml:msub>
969 <mml:mo>=</mml:mo>
970 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
971 <mml:mi mathvariant="italic">s</mml:mi>
972 </mml:msub>
973 </mml:mrow>
974 </mml:math>
975 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
976
977 <mml:mrow>
978 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
979 <mml:mi mathvariant="italic">d</mml:mi>
980 </mml:msub>
981 <mml:mo>=</mml:mo>
982 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
983 <mml:mi mathvariant="italic">s</mml:mi>
984 </mml:msub>
985 </mml:mrow>
986 </mml:math>
987 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
988
989 <mml:mrow>
990 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
991 <mml:mi mathvariant="italic">d</mml:mi>
992 </mml:msub>
993 <mml:mo>=</mml:mo>
994 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
995 <mml:mi mathvariant="italic">s</mml:mi>
996 </mml:msub>
997 </mml:mrow>
998 </mml:math>
999 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
1000
1001 <mml:mrow>
1002 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1003 <mml:mi mathvariant="italic">d</mml:mi>
1004 </mml:msub>
1005 <mml:mo>=</mml:mo>
1006 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1007 <mml:mi mathvariant="italic">s</mml:mi>
1008 </mml:msub>
1009 </mml:mrow>
1010 </mml:math>
1011 </p><p>
1012 </p><p>
1013 </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="examples"></a><h2>Examples</h2><p>
1014 </p><p>
1015 Transparency is best implemented using blend function
1016 (<code class="constant">GL_SRC_ALPHA</code>, <code class="constant">GL_ONE_MINUS_SRC_ALPHA</code>)
1017 with primitives sorted from farthest to nearest.
1018 Note that this transparency calculation does not require
1019 the presence of alpha bitplanes in the frame buffer.
1020 </p><p>
1021 Blend function
1022 (<code class="constant">GL_SRC_ALPHA</code>, <code class="constant">GL_ONE_MINUS_SRC_ALPHA</code>)
1023 is also useful for rendering antialiased points and lines
1024 in arbitrary order.
1025 </p><p>
1026 Polygon antialiasing is optimized using blend function
1027 (<code class="constant">GL_SRC_ALPHA_SATURATE</code>, <code class="constant">GL_ONE</code>)
1028 with polygons sorted from nearest to farthest.
1029 (See the <a class="citerefentry" href="glEnable.xml"><span class="citerefentry"><span class="refentrytitle">glEnable</span></span></a>, <a class="citerefentry" href="glDisable.xml"><span class="citerefentry"><span class="refentrytitle">glDisable</span></span></a> reference page and the
1030 <code class="constant">GL_POLYGON_SMOOTH</code> argument for information on polygon antialiasing.)
1031 Destination alpha bitplanes,
1032 which must be present for this blend function to operate correctly,
1033 store the accumulated coverage.
1034 </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="notes"></a><h2>Notes</h2><p>
1035 Incoming (source) alpha is correctly thought of as a material opacity,
1036 ranging from 1.0
1037 (<mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
1038
1039 <mml:msub><mml:mi mathvariant="italic">K</mml:mi>
1040 <mml:mi mathvariant="italic">A</mml:mi>
1041 </mml:msub>
1042 </mml:math>),
1043 representing complete opacity,
1044 to 0.0 (0), representing complete
1045 transparency.
1046 </p><p>
1047 When more than one color buffer is enabled for drawing,
1048 the GL performs blending separately for each enabled buffer,
1049 using the contents of that buffer for destination color.
1050 (See <a class="citerefentry" href="glDrawBuffer.xml"><span class="citerefentry"><span class="refentrytitle">glDrawBuffer</span></span></a>.)
1051 </p><p>
1052 Blending affects only RGBA rendering.
1053 It is ignored by color index renderers.
1054 </p><p>
1055 <code class="constant">GL_CONSTANT_COLOR</code>, <code class="constant">GL_ONE_MINUS_CONSTANT_COLOR</code>,
1056 <code class="constant">GL_CONSTANT_ALPHA</code>, <code class="constant">GL_ONE_MINUS_CONSTANT_ALPHA</code> are available only
1057 if the GL version is 1.4 or greater or if the <code class="code">ARB_imaging</code> is
1058 supported by your implementation.
1059 </p><p>
1060 <code class="constant">GL_SRC_COLOR</code> and <code class="constant">GL_ONE_MINUS_SRC_COLOR</code> are valid only for
1061 <em class="parameter"><code>sfactor</code></em> if the GL version is 1.4 or greater.
1062 </p><p>
1063 <code class="constant">GL_DST_COLOR</code> and <code class="constant">GL_ONE_MINUS_DST_COLOR</code> are valid only for
1064 <em class="parameter"><code>dfactor</code></em> if the GL version is 1.4 or greater.
1065 </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="errors"></a><h2>Errors</h2><p>
1066 <code class="constant">GL_INVALID_ENUM</code> is generated if either <em class="parameter"><code>sfactor</code></em> or <em class="parameter"><code>dfactor</code></em> is not an
1067 accepted value.
1068 </p><p>
1069 <code class="constant">GL_INVALID_OPERATION</code> is generated if <code class="function">glBlendFunc</code>
1070 is executed between the execution of <a class="citerefentry" href="glBegin.xml"><span class="citerefentry"><span class="refentrytitle">glBegin</span></span></a>
1071 and the corresponding execution of <a class="citerefentry" href="glEnd.xml"><span class="citerefentry"><span class="refentrytitle">glEnd</span></span></a>.
1072 </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="associatedgets"></a><h2>Associated Gets</h2><p>
1073 <a class="citerefentry" href="glGet.xml"><span class="citerefentry"><span class="refentrytitle">glGet</span></span></a> with argument <code class="constant">GL_BLEND_SRC</code>
1074 </p><p>
1075 <a class="citerefentry" href="glGet.xml"><span class="citerefentry"><span class="refentrytitle">glGet</span></span></a> with argument <code class="constant">GL_BLEND_DST</code>
1076 </p><p>
1077 <a class="citerefentry" href="glIsEnabled.xml"><span class="citerefentry"><span class="refentrytitle">glIsEnabled</span></span></a> with argument <code class="constant">GL_BLEND</code>
1078 </p><p>
1079 </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="seealso"></a><h2>See Also</h2><p>
1080 <a class="citerefentry" href="glAlphaFunc.xml"><span class="citerefentry"><span class="refentrytitle">glAlphaFunc</span></span></a>,
1081 <a class="citerefentry" href="glBlendColor.xml"><span class="citerefentry"><span class="refentrytitle">glBlendColor</span></span></a>,
1082 <a class="citerefentry" href="glBlendEquation.xml"><span class="citerefentry"><span class="refentrytitle">glBlendEquation</span></span></a>,
1083 <a class="citerefentry" href="glBlendFuncSeparate.xml"><span class="citerefentry"><span class="refentrytitle">glBlendFuncSeparate</span></span></a>,
1084 <a class="citerefentry" href="glClear.xml"><span class="citerefentry"><span class="refentrytitle">glClear</span></span></a>,
1085 <a class="citerefentry" href="glDrawBuffer.xml"><span class="citerefentry"><span class="refentrytitle">glDrawBuffer</span></span></a>,
1086 <a class="citerefentry" href="glEnable.xml"><span class="citerefentry"><span class="refentrytitle">glEnable</span></span></a>,
1087 <a class="citerefentry" href="glLogicOp.xml"><span class="citerefentry"><span class="refentrytitle">glLogicOp</span></span></a>,
1088 <a class="citerefentry" href="glStencilFunc.xml"><span class="citerefentry"><span class="refentrytitle">glStencilFunc</span></span></a>
1089
1090 </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="Copyright"></a><h2>Copyright</h2><p>
1091 Copyright <span class="trademark"></span>© 1991-2006
1092 Silicon Graphics, Inc. This document is licensed under the SGI
1093 Free Software B License. For details, see
1094 <a class="ulink" href="http://oss.sgi.com/projects/FreeB/" target="_top">http://oss.sgi.com/projects/FreeB/</a>.
1095 </p></div></div></body></html>