public static byte[] AsByteArray(this ID3DXBuffer buffer) { VerifyNonNullArgument( buffer, "buffer"); var buf = new byte[(int)buffer.GetBufferSize()]; Marshal.Copy( buffer.GetBufferPointer(), buf, 0, (int)buffer.GetBufferSize()); return(buf); }
public static string AsAnsiString(this ID3DXBuffer buffer) { VerifyNonNullArgument( buffer, "buffer"); unsafe { var ptr = (sbyte *)buffer.GetBufferPointer(); var size = (int)buffer.GetBufferSize(); if (ptr[size - 1] == 0) { // skip the last null char size = Math.Max( checked (size - 1), 0); } return(new string( ptr, 0, size)); } }