'\" t .\" Title: glBlendFuncSeparate .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Generator: DocBook XSL Stylesheets v1.78.1 .\" Date: 05/21/2015 .\" Manual: [FIXME: manual] .\" Source: [FIXME: source] .\" Language: English .\" .TH "GLBLENDFUNCSEPARATE" "3G" "05/21/2015" "[FIXME: source]" "[FIXME: manual]" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" glBlendFuncSeparate \- specify pixel arithmetic for RGB and alpha components separately .SH "C SPECIFICATION" .HP \w'void\ glBlendFuncSeparate('u .BI "void glBlendFuncSeparate(GLenum\ " "srcRGB" ", GLenum\ " "dstRGB" ", GLenum\ " "srcAlpha" ", GLenum\ " "dstAlpha" ");" .HP \w'void\ glBlendFuncSeparatei('u .BI "void glBlendFuncSeparatei(GLuint\ " "buf" ", GLenum\ " "srcRGB" ", GLenum\ " "dstRGB" ", GLenum\ " "srcAlpha" ", GLenum\ " "dstAlpha" ");" .SH "PARAMETERS" .PP \fIbuf\fR .RS 4 For \fBglBlendFuncSeparatei\fR, specifies the index of the draw buffer for which to set the blend functions\&. .RE .PP \fIsrcRGB\fR .RS 4 Specifies how the red, green, and blue blending factors are computed\&. The initial value is \fBGL_ONE\fR\&. .RE .PP \fIdstRGB\fR .RS 4 Specifies how the red, green, and blue destination blending factors are computed\&. The initial value is \fBGL_ZERO\fR\&. .RE .PP \fIsrcAlpha\fR .RS 4 Specified how the alpha source blending factor is computed\&. The initial value is \fBGL_ONE\fR\&. .RE .PP \fIdstAlpha\fR .RS 4 Specified how the alpha destination blending factor is computed\&. The initial value is \fBGL_ZERO\fR\&. .RE .SH "DESCRIPTION" .PP Pixels can be drawn using a function that blends the incoming (source) RGBA values with the RGBA values that are already in the frame buffer (the destination values)\&. Blending is initially disabled\&. Use \fBglEnable\fR() and \fBglDisable\fR() with argument \fBGL_BLEND\fR to enable and disable blending\&. .PP \fBglBlendFuncSeparate\fR defines the operation of blending for all draw buffers when it is enabled\&. \fBglBlendFuncSeparatei\fR defines the operation of blending for a single draw buffer specified by \fIbuf\fR when enabled for that draw buffer\&. \fIsrcRGB\fR specifies which method is used to scale the source RGB\-color components\&. \fIdstRGB\fR specifies which method is used to scale the destination RGB\-color components\&. Likewise, \fIsrcAlpha\fR specifies which method is used to scale the source alpha color component, and \fIdstAlpha\fR specifies which method is used to scale the destination alpha component\&. The possible methods are described in the following table\&. Each method defines four scale factors, one each for red, green, blue, and alpha\&. .PP In the table and in subsequent equations, first source, second source and destination color components are referred to as R s0 G s0 B s0 A s0, R s1 G s1 B s1 A s1, and R d G d B d A d, respectively\&. The color specified by \fBglBlendColor\fR() is referred to as R c G c B c A c\&. They are understood to have integer values between 0 and k R k G k B k A, where .PP k c = 2 m c \- 1 .PP and m R m G m B m A is the number of red, green, blue, and alpha bitplanes\&. .PP Source and destination scale factors are referred to as s R s G s B s A and d R d G d B d A\&. All scale factors have range 0 1\&. .PP .TS allbox tab(:); lB lB lB. T{ \fB Parameter \fR T}:T{ \fB RGB Factor \fR T}:T{ \fB Alpha Factor \fR T} .T& l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l. T{ \fBGL_ZERO\fR T}:T{ 0 0 0 T}:T{ 0 T} T{ \fBGL_ONE\fR T}:T{ 1 1 1 T}:T{ 1 T} T{ \fBGL_SRC_COLOR\fR T}:T{ R s0 k R G s0 k G B s0 k B T}:T{ A s0 k A T} T{ \fBGL_ONE_MINUS_SRC_COLOR\fR T}:T{ 1 1 1 1 \- R s0 k R G s0 k G B s0 k B T}:T{ 1 \- A s0 k A T} T{ \fBGL_DST_COLOR\fR T}:T{ R d k R G d k G B d k B T}:T{ A d k A T} T{ \fBGL_ONE_MINUS_DST_COLOR\fR T}:T{ 1 1 1 \- R d k R G d k G B d k B T}:T{ 1 \- A d k A T} T{ \fBGL_SRC_ALPHA\fR T}:T{ A s0 k A A s0 k A A s0 k A T}:T{ A s0 k A T} T{ \fBGL_ONE_MINUS_SRC_ALPHA\fR T}:T{ 1 1 1 \- A s0 k A A s0 k A A s0 k A T}:T{ 1 \- A s0 k A T} T{ \fBGL_DST_ALPHA\fR T}:T{ A d k A A d k A A d k A T}:T{ A d k A T} T{ \fBGL_ONE_MINUS_DST_ALPHA\fR T}:T{ 1 1 1 \- A d k A A d k A A d k A T}:T{ 1 \- A d k A T} T{ \fBGL_CONSTANT_COLOR\fR T}:T{ R c G c B c T}:T{ A c T} T{ \fBGL_ONE_MINUS_CONSTANT_COLOR\fR T}:T{ 1 1 1 \- R c G c B c T}:T{ 1 \- A c T} T{ \fBGL_CONSTANT_ALPHA\fR T}:T{ A c A c A c T}:T{ A c T} T{ \fBGL_ONE_MINUS_CONSTANT_ALPHA\fR T}:T{ 1 1 1 \- A c A c A c T}:T{ 1 \- A c T} T{ \fBGL_SRC_ALPHA_SATURATE\fR T}:T{ i i i T}:T{ 1 T} T{ \fBGL_SRC1_COLOR\fR T}:T{ R s1 k R G s1 k G B s1 k B T}:T{ A s1 k A T} T{ \fBGL_ONE_MINUS_SRC_COLOR\fR T}:T{ 1 1 1 1 \- R s1 k R G s1 k G B s1 k B T}:T{ 1 \- A s1 k A T} T{ \fBGL_SRC1_ALPHA\fR T}:T{ A s1 k A A s1 k A A s1 k A T}:T{ A s1 k A T} T{ \fBGL_ONE_MINUS_SRC_ALPHA\fR T}:T{ 1 1 1 \- A s1 k A A s1 k A A s1 k A T}:T{ 1 \- A s1 k A T} .TE .PP In the table, .PP i = min ⁡ A s 1 \- A d .PP To determine the blended RGBA values of a pixel, the system uses the following equations: .PP R d = min ⁡ k R R s ⁢ s R + R d ⁢ d RG d = min ⁡ k G G s ⁢ s G + G d ⁢ d GB d = min ⁡ k B B s ⁢ s B + B d ⁢ d BA d = min ⁡ k A A s ⁢ s A + A d ⁢ d A .PP Despite the apparent precision of the above equations, blending arithmetic is not exactly specified, because blending operates with imprecise integer color values\&. However, a blend factor that should be equal to 1 is guaranteed not to modify its multiplicand, and a blend factor equal to 0 reduces its multiplicand to 0\&. For example, when \fIsrcRGB\fR is \fBGL_SRC_ALPHA\fR, \fIdstRGB\fR is \fBGL_ONE_MINUS_SRC_ALPHA\fR, and A s is equal to k A, the equations reduce to simple replacement: .PP R d = R sG d = G sB d = B sA d = A s .PP .SH "NOTES" .PP Incoming (source) alpha is correctly thought of as a material opacity, ranging from 1\&.0 (K A), representing complete opacity, to 0\&.0 (0), representing complete transparency\&. .PP When more than one color buffer is enabled for drawing, the GL performs blending separately for each enabled buffer, using the contents of that buffer for destination color\&. (See \fBglDrawBuffer\fR()\&.) .PP When dual source blending is enabled (i\&.e\&., one of the blend factors requiring the second color input is used), the maximum number of enabled draw buffers is given by \fBGL_MAX_DUAL_SOURCE_DRAW_BUFFERS\fR, which may be lower than \fBGL_MAX_DRAW_BUFFERS\fR\&. .SH "ERRORS" .PP \fBGL_INVALID_ENUM\fR is generated if either \fIsrcRGB\fR or \fIdstRGB\fR is not an accepted value\&. .PP \fBGL_INVALID_VALUE\fR is generated by \fBglBlendFuncSeparatei\fR if \fIbuf\fR is greater than or equal to the value of \fBGL_MAX_DRAW_BUFFERS\fR\&. .SH "ASSOCIATED GETS" .PP \fBglGet\fR() with argument \fBGL_BLEND_SRC_RGB\fR .PP \fBglGet\fR() with argument \fBGL_BLEND_SRC_ALPHA\fR .PP \fBglGet\fR() with argument \fBGL_BLEND_DST_RGB\fR .PP \fBglGet\fR() with argument \fBGL_BLEND_DST_ALPHA\fR .PP \fBglIsEnabled\fR() with argument \fBGL_BLEND\fR .PP .SH "VERSION SUPPORT" .TS allbox tab(:); lB cB s s s s s s s s s s s lB cB cB cB cB cB cB cB cB cB cB cB cB. T{ T}:T{ \fBOpenGL Version\fR T} T{ \fBFunction / Feature Name\fR T}:T{ \fB2\&.0\fR T}:T{ \fB2\&.1\fR T}:T{ \fB3\&.0\fR T}:T{ \fB3\&.1\fR T}:T{ \fB3\&.2\fR T}:T{ \fB3\&.3\fR T}:T{ \fB4\&.0\fR T}:T{ \fB4\&.1\fR T}:T{ \fB4\&.2\fR T}:T{ \fB4\&.3\fR T}:T{ \fB4\&.4\fR T}:T{ \fB4\&.5\fR T} .T& l c c c c c c c c c c c c l c c c c c c c c c c c c. T{ \fBglBlendFuncSeparate\fR T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T} T{ \fBglBlendFuncSeparatei\fR T}:T{ \- T}:T{ \- T}:T{ \- T}:T{ \- T}:T{ \- T}:T{ \- T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T} .TE .sp .SH "SEE ALSO" .PP \fBglBlendColor\fR(), \fBglBlendFunc\fR(), \fBglBlendEquation\fR(), \fBglClear\fR(), \fBglDrawBuffer\fR(), \fBglEnable\fR(), \fBglLogicOp\fR(), \fBglStencilFunc\fR() .SH "COPYRIGHT" .PP Copyright \(co 1991\-2006 Silicon Graphics, Inc\&. Copyright \(co 2010\-2014 Khronos Group\&. This document is licensed under the SGI Free Software B License\&. For details, see \m[blue]\fBhttp://oss\&.sgi\&.com/projects/FreeB/\fR\m[]\&. .SH "COPYRIGHT" .br Copyright \(co 1991-2006 Silicon Graphics, Inc. .br Copyright \(co 2010-2014 Khronos Group .br