SYNOPSIS
#include <agar/core.h> #include <agar/gui.h>
DESCRIPTION
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:
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.
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.
SEE ALSO
HISTORY
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.