Currently, the alpha in color blending has far more flexible roles that the other channels, RGB. This is actually 2 parts:
First part, a new function:
Code :
glBlendFuncSeparateRGBA( GLenum red_src_factor, GLenum red_dst_factor, GLenum green_src_factor, GLenum green_dst_factor, GLenum blue_src_factor, GLenum blue_dst_factor, GLenum alpha_src_factor, GLenum alpha_dst_factor)
which specifies the factors for blending separately for each color channel.
In addition, a smash of new enumerations for using each of the channels, separately:
Code :
GL_SRC_RED, GL_SRC1_RED, GL_DST_RED, GL_ONE_MINUS_SRC_RED, GL_ONE_MINUS_SRC1_RED, GL_ONE_MINUS_DST_RED, and similar ones for GREEN and BLUE.
A logical convention for the using current non-alpha factors with the new function would be that to just use the component, for example passing GL_SRC for red_src_factor or red_dest_factor would be same as GL_SRC_RED, and so on.
Naturally this extends to glBlendFunci as well.