public Shader(string source, OpenTK.Graphics.OpenGL.ShaderType type) { this.Pointer = GL.CreateShader(type); GL.ShaderSource(Pointer, source); GL.CompileShader(Pointer); InfoLog = GL.GetShaderInfoLog(Pointer); }
private static int LoadShader(string code, OpenTK.Graphics.OpenGL.ShaderType type) { int id = GL.CreateShader(type); GL.ShaderSource(id, code); GL.CompileShader(id); return(id); }
public OpenGLShader(Stream dataStream, OpenTK.Graphics.OpenGL.ShaderType type) { Type = OpenGLFormats.GLToVeldridShaderType(type); string source; using (var sr = new StreamReader(dataStream)) { source = sr.ReadToEnd(); } LoadShader(source, type); }
private void LoadShader(string source, OpenTK.Graphics.OpenGL.ShaderType type) { ShaderID = GL.CreateShader(type); GL.ShaderSource(ShaderID, source); GL.CompileShader(ShaderID); int compileStatus; GL.GetShader(ShaderID, ShaderParameter.CompileStatus, out compileStatus); if (compileStatus != 1) { string shaderLog = GL.GetShaderInfoLog(ShaderID); throw new InvalidOperationException($"Error compiling {type} shader. {shaderLog}"); } }
public Shader(string source, OpenTK.Graphics.OpenGL.ShaderType type) { this.Pointer = GL.CreateShader(type); source += "\0"; GL.ShaderSource(Pointer, source); GL.CompileShader(Pointer); int status = 0; GL.GetShader(Pointer, ShaderParameter.CompileStatus, out status); string infolog = GL.GetShaderInfoLog(Pointer); if (!string.IsNullOrWhiteSpace(infolog)) { Console.WriteLine(infolog); } }
public static ShaderType GLToVeldridShaderType(OpenTK.Graphics.OpenGL.ShaderType type) { switch (type) { case OpenTK.Graphics.OpenGL.ShaderType.FragmentShader: return(ShaderType.Fragment); case OpenTK.Graphics.OpenGL.ShaderType.VertexShader: return(ShaderType.Vertex); case OpenTK.Graphics.OpenGL.ShaderType.GeometryShader: return(ShaderType.Geometry); case OpenTK.Graphics.OpenGL.ShaderType.TessEvaluationShader: case OpenTK.Graphics.OpenGL.ShaderType.TessControlShader: case OpenTK.Graphics.OpenGL.ShaderType.ComputeShader: throw new NotSupportedException($"The shader type {type} is not supported."); default: throw Illegal.Value <OpenTK.Graphics.OpenGL.ShaderType>(); } }
public void LoadShaderFromString(string code, string shaderName, IeCoreEntites.Shaders.ShaderType type) { Shader shader = new Shader(shaderName, string.Concat("InMemmory shader ", Guid.NewGuid()), code, type); _assetmanager.Register(shader); _storedShaders.Add(shader); OpenTK.Graphics.OpenGL.ShaderType OGLEnum = Enum.Parse <OpenTK.Graphics.OpenGL.ShaderType>(shader.ShaderType.ToString()); shader.Id = GL.CreateShader(OGLEnum); GL.ShaderSource(shader.Id, shader.ShaderCode); GL.CompileShader(shader.Id); string shaderInfo = GL.GetShaderInfoLog(shader.Id); if (!string.IsNullOrEmpty(shaderInfo)) { Console.WriteLine(shaderInfo); //Log errors. } else { Console.WriteLine($"{shaderName} compiled correctly"); } }
public OpenGLShader(string source, OpenTK.Graphics.OpenGL.ShaderType type) { LoadShader(source, type); }