public void Load(string vertexShaderName, string fragmentShaderName) { string vSource = vShaderSource; string fSource = fShaderSource; int vShader = GL.CreateShader(ShaderType.VertexShader); int fShader = GL.CreateShader(ShaderType.FragmentShader); GL.ShaderSource(vShader, vSource); GL.ShaderSource(fShader, fSource); // Compile shaders GL.CompileShader(vShader); GL.CompileShader(fShader); Debug.WriteLine(GL.GetShaderInfoLog(vShader)); Debug.WriteLine(GL.GetShaderInfoLog(fShader)); int program = GL.CreateProgram(); // Link and attach shaders to program GL.AttachShader(program, vShader); GL.AttachShader(program, fShader); GL.LinkProgram(program); Debug.WriteLine(GL.GetProgramInfoLog(program)); this.Program = program; this.VertexShader = vShader; this.FragmentShader = fShader; this._uniforms = new UniformDictionary(Program); }
public void Load() { string vSource = m_vShaderSource; string fSource = m_fShaderSource; int vShader = GL.CreateShader(ShaderType.VertexShader); int fShader = GL.CreateShader(ShaderType.FragmentShader); GL.ShaderSource(vShader, vSource); GL.ShaderSource(fShader, fSource); // Compile shaders GL.CompileShader(vShader); GL.CompileShader(fShader); Debug.WriteLine(GL.GetShaderInfoLog(vShader)); Debug.WriteLine(GL.GetShaderInfoLog(fShader)); int program = GL.CreateProgram(); // Link and attach shaders to program GL.AttachShader(program, vShader); GL.AttachShader(program, fShader); GL.BindAttribLocation(program, 0, "in_screen_coords"); GL.BindAttribLocation(program, 1, "in_uv"); GL.BindAttribLocation(program, 2, "in_color"); GL.LinkProgram(program); Debug.WriteLine(GL.GetProgramInfoLog(program)); m_Program = program; m_VertexShader = vShader; m_FragmentShader = fShader; m_Uniforms = new UniformDictionary(m_Program); }
public GLShader(int program, int vertexShader, int fragmentShader) { Program = program; VertexShader = vertexShader; FragmentShader = fragmentShader; Uniforms = new UniformDictionary(program, GL.GetUniformLocation); }