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=
"glBlendFuncSeparate">
9 <holder>Silicon Graphics, Inc.
</holder>
12 <refentrytitle>glBlendFuncSeparate
</refentrytitle>
13 <manvolnum>3G
</manvolnum>
16 <refname>glBlendFuncSeparate
</refname>
17 <refpurpose>specify pixel arithmetic for RGB and alpha components separately
</refpurpose>
19 <refsynopsisdiv><title>C Specification
</title>
22 <funcdef>void
<function>glBlendFuncSeparate
</function></funcdef>
23 <paramdef>GLenum
<parameter>srcRGB
</parameter></paramdef>
24 <paramdef>GLenum
<parameter>dstRGB
</parameter></paramdef>
25 <paramdef>GLenum
<parameter>srcAlpha
</parameter></paramdef>
26 <paramdef>GLenum
<parameter>dstAlpha
</parameter></paramdef>
29 <funcdef>void
<function>glBlendFuncSeparatei
</function></funcdef>
30 <paramdef>GLuint
<parameter>buf
</parameter></paramdef>
31 <paramdef>GLenum
<parameter>srcRGB
</parameter></paramdef>
32 <paramdef>GLenum
<parameter>dstRGB
</parameter></paramdef>
33 <paramdef>GLenum
<parameter>srcAlpha
</parameter></paramdef>
34 <paramdef>GLenum
<parameter>dstAlpha
</parameter></paramdef>
38 <!-- eqn: ignoring delim $$ -->
39 <refsect1 id=
"parameters"><title>Parameters
</title>
42 <term><parameter>buf
</parameter></term>
45 For
<function>glBlendFuncSeparatei
</function>, specifies the index of the draw
46 buffer for which to set the blend functions.
51 <term><parameter>srcRGB
</parameter></term>
54 Specifies how the red, green, and blue blending factors are computed.
55 The initial value is
<constant>GL_ONE
</constant>.
60 <term><parameter>dstRGB
</parameter></term>
63 Specifies how the red, green, and blue destination blending factors are
65 The initial value is
<constant>GL_ZERO
</constant>.
70 <term><parameter>srcAlpha
</parameter></term>
73 Specified how the alpha source blending factor is computed.
74 The initial value is
<constant>GL_ONE
</constant>.
79 <term><parameter>dstAlpha
</parameter></term>
82 Specified how the alpha destination blending factor is computed.
83 The initial value is
<constant>GL_ZERO
</constant>.
89 <refsect1 id=
"description"><title>Description
</title>
91 Pixels can be drawn using a function that blends
92 the incoming (source) RGBA values with the RGBA values
93 that are already in the frame buffer (the destination values).
94 Blending is initially disabled.
95 Use
<citerefentry><refentrytitle>glEnable
</refentrytitle></citerefentry> and
<citerefentry><refentrytitle>glDisable
</refentrytitle></citerefentry> with argument
<constant>GL_BLEND
</constant>
96 to enable and disable blending.
99 <function>glBlendFuncSeparate
</function> defines the operation of blending for all draw buffers when it is enabled.
100 <function>glBlendFuncSeparatei
</function> defines the operation of blending for a single draw buffer
101 specified by
<parameter>buf
</parameter> when enabled for that draw buffer.
102 <parameter>srcRGB
</parameter> specifies which method is used to scale the
103 source RGB-color components.
104 <parameter>dstRGB
</parameter> specifies which method is used to scale the
105 destination RGB-color components.
106 Likewise,
<parameter>srcAlpha
</parameter> specifies which method is used to scale the source alpha
107 color component, and
<parameter>dstAlpha
</parameter> specifies which method is used to scale the
108 destination alpha component.
109 The possible methods are described in the following table.
110 Each method defines four scale factors,
111 one each for red, green, blue, and alpha.
114 In the table and in subsequent equations, first source, second source and destination
115 color components are referred to as
116 <inlineequation><mml:math>
117 <!-- eqn: ( R sub s0 , G sub s0 , B sub s0 , A sub s0 ): -->
118 <mml:mfenced open=
"(" close=
")">
119 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
120 <mml:mi mathvariant=
"italic">s0
</mml:mi>
122 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
123 <mml:mi mathvariant=
"italic">s0
</mml:mi>
125 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
126 <mml:mi mathvariant=
"italic">s0
</mml:mi>
128 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
129 <mml:mi mathvariant=
"italic">s0
</mml:mi>
132 </mml:math></inlineequation>,
133 <inlineequation><mml:math>
134 <!-- eqn: ( R sub s1 , G sub s1 , B sub s1 , A sub s1 ): -->
135 <mml:mfenced open=
"(" close=
")">
136 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
137 <mml:mi mathvariant=
"italic">s1
</mml:mi>
139 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
140 <mml:mi mathvariant=
"italic">s1
</mml:mi>
142 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
143 <mml:mi mathvariant=
"italic">s1
</mml:mi>
145 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
146 <mml:mi mathvariant=
"italic">s1
</mml:mi>
149 </mml:math></inlineequation>,
151 <inlineequation><mml:math>
152 <!-- eqn: ( R sub d , G sub d , B sub d , A sub d ): -->
153 <mml:mfenced open=
"(" close=
")">
154 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
155 <mml:mi mathvariant=
"italic">d
</mml:mi>
157 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
158 <mml:mi mathvariant=
"italic">d
</mml:mi>
160 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
161 <mml:mi mathvariant=
"italic">d
</mml:mi>
163 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
164 <mml:mi mathvariant=
"italic">d
</mml:mi>
167 </mml:math></inlineequation>, respectively.
168 The color specified by
<citerefentry><refentrytitle>glBlendColor
</refentrytitle></citerefentry> is referred to as
169 <inlineequation><mml:math>
170 <!-- eqn: ( R sub c , G sub c , B sub c , A sub c ): -->
171 <mml:mfenced open=
"(" close=
")">
172 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
173 <mml:mi mathvariant=
"italic">c
</mml:mi>
175 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
176 <mml:mi mathvariant=
"italic">c
</mml:mi>
178 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
179 <mml:mi mathvariant=
"italic">c
</mml:mi>
181 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
182 <mml:mi mathvariant=
"italic">c
</mml:mi>
185 </mml:math></inlineequation>.
186 They are understood to have integer values between
0 and
187 <inlineequation><mml:math>
188 <!-- eqn: ( k sub R , k sub G , k sub B , k sub A ): -->
189 <mml:mfenced open=
"(" close=
")">
190 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
191 <mml:mi mathvariant=
"italic">R
</mml:mi>
193 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
194 <mml:mi mathvariant=
"italic">G
</mml:mi>
196 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
197 <mml:mi mathvariant=
"italic">B
</mml:mi>
199 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
200 <mml:mi mathvariant=
"italic">A
</mml:mi>
203 </mml:math></inlineequation>,
208 <inlineequation><mml:math>
209 <!-- eqn: k sub c = 2 sup {m sub c} - 1: -->
211 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
212 <mml:mi mathvariant=
"italic">c
</mml:mi>
216 <mml:msup><mml:mn>2</mml:mn>
217 <mml:mfenced open=
"" close=
"">
218 <mml:msub><mml:mi mathvariant=
"italic">m
</mml:mi>
219 <mml:mi mathvariant=
"italic">c
</mml:mi>
227 </mml:math></inlineequation>
232 <inlineequation><mml:math>
233 <!-- eqn: ( m sub R , m sub G , m sub B , m sub A ): -->
234 <mml:mfenced open=
"(" close=
")">
235 <mml:msub><mml:mi mathvariant=
"italic">m
</mml:mi>
236 <mml:mi mathvariant=
"italic">R
</mml:mi>
238 <mml:msub><mml:mi mathvariant=
"italic">m
</mml:mi>
239 <mml:mi mathvariant=
"italic">G
</mml:mi>
241 <mml:msub><mml:mi mathvariant=
"italic">m
</mml:mi>
242 <mml:mi mathvariant=
"italic">B
</mml:mi>
244 <mml:msub><mml:mi mathvariant=
"italic">m
</mml:mi>
245 <mml:mi mathvariant=
"italic">A
</mml:mi>
248 </mml:math></inlineequation>
249 is the number of red,
255 Source and destination scale factors are referred to as
256 <inlineequation><mml:math>
257 <!-- eqn: ( s sub R , s sub G , s sub B , s sub A ): -->
258 <mml:mfenced open=
"(" close=
")">
259 <mml:msub><mml:mi mathvariant=
"italic">s
</mml:mi>
260 <mml:mi mathvariant=
"italic">R
</mml:mi>
262 <mml:msub><mml:mi mathvariant=
"italic">s
</mml:mi>
263 <mml:mi mathvariant=
"italic">G
</mml:mi>
265 <mml:msub><mml:mi mathvariant=
"italic">s
</mml:mi>
266 <mml:mi mathvariant=
"italic">B
</mml:mi>
268 <mml:msub><mml:mi mathvariant=
"italic">s
</mml:mi>
269 <mml:mi mathvariant=
"italic">A
</mml:mi>
272 </mml:math></inlineequation>
274 <inlineequation><mml:math>
275 <!-- eqn: ( d sub R , d sub G , d sub B , d sub A ): -->
276 <mml:mfenced open=
"(" close=
")">
277 <mml:msub><mml:mi mathvariant=
"italic">d
</mml:mi>
278 <mml:mi mathvariant=
"italic">R
</mml:mi>
280 <mml:msub><mml:mi mathvariant=
"italic">d
</mml:mi>
281 <mml:mi mathvariant=
"italic">G
</mml:mi>
283 <mml:msub><mml:mi mathvariant=
"italic">d
</mml:mi>
284 <mml:mi mathvariant=
"italic">B
</mml:mi>
286 <mml:msub><mml:mi mathvariant=
"italic">d
</mml:mi>
287 <mml:mi mathvariant=
"italic">A
</mml:mi>
290 </mml:math></inlineequation>.
291 All scale factors have range
292 <inlineequation><mml:math>
294 <mml:mfenced open=
"[" close=
"]">
298 </mml:math></inlineequation>.
302 <informaltable frame=
"topbot">
303 <tgroup cols=
"3" align=
"left">
304 <colspec colwidth=
"3*" />
305 <colspec colwidth=
"2*" />
306 <colspec colwidth=
"1*" />
309 <entry rowsep=
"1" align=
"left"><emphasis role=
"bold">
312 <entry rowsep=
"1" align=
"left"><emphasis role=
"bold">
315 <entry rowsep=
"1" align=
"left"><emphasis role=
"bold">
323 <constant>GL_ZERO
</constant>
326 <inlineequation><mml:math>
327 <!-- eqn: ( 0, 0, 0 ): -->
328 <mml:mfenced open=
"(" close=
")">
333 </mml:math></inlineequation>
336 <inlineequation><mml:math>
339 </mml:math></inlineequation>
344 <constant>GL_ONE
</constant>
347 <inlineequation><mml:math>
348 <!-- eqn: ( 1, 1, 1 ): -->
349 <mml:mfenced open=
"(" close=
")">
354 </mml:math></inlineequation>
357 <inlineequation><mml:math>
360 </mml:math></inlineequation>
365 <constant>GL_SRC_COLOR
</constant>
368 <inlineequation><mml:math>
369 <!-- eqn: ( R sub s0 / k sub R , G sub s0 / k sub G , B sub s0 / k sub B ): -->
370 <mml:mfenced open=
"(" close=
")">
372 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
373 <mml:mi mathvariant=
"italic">s0
</mml:mi>
375 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
376 <mml:mi mathvariant=
"italic">R
</mml:mi>
380 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
381 <mml:mi mathvariant=
"italic">s0
</mml:mi>
383 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
384 <mml:mi mathvariant=
"italic">G
</mml:mi>
388 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
389 <mml:mi mathvariant=
"italic">s0
</mml:mi>
391 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
392 <mml:mi mathvariant=
"italic">B
</mml:mi>
396 </mml:math></inlineequation>
399 <inlineequation><mml:math>
400 <!-- eqn: A sub s0 / k sub A: -->
402 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
403 <mml:mi mathvariant=
"italic">s0
</mml:mi>
405 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
406 <mml:mi mathvariant=
"italic">A
</mml:mi>
409 </mml:math></inlineequation>
414 <constant>GL_ONE_MINUS_SRC_COLOR
</constant>
417 <inlineequation><mml:math>
418 <!-- eqn: ( 1, 1, 1, 1 ) - ( R sub s0 / k sub R , G sub s0 / k sub G , B sub 0s / k sub B ): -->
420 <mml:mfenced open=
"(" close=
")">
427 <mml:mfenced open=
"(" close=
")">
429 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
430 <mml:mi mathvariant=
"italic">s0
</mml:mi>
432 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
433 <mml:mi mathvariant=
"italic">R
</mml:mi>
437 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
438 <mml:mi mathvariant=
"italic">s0
</mml:mi>
440 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
441 <mml:mi mathvariant=
"italic">G
</mml:mi>
445 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
446 <mml:mi mathvariant=
"italic">s0
</mml:mi>
448 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
449 <mml:mi mathvariant=
"italic">B
</mml:mi>
454 </mml:math></inlineequation>
457 <inlineequation><mml:math>
458 <!-- eqn: 1 - A sub s0 / k sub A: -->
463 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
464 <mml:mi mathvariant=
"italic">s0
</mml:mi>
466 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
467 <mml:mi mathvariant=
"italic">A
</mml:mi>
471 </mml:math></inlineequation>
476 <constant>GL_DST_COLOR
</constant>
479 <inlineequation><mml:math>
480 <!-- eqn: ( R sub d / k sub R , G sub d / k sub G , B sub d / k sub B ): -->
481 <mml:mfenced open=
"(" close=
")">
483 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
484 <mml:mi mathvariant=
"italic">d
</mml:mi>
486 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
487 <mml:mi mathvariant=
"italic">R
</mml:mi>
491 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
492 <mml:mi mathvariant=
"italic">d
</mml:mi>
494 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
495 <mml:mi mathvariant=
"italic">G
</mml:mi>
499 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
500 <mml:mi mathvariant=
"italic">d
</mml:mi>
502 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
503 <mml:mi mathvariant=
"italic">B
</mml:mi>
507 </mml:math></inlineequation>
510 <inlineequation><mml:math>
511 <!-- eqn: A sub d / k sub A: -->
513 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
514 <mml:mi mathvariant=
"italic">d
</mml:mi>
516 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
517 <mml:mi mathvariant=
"italic">A
</mml:mi>
520 </mml:math></inlineequation>
525 <constant>GL_ONE_MINUS_DST_COLOR
</constant>
528 <inlineequation><mml:math>
529 <!-- eqn: ( 1, 1, 1 ) - ( R sub d / k sub R , G sub d / k sub G , B sub d / k sub B ): -->
531 <mml:mfenced open=
"(" close=
")">
537 <mml:mfenced open=
"(" close=
")">
539 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
540 <mml:mi mathvariant=
"italic">d
</mml:mi>
542 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
543 <mml:mi mathvariant=
"italic">R
</mml:mi>
547 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
548 <mml:mi mathvariant=
"italic">d
</mml:mi>
550 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
551 <mml:mi mathvariant=
"italic">G
</mml:mi>
555 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
556 <mml:mi mathvariant=
"italic">d
</mml:mi>
558 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
559 <mml:mi mathvariant=
"italic">B
</mml:mi>
564 </mml:math></inlineequation>
567 <inlineequation><mml:math>
568 <!-- eqn: 1 - A sub d / k sub A: -->
573 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
574 <mml:mi mathvariant=
"italic">d
</mml:mi>
576 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
577 <mml:mi mathvariant=
"italic">A
</mml:mi>
581 </mml:math></inlineequation>
586 <constant>GL_SRC_ALPHA
</constant>
589 <inlineequation><mml:math>
590 <!-- eqn: ( A sub s0 / k sub A , A sub s0 / k sub A , A sub s0 / k sub A ): -->
591 <mml:mfenced open=
"(" close=
")">
593 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
594 <mml:mi mathvariant=
"italic">s0
</mml:mi>
596 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
597 <mml:mi mathvariant=
"italic">A
</mml:mi>
601 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
602 <mml:mi mathvariant=
"italic">s0
</mml:mi>
604 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
605 <mml:mi mathvariant=
"italic">A
</mml:mi>
609 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
610 <mml:mi mathvariant=
"italic">s0
</mml:mi>
612 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
613 <mml:mi mathvariant=
"italic">A
</mml:mi>
617 </mml:math></inlineequation>
620 <inlineequation><mml:math>
621 <!-- eqn: A sub s / k sub A: -->
623 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
624 <mml:mi mathvariant=
"italic">s0
</mml:mi>
626 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
627 <mml:mi mathvariant=
"italic">A
</mml:mi>
630 </mml:math></inlineequation>
635 <constant>GL_ONE_MINUS_SRC_ALPHA
</constant>
638 <inlineequation><mml:math>
639 <!-- eqn: ( 1, 1, 1 ) - ( A sub s0 / k sub A , A sub s0 / k sub A , A sub s0 / k sub A ): -->
641 <mml:mfenced open=
"(" close=
")">
647 <mml:mfenced open=
"(" close=
")">
649 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
650 <mml:mi mathvariant=
"italic">s0
</mml:mi>
652 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
653 <mml:mi mathvariant=
"italic">A
</mml:mi>
657 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
658 <mml:mi mathvariant=
"italic">s0
</mml:mi>
660 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
661 <mml:mi mathvariant=
"italic">A
</mml:mi>
665 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
666 <mml:mi mathvariant=
"italic">s0
</mml:mi>
668 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
669 <mml:mi mathvariant=
"italic">A
</mml:mi>
674 </mml:math></inlineequation>
677 <inlineequation><mml:math>
678 <!-- eqn: 1 - A sub s / k sub A: -->
683 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
684 <mml:mi mathvariant=
"italic">s0
</mml:mi>
686 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
687 <mml:mi mathvariant=
"italic">A
</mml:mi>
691 </mml:math></inlineequation>
696 <constant>GL_DST_ALPHA
</constant>
699 <inlineequation><mml:math>
700 <!-- eqn: ( A sub d / k sub A , A sub d / k sub A , A sub d / k sub A ): -->
701 <mml:mfenced open=
"(" close=
")">
703 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
704 <mml:mi mathvariant=
"italic">d
</mml:mi>
706 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
707 <mml:mi mathvariant=
"italic">A
</mml:mi>
711 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
712 <mml:mi mathvariant=
"italic">d
</mml:mi>
714 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
715 <mml:mi mathvariant=
"italic">A
</mml:mi>
719 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
720 <mml:mi mathvariant=
"italic">d
</mml:mi>
722 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
723 <mml:mi mathvariant=
"italic">A
</mml:mi>
727 </mml:math></inlineequation>
730 <inlineequation><mml:math>
731 <!-- eqn: A sub d / k sub A: -->
733 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
734 <mml:mi mathvariant=
"italic">d
</mml:mi>
736 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
737 <mml:mi mathvariant=
"italic">A
</mml:mi>
740 </mml:math></inlineequation>
745 <constant>GL_ONE_MINUS_DST_ALPHA
</constant>
748 <inlineequation><mml:math>
749 <!-- eqn: ( 1, 1, 1 ) - ( A sub d / k sub A , A sub d / k sub A , A sub d / k sub A ): -->
751 <mml:mfenced open=
"(" close=
")">
757 <mml:mfenced open=
"(" close=
")">
759 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
760 <mml:mi mathvariant=
"italic">d
</mml:mi>
762 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
763 <mml:mi mathvariant=
"italic">A
</mml:mi>
767 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
768 <mml:mi mathvariant=
"italic">d
</mml:mi>
770 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
771 <mml:mi mathvariant=
"italic">A
</mml:mi>
775 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
776 <mml:mi mathvariant=
"italic">d
</mml:mi>
778 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
779 <mml:mi mathvariant=
"italic">A
</mml:mi>
784 </mml:math></inlineequation>
787 <inlineequation><mml:math>
788 <!-- eqn: 1 - A sub d / k sub A: -->
793 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
794 <mml:mi mathvariant=
"italic">d
</mml:mi>
796 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
797 <mml:mi mathvariant=
"italic">A
</mml:mi>
801 </mml:math></inlineequation>
806 <constant>GL_CONSTANT_COLOR
</constant>
809 <inlineequation><mml:math>
810 <!-- eqn: ( R sub c, G sub c, B sub c ): -->
811 <mml:mfenced open=
"(" close=
")">
812 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
813 <mml:mi mathvariant=
"italic">c
</mml:mi>
815 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
816 <mml:mi mathvariant=
"italic">c
</mml:mi>
818 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
819 <mml:mi mathvariant=
"italic">c
</mml:mi>
822 </mml:math></inlineequation>
825 <inlineequation><mml:math>
826 <!-- eqn: A sub c: -->
827 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
828 <mml:mi mathvariant=
"italic">c
</mml:mi>
830 </mml:math></inlineequation>
835 <constant>GL_ONE_MINUS_CONSTANT_COLOR
</constant>
838 <inlineequation><mml:math>
839 <!-- eqn: ( 1, 1, 1 ) - ( R sub c, G sub c, B sub c ): -->
841 <mml:mfenced open=
"(" close=
")">
847 <mml:mfenced open=
"(" close=
")">
848 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
849 <mml:mi mathvariant=
"italic">c
</mml:mi>
851 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
852 <mml:mi mathvariant=
"italic">c
</mml:mi>
854 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
855 <mml:mi mathvariant=
"italic">c
</mml:mi>
859 </mml:math></inlineequation>
862 <inlineequation><mml:math>
863 <!-- eqn: 1 - A sub c: -->
867 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
868 <mml:mi mathvariant=
"italic">c
</mml:mi>
871 </mml:math></inlineequation>
876 <constant>GL_CONSTANT_ALPHA
</constant>
879 <inlineequation><mml:math>
880 <!-- eqn: ( A sub c, A sub c, A sub c ): -->
881 <mml:mfenced open=
"(" close=
")">
882 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
883 <mml:mi mathvariant=
"italic">c
</mml:mi>
885 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
886 <mml:mi mathvariant=
"italic">c
</mml:mi>
888 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
889 <mml:mi mathvariant=
"italic">c
</mml:mi>
892 </mml:math></inlineequation>
895 <inlineequation><mml:math>
896 <!-- eqn: A sub c: -->
897 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
898 <mml:mi mathvariant=
"italic">c
</mml:mi>
900 </mml:math></inlineequation>
905 <constant>GL_ONE_MINUS_CONSTANT_ALPHA
</constant>
908 <inlineequation><mml:math>
909 <!-- eqn: ( 1, 1, 1 ) - ( A sub c, A sub c, A sub c ): -->
911 <mml:mfenced open=
"(" close=
")">
917 <mml:mfenced open=
"(" close=
")">
918 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
919 <mml:mi mathvariant=
"italic">c
</mml:mi>
921 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
922 <mml:mi mathvariant=
"italic">c
</mml:mi>
924 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
925 <mml:mi mathvariant=
"italic">c
</mml:mi>
929 </mml:math></inlineequation>
932 <inlineequation><mml:math>
933 <!-- eqn: 1 - A sub c: -->
937 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
938 <mml:mi mathvariant=
"italic">c
</mml:mi>
941 </mml:math></inlineequation>
946 <constant>GL_SRC_ALPHA_SATURATE
</constant>
949 <inlineequation><mml:math>
950 <!-- eqn: ( i, i, i ): -->
951 <mml:mfenced open=
"(" close=
")">
952 <mml:mi mathvariant=
"italic">i
</mml:mi>
953 <mml:mi mathvariant=
"italic">i
</mml:mi>
954 <mml:mi mathvariant=
"italic">i
</mml:mi>
956 </mml:math></inlineequation>
959 <inlineequation><mml:math>
962 </mml:math></inlineequation>
967 <constant>GL_SRC1_COLOR
</constant>
970 <inlineequation><mml:math>
971 <!-- eqn: ( R sub s1 / k sub R , G sub s1 / k sub G , B sub s1 / k sub B ): -->
972 <mml:mfenced open=
"(" close=
")">
974 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
975 <mml:mi mathvariant=
"italic">s1
</mml:mi>
977 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
978 <mml:mi mathvariant=
"italic">R
</mml:mi>
982 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
983 <mml:mi mathvariant=
"italic">s1
</mml:mi>
985 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
986 <mml:mi mathvariant=
"italic">G
</mml:mi>
990 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
991 <mml:mi mathvariant=
"italic">s1
</mml:mi>
993 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
994 <mml:mi mathvariant=
"italic">B
</mml:mi>
998 </mml:math></inlineequation>
1000 <entry align=
"left">
1001 <inlineequation><mml:math>
1002 <!-- eqn: A sub s0 / k sub A: -->
1004 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
1005 <mml:mi mathvariant=
"italic">s1
</mml:mi>
1007 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
1008 <mml:mi mathvariant=
"italic">A
</mml:mi>
1011 </mml:math></inlineequation>
1015 <entry align=
"left">
1016 <constant>GL_ONE_MINUS_SRC_COLOR
</constant>
1018 <entry align=
"left">
1019 <inlineequation><mml:math>
1020 <!-- eqn: ( 1, 1, 1, 1 ) - ( R sub s1 / k sub R , G sub s1 / k sub G , B sub s1 / k sub B ): -->
1022 <mml:mfenced open=
"(" close=
")">
1029 <mml:mfenced open=
"(" close=
")">
1031 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
1032 <mml:mi mathvariant=
"italic">s1
</mml:mi>
1034 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
1035 <mml:mi mathvariant=
"italic">R
</mml:mi>
1039 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
1040 <mml:mi mathvariant=
"italic">s1
</mml:mi>
1042 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
1043 <mml:mi mathvariant=
"italic">G
</mml:mi>
1047 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
1048 <mml:mi mathvariant=
"italic">s1
</mml:mi>
1050 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
1051 <mml:mi mathvariant=
"italic">B
</mml:mi>
1056 </mml:math></inlineequation>
1058 <entry align=
"left">
1059 <inlineequation><mml:math>
1060 <!-- eqn: 1 - A sub s0 / k sub A: -->
1065 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
1066 <mml:mi mathvariant=
"italic">s1
</mml:mi>
1068 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
1069 <mml:mi mathvariant=
"italic">A
</mml:mi>
1073 </mml:math></inlineequation>
1077 <entry align=
"left">
1078 <constant>GL_SRC1_ALPHA
</constant>
1080 <entry align=
"left">
1081 <inlineequation><mml:math>
1082 <!-- eqn: ( A sub s1 / k sub A , A sub s1 / k sub A , A sub s1 / k sub A ): -->
1083 <mml:mfenced open=
"(" close=
")">
1085 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
1086 <mml:mi mathvariant=
"italic">s1
</mml:mi>
1088 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
1089 <mml:mi mathvariant=
"italic">A
</mml:mi>
1093 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
1094 <mml:mi mathvariant=
"italic">s1
</mml:mi>
1096 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
1097 <mml:mi mathvariant=
"italic">A
</mml:mi>
1101 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
1102 <mml:mi mathvariant=
"italic">s1
</mml:mi>
1104 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
1105 <mml:mi mathvariant=
"italic">A
</mml:mi>
1109 </mml:math></inlineequation>
1111 <entry align=
"left">
1112 <inlineequation><mml:math>
1113 <!-- eqn: A sub s1 / k sub A: -->
1115 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
1116 <mml:mi mathvariant=
"italic">s1
</mml:mi>
1118 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
1119 <mml:mi mathvariant=
"italic">A
</mml:mi>
1122 </mml:math></inlineequation>
1126 <entry align=
"left">
1127 <constant>GL_ONE_MINUS_SRC_ALPHA
</constant>
1129 <entry align=
"left">
1130 <inlineequation><mml:math>
1131 <!-- eqn: ( 1, 1, 1 ) - ( A sub s1 / k sub A , A sub s1 / k sub A , A sub s1 / k sub A ): -->
1133 <mml:mfenced open=
"(" close=
")">
1139 <mml:mfenced open=
"(" close=
")">
1141 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
1142 <mml:mi mathvariant=
"italic">s1
</mml:mi>
1144 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
1145 <mml:mi mathvariant=
"italic">A
</mml:mi>
1149 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
1150 <mml:mi mathvariant=
"italic">s1
</mml:mi>
1152 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
1153 <mml:mi mathvariant=
"italic">A
</mml:mi>
1157 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
1158 <mml:mi mathvariant=
"italic">s1
</mml:mi>
1160 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
1161 <mml:mi mathvariant=
"italic">A
</mml:mi>
1166 </mml:math></inlineequation>
1168 <entry align=
"left">
1169 <inlineequation><mml:math>
1170 <!-- eqn: 1 - A sub s1 / k sub A: -->
1175 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
1176 <mml:mi mathvariant=
"italic">s1
</mml:mi>
1178 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
1179 <mml:mi mathvariant=
"italic">A
</mml:mi>
1183 </mml:math></inlineequation>
1194 <inlineequation><mml:math>
1195 <!-- eqn: i = min (A sub s , 1 - {A sub d}): -->
1197 <mml:mi mathvariant=
"italic">i
</mml:mi>
1200 <mml:mi mathvariant=
"italic">min
</mml:mi>
1201 <mml:mo>⁡</mml:mo>
1202 <mml:mfenced open=
"(" close=
")">
1203 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
1204 <mml:mi mathvariant=
"italic">s
</mml:mi>
1209 <mml:mfenced open=
"" close=
"">
1210 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
1211 <mml:mi mathvariant=
"italic">d
</mml:mi>
1218 </mml:math></inlineequation>
1222 To determine the blended RGBA values of a pixel,
1223 the system uses the following equations:
1227 <inlineequation><mml:math>
1228 <!-- eqn: R sub d = min ( k sub R, R sub s s sub R + R sub d d sub R ): -->
1230 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
1231 <mml:mi mathvariant=
"italic">d
</mml:mi>
1235 <mml:mi mathvariant=
"italic">min
</mml:mi>
1236 <mml:mo>⁡</mml:mo>
1237 <mml:mfenced open=
"(" close=
")">
1238 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
1239 <mml:mi mathvariant=
"italic">R
</mml:mi>
1242 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
1243 <mml:mi mathvariant=
"italic">s
</mml:mi>
1245 <mml:mo>⁢</mml:mo>
1246 <mml:msub><mml:mi mathvariant=
"italic">s
</mml:mi>
1247 <mml:mi mathvariant=
"italic">R
</mml:mi>
1250 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
1251 <mml:mi mathvariant=
"italic">d
</mml:mi>
1253 <mml:mo>⁢</mml:mo>
1254 <mml:msub><mml:mi mathvariant=
"italic">d
</mml:mi>
1255 <mml:mi mathvariant=
"italic">R
</mml:mi>
1261 </mml:math></inlineequation>
1262 <inlineequation><mml:math>
1263 <!-- eqn: G sub d = min ( k sub G, G sub s s sub G + G sub d d sub G ): -->
1265 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
1266 <mml:mi mathvariant=
"italic">d
</mml:mi>
1270 <mml:mi mathvariant=
"italic">min
</mml:mi>
1271 <mml:mo>⁡</mml:mo>
1272 <mml:mfenced open=
"(" close=
")">
1273 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
1274 <mml:mi mathvariant=
"italic">G
</mml:mi>
1277 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
1278 <mml:mi mathvariant=
"italic">s
</mml:mi>
1280 <mml:mo>⁢</mml:mo>
1281 <mml:msub><mml:mi mathvariant=
"italic">s
</mml:mi>
1282 <mml:mi mathvariant=
"italic">G
</mml:mi>
1285 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
1286 <mml:mi mathvariant=
"italic">d
</mml:mi>
1288 <mml:mo>⁢</mml:mo>
1289 <mml:msub><mml:mi mathvariant=
"italic">d
</mml:mi>
1290 <mml:mi mathvariant=
"italic">G
</mml:mi>
1296 </mml:math></inlineequation>
1297 <inlineequation><mml:math>
1298 <!-- eqn: B sub d = min ( k sub B, B sub s s sub B + B sub d d sub B ): -->
1300 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
1301 <mml:mi mathvariant=
"italic">d
</mml:mi>
1305 <mml:mi mathvariant=
"italic">min
</mml:mi>
1306 <mml:mo>⁡</mml:mo>
1307 <mml:mfenced open=
"(" close=
")">
1308 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
1309 <mml:mi mathvariant=
"italic">B
</mml:mi>
1312 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
1313 <mml:mi mathvariant=
"italic">s
</mml:mi>
1315 <mml:mo>⁢</mml:mo>
1316 <mml:msub><mml:mi mathvariant=
"italic">s
</mml:mi>
1317 <mml:mi mathvariant=
"italic">B
</mml:mi>
1320 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
1321 <mml:mi mathvariant=
"italic">d
</mml:mi>
1323 <mml:mo>⁢</mml:mo>
1324 <mml:msub><mml:mi mathvariant=
"italic">d
</mml:mi>
1325 <mml:mi mathvariant=
"italic">B
</mml:mi>
1331 </mml:math></inlineequation>
1332 <inlineequation><mml:math>
1333 <!-- eqn: A sub d = min ( k sub A, A sub s s sub A + A sub d d sub A ): -->
1335 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
1336 <mml:mi mathvariant=
"italic">d
</mml:mi>
1340 <mml:mi mathvariant=
"italic">min
</mml:mi>
1341 <mml:mo>⁡</mml:mo>
1342 <mml:mfenced open=
"(" close=
")">
1343 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
1344 <mml:mi mathvariant=
"italic">A
</mml:mi>
1347 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
1348 <mml:mi mathvariant=
"italic">s
</mml:mi>
1350 <mml:mo>⁢</mml:mo>
1351 <mml:msub><mml:mi mathvariant=
"italic">s
</mml:mi>
1352 <mml:mi mathvariant=
"italic">A
</mml:mi>
1355 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
1356 <mml:mi mathvariant=
"italic">d
</mml:mi>
1358 <mml:mo>⁢</mml:mo>
1359 <mml:msub><mml:mi mathvariant=
"italic">d
</mml:mi>
1360 <mml:mi mathvariant=
"italic">A
</mml:mi>
1366 </mml:math></inlineequation>
1370 Despite the apparent precision of the above equations, blending arithmetic
1371 is not exactly specified, because blending operates with imprecise integer
1372 color values. However, a blend factor that should be equal to
1 is
1373 guaranteed not to modify its multiplicand, and a blend factor equal to
0
1374 reduces its multiplicand to
0. For example, when
<parameter>srcRGB
</parameter> is
1375 <constant>GL_SRC_ALPHA
</constant>,
<parameter>dstRGB
</parameter> is
<constant>GL_ONE_MINUS_SRC_ALPHA
</constant>, and
1376 <inlineequation><mml:math>
1377 <!-- eqn: A sub s: -->
1378 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
1379 <mml:mi mathvariant=
"italic">s
</mml:mi>
1381 </mml:math></inlineequation>
1384 <inlineequation><mml:math>
1385 <!-- eqn: k sub A: -->
1386 <mml:msub><mml:mi mathvariant=
"italic">k
</mml:mi>
1387 <mml:mi mathvariant=
"italic">A
</mml:mi>
1389 </mml:math></inlineequation>,
1390 the equations reduce to simple replacement:
1394 <inlineequation><mml:math>
1395 <!-- eqn: R sub d = R sub s: -->
1397 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
1398 <mml:mi mathvariant=
"italic">d
</mml:mi>
1401 <mml:msub><mml:mi mathvariant=
"italic">R
</mml:mi>
1402 <mml:mi mathvariant=
"italic">s
</mml:mi>
1405 </mml:math></inlineequation>
1406 <inlineequation><mml:math>
1407 <!-- eqn: G sub d = G sub s: -->
1409 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
1410 <mml:mi mathvariant=
"italic">d
</mml:mi>
1413 <mml:msub><mml:mi mathvariant=
"italic">G
</mml:mi>
1414 <mml:mi mathvariant=
"italic">s
</mml:mi>
1417 </mml:math></inlineequation>
1418 <inlineequation><mml:math>
1419 <!-- eqn: B sub d = B sub s: -->
1421 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
1422 <mml:mi mathvariant=
"italic">d
</mml:mi>
1425 <mml:msub><mml:mi mathvariant=
"italic">B
</mml:mi>
1426 <mml:mi mathvariant=
"italic">s
</mml:mi>
1429 </mml:math></inlineequation>
1430 <inlineequation><mml:math>
1431 <!-- eqn: A sub d = A sub s: -->
1433 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
1434 <mml:mi mathvariant=
"italic">d
</mml:mi>
1437 <mml:msub><mml:mi mathvariant=
"italic">A
</mml:mi>
1438 <mml:mi mathvariant=
"italic">s
</mml:mi>
1441 </mml:math></inlineequation>
1447 <refsect1 id=
"notes"><title>Notes
</title>
1449 Incoming (source) alpha is correctly thought of as a material opacity,
1451 (
<inlineequation><mml:math>
1452 <!-- eqn: K sub A: -->
1453 <mml:msub><mml:mi mathvariant=
"italic">K
</mml:mi>
1454 <mml:mi mathvariant=
"italic">A
</mml:mi>
1456 </mml:math></inlineequation>),
1457 representing complete opacity,
1458 to
0.0 (
0), representing complete
1462 When more than one color buffer is enabled for drawing,
1463 the GL performs blending separately for each enabled buffer,
1464 using the contents of that buffer for destination color.
1465 (See
<citerefentry><refentrytitle>glDrawBuffer
</refentrytitle></citerefentry>.)
1468 When dual source blending is enabled (i.e., one of the blend factors requiring
1469 the second color input is used), the maximum number of enabled draw buffers
1470 is given by
<constant>GL_MAX_DUAL_SOURCE_DRAW_BUFFERS
</constant>, which may
1471 be lower than
<constant>GL_MAX_DRAW_BUFFERS
</constant>.
1474 <refsect1 id=
"errors"><title>Errors
</title>
1476 <constant>GL_INVALID_ENUM
</constant> is generated if either
<parameter>srcRGB
</parameter> or
<parameter>dstRGB
</parameter> is not an
1480 <constant>GL_INVALID_VALUE
</constant> is generated by
<function>glBlendFuncSeparatei
</function> if
<parameter>buf
</parameter> is greater
1481 than or equal to the value of
<constant>GL_MAX_DRAW_BUFFERS
</constant>.
1484 <refsect1 id=
"associatedgets"><title>Associated Gets
</title>
1486 <citerefentry><refentrytitle>glGet
</refentrytitle></citerefentry> with argument
<constant>GL_BLEND_SRC_RGB
</constant>
1489 <citerefentry><refentrytitle>glGet
</refentrytitle></citerefentry> with argument
<constant>GL_BLEND_SRC_ALPHA
</constant>
1492 <citerefentry><refentrytitle>glGet
</refentrytitle></citerefentry> with argument
<constant>GL_BLEND_DST_RGB
</constant>
1495 <citerefentry><refentrytitle>glGet
</refentrytitle></citerefentry> with argument
<constant>GL_BLEND_DST_ALPHA
</constant>
1498 <citerefentry><refentrytitle>glIsEnabled
</refentrytitle></citerefentry> with argument
<constant>GL_BLEND
</constant>
1503 <refsect1 id=
"seealso"><title>See Also
</title>
1505 <citerefentry><refentrytitle>glBlendColor
</refentrytitle></citerefentry>,
1506 <citerefentry><refentrytitle>glBlendFunc
</refentrytitle></citerefentry>,
1507 <citerefentry><refentrytitle>glBlendEquation
</refentrytitle></citerefentry>,
1508 <citerefentry><refentrytitle>glClear
</refentrytitle></citerefentry>,
1509 <citerefentry><refentrytitle>glDrawBuffer
</refentrytitle></citerefentry>,
1510 <citerefentry><refentrytitle>glEnable
</refentrytitle></citerefentry>,
1511 <citerefentry><refentrytitle>glLogicOp
</refentrytitle></citerefentry>,
1512 <citerefentry><refentrytitle>glStencilFunc
</refentrytitle></citerefentry>
1515 <refsect1 id=
"Copyright"><title>Copyright
</title>
1517 Copyright
<trademark class=
"copyright"></trademark> 1991-
2006
1518 Silicon Graphics, Inc. This document is licensed under the SGI
1519 Free Software B License. For details, see
1520 <ulink url=
"http://oss.sgi.com/projects/FreeB/">http://oss.sgi.com/projects/FreeB/
</ulink>.