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
© 2000 Microsoft and/or its suppliers. All rights reserved. Terms of Use.