private void LoadShader(string p_filepath, string p_VS_name, string p_PS_name, InputElement[] p_elements) { var vshader = ShaderBytecode.CompileFromFile(p_filepath, p_VS_name, "vs_4_0", ShaderFlags.None, EffectFlags.None); var pshader = ShaderBytecode.CompileFromFile(p_filepath, p_PS_name, "fx_5_0", ShaderFlags.None, EffectFlags.None); var sig = ShaderSignature.GetInputSignature(vshader); ShaderEffect = new Effect(GraphicsRenderer.Device, pshader); EffectTechnique technique = ShaderEffect.GetTechniqueByIndex(0); ShaderPass = technique.GetPassByIndex(0); Layout = new InputLayout(GraphicsRenderer.Device, sig, p_elements); }
public static void Init() { var btcode = ShaderBytecode.CompileFromFile(Constants.ParticleShader, "VS", "vs_4_0", ShaderFlags.None, EffectFlags.None); var btcode1 = ShaderBytecode.CompileFromFile(Constants.ParticleShader, "PS", "fx_5_0", ShaderFlags.None, EffectFlags.None); var sig = ShaderSignature.GetInputSignature(btcode); Effects = new Effect(GraphicsRenderer.Device, btcode1); EffectTechnique technique = Effects.GetTechniqueByIndex(0); Pass = technique.GetPassByIndex(0); Elements = new[] { new InputElement("POSITION", 0, Format.R32G32B32_Float, 0), new InputElement("TEXTURE", 0, Format.R32G32B32_Float, 1), new InputElement("ORIGIN", 0, Format.R32G32B32_Float, 2) }; InputLayout = new InputLayout(GraphicsRenderer.Device, sig, Elements); }