public ShaderProgram Compile() { Shaders.ForEach(s => { GL.ShaderSource(s.Id, s.Source); GL.CompileShader(s.Id); GL.AttachShader(ProgramId, s.Id); VerifyShaderStep(s.Id); GL.DeleteShader(s.Id); VerifyProgramStep(); }); GL.LinkProgram(ProgramId); VerifyProgramStep(); CanBeUsed = true; UniformLocation = UniformTypes .ToDictionary(u => u.Key, u => GL.GetUniformLocation(ProgramId, u.Key)); return(this); }
/// <inheritdoc /> public void Dispose() { Shaders.ForEach(shader => shader.Dispose()); Shaders = default; }
public void Dispose() { Shaders.ForEach(shader => shader.Dispose()); }