Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 /// <inheritdoc />
 public void Dispose()
 {
     Shaders.ForEach(shader => shader.Dispose());
     Shaders = default;
 }
Exemplo n.º 3
0
 public void Dispose()
 {
     Shaders.ForEach(shader => shader.Dispose());
 }