Exemple #1
0
        static public ShaderModel ReadShader(byte[] data)
        {
            byte       minorVersion = data[0];
            byte       majorVersion = data[1];
            ShaderType shaderType   = (ShaderType)BitConverter.ToUInt16(data, 2);

            if (shaderType == ShaderType.Effect)
            {
                var _shader        = new ShaderModel(majorVersion, minorVersion, shaderType);
                var bytecodeReader = new BytecodeReader(data, 4, data.Length - 4);
                _shader.EffectChunk = FX9.EffectContainer.Parse(bytecodeReader, (uint)(data.Length - 4));
                return(_shader);
            }
            var reader = new BytecodeReader(data, 0, data.Length);

            return(ShaderModel.Parse(reader));
        }