rename upstream-man-pages to upstream-doc
[clinton/guile-figl.git] / upstream-doc / man4 / glBlendEquation.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
3 "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
4 <refentry id="glBlendEquation">
5 <refmeta>
6 <refmetainfo>
7 <copyright>
8 <year>1991-2006</year>
9 <holder>Silicon Graphics, Inc.</holder>
10 </copyright>
11 </refmetainfo>
12 <refentrytitle>glBlendEquation</refentrytitle>
13 <manvolnum>3G</manvolnum>
14 </refmeta>
15 <refnamediv>
16 <refname>glBlendEquation</refname>
17 <refpurpose>specify the equation used for both the RGB blend equation and the Alpha blend equation</refpurpose>
18 </refnamediv>
19 <refsynopsisdiv><title>C Specification</title>
20 <funcsynopsis>
21 <funcprototype>
22 <funcdef>void <function>glBlendEquation</function></funcdef>
23 <paramdef>GLenum <parameter>mode</parameter></paramdef>
24 </funcprototype>
25 <funcprototype>
26 <funcdef>void <function>glBlendEquationi</function></funcdef>
27 <paramdef>GLuint <parameter>buf</parameter></paramdef>
28 <paramdef>GLenum <parameter>mode</parameter></paramdef>
29 </funcprototype>
30 </funcsynopsis>
31 </refsynopsisdiv>
32 <!-- eqn: ignoring delim $$ -->
33 <refsect1 id="parameters"><title>Parameters</title>
34 <variablelist>
35 <varlistentry>
36 <term><parameter>buf</parameter></term>
37 <listitem>
38 <para>
39 for <function>glBlendEquationi</function>, specifies the index of the draw buffer
40 for which to set the blend equation.
41 </para>
42 </listitem>
43 </varlistentry>
44 <varlistentry>
45 <term><parameter>mode</parameter></term>
46 <listitem>
47 <para>
48 specifies how source and destination colors are combined.
49 It must be <constant>GL_FUNC_ADD</constant>, <constant>GL_FUNC_SUBTRACT</constant>,
50 <constant>GL_FUNC_REVERSE_SUBTRACT</constant>, <constant>GL_MIN</constant>, <constant>GL_MAX</constant>.
51 </para>
52 </listitem>
53 </varlistentry>
54 </variablelist>
55 </refsect1>
56 <refsect1 id="description"><title>Description</title>
57 <para>
58 The blend equations determine how a new pixel (the ''source'' color)
59 is combined with a pixel already in the framebuffer (the ''destination''
60 color). This function sets both the RGB blend equation and the alpha
61 blend equation to a single equation. <function>glBlendEquationi</function>
62 specifies the blend equation for a single draw buffer whereas <function>glBlendEquation</function>
63 sets the blend equation for all draw buffers.
64 </para>
65 <para>
66 These equations use the source and destination blend factors
67 specified by either <citerefentry><refentrytitle>glBlendFunc</refentrytitle></citerefentry> or
68 <citerefentry><refentrytitle>glBlendFuncSeparate</refentrytitle></citerefentry>.
69 See <citerefentry><refentrytitle>glBlendFunc</refentrytitle></citerefentry> or <citerefentry><refentrytitle>glBlendFuncSeparate</refentrytitle></citerefentry>
70 for a description of the various blend factors.
71 </para>
72 <para>
73 In the equations that follow, source and destination
74 color components are referred to as
75 <inlineequation><mml:math>
76 <!-- eqn: ( R sub s, G sub s, B sub s, A sub s ): -->
77 <mml:mfenced open="(" close=")">
78 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
79 <mml:mi mathvariant="italic">s</mml:mi>
80 </mml:msub>
81 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
82 <mml:mi mathvariant="italic">s</mml:mi>
83 </mml:msub>
84 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
85 <mml:mi mathvariant="italic">s</mml:mi>
86 </mml:msub>
87 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
88 <mml:mi mathvariant="italic">s</mml:mi>
89 </mml:msub>
90 </mml:mfenced>
91 </mml:math></inlineequation>
92 and
93 <inlineequation><mml:math>
94 <!-- eqn: ( R sub d, G sub d, B sub d, A sub d ): -->
95 <mml:mfenced open="(" close=")">
96 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
97 <mml:mi mathvariant="italic">d</mml:mi>
98 </mml:msub>
99 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
100 <mml:mi mathvariant="italic">d</mml:mi>
101 </mml:msub>
102 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
103 <mml:mi mathvariant="italic">d</mml:mi>
104 </mml:msub>
105 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
106 <mml:mi mathvariant="italic">d</mml:mi>
107 </mml:msub>
108 </mml:mfenced>
109 </mml:math></inlineequation>,
110 respectively.
111 The result color is referred to as
112 <inlineequation><mml:math>
113 <!-- eqn: ( R sub r, G sub r, B sub r, A sub r ): -->
114 <mml:mfenced open="(" close=")">
115 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
116 <mml:mi mathvariant="italic">r</mml:mi>
117 </mml:msub>
118 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
119 <mml:mi mathvariant="italic">r</mml:mi>
120 </mml:msub>
121 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
122 <mml:mi mathvariant="italic">r</mml:mi>
123 </mml:msub>
124 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
125 <mml:mi mathvariant="italic">r</mml:mi>
126 </mml:msub>
127 </mml:mfenced>
128 </mml:math></inlineequation>.
129 The source and destination blend factors are denoted
130 <inlineequation><mml:math>
131 <!-- eqn: ( s sub R, s sub G, s sub B, s sub A ): -->
132 <mml:mfenced open="(" close=")">
133 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
134 <mml:mi mathvariant="italic">R</mml:mi>
135 </mml:msub>
136 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
137 <mml:mi mathvariant="italic">G</mml:mi>
138 </mml:msub>
139 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
140 <mml:mi mathvariant="italic">B</mml:mi>
141 </mml:msub>
142 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
143 <mml:mi mathvariant="italic">A</mml:mi>
144 </mml:msub>
145 </mml:mfenced>
146 </mml:math></inlineequation>
147 and
148 <inlineequation><mml:math>
149 <!-- eqn: ( d sub R, d sub G, d sub B, d sub A ): -->
150 <mml:mfenced open="(" close=")">
151 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
152 <mml:mi mathvariant="italic">R</mml:mi>
153 </mml:msub>
154 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
155 <mml:mi mathvariant="italic">G</mml:mi>
156 </mml:msub>
157 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
158 <mml:mi mathvariant="italic">B</mml:mi>
159 </mml:msub>
160 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
161 <mml:mi mathvariant="italic">A</mml:mi>
162 </mml:msub>
163 </mml:mfenced>
164 </mml:math></inlineequation>,
165 respectively.
166 For these equations all color components are understood to have values
167 in the range
168 <inlineequation><mml:math>
169 <!-- eqn: [0,1]: -->
170 <mml:mfenced open="[" close="]">
171 <mml:mn>0</mml:mn>
172 <mml:mn>1</mml:mn>
173 </mml:mfenced>
174 </mml:math></inlineequation>.
175
176 <informaltable frame="topbot">
177 <tgroup cols="3" align="left">
178 <colspec colwidth="1.1*" />
179 <colspec colwidth="1*" />
180 <colspec colwidth="1*" />
181 <thead>
182 <row>
183 <entry rowsep="1" align="left"><emphasis role="bold">
184 Mode
185 </emphasis></entry>
186 <entry rowsep="1" align="left"><emphasis role="bold">
187 RGB Components
188 </emphasis></entry>
189 <entry rowsep="1" align="left"><emphasis role="bold">
190 Alpha Component
191 </emphasis></entry>
192 </row>
193 </thead>
194 <tbody>
195 <row>
196 <entry align="left">
197 <constant>GL_FUNC_ADD</constant>
198 </entry>
199 <entry align="left">
200 <informalequation><mml:math>
201 <!-- eqn: Rr = R sub s s sub R + R sub d d sub R : -->
202 <mml:mrow>
203 <mml:mi mathvariant="italic">Rr</mml:mi>
204 <mml:mo>=</mml:mo>
205 <mml:mrow>
206 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
207 <mml:mi mathvariant="italic">s</mml:mi>
208 </mml:msub>
209 <mml:mo>&it;</mml:mo>
210 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
211 <mml:mi mathvariant="italic">R</mml:mi>
212 </mml:msub>
213 <mml:mo>+</mml:mo>
214 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
215 <mml:mi mathvariant="italic">d</mml:mi>
216 </mml:msub>
217 <mml:mo>&it;</mml:mo>
218 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
219 <mml:mi mathvariant="italic">R</mml:mi>
220 </mml:msub>
221 </mml:mrow>
222 </mml:mrow>
223 </mml:math></informalequation>
224 <informalequation><mml:math>
225 <!-- eqn: Gr = G sub s s sub G + G sub d d sub G : -->
226 <mml:mrow>
227 <mml:mi mathvariant="italic">Gr</mml:mi>
228 <mml:mo>=</mml:mo>
229 <mml:mrow>
230 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
231 <mml:mi mathvariant="italic">s</mml:mi>
232 </mml:msub>
233 <mml:mo>&it;</mml:mo>
234 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
235 <mml:mi mathvariant="italic">G</mml:mi>
236 </mml:msub>
237 <mml:mo>+</mml:mo>
238 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
239 <mml:mi mathvariant="italic">d</mml:mi>
240 </mml:msub>
241 <mml:mo>&it;</mml:mo>
242 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
243 <mml:mi mathvariant="italic">G</mml:mi>
244 </mml:msub>
245 </mml:mrow>
246 </mml:mrow>
247 </mml:math></informalequation>
248 <informalequation><mml:math>
249 <!-- eqn: Br = B sub s s sub B + B sub d d sub B : -->
250 <mml:mrow>
251 <mml:mi mathvariant="italic">Br</mml:mi>
252 <mml:mo>=</mml:mo>
253 <mml:mrow>
254 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
255 <mml:mi mathvariant="italic">s</mml:mi>
256 </mml:msub>
257 <mml:mo>&it;</mml:mo>
258 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
259 <mml:mi mathvariant="italic">B</mml:mi>
260 </mml:msub>
261 <mml:mo>+</mml:mo>
262 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
263 <mml:mi mathvariant="italic">d</mml:mi>
264 </mml:msub>
265 <mml:mo>&it;</mml:mo>
266 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
267 <mml:mi mathvariant="italic">B</mml:mi>
268 </mml:msub>
269 </mml:mrow>
270 </mml:mrow>
271 </mml:math></informalequation>
272 </entry>
273 <entry align="left">
274 <informalequation><mml:math>
275 <!-- eqn: Ar = A sub s s sub A + A sub d d sub A : -->
276 <mml:mrow>
277 <mml:mi mathvariant="italic">Ar</mml:mi>
278 <mml:mo>=</mml:mo>
279 <mml:mrow>
280 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
281 <mml:mi mathvariant="italic">s</mml:mi>
282 </mml:msub>
283 <mml:mo>&it;</mml:mo>
284 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
285 <mml:mi mathvariant="italic">A</mml:mi>
286 </mml:msub>
287 <mml:mo>+</mml:mo>
288 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
289 <mml:mi mathvariant="italic">d</mml:mi>
290 </mml:msub>
291 <mml:mo>&it;</mml:mo>
292 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
293 <mml:mi mathvariant="italic">A</mml:mi>
294 </mml:msub>
295 </mml:mrow>
296 </mml:mrow>
297 </mml:math></informalequation>
298 </entry>
299 </row>
300 <row>
301 <entry align="left">
302 <constant>GL_FUNC_SUBTRACT</constant>
303 </entry>
304 <entry align="left">
305 <informalequation><mml:math>
306 <!-- eqn: Rr = R sub s s sub R - R sub d d sub R : -->
307 <mml:mrow>
308 <mml:mi mathvariant="italic">Rr</mml:mi>
309 <mml:mo>=</mml:mo>
310 <mml:mrow>
311 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
312 <mml:mi mathvariant="italic">s</mml:mi>
313 </mml:msub>
314 <mml:mo>&it;</mml:mo>
315 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
316 <mml:mi mathvariant="italic">R</mml:mi>
317 </mml:msub>
318 <mml:mo>-</mml:mo>
319 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
320 <mml:mi mathvariant="italic">d</mml:mi>
321 </mml:msub>
322 <mml:mo>&it;</mml:mo>
323 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
324 <mml:mi mathvariant="italic">R</mml:mi>
325 </mml:msub>
326 </mml:mrow>
327 </mml:mrow>
328 </mml:math></informalequation>
329 <informalequation><mml:math>
330 <!-- eqn: Gr = G sub s s sub G - G sub d d sub G : -->
331 <mml:mrow>
332 <mml:mi mathvariant="italic">Gr</mml:mi>
333 <mml:mo>=</mml:mo>
334 <mml:mrow>
335 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
336 <mml:mi mathvariant="italic">s</mml:mi>
337 </mml:msub>
338 <mml:mo>&it;</mml:mo>
339 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
340 <mml:mi mathvariant="italic">G</mml:mi>
341 </mml:msub>
342 <mml:mo>-</mml:mo>
343 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
344 <mml:mi mathvariant="italic">d</mml:mi>
345 </mml:msub>
346 <mml:mo>&it;</mml:mo>
347 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
348 <mml:mi mathvariant="italic">G</mml:mi>
349 </mml:msub>
350 </mml:mrow>
351 </mml:mrow>
352 </mml:math></informalequation>
353 <informalequation><mml:math>
354 <!-- eqn: Br = B sub s s sub B - B sub d d sub B : -->
355 <mml:mrow>
356 <mml:mi mathvariant="italic">Br</mml:mi>
357 <mml:mo>=</mml:mo>
358 <mml:mrow>
359 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
360 <mml:mi mathvariant="italic">s</mml:mi>
361 </mml:msub>
362 <mml:mo>&it;</mml:mo>
363 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
364 <mml:mi mathvariant="italic">B</mml:mi>
365 </mml:msub>
366 <mml:mo>-</mml:mo>
367 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
368 <mml:mi mathvariant="italic">d</mml:mi>
369 </mml:msub>
370 <mml:mo>&it;</mml:mo>
371 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
372 <mml:mi mathvariant="italic">B</mml:mi>
373 </mml:msub>
374 </mml:mrow>
375 </mml:mrow>
376 </mml:math></informalequation>
377 </entry>
378 <entry align="left">
379 <informalequation><mml:math>
380 <!-- eqn: Ar = A sub s s sub A - A sub d d sub A : -->
381 <mml:mrow>
382 <mml:mi mathvariant="italic">Ar</mml:mi>
383 <mml:mo>=</mml:mo>
384 <mml:mrow>
385 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
386 <mml:mi mathvariant="italic">s</mml:mi>
387 </mml:msub>
388 <mml:mo>&it;</mml:mo>
389 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
390 <mml:mi mathvariant="italic">A</mml:mi>
391 </mml:msub>
392 <mml:mo>-</mml:mo>
393 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
394 <mml:mi mathvariant="italic">d</mml:mi>
395 </mml:msub>
396 <mml:mo>&it;</mml:mo>
397 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
398 <mml:mi mathvariant="italic">A</mml:mi>
399 </mml:msub>
400 </mml:mrow>
401 </mml:mrow>
402 </mml:math></informalequation>
403 </entry>
404 </row>
405 <row>
406 <entry align="left">
407 <constant>GL_FUNC_REVERSE_SUBTRACT</constant>
408 </entry>
409 <entry align="left">
410 <informalequation><mml:math>
411 <!-- eqn: Rr = R sub d d sub R - R sub s s sub R : -->
412 <mml:mrow>
413 <mml:mi mathvariant="italic">Rr</mml:mi>
414 <mml:mo>=</mml:mo>
415 <mml:mrow>
416 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
417 <mml:mi mathvariant="italic">d</mml:mi>
418 </mml:msub>
419 <mml:mo>&it;</mml:mo>
420 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
421 <mml:mi mathvariant="italic">R</mml:mi>
422 </mml:msub>
423 <mml:mo>-</mml:mo>
424 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
425 <mml:mi mathvariant="italic">s</mml:mi>
426 </mml:msub>
427 <mml:mo>&it;</mml:mo>
428 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
429 <mml:mi mathvariant="italic">R</mml:mi>
430 </mml:msub>
431 </mml:mrow>
432 </mml:mrow>
433 </mml:math></informalequation>
434 <informalequation><mml:math>
435 <!-- eqn: Gr = G sub d d sub G - G sub s s sub G : -->
436 <mml:mrow>
437 <mml:mi mathvariant="italic">Gr</mml:mi>
438 <mml:mo>=</mml:mo>
439 <mml:mrow>
440 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
441 <mml:mi mathvariant="italic">d</mml:mi>
442 </mml:msub>
443 <mml:mo>&it;</mml:mo>
444 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
445 <mml:mi mathvariant="italic">G</mml:mi>
446 </mml:msub>
447 <mml:mo>-</mml:mo>
448 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
449 <mml:mi mathvariant="italic">s</mml:mi>
450 </mml:msub>
451 <mml:mo>&it;</mml:mo>
452 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
453 <mml:mi mathvariant="italic">G</mml:mi>
454 </mml:msub>
455 </mml:mrow>
456 </mml:mrow>
457 </mml:math></informalequation>
458 <informalequation><mml:math>
459 <!-- eqn: Br = B sub d d sub B - B sub s s sub B : -->
460 <mml:mrow>
461 <mml:mi mathvariant="italic">Br</mml:mi>
462 <mml:mo>=</mml:mo>
463 <mml:mrow>
464 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
465 <mml:mi mathvariant="italic">d</mml:mi>
466 </mml:msub>
467 <mml:mo>&it;</mml:mo>
468 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
469 <mml:mi mathvariant="italic">B</mml:mi>
470 </mml:msub>
471 <mml:mo>-</mml:mo>
472 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
473 <mml:mi mathvariant="italic">s</mml:mi>
474 </mml:msub>
475 <mml:mo>&it;</mml:mo>
476 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
477 <mml:mi mathvariant="italic">B</mml:mi>
478 </mml:msub>
479 </mml:mrow>
480 </mml:mrow>
481 </mml:math></informalequation>
482 </entry>
483 <entry align="left">
484 <informalequation><mml:math>
485 <!-- eqn: Ar = A sub d d sub A - A sub s s sub A : -->
486 <mml:mrow>
487 <mml:mi mathvariant="italic">Ar</mml:mi>
488 <mml:mo>=</mml:mo>
489 <mml:mrow>
490 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
491 <mml:mi mathvariant="italic">d</mml:mi>
492 </mml:msub>
493 <mml:mo>&it;</mml:mo>
494 <mml:msub><mml:mi mathvariant="italic">d</mml:mi>
495 <mml:mi mathvariant="italic">A</mml:mi>
496 </mml:msub>
497 <mml:mo>-</mml:mo>
498 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
499 <mml:mi mathvariant="italic">s</mml:mi>
500 </mml:msub>
501 <mml:mo>&it;</mml:mo>
502 <mml:msub><mml:mi mathvariant="italic">s</mml:mi>
503 <mml:mi mathvariant="italic">A</mml:mi>
504 </mml:msub>
505 </mml:mrow>
506 </mml:mrow>
507 </mml:math></informalequation>
508 </entry>
509 </row>
510 <row>
511 <entry align="left">
512 <constant>GL_MIN</constant>
513 </entry>
514 <entry align="left">
515 <informalequation><mml:math>
516 <!-- eqn: Rr = min ( R sub s, R sub d): -->
517 <mml:mrow>
518 <mml:mi mathvariant="italic">Rr</mml:mi>
519 <mml:mo>=</mml:mo>
520 <mml:mrow>
521 <mml:mi mathvariant="italic">min</mml:mi>
522 <mml:mo>&af;</mml:mo>
523 <mml:mfenced open="(" close=")">
524 <mml:mrow>
525 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
526 <mml:mi mathvariant="italic">s</mml:mi>
527 </mml:msub>
528 </mml:mrow>
529 <mml:mrow>
530 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
531 <mml:mi mathvariant="italic">d</mml:mi>
532 </mml:msub>
533 </mml:mrow>
534 </mml:mfenced>
535 </mml:mrow>
536 </mml:mrow>
537 </mml:math></informalequation>
538 <informalequation><mml:math>
539 <!-- eqn: Gr = min ( G sub s, G sub d): -->
540 <mml:mrow>
541 <mml:mi mathvariant="italic">Gr</mml:mi>
542 <mml:mo>=</mml:mo>
543 <mml:mrow>
544 <mml:mi mathvariant="italic">min</mml:mi>
545 <mml:mo>&af;</mml:mo>
546 <mml:mfenced open="(" close=")">
547 <mml:mrow>
548 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
549 <mml:mi mathvariant="italic">s</mml:mi>
550 </mml:msub>
551 </mml:mrow>
552 <mml:mrow>
553 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
554 <mml:mi mathvariant="italic">d</mml:mi>
555 </mml:msub>
556 </mml:mrow>
557 </mml:mfenced>
558 </mml:mrow>
559 </mml:mrow>
560 </mml:math></informalequation>
561 <informalequation><mml:math>
562 <!-- eqn: Br = min ( B sub s, B sub d): -->
563 <mml:mrow>
564 <mml:mi mathvariant="italic">Br</mml:mi>
565 <mml:mo>=</mml:mo>
566 <mml:mrow>
567 <mml:mi mathvariant="italic">min</mml:mi>
568 <mml:mo>&af;</mml:mo>
569 <mml:mfenced open="(" close=")">
570 <mml:mrow>
571 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
572 <mml:mi mathvariant="italic">s</mml:mi>
573 </mml:msub>
574 </mml:mrow>
575 <mml:mrow>
576 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
577 <mml:mi mathvariant="italic">d</mml:mi>
578 </mml:msub>
579 </mml:mrow>
580 </mml:mfenced>
581 </mml:mrow>
582 </mml:mrow>
583 </mml:math></informalequation>
584 </entry>
585 <entry align="left">
586 <informalequation><mml:math>
587 <!-- eqn: Ar = min ( A sub s, A sub d): -->
588 <mml:mrow>
589 <mml:mi mathvariant="italic">Ar</mml:mi>
590 <mml:mo>=</mml:mo>
591 <mml:mrow>
592 <mml:mi mathvariant="italic">min</mml:mi>
593 <mml:mo>&af;</mml:mo>
594 <mml:mfenced open="(" close=")">
595 <mml:mrow>
596 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
597 <mml:mi mathvariant="italic">s</mml:mi>
598 </mml:msub>
599 </mml:mrow>
600 <mml:mrow>
601 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
602 <mml:mi mathvariant="italic">d</mml:mi>
603 </mml:msub>
604 </mml:mrow>
605 </mml:mfenced>
606 </mml:mrow>
607 </mml:mrow>
608 </mml:math></informalequation>
609 </entry>
610 </row>
611 <row>
612 <entry align="left">
613 <constant>GL_MAX</constant>
614 </entry>
615 <entry align="left">
616 <informalequation><mml:math>
617 <!-- eqn: Rr = max ( R sub s, R sub d): -->
618 <mml:mrow>
619 <mml:mi mathvariant="italic">Rr</mml:mi>
620 <mml:mo>=</mml:mo>
621 <mml:mrow>
622 <mml:mi mathvariant="italic">max</mml:mi>
623 <mml:mo>&af;</mml:mo>
624 <mml:mfenced open="(" close=")">
625 <mml:mrow>
626 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
627 <mml:mi mathvariant="italic">s</mml:mi>
628 </mml:msub>
629 </mml:mrow>
630 <mml:mrow>
631 <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
632 <mml:mi mathvariant="italic">d</mml:mi>
633 </mml:msub>
634 </mml:mrow>
635 </mml:mfenced>
636 </mml:mrow>
637 </mml:mrow>
638 </mml:math></informalequation>
639 <informalequation><mml:math>
640 <!-- eqn: Gr = max ( G sub s, G sub d): -->
641 <mml:mrow>
642 <mml:mi mathvariant="italic">Gr</mml:mi>
643 <mml:mo>=</mml:mo>
644 <mml:mrow>
645 <mml:mi mathvariant="italic">max</mml:mi>
646 <mml:mo>&af;</mml:mo>
647 <mml:mfenced open="(" close=")">
648 <mml:mrow>
649 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
650 <mml:mi mathvariant="italic">s</mml:mi>
651 </mml:msub>
652 </mml:mrow>
653 <mml:mrow>
654 <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
655 <mml:mi mathvariant="italic">d</mml:mi>
656 </mml:msub>
657 </mml:mrow>
658 </mml:mfenced>
659 </mml:mrow>
660 </mml:mrow>
661 </mml:math></informalequation>
662 <informalequation><mml:math>
663 <!-- eqn: Br = max ( B sub s, B sub d): -->
664 <mml:mrow>
665 <mml:mi mathvariant="italic">Br</mml:mi>
666 <mml:mo>=</mml:mo>
667 <mml:mrow>
668 <mml:mi mathvariant="italic">max</mml:mi>
669 <mml:mo>&af;</mml:mo>
670 <mml:mfenced open="(" close=")">
671 <mml:mrow>
672 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
673 <mml:mi mathvariant="italic">s</mml:mi>
674 </mml:msub>
675 </mml:mrow>
676 <mml:mrow>
677 <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
678 <mml:mi mathvariant="italic">d</mml:mi>
679 </mml:msub>
680 </mml:mrow>
681 </mml:mfenced>
682 </mml:mrow>
683 </mml:mrow>
684 </mml:math></informalequation>
685 </entry>
686 <entry align="left">
687 <informalequation><mml:math>
688 <!-- eqn: Ar = max ( A sub s, A sub d): -->
689 <mml:mrow>
690 <mml:mi mathvariant="italic">Ar</mml:mi>
691 <mml:mo>=</mml:mo>
692 <mml:mrow>
693 <mml:mi mathvariant="italic">max</mml:mi>
694 <mml:mo>&af;</mml:mo>
695 <mml:mfenced open="(" close=")">
696 <mml:mrow>
697 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
698 <mml:mi mathvariant="italic">s</mml:mi>
699 </mml:msub>
700 </mml:mrow>
701 <mml:mrow>
702 <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
703 <mml:mi mathvariant="italic">d</mml:mi>
704 </mml:msub>
705 </mml:mrow>
706 </mml:mfenced>
707 </mml:mrow>
708 </mml:mrow>
709 </mml:math></informalequation>
710 </entry>
711 </row>
712 </tbody>
713 </tgroup>
714 </informaltable>
715 </para>
716 <para>
717 The results of these equations are clamped to the range
718 <inlineequation><mml:math>
719 <!-- eqn: [0,1]: -->
720 <mml:mfenced open="[" close="]">
721 <mml:mn>0</mml:mn>
722 <mml:mn>1</mml:mn>
723 </mml:mfenced>
724 </mml:math></inlineequation>.
725 </para>
726 <para>
727 The <constant>GL_MIN</constant> and <constant>GL_MAX</constant> equations are useful for applications
728 that analyze image data (image thresholding against a constant color,
729 for example).
730 The <constant>GL_FUNC_ADD</constant> equation is useful
731 for antialiasing and transparency, among other things.
732 </para>
733 <para>
734 Initially, both the RGB blend equation and the alpha blend equation are set to <constant>GL_FUNC_ADD</constant>.
735 </para>
736 <para>
737 </para>
738 </refsect1>
739 <refsect1 id="notes"><title>Notes</title>
740 <para>
741 The <constant>GL_MIN</constant>, and <constant>GL_MAX</constant> equations do not use
742 the source or destination factors, only the source and destination colors.
743 </para>
744 </refsect1>
745 <refsect1 id="errors"><title>Errors</title>
746 <para>
747 <constant>GL_INVALID_ENUM</constant> is generated if <parameter>mode</parameter> is not one of
748 <constant>GL_FUNC_ADD</constant>, <constant>GL_FUNC_SUBTRACT</constant>, <constant>GL_FUNC_REVERSE_SUBTRACT</constant>,
749 <constant>GL_MAX</constant>, or <constant>GL_MIN</constant>.
750 </para>
751 <para>
752 <constant>GL_INVALID_VALUE</constant> is generated by <function>glBlendEquationi</function> if <parameter>buf</parameter> is greater
753 than or equal to the value of <constant>GL_MAX_DRAW_BUFFERS</constant>.
754 </para>
755 </refsect1>
756 <refsect1 id="associatedgets"><title>Associated Gets</title>
757 <para>
758 <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with an argument of <constant>GL_BLEND_EQUATION_RGB</constant>
759 </para>
760 <para>
761 <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with an argument of <constant>GL_BLEND_EQUATION_ALPHA</constant>
762 </para>
763 </refsect1>
764 <refsect1 id="seealso"><title>See Also</title>
765 <para>
766 <citerefentry><refentrytitle>glBlendColor</refentrytitle></citerefentry>,
767 <citerefentry><refentrytitle>glBlendFunc</refentrytitle></citerefentry>
768 <citerefentry><refentrytitle>glBlendFuncSeparate</refentrytitle></citerefentry>
769 </para>
770 </refsect1>
771 <refsect1 id="Copyright"><title>Copyright</title>
772 <para>
773 Copyright <trademark class="copyright"></trademark> 1991-2006
774 Silicon Graphics, Inc. This document is licensed under the SGI
775 Free Software B License. For details, see
776 <ulink url="http://oss.sgi.com/projects/FreeB/">http://oss.sgi.com/projects/FreeB/</ulink>.
777 </para>
778 </refsect1>
779 </refentry>