예제 #1
0
        public GPUFetchFormat ReadFetchFormat()
        {
            if (_Current >= _Params.Length)
            {
                return(0);
            }

            GPUFetchFormat ret = 0;
            var            str = ReadString();

            System.Enum.TryParse <GPUFetchFormat>(str, out ret);
            return(ret);
        }
예제 #2
0
        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);
        }