Beispiel #1
0
        /// <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());
            }
        }
Beispiel #2
0
        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);
        }