WINAPI D3DXMATRIX * D3DXMatrixMultiply( D3DXMATRIX * pOut, CONST D3DXMATRIX *pM1, CONST D3DXMATRIX *pM2 ) { pOut->dx._11 = pM1->dx._11*pM2->dx._11 + pM1->dx._12*pM2->dx._21 + pM1->dx._13*pM2->dx._31 + pM1->dx._14*pM2->dx._41; pOut->dx._12 = pM1->dx._11*pM2->dx._12 + pM1->dx._12*pM2->dx._22 + pM1->dx._13*pM2->dx._32 + pM1->dx._14*pM2->dx._42; pOut->dx._13 = pM1->dx._11*pM2->dx._13 + pM1->dx._12*pM2->dx._23 + pM1->dx._13*pM2->dx._33 + pM1->dx._14*pM2->dx._43; pOut->dx._14 = pM1->dx._11*pM2->dx._14 + pM1->dx._12*pM2->dx._24 + pM1->dx._13*pM2->dx._34 + pM1->dx._14*pM2->dx._44; pOut->dx._21 = pM1->dx._21*pM2->dx._11 + pM1->dx._22*pM2->dx._21 + pM1->dx._23*pM2->dx._31 + pM1->dx._24*pM2->dx._41; pOut->dx._22 = pM1->dx._21*pM2->dx._12 + pM1->dx._22*pM2->dx._22 + pM1->dx._23*pM2->dx._32 + pM1->dx._24*pM2->dx._42; pOut->dx._23 = pM1->dx._21*pM2->dx._13 + pM1->dx._22*pM2->dx._23 + pM1->dx._23*pM2->dx._33 + pM1->dx._24*pM2->dx._43; pOut->dx._24 = pM1->dx._21*pM2->dx._14 + pM1->dx._22*pM2->dx._24 + pM1->dx._23*pM2->dx._34 + pM1->dx._24*pM2->dx._44; pOut->dx._31 = pM1->dx._31*pM2->dx._11 + pM1->dx._32*pM2->dx._21 + pM1->dx._33*pM2->dx._31 + pM1->dx._34*pM2->dx._41; pOut->dx._32 = pM1->dx._31*pM2->dx._12 + pM1->dx._32*pM2->dx._22 + pM1->dx._33*pM2->dx._32 + pM1->dx._34*pM2->dx._42; pOut->dx._33 = pM1->dx._31*pM2->dx._13 + pM1->dx._32*pM2->dx._23 + pM1->dx._33*pM2->dx._33 + pM1->dx._34*pM2->dx._43; pOut->dx._34 = pM1->dx._31*pM2->dx._14 + pM1->dx._32*pM2->dx._24 + pM1->dx._33*pM2->dx._34 + pM1->dx._34*pM2->dx._44; pOut->dx._41 = pM1->dx._41*pM2->dx._11 + pM1->dx._42*pM2->dx._21 + pM1->dx._43*pM2->dx._31 + pM1->dx._44*pM2->dx._41; pOut->dx._42 = pM1->dx._41*pM2->dx._12 + pM1->dx._42*pM2->dx._22 + pM1->dx._43*pM2->dx._32 + pM1->dx._44*pM2->dx._42; pOut->dx._43 = pM1->dx._41*pM2->dx._13 + pM1->dx._42*pM2->dx._23 + pM1->dx._43*pM2->dx._33 + pM1->dx._44*pM2->dx._43; pOut->dx._44 = pM1->dx._41*pM2->dx._14 + pM1->dx._42*pM2->dx._24 + pM1->dx._43*pM2->dx._34 + pM1->dx._44*pM2->dx._44; return pOut; }