Example #1
0
        protected override void Load(ResourceDesc resourceDescription)
        {
            ShaderResourceDesc desc = (ShaderResourceDesc)resourceDescription;

            string file = System.IO.File.ReadAllText(resourceDescription.FileName);

            InputElements = Rendering.ShaderPreprocessor.Preprocess(file);

            // Creates a string with specified Defines
            string defines = "";

            if (desc.Defines != null)
            {
                foreach (string str in desc.Defines)
                {
                    defines += String.Format("#define {0}\n", str);
                }
                file = defines + file;
            }

            ShaderInclude  shaderInclude    = new ShaderInclude("data/shaders/");
            ShaderBytecode vsShaderByteCode = ShaderBytecode.Compile(file, "vs_main", "vs_5_0", ShaderFlags.Debug, EffectFlags.None, null, shaderInclude);
            ShaderBytecode psShaderByteCode = ShaderBytecode.Compile(file, "ps_main", "ps_5_0", ShaderFlags.Debug, EffectFlags.None, null, shaderInclude);

            shaderInclude.Dispose();

            InputSignature = ShaderSignature.GetInputSignature(vsShaderByteCode);
            VertexShader   = new D3D11.VertexShader(desc.Device, vsShaderByteCode);
            PixelShader    = new D3D11.PixelShader(desc.Device, psShaderByteCode);

            Shader = new Rendering.Shader(desc.Device, VertexShader, PixelShader, InputSignature, InputElements, resourceDescription.Alias);
        }
Example #2
0
 public ShaderResource(ShaderResourceDesc resourceDescription)
     : base(resourceDescription)
 {
 }