public void SetConstant( int index, Matrix4 mat ) { var a = new float[16]; // set as 4x 4-element floats if ( TransposeMatrices ) { mat.Transpose().MakeFloatArray( a ); } else { mat.MakeFloatArray( a ); } SetConstant( index, a, 4 ); }
public void WriteRawConstant( int physicalIndex, Matrix4 m, int elementCount ) { var arr = new float[16]; // remember, raw content access uses raw float count rather than float4 if ( TransposeMatrices ) { var t = m.Transpose(); t.MakeFloatArray( arr ); _writeRawConstants( physicalIndex, arr, elementCount > 16 ? 16 : elementCount ); } else { m.MakeFloatArray( arr ); _writeRawConstants( physicalIndex, arr, elementCount > 16 ? 16 : elementCount ); } }
public void SetNamedConstant(string name, Matrix4 value) { var floats = new float[16]; value.MakeFloatArray( floats ); SetNamedConstant(name, floats); }