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); }
public ShaderResource(ShaderResourceDesc resourceDescription) : base(resourceDescription) { }