Texture Argument Flags
Each texture stage for a device can have two texture arguments that affect the color or alpha channel of the texture. Set and retrieve texture arguments by calling the IDirect3DDevice7::SetTextureStageState and IDirect3DDevice7::GetTextureStageState methods, specifying the D3DTSS_COLORARG1, D3DTSS_COLORARG2, D3DTSS_ALPHAARG1, or D3DTSS_ALPHAARG2 member of the D3DTEXTURESTAGESTATETYPE enumerated type.
The following flags, organized as arguments and modifiers, can be used with color and alpha arguments for a texture stage. You can combine an argument flag with a modifier, but two argument flags cannot be combined.
- Argument flags
- D3DTA_CURRENT
- The texture argument is the result of the previous blending stage. In the first texture stage (stage 0), this argument is equivalent to D3DTA_DIFFUSE. If the previous blending stage uses a bump-map texture (the D3DTOP_BUMPENVMAP operation), the system chooses the texture from the stage before the bump-map texture. (If s represents the current texture stage and s – 1 contains a bump-map texture, this argument becomes the result output by texture stage s – 2.)
- D3DTA_DIFFUSE
- The texture argument is the diffuse color interpolated from vertex components during Gouraud shading. If the vertex does not contain a diffuse color, the default color is 0xFFFFFFFF.
- D3DTA_SELECTMASK
- Mask value for all arguments; not used when setting texture arguments.
- D3DTA_TEXTURE
- The texture argument is the texture color for this texture stage. This is valid only for the first color and alpha arguments in a stage (the D3DTSS_COLORARG1 and D3DTSS_ALPHAARG1 members of D3DTEXTURESTAGESTATETYPE).
- D3DTA_TFACTOR
- The texture argument is the texture factor set in a previous call to the IDirect3DDevice7::SetRenderState with the D3DRENDERSTATE_TEXTUREFACTOR render-state value.
- D3DTA_SPECULAR
- The texture argument is the specular color interpolated from vertex components during Gouraud shading. If the vertex does not contain a specular color, the default color is 0xFFFFFFFF.
- Modifier flags
- D3DTA_ALPHAREPLICATE
- Replicate the alpha information to all color channels before the operation completes.
- D3DTA_COMPLEMENT
- Invert the argument so that, if the result of the argument were referred to by the variable x, the value would be 1.0 minus x.