private void LoadShaders(string vertex, string fragment, ShaderLoad shaderLoad = ShaderLoad.Path) { string vertexSource; string fragmentSource; if (shaderLoad == ShaderLoad.Path) { vertexSource = IO.LoadAsciiContent(vertex); fragmentSource = IO.LoadAsciiContent(fragment); } else { vertexSource = vertex; fragmentSource = fragment; } int vertexShader = GL.CreateShader(ShaderType.VertexShader); GL.ShaderSource(vertexShader, vertexSource); GL.CompileShader(vertexShader); int fragmentShader = GL.CreateShader(ShaderType.FragmentShader); GL.ShaderSource(fragmentShader, fragmentSource); GL.CompileShader(fragmentShader); Program = GL.CreateProgram(); GL.AttachShader(Program, vertexShader); GL.AttachShader(Program, fragmentShader); GL.LinkProgram(Program); GL.DeleteShader(vertexShader); GL.DeleteShader(fragmentShader); }
public Shader(string vertex, string fragment, ShaderLoad shaderLoad = ShaderLoad.Path) { LoadShaders(vertex, fragment, shaderLoad); }