From dfcf9b99af7fc843dec7d51b3c344d1a42748246 Mon Sep 17 00:00:00 2001 From: Alexander Eckart Date: Sat, 17 Mar 2012 10:08:59 +0100 Subject: [PATCH] use queque instead of list for IDs (thx to rayo) --- Vocaluxe/Lib/Draw/COpenGL.cs | 33 ++++++++++++++------------------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/Vocaluxe/Lib/Draw/COpenGL.cs b/Vocaluxe/Lib/Draw/COpenGL.cs index 06a9709b..f12be76d 100644 --- a/Vocaluxe/Lib/Draw/COpenGL.cs +++ b/Vocaluxe/Lib/Draw/COpenGL.cs @@ -47,7 +47,7 @@ namespace Vocaluxe.Lib.Draw private bool _fullscreen = false; private List _Textures; - private List _IDs; + private Queue _IDs; private List _Queque; private Object MutexTexture = new Object(); @@ -67,11 +67,11 @@ namespace Vocaluxe.Lib.Draw _Textures = new List(); _Queque = new List(); - _IDs = new List(); + _IDs = new Queue(1000000); for (int i = 1; i < 1000000; i++) { - _IDs.Add(i); + _IDs.Enqueue(i); } //Check AA Mode @@ -553,8 +553,7 @@ namespace Vocaluxe.Lib.Draw lock (MutexTexture) { - texture.index = _IDs[0]; - _IDs.RemoveAt(0); + texture.index = _IDs.Dequeue(); _Textures.Add(texture); } @@ -758,10 +757,9 @@ namespace Vocaluxe.Lib.Draw lock (MutexTexture) { - texture.index = _IDs[0]; - _IDs.RemoveAt(0); + texture.index = _IDs.Dequeue(); + _Textures.Add(texture); } - _Textures.Add(texture); return texture; } @@ -823,11 +821,10 @@ namespace Vocaluxe.Lib.Draw lock (MutexTexture) { - texture.index = _IDs[0]; - _IDs.RemoveAt(0); + texture.index = _IDs.Dequeue(); + _Textures.Add(texture); } - _Textures.Add(texture); - + return texture; } @@ -889,11 +886,10 @@ namespace Vocaluxe.Lib.Draw lock (MutexTexture) { - texture.index = _IDs[0]; - _IDs.RemoveAt(0); + texture.index = _IDs.Dequeue(); + _Textures.Add(texture); } - _Textures.Add(texture); - + return texture; } @@ -908,8 +904,7 @@ namespace Vocaluxe.Lib.Draw lock (MutexTexture) { - texture.index = _IDs[0]; - _IDs.RemoveAt(0); + texture.index = _IDs.Dequeue(); queque.ID = texture.index; _Queque.Add(queque); _Textures.Add(texture); @@ -1036,7 +1031,7 @@ namespace Vocaluxe.Lib.Draw { if (_Textures[i].index == Texture.index) { - _IDs.Add(Texture.index); + _IDs.Enqueue(Texture.index); GL.DeleteTexture(Texture.ID); if (Texture.PBO > 0)