public void BindAll(OpenGL gl) { //return; UseProgram(gl, () => { // Update uniforms. foreach (var action in ChangedUniforms) { action.Invoke(gl); } ChangedUniforms.Clear(); foreach (var group in BufferGroups) { group.BindVAO(gl); gl.LineWidth(group.LineWidth); // Use draw elements if an index buffer is defined. Else use draw arrays. if (group.IndicesCount > 0) { gl.DrawElements(OpenGL.GL_LINES, group.IndicesCount, OpenGL.GL_UNSIGNED_INT, IntPtr.Zero); } else { gl.DrawArrays(OpenGL.GL_LINES, 0, group.VerticesCount); } } }); }
public void BindAll(OpenGL gl) { UseProgram(gl, () => { // Update uniforms. foreach (var action in ChangedUniforms) { action.Invoke(gl); } ChangedUniforms.Clear(); foreach (var group in BufferGroups) { group.BindVAO(gl); gl.DrawElements(OpenGL.GL_TRIANGLES, group.IndicesCount, OpenGL.GL_UNSIGNED_INT, IntPtr.Zero); } }); }