cgD3D9SetUniformMatrixArray(3)

NAME
cgD3D9SetUniformMatrixArray - set the elements for an array of uniform matrix parameters

SYNOPSIS
  #include <Cg/cgD3D9.h>
  HRESULT cgD3D9SetUniformMatrixArray( CGparameter param,
                                       DWORD offset,
                                       DWORD numItems,
                                       const D3DMATRIX * matrices );

PARAMETERS
The parameter whose array elements are to be set. It must be a uniform matrix parameter. The offset at which to start setting array elements. The number of array elements to set. An array of matrices to set for param. The upper-left portion of each matrix is extracted to fit the size of the input parameter. numItems matrices are expected to be passed to the function.

RETURN VALUES
Returns D3D_OK if the function succeeds.

Returns the D3D failure code if the function fails due to a D3D call.

DESCRIPTION
cgD3D9SetUniformMatrixArray sets the elements for an array of uniform matrix parameters.

EXAMPLES
  // matrixParam is a CGparameter handle of type float3x2
  // arrayParam is a CGparameter handle of type float4x4[4]
  ...
  // intialize the data for each parameter
  D3DXMATRIX matTexTransform(
      0.5f,0,      0,0,
      0   ,0.5f,   0,0,
      0.5f,0.5f,   0,0,
      0   ,0,      0,0
  );
  D3DXMATRIX matRot[2];
  D3DXMatrixRotationAxis(&matRot[0], &D3DXVECTOR3(0,0,1), D3DX_PI*0.5f);
  D3DXMatrixRotationAxis(&matRot[1], &D3DXVECTOR3(0,1,0), D3DX_PI*0.5f);
  ...
  // only use the upper-left portion.
  // non-arrays can be set, but only when offset=0 and numItems=1.
  cgD3D9SetUniformArray(matrixParam, &matTexTransform, 0, 1);
  // set the 3rd and 4th elements of the array
  cgD3D9SetUniformArray(arrayParam, matRot, 2, 2);

ERRORS
cgD3D9Failed is generated if a D3D function returns an error.

CGD3D9ERR_NODEVICE is returned if a required D3D device is NULL. This usually occurs when an expanded interface routine is called but a D3D device has not been set with cgD3D9SetDevice.

CGD3D9ERR_NOTLOADED is returned if program was not loaded with the cgD3D9LoadProgram.

CGD3D9ERR_NOTMATRIX is returned if param is not a matrix.

CGD3D9ERR_NOTUNIFORM is returned if param is not a uniform parameter.

CGD3D9ERR_NULLVALUE is returned if matrices is NULL.

CGD3D9ERR_OUTOFRANGE is returned if offset plus numItems is out of the range of param.

CGD3D9ERR_INVALIDPARAM is returned if the parameter fails to set for any other reason.

HISTORY
cgD3D9SetUniformMatrixArray was introduced in Cg 1.1.

SEE ALSO
cgD3D9SetUniform, cgD3D9SetUniformArray, cgD3D9SetUniformMatrix, cgD3D9TypeToSize