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.