public GPUFetchFormat ReadFetchFormat() { if (_Current >= _Params.Length) { return(0); } GPUFetchFormat ret = 0; var str = ReadString(); System.Enum.TryParse <GPUFetchFormat>(str, out ret); return(ret); }
private static bool Convert(Byte[] data, int offset, GPUFetchFormat format, GPUFetchDataType dataType, string[] values, ref int numStr) { switch (format) { case GPUFetchFormat.FMT_8: { values[numStr++] = Convert(data, offset + 0, 1, dataType); return(false); } case GPUFetchFormat.FMT_8_8_8_8: { values[numStr++] = Convert(data, offset + 0, 1, dataType); values[numStr++] = Convert(data, offset + 1, 1, dataType); values[numStr++] = Convert(data, offset + 2, 1, dataType); values[numStr++] = Convert(data, offset + 3, 1, dataType); return(true); } case GPUFetchFormat.FMT_2_10_10_10: { values[numStr++] = "FMT_2_10_10_10.X"; values[numStr++] = "FMT_2_10_10_10.Y"; values[numStr++] = "FMT_2_10_10_10.Z"; values[numStr++] = "FMT_2_10_10_10.W"; return(true); } case GPUFetchFormat.FMT_8_8: { values[numStr++] = Convert(data, offset + 0, 1, dataType); values[numStr++] = Convert(data, offset + 1, 1, dataType); return(true); } case GPUFetchFormat.FMT_16: { values[numStr++] = Convert(data, offset + 0, 2, dataType); return(true); } case GPUFetchFormat.FMT_16_16: { values[numStr++] = Convert(data, offset + 0, 2, dataType); values[numStr++] = Convert(data, offset + 2, 2, dataType); return(true); } case GPUFetchFormat.FMT_16_16_16_16: { values[numStr++] = Convert(data, offset + 0, 2, dataType); values[numStr++] = Convert(data, offset + 2, 2, dataType); values[numStr++] = Convert(data, offset + 4, 2, dataType); values[numStr++] = Convert(data, offset + 6, 2, dataType); return(true); } case GPUFetchFormat.FMT_32: { values[numStr++] = Convert(data, offset + 0, 4, dataType); return(true); } case GPUFetchFormat.FMT_32_32: { values[numStr++] = Convert(data, offset + 0, 4, dataType); values[numStr++] = Convert(data, offset + 4, 4, dataType); return(true); } case GPUFetchFormat.FMT_32_32_32_32: { values[numStr++] = Convert(data, offset + 0, 4, dataType); values[numStr++] = Convert(data, offset + 4, 4, dataType); values[numStr++] = Convert(data, offset + 8, 4, dataType); values[numStr++] = Convert(data, offset + 12, 4, dataType); return(true); } case GPUFetchFormat.FMT_32_FLOAT: { values[numStr++] = Convert(data, offset + 0, 4, GPUFetchDataType.FLOAT); return(true); } case GPUFetchFormat.FMT_32_32_FLOAT: { values[numStr++] = Convert(data, offset + 0, 4, GPUFetchDataType.FLOAT); values[numStr++] = Convert(data, offset + 4, 4, GPUFetchDataType.FLOAT); return(true); } case GPUFetchFormat.FMT_32_32_32_32_FLOAT: { values[numStr++] = Convert(data, offset + 0, 4, GPUFetchDataType.FLOAT); values[numStr++] = Convert(data, offset + 4, 4, GPUFetchDataType.FLOAT); values[numStr++] = Convert(data, offset + 8, 4, GPUFetchDataType.FLOAT); values[numStr++] = Convert(data, offset + 12, 4, GPUFetchDataType.FLOAT); return(true); } case GPUFetchFormat.FMT_32_32_32_FLOAT: { values[numStr++] = Convert(data, offset + 0, 4, GPUFetchDataType.FLOAT); values[numStr++] = Convert(data, offset + 4, 4, GPUFetchDataType.FLOAT); values[numStr++] = Convert(data, offset + 8, 4, GPUFetchDataType.FLOAT); return(true); } } return(false); }