The IDirect3DDevice3::MultiplyTransform method multiplies a device's world, view, or projection matrices by a specified matrix. The multiplication order is lpD3DMatrix times dtstTransformStateType.
HRESULT MultiplyTransform(
D3DTRANSFORMSTATETYPE dtstTransformStateType,
LPD3DMATRIX lpD3DMatrix
);
If the method succeeds, the return value is D3D_OK.
If the method fails, the return value is an error. The method returns DDERR_INVALIDPARAMS if one of the arguments is invalid.
An application might use the MultiplyTransform method to work with hierarchies of transformations. For example, the geometry and transformations describing an arm might be arranged in the following hierarchy:
shoulder_transformation
upper_arm geometry
elbow transformation
lower_arm geometry
wrist transformation
hand geometry
An application might use the following series of calls to render this hierarchy. (Not all of the parameters are shown in this pseudocode.)
IDirect3DDevice3::SetTransform(D3DTRANSFORMSTATE_WORLD,
shoulder_transform)
IDirect3DDevice3::DrawPrimitive(upper_arm)
IDirect3DDevice3::MultiplyTransform(D3DTRANSFORMSTATE_WORLD,
elbow_transform)
IDirect3DDevice3::DrawPrimitive(lower_arm)
IDirect3DDevice3::MultiplyTransform(D3DTRANSFORMSTATE_WORLD,
wrist_transform)
IDirect3DDevice3::DrawPrimitive(hand)
This method was introduced with the IDirect3DDevice2 interface.
Windows NT/2000: Requires Windows 2000.
Windows 95/98: Requires Windows 95 or later. Available as a redistributable for Windows 95.
Header: Declared in d3d.h.
Import Library: Use ddraw.lib.
IDirect3DDevice3::DrawPrimitive, IDirect3DDevice3::SetTransform