/// <summary> /// Create a <see cref="ArrayBufferBase"/> for testing. /// </summary> /// <returns> /// It returns the <see cref="ArrayBufferBase"/> instance to test. /// </returns> private void CreateClientInstance(Buffer buffer) { if (buffer.GetType() == typeof(ArrayBuffer)) { ArrayBuffer arrayBufferObject = (ArrayBuffer)buffer; arrayBufferObject.Create(CreateTestArray()); } else if (buffer.GetType() == typeof(ElementBuffer)) { ElementBuffer elementBufferObject = (ElementBuffer)buffer; elementBufferObject.Create(CreateTestArray()); } }
public void ExampleSetVertexArraysIndexedElements(GraphicsContext ctx, ShaderProgram shaderProgram) { VertexArrays vao = new VertexArrays(); // ... create and setup buffers ... ElementBuffer <int> indexBuffer = new ElementBuffer <int>(BufferUsage.StaticDraw); indexBuffer.Create(new int[] { 0, 1, 2, 3, 2, 1 }); // Draw the first 6 deferenced vertices as GL_TRIANGLES int idx1 = vao.SetElementArray(PrimitiveType.Triangles, indexBuffer); // Draw the first two deferenced vertices as GL_LINES int idx2 = vao.SetElementArray(PrimitiveType.Lines, indexBuffer, 0, 2); // Create/update all resources linked to this instance vao.Create(ctx); // Draw all elements vao.Draw(ctx, shaderProgram); // Draw only the triangles vao.Draw(ctx, shaderProgram, idx1); }