diff --git a/Source/OpenTK/Platform/DeviceCollection.cs b/Source/OpenTK/Platform/DeviceCollection.cs index 804dac9db3..02e74923b4 100644 --- a/Source/OpenTK/Platform/DeviceCollection.cs +++ b/Source/OpenTK/Platform/DeviceCollection.cs @@ -46,7 +46,7 @@ class DeviceCollection : IEnumerable #region IEnumerable Members - public IEnumerator GetEnumerator() + IEnumerator IEnumerable.GetEnumerator() { return Devices.GetEnumerator(); } @@ -64,6 +64,17 @@ System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() #region Public Members + // This avoids boxing when using foreach loops + public List.Enumerator GetEnumerator() + { + return Devices.GetEnumerator(); + } + + public T this[int index] + { + get { return FromIndex(index); } + } + /// \internal /// /// Adds or replaces a device based on its hardware id.