Microsoft DirectX 8.1 (pixel shader versions 1.0, 1.1, 1.2, 1.3, 1.4)

mul

Multiplies the components of two source registers. The result is dest = src0 * src1.

mul dest, src0, src1

Registers

Argument Description RegistersVersion
vn cn tn rn
dest Destination register x 1.0
x x 1.1, 1.2, 1.3
x 1.4
src0, src1 Source register x x x x 1.0, 1.1, 1.2, 1.3
x x 1.4 phase 1
x x x 1.4 phase 2

To learn more about registers, see Registers.

Example

This example is for illustration only. The C code accompanying the shader has not been optimized for performance. It can use helper functions from the Sample Framework. The sample framework is the foundation on which many of the samples are built.

// This example combines the texture color and the diffuse color.

// The shader is shown below.
ps.1.0              // Version instruction
tex t0              // Declare texture.
mul r0, v0, t0      // Multiply diffuse color with gradient texture.


// The following images show the contents of the source registers the 
// resulting output register. 
// Where src1 is white, the destination pixel color is the same as the 
// source pixel color since dest = src * 1.0. 
// Where src1 is black, the destination is also black. 
// The pixel colors in the middle of the destination image are a blend 
// of src0 and src1.

// Additional code loads a texture in texture stage 0.
LPDIRECT3DDEVICE8   m_pd3dDevice;   // Init this device pointer in the application.
LPDIRECT3DTEXTURE8  m_pTexture0;    // Use this variable to hold a pointer to the texture.
TCHAR               strPath[512] = "textureFile.jpg";

D3DUtil_CreateTexture( m_pd3dDevice, strPath, &m_pTexture0, D3DFMT_R5G6B5 );
m_pd3dDevice->SetTexture( 0, m_pTexture0 );