AG_AlphaFn
— agar
pixel arithmetic function
#include <agar/core.h>
#include <agar/gui.h>
The AG_AlphaFn
type specifies an
arithmetic operation to use when blending two pixels. The incoming pixel is
referred to as the "source" pixel. The target pixel already in the
frame buffer is referred to as the "destination" pixel.
AG_AlphaFn
is defined as:
typedef enum ag_blend_func {
AG_ALPHA_OVERLAY, /* MIN(sA+dA, 1) */
AG_ALPHA_ZERO, /* 0 */
AG_ALPHA_ONE, /* 1 */
AG_ALPHA_SRC, /* sA */
AG_ALPHA_DST, /* dA */
AG_ALPHA_ONE_MINUS_DST, /* 1-dA */
AG_ALPHA_ONE_MINUS_SRC /* 1-sA */
} AG_AlphaFn;
The blending functions differ in how the weight of the destination
pixel (versus the weight of the source pixel) is selected.
AG_PIXEL_SRC
uses the alpha component of
the source pixel (sA).
AG_PIXEL_DST
uses the alpha component of
the destination pixel (dA),
AG_PIXEL_OVERLAY
uses the sum of the
source and alpha components clamped to the maximum value that can be
represented by an AG_Component.
AG_PIXEL_ONE_MINUS_SRC
and
AG_PIXEL_ONE_MINUS_DST
use the value 1 minus the
source and destination alpha component.
The AG_AlphaFn
type first appeared in Agar
1.3.4 under the name AG_BlendFn. It was renamed
AG_AlphaFn
and
AG_ALPHA_{ZERO,ONE}
were added in Agar 1.6.0.