public static ShaderProgram Parse(ShaderAlias shader) { Shader vertex = new Shader($"Shaders/{shader.VertexShader}.vs", ShaderType.VertexShader); Shader fragment = new Shader($"Shaders/{shader.FragmentShader}.fs", ShaderType.FragmentShader); return(new ShaderProgram(shader.Uniform, vertex, fragment)); }
private void LoadVO() { //Setting buffers _cube = RenderAPI.I.Core.RM.Get <Mesh>("Meshes/cube", AshyCore.Resource.ResourceTarget.LoadedLevelPrivateRender); Buf = Engine.I.Device.LoadMesh(_cube); //Creating shader program var uniformTypes = new Dictionary <string, string> { { "viewProjectionMat", "Mat4" }, { "ambientLight", "Vec3" }, { "lightPos", "Vec3" }, { "modelMat", "Mat4" } }; var skyShader = new ShaderAlias(@"skybox", @"skybox", uniformTypes); ShaderProgram = ShaderProgram.Parse(skyShader).Compile(); }
public ShaderProgram LoadShader(ShaderAlias shader) { return(ShaderPrograms.GetOrAdd(shader, _ => ShaderProgram.Parse(shader).Compile())); }