include more low-level bindings
[clinton/guile-figl.git] / upstream-man-pages / man4 / xhtml / glBlendFunc.xml
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.
37 </p><p>
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">
71
72 <mml:mfenced open="(" close=")">
73 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
74 <mml:mi mathvariant="italic">s0</mml:mi>
75 </mml:msub>
76 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
77 <mml:mi mathvariant="italic">s0</mml:mi>
78 </mml:msub>
79 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
80 <mml:mi mathvariant="italic">s0</mml:mi>
81 </mml:msub>
82 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
83 <mml:mi mathvariant="italic">s0</mml:mi>
84 </mml:msub>
85 </mml:mfenced>
86 </mml:math>,
87 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
88
89 <mml:mfenced open="(" close=")">
90 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
91 <mml:mi mathvariant="italic">s1</mml:mi>
92 </mml:msub>
93 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
94 <mml:mi mathvariant="italic">s1</mml:mi>
95 </mml:msub>
96 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
97 <mml:mi mathvariant="italic">s1</mml:mi>
98 </mml:msub>
99 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
100 <mml:mi mathvariant="italic">s1</mml:mi>
101 </mml:msub>
102 </mml:mfenced>
103 </mml:math>
104 and
105 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
106
107 <mml:mfenced open="(" close=")">
108 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
109 <mml:mi mathvariant="italic">d</mml:mi>
110 </mml:msub>
111 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
112 <mml:mi mathvariant="italic">d</mml:mi>
113 </mml:msub>
114 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
115 <mml:mi mathvariant="italic">d</mml:mi>
116 </mml:msub>
117 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
118 <mml:mi mathvariant="italic">d</mml:mi>
119 </mml:msub>
120 </mml:mfenced>
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">
124
125 <mml:mfenced open="(" close=")">
126 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
127 <mml:mi mathvariant="italic">c</mml:mi>
128 </mml:msub>
129 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
130 <mml:mi mathvariant="italic">c</mml:mi>
131 </mml:msub>
132 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
133 <mml:mi mathvariant="italic">c</mml:mi>
134 </mml:msub>
135 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
136 <mml:mi mathvariant="italic">c</mml:mi>
137 </mml:msub>
138 </mml:mfenced>
139 </mml:math>.
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">
142
143 <mml:mfenced open="(" close=")">
144 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
145 <mml:mi mathvariant="italic">R</mml:mi>
146 </mml:msub>
147 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
148 <mml:mi mathvariant="italic">G</mml:mi>
149 </mml:msub>
150 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
151 <mml:mi mathvariant="italic">B</mml:mi>
152 </mml:msub>
153 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
154 <mml:mi mathvariant="italic">A</mml:mi>
155 </mml:msub>
156 </mml:mfenced>
157 </mml:math>,
158 where
159 </p><p>
160 </p><p>
161 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
162
163 <mml:mrow>
164 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
165 <mml:mi mathvariant="italic">c</mml:mi>
166 </mml:msub>
167 <mml:mo>=</mml:mo>
168 <mml:mrow>
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>
173 </mml:msub>
174 </mml:mfenced>
175 </mml:msup>
176 <mml:mo>-</mml:mo>
177 <mml:mn>1</mml:mn>
178 </mml:mrow>
179 </mml:mrow>
180 </mml:math>
181 </p><p>
182 </p><p>
183 and
184 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
185
186 <mml:mfenced open="(" close=")">
187 <mml:msub><mml:mi mathvariant="italic">m</mml:mi>
188 <mml:mi mathvariant="italic">R</mml:mi>
189 </mml:msub>
190 <mml:msub><mml:mi mathvariant="italic">m</mml:mi>
191 <mml:mi mathvariant="italic">G</mml:mi>
192 </mml:msub>
193 <mml:msub><mml:mi mathvariant="italic">m</mml:mi>
194 <mml:mi mathvariant="italic">B</mml:mi>
195 </mml:msub>
196 <mml:msub><mml:mi mathvariant="italic">m</mml:mi>
197 <mml:mi mathvariant="italic">A</mml:mi>
198 </mml:msub>
199 </mml:mfenced>
200 </mml:math>
201 is the number of red,
202 green,
203 blue,
204 and alpha bitplanes.
205 </p><p>
206 Source and destination scale factors are referred to as
207 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
208
209 <mml:mfenced open="(" close=")">
210 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
211 <mml:mi mathvariant="italic">R</mml:mi>
212 </mml:msub>
213 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
214 <mml:mi mathvariant="italic">G</mml:mi>
215 </mml:msub>
216 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
217 <mml:mi mathvariant="italic">B</mml:mi>
218 </mml:msub>
219 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
220 <mml:mi mathvariant="italic">A</mml:mi>
221 </mml:msub>
222 </mml:mfenced>
223 </mml:math>
224 and
225 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
226
227 <mml:mfenced open="(" close=")">
228 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
229 <mml:mi mathvariant="italic">R</mml:mi>
230 </mml:msub>
231 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
232 <mml:mi mathvariant="italic">G</mml:mi>
233 </mml:msub>
234 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
235 <mml:mi mathvariant="italic">B</mml:mi>
236 </mml:msub>
237 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
238 <mml:mi mathvariant="italic">A</mml:mi>
239 </mml:msub>
240 </mml:mfenced>
241 </mml:math>.
242 The scale factors described in the table,
243 denoted
244 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
245
246 <mml:mfenced open="(" close=")">
247 <mml:msub><mml:mi mathvariant="italic">f</mml:mi>
248 <mml:mi mathvariant="italic">R</mml:mi>
249 </mml:msub>
250 <mml:msub><mml:mi mathvariant="italic">f</mml:mi>
251 <mml:mi mathvariant="italic">G</mml:mi>
252 </mml:msub>
253 <mml:msub><mml:mi mathvariant="italic">f</mml:mi>
254 <mml:mi mathvariant="italic">B</mml:mi>
255 </mml:msub>
256 <mml:msub><mml:mi mathvariant="italic">f</mml:mi>
257 <mml:mi mathvariant="italic">A</mml:mi>
258 </mml:msub>
259 </mml:mfenced>
260 </mml:math>,
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">
264
265 <mml:mfenced open="[" close="]">
266 <mml:mn>0</mml:mn>
267 <mml:mn>1</mml:mn>
268 </mml:mfenced>
269 </mml:math>.
270 </p><p>
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>
272 Parameter
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">
275
276 <mml:mfenced open="(" close=")">
277 <mml:msub><mml:mi mathvariant="italic">f</mml:mi>
278 <mml:mi mathvariant="italic">R</mml:mi>
279 </mml:msub>
280 <mml:msub><mml:mi mathvariant="italic">f</mml:mi>
281 <mml:mi mathvariant="italic">G</mml:mi>
282 </mml:msub>
283 <mml:msub><mml:mi mathvariant="italic">f</mml:mi>
284 <mml:mi mathvariant="italic">B</mml:mi>
285 </mml:msub>
286 <mml:msub><mml:mi mathvariant="italic">f</mml:mi>
287 <mml:mi mathvariant="italic">A</mml:mi>
288 </mml:msub>
289 </mml:mfenced>
290 </mml:math>
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">
295
296 <mml:mfenced open="(" close=")">
297 <mml:mn>0</mml:mn>
298 <mml:mn>0</mml:mn>
299 <mml:mn>0</mml:mn>
300 <mml:mn>0</mml:mn>
301 </mml:mfenced>
302 </mml:math>
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">
307
308 <mml:mfenced open="(" close=")">
309 <mml:mn>1</mml:mn>
310 <mml:mn>1</mml:mn>
311 <mml:mn>1</mml:mn>
312 <mml:mn>1</mml:mn>
313 </mml:mfenced>
314 </mml:math>
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">
319
320 <mml:mfenced open="(" close=")">
321 <mml:mfrac>
322 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
323 <mml:mi mathvariant="italic">s0</mml:mi>
324 </mml:msub>
325 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
326 <mml:mi mathvariant="italic">R</mml:mi>
327 </mml:msub>
328 </mml:mfrac>
329 <mml:mfrac>
330 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
331 <mml:mi mathvariant="italic">s0</mml:mi>
332 </mml:msub>
333 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
334 <mml:mi mathvariant="italic">G</mml:mi>
335 </mml:msub>
336 </mml:mfrac>
337 <mml:mfrac>
338 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
339 <mml:mi mathvariant="italic">s0</mml:mi>
340 </mml:msub>
341 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
342 <mml:mi mathvariant="italic">B</mml:mi>
343 </mml:msub>
344 </mml:mfrac>
345 <mml:mfrac>
346 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
347 <mml:mi mathvariant="italic">s0</mml:mi>
348 </mml:msub>
349 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
350 <mml:mi mathvariant="italic">A</mml:mi>
351 </mml:msub>
352 </mml:mfrac>
353 </mml:mfenced>
354 </mml:math>
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">
359
360 <mml:mrow>
361 <mml:mfenced open="(" close=")">
362 <mml:mn>1</mml:mn>
363 <mml:mn>1</mml:mn>
364 <mml:mn>1</mml:mn>
365 <mml:mn>1</mml:mn>
366 </mml:mfenced>
367 <mml:mo>-</mml:mo>
368 <mml:mfenced open="(" close=")">
369 <mml:mfrac>
370 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
371 <mml:mi mathvariant="italic">s0</mml:mi>
372 </mml:msub>
373 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
374 <mml:mi mathvariant="italic">R</mml:mi>
375 </mml:msub>
376 </mml:mfrac>
377 <mml:mfrac>
378 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
379 <mml:mi mathvariant="italic">s0</mml:mi>
380 </mml:msub>
381 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
382 <mml:mi mathvariant="italic">G</mml:mi>
383 </mml:msub>
384 </mml:mfrac>
385 <mml:mfrac>
386 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
387 <mml:mi mathvariant="italic">s0</mml:mi>
388 </mml:msub>
389 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
390 <mml:mi mathvariant="italic">B</mml:mi>
391 </mml:msub>
392 </mml:mfrac>
393 <mml:mfrac>
394 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
395 <mml:mi mathvariant="italic">s0</mml:mi>
396 </mml:msub>
397 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
398 <mml:mi mathvariant="italic">A</mml:mi>
399 </mml:msub>
400 </mml:mfrac>
401 </mml:mfenced>
402 </mml:mrow>
403 </mml:math>
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">
408
409 <mml:mfenced open="(" close=")">
410 <mml:mfrac>
411 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
412 <mml:mi mathvariant="italic">d</mml:mi>
413 </mml:msub>
414 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
415 <mml:mi mathvariant="italic">R</mml:mi>
416 </mml:msub>
417 </mml:mfrac>
418 <mml:mfrac>
419 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
420 <mml:mi mathvariant="italic">d</mml:mi>
421 </mml:msub>
422 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
423 <mml:mi mathvariant="italic">G</mml:mi>
424 </mml:msub>
425 </mml:mfrac>
426 <mml:mfrac>
427 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
428 <mml:mi mathvariant="italic">d</mml:mi>
429 </mml:msub>
430 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
431 <mml:mi mathvariant="italic">B</mml:mi>
432 </mml:msub>
433 </mml:mfrac>
434 <mml:mfrac>
435 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
436 <mml:mi mathvariant="italic">d</mml:mi>
437 </mml:msub>
438 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
439 <mml:mi mathvariant="italic">A</mml:mi>
440 </mml:msub>
441 </mml:mfrac>
442 </mml:mfenced>
443 </mml:math>
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">
448
449 <mml:mrow>
450 <mml:mfenced open="(" close=")">
451 <mml:mn>1</mml:mn>
452 <mml:mn>1</mml:mn>
453 <mml:mn>1</mml:mn>
454 <mml:mn>1</mml:mn>
455 </mml:mfenced>
456 <mml:mo>-</mml:mo>
457 <mml:mfenced open="(" close=")">
458 <mml:mfrac>
459 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
460 <mml:mi mathvariant="italic">d</mml:mi>
461 </mml:msub>
462 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
463 <mml:mi mathvariant="italic">R</mml:mi>
464 </mml:msub>
465 </mml:mfrac>
466 <mml:mfrac>
467 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
468 <mml:mi mathvariant="italic">d</mml:mi>
469 </mml:msub>
470 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
471 <mml:mi mathvariant="italic">G</mml:mi>
472 </mml:msub>
473 </mml:mfrac>
474 <mml:mfrac>
475 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
476 <mml:mi mathvariant="italic">d</mml:mi>
477 </mml:msub>
478 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
479 <mml:mi mathvariant="italic">B</mml:mi>
480 </mml:msub>
481 </mml:mfrac>
482 <mml:mfrac>
483 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
484 <mml:mi mathvariant="italic">d</mml:mi>
485 </mml:msub>
486 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
487 <mml:mi mathvariant="italic">A</mml:mi>
488 </mml:msub>
489 </mml:mfrac>
490 </mml:mfenced>
491 </mml:mrow>
492 </mml:math>
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">
497
498 <mml:mfenced open="(" close=")">
499 <mml:mfrac>
500 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
501 <mml:mi mathvariant="italic">s0</mml:mi>
502 </mml:msub>
503 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
504 <mml:mi mathvariant="italic">A</mml:mi>
505 </mml:msub>
506 </mml:mfrac>
507 <mml:mfrac>
508 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
509 <mml:mi mathvariant="italic">s0</mml:mi>
510 </mml:msub>
511 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
512 <mml:mi mathvariant="italic">A</mml:mi>
513 </mml:msub>
514 </mml:mfrac>
515 <mml:mfrac>
516 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
517 <mml:mi mathvariant="italic">s0</mml:mi>
518 </mml:msub>
519 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
520 <mml:mi mathvariant="italic">A</mml:mi>
521 </mml:msub>
522 </mml:mfrac>
523 <mml:mfrac>
524 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
525 <mml:mi mathvariant="italic">s0</mml:mi>
526 </mml:msub>
527 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
528 <mml:mi mathvariant="italic">A</mml:mi>
529 </mml:msub>
530 </mml:mfrac>
531 </mml:mfenced>
532 </mml:math>
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">
537
538 <mml:mrow>
539 <mml:mfenced open="(" close=")">
540 <mml:mn>1</mml:mn>
541 <mml:mn>1</mml:mn>
542 <mml:mn>1</mml:mn>
543 <mml:mn>1</mml:mn>
544 </mml:mfenced>
545 <mml:mo>-</mml:mo>
546 <mml:mfenced open="(" close=")">
547 <mml:mfrac>
548 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
549 <mml:mi mathvariant="italic">s0</mml:mi>
550 </mml:msub>
551 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
552 <mml:mi mathvariant="italic">A</mml:mi>
553 </mml:msub>
554 </mml:mfrac>
555 <mml:mfrac>
556 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
557 <mml:mi mathvariant="italic">s0</mml:mi>
558 </mml:msub>
559 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
560 <mml:mi mathvariant="italic">A</mml:mi>
561 </mml:msub>
562 </mml:mfrac>
563 <mml:mfrac>
564 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
565 <mml:mi mathvariant="italic">s0</mml:mi>
566 </mml:msub>
567 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
568 <mml:mi mathvariant="italic">A</mml:mi>
569 </mml:msub>
570 </mml:mfrac>
571 <mml:mfrac>
572 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
573 <mml:mi mathvariant="italic">s0</mml:mi>
574 </mml:msub>
575 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
576 <mml:mi mathvariant="italic">A</mml:mi>
577 </mml:msub>
578 </mml:mfrac>
579 </mml:mfenced>
580 </mml:mrow>
581 </mml:math>
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">
586
587 <mml:mfenced open="(" close=")">
588 <mml:mfrac>
589 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
590 <mml:mi mathvariant="italic">d</mml:mi>
591 </mml:msub>
592 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
593 <mml:mi mathvariant="italic">A</mml:mi>
594 </mml:msub>
595 </mml:mfrac>
596 <mml:mfrac>
597 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
598 <mml:mi mathvariant="italic">d</mml:mi>
599 </mml:msub>
600 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
601 <mml:mi mathvariant="italic">A</mml:mi>
602 </mml:msub>
603 </mml:mfrac>
604 <mml:mfrac>
605 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
606 <mml:mi mathvariant="italic">d</mml:mi>
607 </mml:msub>
608 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
609 <mml:mi mathvariant="italic">A</mml:mi>
610 </mml:msub>
611 </mml:mfrac>
612 <mml:mfrac>
613 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
614 <mml:mi mathvariant="italic">d</mml:mi>
615 </mml:msub>
616 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
617 <mml:mi mathvariant="italic">A</mml:mi>
618 </mml:msub>
619 </mml:mfrac>
620 </mml:mfenced>
621 </mml:math>
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">
626
627 <mml:mrow>
628 <mml:mfenced open="(" close=")">
629 <mml:mn>1</mml:mn>
630 <mml:mn>1</mml:mn>
631 <mml:mn>1</mml:mn>
632 <mml:mn>1</mml:mn>
633 </mml:mfenced>
634 <mml:mo>-</mml:mo>
635 <mml:mfenced open="(" close=")">
636 <mml:mfrac>
637 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
638 <mml:mi mathvariant="italic">d</mml:mi>
639 </mml:msub>
640 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
641 <mml:mi mathvariant="italic">A</mml:mi>
642 </mml:msub>
643 </mml:mfrac>
644 <mml:mfrac>
645 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
646 <mml:mi mathvariant="italic">d</mml:mi>
647 </mml:msub>
648 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
649 <mml:mi mathvariant="italic">A</mml:mi>
650 </mml:msub>
651 </mml:mfrac>
652 <mml:mfrac>
653 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
654 <mml:mi mathvariant="italic">d</mml:mi>
655 </mml:msub>
656 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
657 <mml:mi mathvariant="italic">A</mml:mi>
658 </mml:msub>
659 </mml:mfrac>
660 <mml:mfrac>
661 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
662 <mml:mi mathvariant="italic">d</mml:mi>
663 </mml:msub>
664 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
665 <mml:mi mathvariant="italic">A</mml:mi>
666 </mml:msub>
667 </mml:mfrac>
668 </mml:mfenced>
669 </mml:mrow>
670 </mml:math>
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">
675
676 <mml:mfenced open="(" close=")">
677 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
678 <mml:mi mathvariant="italic">c</mml:mi>
679 </mml:msub>
680 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
681 <mml:mi mathvariant="italic">c</mml:mi>
682 </mml:msub>
683 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
684 <mml:mi mathvariant="italic">c</mml:mi>
685 </mml:msub>
686 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
687 <mml:mi mathvariant="italic">c</mml:mi>
688 </mml:msub>
689 </mml:mfenced>
690 </mml:math>
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">
695
696 <mml:mrow>
697 <mml:mfenced open="(" close=")">
698 <mml:mn>1</mml:mn>
699 <mml:mn>1</mml:mn>
700 <mml:mn>1</mml:mn>
701 <mml:mn>1</mml:mn>
702 </mml:mfenced>
703 <mml:mo>-</mml:mo>
704 <mml:mfenced open="(" close=")">
705 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
706 <mml:mi mathvariant="italic">c</mml:mi>
707 </mml:msub>
708 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
709 <mml:mi mathvariant="italic">c</mml:mi>
710 </mml:msub>
711 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
712 <mml:mi mathvariant="italic">c</mml:mi>
713 </mml:msub>
714 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
715 <mml:mi mathvariant="italic">c</mml:mi>
716 </mml:msub>
717 </mml:mfenced>
718 </mml:mrow>
719 </mml:math>
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">
724
725 <mml:mfenced open="(" close=")">
726 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
727 <mml:mi mathvariant="italic">c</mml:mi>
728 </mml:msub>
729 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
730 <mml:mi mathvariant="italic">c</mml:mi>
731 </mml:msub>
732 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
733 <mml:mi mathvariant="italic">c</mml:mi>
734 </mml:msub>
735 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
736 <mml:mi mathvariant="italic">c</mml:mi>
737 </mml:msub>
738 </mml:mfenced>
739 </mml:math>
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">
744
745 <mml:mrow>
746 <mml:mfenced open="(" close=")">
747 <mml:mn>1</mml:mn>
748 <mml:mn>1</mml:mn>
749 <mml:mn>1</mml:mn>
750 <mml:mn>1</mml:mn>
751 </mml:mfenced>
752 <mml:mo>-</mml:mo>
753 <mml:mfenced open="(" close=")">
754 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
755 <mml:mi mathvariant="italic">c</mml:mi>
756 </mml:msub>
757 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
758 <mml:mi mathvariant="italic">c</mml:mi>
759 </mml:msub>
760 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
761 <mml:mi mathvariant="italic">c</mml:mi>
762 </mml:msub>
763 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
764 <mml:mi mathvariant="italic">c</mml:mi>
765 </mml:msub>
766 </mml:mfenced>
767 </mml:mrow>
768 </mml:math>
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">
773
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>
778 <mml:mn>1</mml:mn>
779 </mml:mfenced>
780 </mml:math>
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">
785
786 <mml:mfenced open="(" close=")">
787 <mml:mfrac>
788 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
789 <mml:mi mathvariant="italic">s1</mml:mi>
790 </mml:msub>
791 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
792 <mml:mi mathvariant="italic">R</mml:mi>
793 </mml:msub>
794 </mml:mfrac>
795 <mml:mfrac>
796 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
797 <mml:mi mathvariant="italic">s1</mml:mi>
798 </mml:msub>
799 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
800 <mml:mi mathvariant="italic">G</mml:mi>
801 </mml:msub>
802 </mml:mfrac>
803 <mml:mfrac>
804 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
805 <mml:mi mathvariant="italic">s1</mml:mi>
806 </mml:msub>
807 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
808 <mml:mi mathvariant="italic">B</mml:mi>
809 </mml:msub>
810 </mml:mfrac>
811 <mml:mfrac>
812 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
813 <mml:mi mathvariant="italic">s1</mml:mi>
814 </mml:msub>
815 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
816 <mml:mi mathvariant="italic">A</mml:mi>
817 </mml:msub>
818 </mml:mfrac>
819 </mml:mfenced>
820 </mml:math>
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">
825
826 <mml:mrow>
827 <mml:mfenced open="(" close=")">
828 <mml:mn>1</mml:mn>
829 <mml:mn>1</mml:mn>
830 <mml:mn>1</mml:mn>
831 <mml:mn>1</mml:mn>
832 </mml:mfenced>
833 <mml:mo>-</mml:mo>
834 <mml:mfenced open="(" close=")">
835 <mml:mfrac>
836 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
837 <mml:mi mathvariant="italic">s1</mml:mi>
838 </mml:msub>
839 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
840 <mml:mi mathvariant="italic">R</mml:mi>
841 </mml:msub>
842 </mml:mfrac>
843 <mml:mfrac>
844 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
845 <mml:mi mathvariant="italic">s1</mml:mi>
846 </mml:msub>
847 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
848 <mml:mi mathvariant="italic">G</mml:mi>
849 </mml:msub>
850 </mml:mfrac>
851 <mml:mfrac>
852 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
853 <mml:mi mathvariant="italic">s1</mml:mi>
854 </mml:msub>
855 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
856 <mml:mi mathvariant="italic">B</mml:mi>
857 </mml:msub>
858 </mml:mfrac>
859 <mml:mfrac>
860 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
861 <mml:mi mathvariant="italic">s1</mml:mi>
862 </mml:msub>
863 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
864 <mml:mi mathvariant="italic">A</mml:mi>
865 </mml:msub>
866 </mml:mfrac>
867 </mml:mfenced>
868 </mml:mrow>
869 </mml:math>
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">
874
875 <mml:mfenced open="(" close=")">
876 <mml:mfrac>
877 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
878 <mml:mi mathvariant="italic">s1</mml:mi>
879 </mml:msub>
880 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
881 <mml:mi mathvariant="italic">A</mml:mi>
882 </mml:msub>
883 </mml:mfrac>
884 <mml:mfrac>
885 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
886 <mml:mi mathvariant="italic">s1</mml:mi>
887 </mml:msub>
888 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
889 <mml:mi mathvariant="italic">A</mml:mi>
890 </mml:msub>
891 </mml:mfrac>
892 <mml:mfrac>
893 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
894 <mml:mi mathvariant="italic">s1</mml:mi>
895 </mml:msub>
896 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
897 <mml:mi mathvariant="italic">A</mml:mi>
898 </mml:msub>
899 </mml:mfrac>
900 <mml:mfrac>
901 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
902 <mml:mi mathvariant="italic">s1</mml:mi>
903 </mml:msub>
904 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
905 <mml:mi mathvariant="italic">A</mml:mi>
906 </mml:msub>
907 </mml:mfrac>
908 </mml:mfenced>
909 </mml:math>
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">
914
915 <mml:mrow>
916 <mml:mfenced open="(" close=")">
917 <mml:mn>1</mml:mn>
918 <mml:mn>1</mml:mn>
919 <mml:mn>1</mml:mn>
920 <mml:mn>1</mml:mn>
921 </mml:mfenced>
922 <mml:mo>-</mml:mo>
923 <mml:mfenced open="(" close=")">
924 <mml:mfrac>
925 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
926 <mml:mi mathvariant="italic">s1</mml:mi>
927 </mml:msub>
928 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
929 <mml:mi mathvariant="italic">A</mml:mi>
930 </mml:msub>
931 </mml:mfrac>
932 <mml:mfrac>
933 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
934 <mml:mi mathvariant="italic">s1</mml:mi>
935 </mml:msub>
936 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
937 <mml:mi mathvariant="italic">A</mml:mi>
938 </mml:msub>
939 </mml:mfrac>
940 <mml:mfrac>
941 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
942 <mml:mi mathvariant="italic">s1</mml:mi>
943 </mml:msub>
944 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
945 <mml:mi mathvariant="italic">A</mml:mi>
946 </mml:msub>
947 </mml:mfrac>
948 <mml:mfrac>
949 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
950 <mml:mi mathvariant="italic">s1</mml:mi>
951 </mml:msub>
952 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
953 <mml:mi mathvariant="italic">A</mml:mi>
954 </mml:msub>
955 </mml:mfrac>
956 </mml:mfenced>
957 </mml:mrow>
958 </mml:math>
959 </td></tr></tbody></table></div><p>
960 In the table,
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:mi mathvariant="italic">i</mml:mi>
967 <mml:mo>=</mml:mo>
968 <mml:mfrac>
969 <mml:mrow>
970 <mml:mi mathvariant="italic">min</mml:mi>
971 <mml:mo></mml:mo>
972 <mml:mfenced open="(" close=")">
973 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
974 <mml:mi mathvariant="italic">s</mml:mi>
975 </mml:msub>
976 <mml:mrow>
977 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
978 <mml:mi mathvariant="italic">A</mml:mi>
979 </mml:msub>
980 <mml:mo>-</mml:mo>
981 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
982 <mml:mi mathvariant="italic">d</mml:mi>
983 </mml:msub>
984 </mml:mrow>
985 </mml:mfenced>
986 </mml:mrow>
987 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
988 <mml:mi mathvariant="italic">A</mml:mi>
989 </mml:msub>
990 </mml:mfrac>
991 </mml:mrow>
992 </mml:math>
993 </p><p>
994 </p><p>
995 To determine the blended RGBA values of a pixel,
996 the system uses the following equations:
997 </p><p>
998 </p><p>
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">R</mml:mi>
1003 <mml:mi mathvariant="italic">d</mml:mi>
1004 </mml:msub>
1005 <mml:mo>=</mml:mo>
1006 <mml:mrow>
1007 <mml:mi mathvariant="italic">min</mml:mi>
1008 <mml:mo></mml:mo>
1009 <mml:mfenced open="(" close=")">
1010 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
1011 <mml:mi mathvariant="italic">R</mml:mi>
1012 </mml:msub>
1013 <mml:mrow>
1014 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
1015 <mml:mi mathvariant="italic">s</mml:mi>
1016 </mml:msub>
1017 <mml:mo></mml:mo>
1018 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
1019 <mml:mi mathvariant="italic">R</mml:mi>
1020 </mml:msub>
1021 <mml:mo>+</mml:mo>
1022 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
1023 <mml:mi mathvariant="italic">d</mml:mi>
1024 </mml:msub>
1025 <mml:mo></mml:mo>
1026 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
1027 <mml:mi mathvariant="italic">R</mml:mi>
1028 </mml:msub>
1029 </mml:mrow>
1030 </mml:mfenced>
1031 </mml:mrow>
1032 </mml:mrow>
1033 </mml:math>
1034 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
1035
1036 <mml:mrow>
1037 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
1038 <mml:mi mathvariant="italic">d</mml:mi>
1039 </mml:msub>
1040 <mml:mo>=</mml:mo>
1041 <mml:mrow>
1042 <mml:mi mathvariant="italic">min</mml:mi>
1043 <mml:mo></mml:mo>
1044 <mml:mfenced open="(" close=")">
1045 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
1046 <mml:mi mathvariant="italic">G</mml:mi>
1047 </mml:msub>
1048 <mml:mrow>
1049 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
1050 <mml:mi mathvariant="italic">s</mml:mi>
1051 </mml:msub>
1052 <mml:mo></mml:mo>
1053 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
1054 <mml:mi mathvariant="italic">G</mml:mi>
1055 </mml:msub>
1056 <mml:mo>+</mml:mo>
1057 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
1058 <mml:mi mathvariant="italic">d</mml:mi>
1059 </mml:msub>
1060 <mml:mo></mml:mo>
1061 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
1062 <mml:mi mathvariant="italic">G</mml:mi>
1063 </mml:msub>
1064 </mml:mrow>
1065 </mml:mfenced>
1066 </mml:mrow>
1067 </mml:mrow>
1068 </mml:math>
1069 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
1070
1071 <mml:mrow>
1072 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
1073 <mml:mi mathvariant="italic">d</mml:mi>
1074 </mml:msub>
1075 <mml:mo>=</mml:mo>
1076 <mml:mrow>
1077 <mml:mi mathvariant="italic">min</mml:mi>
1078 <mml:mo></mml:mo>
1079 <mml:mfenced open="(" close=")">
1080 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
1081 <mml:mi mathvariant="italic">B</mml:mi>
1082 </mml:msub>
1083 <mml:mrow>
1084 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
1085 <mml:mi mathvariant="italic">s</mml:mi>
1086 </mml:msub>
1087 <mml:mo></mml:mo>
1088 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
1089 <mml:mi mathvariant="italic">B</mml:mi>
1090 </mml:msub>
1091 <mml:mo>+</mml:mo>
1092 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
1093 <mml:mi mathvariant="italic">d</mml:mi>
1094 </mml:msub>
1095 <mml:mo></mml:mo>
1096 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
1097 <mml:mi mathvariant="italic">B</mml:mi>
1098 </mml:msub>
1099 </mml:mrow>
1100 </mml:mfenced>
1101 </mml:mrow>
1102 </mml:mrow>
1103 </mml:math>
1104 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
1105
1106 <mml:mrow>
1107 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1108 <mml:mi mathvariant="italic">d</mml:mi>
1109 </mml:msub>
1110 <mml:mo>=</mml:mo>
1111 <mml:mrow>
1112 <mml:mi mathvariant="italic">min</mml:mi>
1113 <mml:mo></mml:mo>
1114 <mml:mfenced open="(" close=")">
1115 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
1116 <mml:mi mathvariant="italic">A</mml:mi>
1117 </mml:msub>
1118 <mml:mrow>
1119 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1120 <mml:mi mathvariant="italic">s</mml:mi>
1121 </mml:msub>
1122 <mml:mo></mml:mo>
1123 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
1124 <mml:mi mathvariant="italic">A</mml:mi>
1125 </mml:msub>
1126 <mml:mo>+</mml:mo>
1127 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1128 <mml:mi mathvariant="italic">d</mml:mi>
1129 </mml:msub>
1130 <mml:mo></mml:mo>
1131 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
1132 <mml:mi mathvariant="italic">A</mml:mi>
1133 </mml:msub>
1134 </mml:mrow>
1135 </mml:mfenced>
1136 </mml:mrow>
1137 </mml:mrow>
1138 </mml:math>
1139 </p><p>
1140 </p><p>
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.
1144 However,
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.
1148 For example,
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>,
1151 and
1152 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
1153
1154 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1155 <mml:mi mathvariant="italic">s</mml:mi>
1156 </mml:msub>
1157 </mml:math>
1158 is equal to
1159 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
1160
1161 <mml:msub><mml:mi mathvariant="italic">k</mml:mi>
1162 <mml:mi mathvariant="italic">A</mml:mi>
1163 </mml:msub>
1164 </mml:math>,
1165 the equations reduce to simple replacement:
1166 </p><p>
1167 </p><p>
1168 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
1169
1170 <mml:mrow>
1171 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
1172 <mml:mi mathvariant="italic">d</mml:mi>
1173 </mml:msub>
1174 <mml:mo>=</mml:mo>
1175 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
1176 <mml:mi mathvariant="italic">s</mml:mi>
1177 </mml:msub>
1178 </mml:mrow>
1179 </mml:math>
1180 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
1181
1182 <mml:mrow>
1183 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
1184 <mml:mi mathvariant="italic">d</mml:mi>
1185 </mml:msub>
1186 <mml:mo>=</mml:mo>
1187 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
1188 <mml:mi mathvariant="italic">s</mml:mi>
1189 </mml:msub>
1190 </mml:mrow>
1191 </mml:math>
1192 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
1193
1194 <mml:mrow>
1195 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
1196 <mml:mi mathvariant="italic">d</mml:mi>
1197 </mml:msub>
1198 <mml:mo>=</mml:mo>
1199 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
1200 <mml:mi mathvariant="italic">s</mml:mi>
1201 </mml:msub>
1202 </mml:mrow>
1203 </mml:math>
1204 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
1205
1206 <mml:mrow>
1207 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1208 <mml:mi mathvariant="italic">d</mml:mi>
1209 </mml:msub>
1210 <mml:mo>=</mml:mo>
1211 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
1212 <mml:mi mathvariant="italic">s</mml:mi>
1213 </mml:msub>
1214 </mml:mrow>
1215 </mml:math>
1216 </p><p>
1217 </p><p>
1218 </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="examples"></a><h2>Examples</h2><p>
1219 </p><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.
1225 </p><p>
1226 Blend function
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
1229 in arbitrary order.
1230 </p><p>
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,
1241 ranging from 1.0
1242 (<mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
1243
1244 <mml:msub><mml:mi mathvariant="italic">K</mml:mi>
1245 <mml:mi mathvariant="italic">A</mml:mi>
1246 </mml:msub>
1247 </mml:math>),
1248 representing complete opacity,
1249 to 0.0 (0), representing complete
1250 transparency.
1251 </p><p>
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>.)
1256 </p><p>
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.
1264 </p><p>
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>
1269 </p><p>
1270 <a href="glGet.xml"><span class="citerefentry"><span class="refentrytitle">glGet</span></span></a> with argument <code class="constant">GL_BLEND_DST</code>
1271 </p><p>
1272 <a href="glIsEnabled.xml"><span class="citerefentry"><span class="refentrytitle">glIsEnabled</span></span></a> with argument <code class="constant">GL_BLEND</code>
1273 </p><p>
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>