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

param
    The parameter whose array elements are to be set. It must be a uniform matrix parameter.

offset
    The offset at which to start setting array elements.

numItems
    The number of array elements to set.

matrices
    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