/// <summary> /// Draws a user batch /// </summary> /// <param name="batch">Batch to draw</param> /// <param name="mode">Drawing mode</param> /// <param name="first">Specifies the starting index in the enabled arrays.</param> /// <param name="count">Specifies the number of indices to be rendered.</param> public static void DrawBatch(BatchBuffer batch, PrimitiveType mode, int first, int count) { // No batch, or empty batch if (batch == null) { return; } // Bind buffer batch.Bind(); TK.GL.DrawArrays((TK.BeginMode)mode, first, count); Statistics.BatchCall++; return; }
/// <summary> /// Binds and draws an IndexBuffer /// </summary> /// <param name="buffer">Buffer handle</param> /// <param name="mode">Drawing mode</param> /// <param name="index">Index buffer</param> public static void DrawIndexBuffer(BatchBuffer buffer, PrimitiveType mode, IndexBuffer index) { if (buffer == null || index == null) { return; } // Set the index buffer index.Bind(); // Bind shader buffer.Bind(); // Draw TK.GL.DrawElements((TK.BeginMode)mode, index.Count, TK.DrawElementsType.UnsignedInt, IntPtr.Zero); Statistics.BatchCall++; }