public void Draw(TextHandle handle) { VboTextHandle vbo = (VboTextHandle)handle; //GL.PushClientAttrib(ClientAttribMask.ClientVertexArrayBit); //GL.EnableClientState(EnableCap.TextureCoordArray); GL.EnableClientState(EnableCap.VertexArray); GL.BindBuffer(BufferTarget.ArrayBuffer, vbo.vbo_id); GL.BindBuffer(BufferTarget.ElementArrayBuffer, vbo.ebo_id); GL.TexCoordPointer(2, TexCoordPointerType.Float, vector2_size, (IntPtr)vector2_size); GL.VertexPointer(2, VertexPointerType.Float, vector2_size, IntPtr.Zero); GL.DrawElements(BeginMode.Triangles, vbo.element_count, DrawElementsType.UnsignedShort, IntPtr.Zero); //GL.DrawArrays(BeginMode.LineLoop, 0, vbo.element_count); GL.BindBuffer(BufferTarget.ArrayBuffer, 0); GL.BindBuffer(BufferTarget.ElementArrayBuffer, 0); GL.DisableClientState(EnableCap.VertexArray); //GL.DisableClientState(EnableCap.TextureCoordArray); //GL.PopClientAttrib(); }
public TextHandle Load(Vector2[] vertices, ushort[] indices, int index_count) { VboTextHandle handle = new VboTextHandle(++allocated_handles); GL.GenBuffers(1, out handle.vbo_id); GL.BindBuffer(BufferTarget.ArrayBuffer, handle.vbo_id); GL.BufferData(BufferTarget.ArrayBuffer, (IntPtr)(vertices.Length * vector2_size), vertices, BufferUsageHint.StaticDraw); GL.BindBuffer(BufferTarget.ArrayBuffer, 0); GL.GenBuffers(1, out handle.ebo_id); GL.BindBuffer(BufferTarget.ElementArrayBuffer, handle.ebo_id); GL.BufferData(BufferTarget.ElementArrayBuffer, (IntPtr)(indices.Length * sizeof(ushort)), indices, BufferUsageHint.StaticDraw); GL.BindBuffer(BufferTarget.ElementArrayBuffer, 0); handle.element_count = indices.Length; return(handle); }
public TextHandle Load(Vector2[] vertices, ushort[] indices, int index_count) { VboTextHandle handle = new VboTextHandle(++allocated_handles); GL.GenBuffers(1, out handle.vbo_id); GL.BindBuffer(BufferTarget.ArrayBuffer, handle.vbo_id); GL.BufferData(BufferTarget.ArrayBuffer, (IntPtr)(vertices.Length * vector2_size), vertices, BufferUsageHint.StaticDraw); GL.BindBuffer(BufferTarget.ArrayBuffer, 0); GL.GenBuffers(1, out handle.ebo_id); GL.BindBuffer(BufferTarget.ElementArrayBuffer, handle.ebo_id); GL.BufferData(BufferTarget.ElementArrayBuffer, (IntPtr)(indices.Length * sizeof(ushort)), indices, BufferUsageHint.StaticDraw); GL.BindBuffer(BufferTarget.ElementArrayBuffer, 0); handle.element_count = indices.Length; return handle; }