DXCOMPFUNC Enumeration

Describes the method used for compositing by the Compositor transform. The transform requires two inputs and one output, which are defined by calling the IDXTransform::Setup method. In the following material, Image A corresponds to setup input index 0, and Image B to setup input index 1.

The composite operation combines the samples of Image A and Image B according to one of the listed methods. Each one corresponds to a different order of overlaying the images or a different way of combining the sample colors using each image's alpha channel.

Syntax

typedef enum DXCOMPFUNC
{
    DXCOMPFUNC_SWAP_AB  = 0x10,
    DXCOMPFUNC_FUNCMASK = 0xF,
    //--- Compositing functions
    DXCOMPFUNC_CLEAR = 0,
    DXCOMPFUNC_MIN,
    DXCOMPFUNC_MAX,
    DXCOMPFUNC_A,
    DXCOMPFUNC_A_OVER_B,
    DXCOMPFUNC_A_IN_B,
    DXCOMPFUNC_A_OUT_B,
    DXCOMPFUNC_A_ATOP_B,
    DXCOMPFUNC_A_SUBTRACT_B,
    DXCOMPFUNC_A_ADD_B,
    DXCOMPFUNC_A_XOR_B,
    DXCOMPFUNC_B            = ( DXCOMPFUNC_A            | DXCOMPFUNC_SWAP_AB ),
    DXCOMPFUNC_B_OVER_A     = ( DXCOMPFUNC_A_OVER_B     | DXCOMPFUNC_SWAP_AB ),
    DXCOMPFUNC_B_IN_A       = ( DXCOMPFUNC_A_IN_B       | DXCOMPFUNC_SWAP_AB ),
    DXCOMPFUNC_B_OUT_A      = ( DXCOMPFUNC_A_OUT_B      | DXCOMPFUNC_SWAP_AB ),
    DXCOMPFUNC_B_ATOP_A     = ( DXCOMPFUNC_A_ATOP_B     | DXCOMPFUNC_SWAP_AB ),
    DXCOMPFUNC_B_SUBTRACT_A = ( DXCOMPFUNC_A_SUBTRACT_B | DXCOMPFUNC_SWAP_AB ),
    DXCOMPFUNC_B_ADD_A      = ( DXCOMPFUNC_A_ADD_B      | DXCOMPFUNC_SWAP_AB ), 
    DXCOMPFUNC_NUMFUNCS       
} DXCOMPFUNC;

Elements

DXCOMPFUNC_SWAP_AB
A flag used internally to switch the inputs for A and B.
DXCOMPFUNC_FUNCMASK
A bitmask used to check for valid input.
DXCOMPFUNC_CLEAR
The transform should perform no operation on the output.
DXCOMPFUNC_MIN
Compares the brightness of each sample in both images, and shows only the less bright of the two samples.
DXCOMPFUNC_MAX
Compares the brightness of each sample in both images, and shows only the brighter of the two samples.
DXCOMPFUNC_A
The transform should write Image A to the output.
DXCOMPFUNC_A_OVER_B
The transform should place Image A over Image B. All of Image A will be visible, and Image B will show through any zero alpha regions of Image A.
DXCOMPFUNC_A_IN_B
For the resulting image, all parts of Image A that are contained in Image B show. Only regions with nonzero alpha for both images will be visible, and no part of Image B will show through.
DXCOMPFUNC_A_OUT_B
For the resulting image, all parts of Image B that are contained in Image A are removed. Areas in Image B with zero alpha are not cut out of Image A.
DXCOMPFUNC_A_ATOP_B
For the resulting image, Image A is placed over Image B, with each sample scaled by the alpha channel of Image B.
DXCOMPFUNC_A_SUBTRACT_B
For the resulting image, the sample color values of Image B are subtracted from the corresponding sample color values of Image A. The resulting color is scaled by the alpha values of Image A.
DXCOMPFUNC_A_ADD_B
For the resulting image, the sample color values of Image B are added to the corresponding sample color values of Image A. The resulting color value is scaled by the alpha value of Image A.
DXCOMPFUNC_A_XOR_B
For the resulting image, places where the two images do not overlap show as normal. Places that do overlap are scaled by their inverse value for alpha.
DXCOMPFUNC_B
The transform should write Image B to the output.
DXCOMPFUNC_B_OVER_A
The same operation as DXCOMPFUNC_A_OVER_B, with Image A and B switched.
DXCOMPFUNC_B_IN_A
The same operation as DXCOMPFUNC_A_IN_B, with Image A and B switched.
DXCOMPFUNC_B_OUT_A
The same operation as DXCOMPFUNC_A_OUT_B, with Image A and B switched.
DXCOMPFUNC_B_ATOP_A
The same operation as DXCOMPFUNC_A_ATOP_B, with Image A and B switched.
DXCOMPFUNC_B_SUBTRACT_A
The same operation as DXCOMPFUNC_A_SUBTRACT_B, with Image A and B switched.
DXCOMPFUNC_B_ADD_A
The same operation as DXCOMPFUNC_A_ATOP_B, with Image A and B switched.
DXCOMPFUNC_NUMFUNCS
The number of supported compositing operations, used for parameter validation.

Top of Page Top of Page
© 2000 Microsoft and/or its suppliers. All rights reserved. Terms of Use.